将自己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语言中有一系列的函数是专门做字符分类的,也就是一个字符…...
《奇迹 MU:荣耀出征》荣耀 12 区:职业选择 + 开荒路线 + 搬砖技巧全攻略!
作为正版奇迹 MU 授权的复古魔幻手游,《奇迹 MU:荣耀出征》的核心魅力不仅在于经典职业的热血回归与自由交易的搬砖乐趣,更在于从新手开荒到高阶攻坚的完整成长链路、全阶段高爆地图的刷宝惊喜、世界 BOSS 的全服混战与战盟攻城的巅峰对决。相…...
终极指南:如何用Zotero PDF Translate插件快速突破学术语言壁垒
终极指南:如何用Zotero PDF Translate插件快速突破学术语言壁垒 【免费下载链接】zotero-pdf-translate 支持将PDF、EPub、网页内容、元数据、注释和笔记翻译为目标语言,并且兼容20多种翻译服务。 项目地址: https://gitcode.com/gh_mirrors/zo/zotero…...
小波分解选型指南:如何为你的数据选择最合适的pywt小波函数(db4/haar/symlets对比)
小波分解选型指南:如何为你的数据选择最合适的pywt小波函数(db4/haar/symlets对比) 在信号处理领域,小波分解就像一把瑞士军刀,能够同时提供时域和频域的信息。但面对pywt库中琳琅满目的小波函数——从经典的Haar到复杂…...
XUnity.AutoTranslator:Unity游戏翻译解决方案的创新方法 | 玩家与开发者实战指南
XUnity.AutoTranslator:Unity游戏翻译解决方案的创新方法 | 玩家与开发者实战指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍错失优秀的外语游戏?是否在尝…...
Phi-3-mini-128k-instruct实战案例:中小企业技术文档自动解析与结构化提取
Phi-3-mini-128k-instruct实战案例:中小企业技术文档自动解析与结构化提取 1. 项目背景与价值 对于中小企业而言,技术文档管理一直是个令人头疼的问题。工程师们经常需要从大量PDF、Word文档中提取关键信息,手动整理成结构化数据。这个过程…...
次元画室快速部署教程:手把手解决网络权限与配置问题
次元画室快速部署教程:手把手解决网络权限与配置问题 1. 环境准备与快速部署 1.1 系统要求检查 在开始部署次元画室前,请确保您的系统满足以下最低要求: 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 8/9(推荐使用Ub…...
家庭实验室:树莓派控制OpenClaw调用远程Qwen3-32B
家庭实验室:树莓派控制OpenClaw调用远程Qwen3-32B 1. 为什么选择树莓派OpenClaw组合 去年冬天,我在整理家庭实验室设备时发现一个闲置的树莓派4B。这台信用卡大小的电脑曾经用来跑Home Assistant控制智能家居,但后来换了NUC主机就被束之高阁…...
基于粒子群优化算法的地表水源热泵机组优化调度 以水源热泵机组角度对地表水源热泵系统建模
基于粒子群优化算法的地表水源热泵机组优化调度 以水源热泵机组角度对地表水源热泵系统建模, 并采用粒子群优化算法优化算法求解热泵机组每小时最佳制冷量和制热量 最近帮朋友做了个小区地表水源热泵的调度优化项目,一开始以为就是调调空调温度…...
一文搞懂Agent三大核心技术:Function Calling、MCP、A2A,小白也能轻松收藏学习!
本文详细解析了AI Agent的三大核心技术:Function Calling、MCP和A2A。Function Calling使AI能够主动获取外部信息,MCP为工具接入提供了标准化接口,而A2A则实现了多智能体之间的协作。通过这三个技术的演进,AI Agent的能力从点对点…...
量子行走:从理论到Python实现——3. 量子门、电路与编程基础
目录 3. 量子门、电路与编程基础 3.1 单量子比特门 3.1.1 泡利门与旋转门 3.1.2 哈达玛门与相位门 3.2 多量子比特门 3.2.1 受控门 3.2.2 纠缠门与SWAP操作 3.3 量子电路构建与优化 3.3.1 电路表示与DAG结构 3.3.2 变分电路 3. 量子门、电路与编程基础 量子计算体系的…...
