将自己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语言中有一系列的函数是专门做字符分类的,也就是一个字符…...

神经网络 torch.nn---Convolution Layers
torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) torch.nn和torch.nn.functional的区别 torch.nn是对torch.nn.functional的一个封装,让使用torch.nn.functional里面的包的时候更加方便 torch.nn包含了torch.nn.…...

Linux常用基本命令-操作
目录 一、shell 1、什么是shell 二、Linux基本的命令分类 1、内部命令和外部命令 2、查看内部命令 2.1、help命令 2.2、enable 命令 2.3、type命令 2.4、whereis命令 2.5、which 命令 2.6、hash缓存 编辑 三、Linux常用命令 1、Linux命令格式 2、编辑Linux命…...

从零开始使用 Elasticsearch(8.14.0)搭建全文搜索引擎
Elasticsearch 是目前最常用的全文搜索引擎。它可以快速地存储、搜索和分析海量数据,广泛应用于维基百科、Stack Overflow、Github 等网站。 Elasticsearch 的底层是开源库 Lucene。直接使用 Lucene 需要写大量代码,而 Elasticsearch 对其进行了封装&am…...

流程与IT双驱动:锐捷网络如何构建持续领先的服务竞争力?
AI大模型及相关应用进入“竞赛时代”,算力作为关键要素备受关注,由于算力行业对网络设备和性能有较大需求,其发展也在推动ICT解决方案提供商加速升级,提升服务响应速度和服务质量。 锐捷网络是行业领先的ICT基础设施及行业解决方…...

CopyOnWriteArrayList 详细讲解以及示范
CopyOnWriteArrayList是Java集合框架中的一种线程安全的列表实现,特别适用于读多写少的并发场景。 它是通过“写时复制”(Copy-On-Write)策略来保证线程安全的,这意味着当有线程尝试修改列表时,它会先复制原列表到一个…...

01-Java和Android环境配置
appium是做app自动化测试最火的一个框架,它的主要优势是支持android和ios,同时也支持Java和Python脚本语言。而学习appium最大的难处在于环境的安装配置,本文主要介绍Java和Android环境配置,在后续文章中将会介绍appium的安装和具…...

【qt】视口和窗口坐标
视口和窗口坐标 一.视口和窗口坐标的原理二.视口和窗口坐标的好处三.演示好处四.总结 一.视口和窗口坐标的原理 在绘图事件中进行绘图 void Widget::paintEvent(QPaintEvent *event) {QPainter painter(this);QRect rect(200,0,200,200);painter.drawRect(rect);//设置视口的…...

优化SQL查询的策略和技巧 - AI提供
优化SQL查询以提高处理大型数据集的数据库性能是一个重要课题。 以下是一些关键策略和技巧,可以帮助您提升查询效率: 1、创建合适索引: 针对频繁出现在WHERE、JOIN、ORDER BY和GROUP BY子句中的列创建索引。索引能够显著加速数据检索过程。…...

平安科技智能运维案例
平安科技智能运维案例 在信息技术迅速发展的背景下,平安科技面临着运维规模庞大、内容复杂和交付要求高等挑战。通过探索智能运维,平安科技建立了集中配置管理、完善的运营管理体系和全生命周期运维平台,实施了全链路监控,显著提…...

基于深度学习的向量图预测
基于深度学习的向量图预测 向量图预测(Vector Graphics Prediction)是计算机视觉和图形学中的一个新兴任务,旨在从像素图像(栅格图像)生成相应的向量图像。向量图像由几何图形(如线条、曲线、多边形等&…...