将自己md文件发布到自己的博客园实现文件的持久化存储
目录
- 【0】需求原因
- 【1】功能
- 【2】环境
- 【最佳实践测试】
- (1)查看 Typora 设置
- (2)配置 pycnblog 配置文件 config.yaml
- (3)运行 pycnblog 中的文件 cnblog_markdown.cmd
- (4)上传新生成的 _network 文档到博客园
- (5)总结:可复制替换后的 markdown 代码发布,但无法直接发布
- 【附录】
- 【故障处理】
- (1)Typroa =》markdown图片存储设置
- (2)为什么只会图片上传,文档不会自动发布到博客园?
- (3)相同名次的markdown多次发布会怎么样?
- (4)文件未找到,找不到路径 等错误
- 【工具原理】
【0】需求原因
个人习惯用markdown写博客,然后同步到博客园,每次同步都比较麻烦。
于是通过Metaweblog实现了,一步上传markdown文件的小工具。
工具地址:GitHub - dongfanger/pycnblog: 博客园上传markdown文件
作者博客:https://www.cnblogs.com/df888/p/11826480.html
回到顶部
【1】功能
-
一键拖拽上传
-
默认“未发布”,可选择直接发布
-
重复上传,提示是否更新博客
回到顶部
【2】环境
python3
安装参考:
windows:python安装教程(Windows系统,python3.7为例)_如何从官网下载python3.7-CSDN博客
linux:https://www.cnblogs.com/gered/p/13246889.html
回到顶部
【最佳实践测试】
(1)查看 Typora 设置
这个文件存储位置设置无所谓的;

(2)配置 pycnblog 配置文件 config.yaml
解压出来后文件夹:

打开配置文件修改 config.yaml

1、blog_url
管理进入博客园后台 =》 设置 =》拉到页面最底端

2、blog_id
就是网址上的这个东西
![]()
3、username
这没什么好说的,就是你登录博客园的账户
4、passowrd
这没什么好说的,就是你登录博客园的密码
(3)运行 pycnblog 中的文件 cnblog_markdown.cmd
1、打开这个文件

现在大多是win10,权限管理很重要,这一步应该改成下面这样很重要(写自2022-03-07)

否则很容已出现评论区的,找不到文件;
出现如下窗口

2、把我们要上传的markdown文件拖过去


操作完成后就会生成,对应的 _network.md 文件,如下图;
你然后你可以把该文件发给别人,也可以直接复制markdown代码到博客园

3、对比操作前后文档的区别
我们可以发现,图片的URL已经被替换成了网络RUL,存储在博客园的网络URL;
你现在可以把该文件发给别人,也可以直接复制markdown代码到博客园

(4)上传新生成的 _network 文档到博客园

然后内容直接复制过来就好了

张贴过来之后,发布,然后查看,结果如下图:

成功
(5)总结:可复制替换后的 markdown 代码发布,但无法直接发布
回到顶部
【附录】
回到顶部
【故障处理】
(1)Typroa =》markdown图片存储设置
如果(2)中报错,发布到博客园报错,那么则必定是因为这个
写markdown有一利器Typora,一般图片存储设置我会修改成这样。
打开文件>偏好设置,找到'图片插入'

修改为'复制到指定路径',规则设置为./${filename}.assets
下面的3个选项全部勾选。
这样当复制粘贴图片到markdown时,就会在目录中新建一个同名文件夹,存储图片。

(2)为什么只会图片上传,文档不会自动发布到博客园?
故障信息:

![]()
我的配置文件如下: blog_url: https://rpc.cnblogs.com/metaweblog/xiaodaidaiPro blog_id: "xiaodaidaiPro" username: "小呆呆不爱睡觉" password: "61DC36DBFC3F4901BC12246D74AF50E30CE6CE19B06AA634BB7539A8BF61DDBE" #是否生成图片替换后本地文件,默认False关闭 gen_network_file: True #上传后是否发布,默认未发布,设置True为发布 publish: True #图片自定义显示格式,默认不设置 #img_format: "<center><img src="" style="width:100%;" /></center>" 设置居中和宽度 #img_format: typora 还原typora图片样式,居中,设置zoom,上传后无需再手动调整图片大小 img_format: ""
![]()
作者提供的解决方案:
修改upload.py 60行代码中的99999为99,因为:博客园的博文最大可获取数量为100。修改后测试成功!


实际上,默认为已发布了!
(3)相同名次的markdown多次发布会怎么样?
会提示该博客已存在,是否更新替换,对应输入你想要的操作即可

(4)文件未找到,找不到路径 等错误
现在大多是win10,权限管理很重要,这一步应该改成下面这样很重要(写自2022-03-07)

否则很容已出现评论区的,找不到文件;
如果这样还不行,请尝试给文件以权限
右击文件=》属性,然后如下图,添加everyone 用户,给它完全控制权限

改完后,再次拖动上传 试试
回到顶部
【工具原理】
本工具的基本原理是,调用Metaweblog的相关api,把图片上传到服务器后,获取url替换本地图片地址,再上传文件到博客园,在博客园后台能看到新博客。
Metaweblog是一个开放api,用于和远程blog交互,可以通过xmlrpc建立连接
server = xmlrpc.client.ServerProxy(blog_url)
这里用到了2个api:图片上传.MetaWeblog.newMediaObject和博客上传.MetaWeblog.newPost。
上传图片部分,通过asyncio包,实现了异步上传。
回到顶部
相关文章:
将自己md文件发布到自己的博客园实现文件的持久化存储
上传markdown文件到博客园 目录 【0】需求原因【1】功能【2】环境【最佳实践测试】 (1)查看 Typora 设置(2)配置 pycnblog 配置文件 config.yaml(3)运行 pycnblog 中的文件 cnblog_markdown.cmd࿰…...
uni-app的生命周期(应用,页面生命周期)
1. uni-app的生命周期(应用,页面生命周期) 1.1. 应用生命周期 1.1.1. 定义在app.vue中 生命周期函数名说明onLaunch当uni-app 初始化完成时触发(全局只触发一次)onShow当 uni-app 启动,或从后台进入前台…...
响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程
系统概述 在数字化转型的浪潮中,企业官网作为品牌展示、产品推广及客户服务的重要窗口,其建设质量直接影响着企业的线上形象与市场竞争力。响应式企业网站建站系统源码的出现,为企业提供了一种高效、灵活且成本可控的建站解决方案。 代码示…...
如何解除内存卡的写保护并格式化为exFAT文件系统
最近有客户提问内存卡提示写保护,且无法格式化为exFAT格式的问题,可能是由于多种原因引起的。以下是一些可能的解决方法: 1. 检查物理写保护开关 一些SD卡和MicroSD卡适配器上有一个小的物理开关,可以启用或禁用写保护。确保这个…...
【 EI会议 | 西南大学主办 | 往届均已实现检索】第三届神经形态计算国际会议(ICNC 2024)
第三届神经形态计算国际会议(ICNC 2024) 2024 3rd International Conference on Neuromorphic Computing (ICNC 2024) 一、重要信息 大会官网:www.ic-nc.org(点击投稿/参会/了解会议详情) 会议时间:2024年12月13-15…...
利用python爬虫采集苹果公司各产品销售收入统计报告
数据为2013年到2022年苹果公司各产品(iPhone、iPad、Mac等)及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为:亿美元 。 数据说明: 数据整理自苹果公司历年10-K文件,每年10-K文件可能对之前年…...
ethercat igh可能出现的两个bug
1. 插入网线直接就进入op状态,这可能是因为 从站支持eoe协议 igh对eoe协议支持的从站默认使其直接进入op状态,可以修改igh源码编译选项,不启动eoe协议 可以参考: igh编译选项 igh一些EoE协议说明 Automatic Configuration&#…...
计算机网络知识点(三)
目录 一、简述TCP连接和关闭的状态转移 二、简述TCP慢启动 三、简述TCP如何保证有序 四、简述TCP常见的拥塞控制算法 五、简述TCP超时重传 一、简述TCP连接和关闭的状态转移 状态转移图 图中上半部分是TCP的三次握手过程的状态变迁,下半部分是TCP四次挥手过程的…...
关于认证协议
本地用户认证 本地认证的意思就是,我们的电脑上存储着自己的账号密码,无论电脑是否联网,只要能开机,就可以输入账号密码登录到电脑中,工作组就是采用本地认证 本地认证流程 winlogon.exe -> 接收用户输入 -> …...
C#操作MySQL从入门到精通(20)——更新数据
前言: 谈到数据库,大家最容易脱口而出的就是增删改查,本文所说的更新数据就是增删改查的改,改变数据的意思。 本文测试使用的数据库如下: 1、更新一列 所谓更新一列的意思就是只更改一列数据,并且通常要使用where条件,因为不加这个条件的话会导致将所有行的数据进行…...
NVMe全闪存储系统性能测试及产品功能与应用场景
今天我们继续对全闪存储系统GS 5024UE的评测,重点关注GS 5024UE的性能测试数据,以及产品所具备的功能、应用场景。通过Windows IOmeter测试软件,来测试GS 5024UE设备的性能,在机器上配上24颗 NVMe 3.84TB硬盘, 16条32Gb FC数据&am…...
C#面:C#面向对象的思想主要包括什么?
C#面向对象的思想主要包括以下几个方面: 封装(Encapsulation):封装是将数据和操作数据的方法封装在一起,形成一个类。通过封装,可以隐藏类的内部实现细节,只暴露必要的接口给外部使用。这样可以…...
海南云亿商务咨询有限公司正规吗?怎么样?
在当下数字化浪潮汹涌的时代,抖音电商作为新兴的营销渠道,正以其独特的魅力和巨大的市场潜力,吸引着越来越多的企业和品牌投身其中。作为专注抖音电商服务的佼佼者,海南云亿商务咨询有限公司凭借专业的团队、丰富的经验和前瞻的战…...
【数据结构】排序(上)
个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序(1)基本思想(2)代码实现(3)时间复杂度(4)空间复杂度 2…...
vue3+el-plus对eleplus对el-table表格进行拖拽(使用sortablejs进行列拖拽和行拖拽):
如有对表格拖拽进行限制某列或某行不进行拖拽的需求,请点击: vue3ele-plussortableJs对el-table使用sortableJs插件对表格拖拽时限定某列或某行不允许拖拽-CSDN博客 如果你已实现拖拽需求,但拖拽后发现表头并未改变的话,请点击&…...
Nginx如何隐藏版本号
1 找到nginx.conf配置文件进行修改 http{...server{listen 80 default_server;listen [::]:80 default_server;server_name _;root /usr/share/nginx/html;server_tokens off; #添加这一项就可以了location / {}error_page 404 /404.html;location /40…...
用C#(WinForm)开发触摸屏,体验感满满
用C#(WinForm)开发触摸屏,体验感满满...
LaneKeepingEnv(自动驾驶仿真)
LaneKeepingEnv环境的工作原理可以归纳如下: 初始化阶段: 环境在创建时,会调用__init__方法进行初始化。初始化过程中,会设置一些关键的属性,如lane(当前车道)、lanes(所有车道的列…...
C++类与对象(拷贝与类的内存管理)
感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.对象的动态建立和释放二.多个对象的构造和析构三.深拷贝与浅拷贝四.C类的内存管理总结 前言 …...
C语言----字符函数和字符串函数
在编程的过程中,我们要经常处理字符和字符串,为了方便操作字符和字符串,c语言标准库中提供的一系列库函数,接下来我们就开始学习与认识他们 1.字符分类函数 c语言中有一系列的函数是专门做字符分类的,也就是一个字符…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
