当前位置: 首页 > news >正文

将自己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 设置

这个文件存储位置设置无所谓的;

  

img

(2)配置 pycnblog 配置文件 config.yaml

解压出来后文件夹:

  

img

打开配置文件修改 config.yaml

  

img

1、blog_url

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

  

img

2、blog_id

  就是网址上的这个东西

 

img

3、username

  这没什么好说的,就是你登录博客园的账户

4、passowrd

  这没什么好说的,就是你登录博客园的密码

(3)运行 pycnblog 中的文件 cnblog_markdown.cmd

1、打开这个文件

    

img

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

  

img

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

出现如下窗口

  

img

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

  

img

 

img

操作完成后就会生成,对应的 _network.md 文件,如下图;

你然后你可以把该文件发给别人,也可以直接复制markdown代码到博客园

  

img

3、对比操作前后文档的区别

我们可以发现,图片的URL已经被替换成了网络RUL,存储在博客园的网络URL;

你现在可以把该文件发给别人,也可以直接复制markdown代码到博客园

  

img

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

  

img

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

  

img

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

  

img

成功

(5)总结:可复制替换后的 markdown 代码发布,但无法直接发布

回到顶部

【附录】

回到顶部

【故障处理】

(1)Typroa =》markdown图片存储设置

如果(2)中报错,发布到博客园报错,那么则必定是因为这个

写markdown有一利器Typora,一般图片存储设置我会修改成这样。

打开文件>偏好设置,找到'图片插入'

  

img

修改为'复制到指定路径',规则设置为./${filename}.assets

下面的3个选项全部勾选。

这样当复制粘贴图片到markdown时,就会在目录中新建一个同名文件夹,存储图片。

  

img

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

故障信息:

  

img

复制代码

我的配置文件如下:
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。修改后测试成功!

 

img

  

img

实际上,默认为已发布了!

(3)相同名次的markdown多次发布会怎么样?

会提示该博客已存在,是否更新替换,对应输入你想要的操作即可

  

img

(4)文件未找到,找不到路径 等错误

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

  

img

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

如果这样还不行,请尝试给文件以权限

右击文件=》属性,然后如下图,添加everyone 用户,给它完全控制权限

  

img

改完后,再次拖动上传 试试

回到顶部

【工具原理】

本工具的基本原理是,调用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】环境【最佳实践测试】 &#xff08;1&#xff09;查看 Typora 设置&#xff08;2&#xff09;配置 pycnblog 配置文件 config.yaml&#xff08;3&#xff09;运行 pycnblog 中的文件 cnblog_markdown.cmd&#xff0…...

uni-app的生命周期(应用,页面生命周期)

1. uni-app的生命周期&#xff08;应用&#xff0c;页面生命周期&#xff09; 1.1. 应用生命周期 1.1.1. 定义在app.vue中 生命周期函数名说明onLaunch当uni-app 初始化完成时触发&#xff08;全局只触发一次&#xff09;onShow当 uni-app 启动&#xff0c;或从后台进入前台…...

响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程

系统概述 在数字化转型的浪潮中&#xff0c;企业官网作为品牌展示、产品推广及客户服务的重要窗口&#xff0c;其建设质量直接影响着企业的线上形象与市场竞争力。响应式企业网站建站系统源码的出现&#xff0c;为企业提供了一种高效、灵活且成本可控的建站解决方案。 代码示…...

如何解除内存卡的写保护并格式化为exFAT文件系统

最近有客户提问内存卡提示写保护&#xff0c;且无法格式化为exFAT格式的问题&#xff0c;可能是由于多种原因引起的。以下是一些可能的解决方法&#xff1a; 1. 检查物理写保护开关 一些SD卡和MicroSD卡适配器上有一个小的物理开关&#xff0c;可以启用或禁用写保护。确保这个…...

【 EI会议 | 西南大学主办 | 往届均已实现检索】第三届神经形态计算国际会议(ICNC 2024)

第三届神经形态计算国际会议&#xff08;ICNC 2024) 2024 3rd International Conference on Neuromorphic Computing (ICNC 2024) 一、重要信息 大会官网&#xff1a;www.ic-nc.org&#xff08;点击投稿/参会/了解会议详情&#xff09; 会议时间&#xff1a;2024年12月13-15…...

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品&#xff08;iPhone、iPad、Mac等&#xff09;及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为&#xff1a;亿美元 。 数据说明&#xff1a; 数据整理自苹果公司历年10-K文件&#xff0c;每年10-K文件可能对之前年…...

ethercat igh可能出现的两个bug

1. 插入网线直接就进入op状态&#xff0c;这可能是因为 从站支持eoe协议 igh对eoe协议支持的从站默认使其直接进入op状态&#xff0c;可以修改igh源码编译选项&#xff0c;不启动eoe协议 可以参考&#xff1a; igh编译选项 igh一些EoE协议说明 Automatic Configuration&#…...

计算机网络知识点(三)

目录 一、简述TCP连接和关闭的状态转移 二、简述TCP慢启动 三、简述TCP如何保证有序 四、简述TCP常见的拥塞控制算法 五、简述TCP超时重传 一、简述TCP连接和关闭的状态转移 状态转移图 图中上半部分是TCP的三次握手过程的状态变迁&#xff0c;下半部分是TCP四次挥手过程的…...

关于认证协议

本地用户认证 本地认证的意思就是&#xff0c;我们的电脑上存储着自己的账号密码&#xff0c;无论电脑是否联网&#xff0c;只要能开机&#xff0c;就可以输入账号密码登录到电脑中&#xff0c;工作组就是采用本地认证 本地认证流程 winlogon.exe -> 接收用户输入 -> …...

C#操作MySQL从入门到精通(20)——更新数据

前言: 谈到数据库,大家最容易脱口而出的就是增删改查,本文所说的更新数据就是增删改查的改,改变数据的意思。 本文测试使用的数据库如下: 1、更新一列 所谓更新一列的意思就是只更改一列数据,并且通常要使用where条件,因为不加这个条件的话会导致将所有行的数据进行…...

NVMe全闪存储系统性能测试及产品功能与应用场景

今天我们继续对全闪存储系统GS 5024UE的评测&#xff0c;重点关注GS 5024UE的性能测试数据&#xff0c;以及产品所具备的功能、应用场景。通过Windows IOmeter测试软件&#xff0c;来测试GS 5024UE设备的性能&#xff0c;在机器上配上24颗 NVMe 3.84TB硬盘, 16条32Gb FC数据&am…...

C#面:C#面向对象的思想主要包括什么?

C#面向对象的思想主要包括以下几个方面&#xff1a; 封装&#xff08;Encapsulation&#xff09;&#xff1a;封装是将数据和操作数据的方法封装在一起&#xff0c;形成一个类。通过封装&#xff0c;可以隐藏类的内部实现细节&#xff0c;只暴露必要的接口给外部使用。这样可以…...

海南云亿商务咨询有限公司正规吗?怎么样?

在当下数字化浪潮汹涌的时代&#xff0c;抖音电商作为新兴的营销渠道&#xff0c;正以其独特的魅力和巨大的市场潜力&#xff0c;吸引着越来越多的企业和品牌投身其中。作为专注抖音电商服务的佼佼者&#xff0c;海南云亿商务咨询有限公司凭借专业的团队、丰富的经验和前瞻的战…...

【数据结构】排序(上)

个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序&#xff08;1&#xff09;基本思想&#xff08;2&#xff09;代码实现&#xff08;3&#xff09;时间复杂度&#xff08;4&#xff09;空间复杂度 2…...

vue3+el-plus对eleplus对el-table表格进行拖拽(使用sortablejs进行列拖拽和行拖拽):

如有对表格拖拽进行限制某列或某行不进行拖拽的需求&#xff0c;请点击&#xff1a; vue3ele-plussortableJs对el-table使用sortableJs插件对表格拖拽时限定某列或某行不允许拖拽-CSDN博客 如果你已实现拖拽需求&#xff0c;但拖拽后发现表头并未改变的话&#xff0c;请点击&…...

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#&#xff08;WinForm&#xff09;开发触摸屏&#xff0c;体验感满满...

LaneKeepingEnv(自动驾驶仿真)

LaneKeepingEnv环境的工作原理可以归纳如下&#xff1a; 初始化阶段&#xff1a; 环境在创建时&#xff0c;会调用__init__方法进行初始化。初始化过程中&#xff0c;会设置一些关键的属性&#xff0c;如lane&#xff08;当前车道&#xff09;、lanes&#xff08;所有车道的列…...

C++类与对象(拷贝与类的内存管理)

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.对象的动态建立和释放二.多个对象的构造和析构三.深拷贝与浅拷贝四.C类的内存管理总结 前言 …...

C语言----字符函数和字符串函数

在编程的过程中&#xff0c;我们要经常处理字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;c语言标准库中提供的一系列库函数&#xff0c;接下来我们就开始学习与认识他们 1.字符分类函数 c语言中有一系列的函数是专门做字符分类的&#xff0c;也就是一个字符…...

Azure OpenAI代理层:无缝兼容官方API,平滑迁移与统一管理

1. 项目概述&#xff1a;一个为Azure OpenAI服务量身打造的代理层如果你正在使用微软Azure平台上的OpenAI服务&#xff0c;比如GPT-4、GPT-3.5-Turbo或者Embeddings模型&#xff0c;并且遇到了API格式不兼容、部署环境限制或者想统一管理多个终端的麻烦&#xff0c;那么diemus/…...

多模态大模型评测框架VLMEvalKit:从原理到实践,实现高效公平的模型评估

1. 项目概述&#xff1a;一个开箱即用的多模态大模型评测工具箱 如果你最近在折腾多模态大模型&#xff0c;不管是想复现论文里的SOTA结果&#xff0c;还是想给自己训的模型做个“体检”&#xff0c;又或者只是想快速对比一下ChatGPT-4V、Gemini Pro Vision这些闭源巨头的实力…...

Zotero PDF Translate终极配置指南:如何一键激活20+翻译服务

Zotero PDF Translate终极配置指南&#xff1a;如何一键激活20翻译服务 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh_mir…...

叫不动下属、又不能裁?中层必看!不撕破脸、不内耗,3招拿捏摆烂员工

很多中层都有这样的困境&#xff1a;上面领导催进度&#xff0c;下面员工躺平摆烂&#xff0c;叫不动、推不动&#xff1b;想辞退&#xff0c;却因编制、合同等原因动不了&#xff0c;要么硬刚撕破脸&#xff0c;要么忍气吞声自己扛&#xff0c;内耗严重还没成效。 其实&#…...

基于MCP与多准则决策的数据中心智能选址系统设计与实践

1. 项目概述&#xff1a;数据中心选址智能决策的现代解法最近在做一个挺有意思的项目&#xff0c;客户是一家大型互联网公司&#xff0c;他们计划在海外新建一个大型数据中心&#xff0c;但面对全球几十个潜在选址&#xff0c;从土地成本、电力供应、网络延迟到政策风险&#x…...

【零基础部署】Ubuntu 安装 Docker 保姆级教程

Docker 是当今最流行的容器化平台之一&#xff0c;它能让你把应用及其依赖打包到一个轻量级的容器中运行。无论你是想搭建开发环境、部署服务&#xff0c;还是学习云原生技术&#xff0c;Docker 都是必备技能。本文将手把手带你从零开始&#xff0c;在 Ubuntu 系统上完成 Docke…...

从昆虫飞行到机器人导航:碰撞容忍型Gimbal机器人的仿生设计哲学

1. 项目概述&#xff1a;从“硬闯”到“巧过”的机器人导航哲学 在机器人导航领域&#xff0c;我们似乎已经习惯了“感知-规划-行动”的经典范式。从激光雷达、深度相机到复杂的SLAM算法&#xff0c;工程师们投入海量资源&#xff0c;只为让机器人像人一样&#xff0c;优雅地识…...

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂IP报文每个字段

用Wireshark解密IP协议&#xff1a;从抓包实战到网络诊断的完全指南 当你第一次打开网络教材看到IP报文那密密麻麻的字段时&#xff0c;是否感觉像在解读外星密码&#xff1f;传统的学习方法让我们死记硬背"版本号4位、首部长度4位、服务类型8位..."&#xff0c;但今…...

告别盲调!用STM32CubeMonitor实时可视化你的MCU变量(附Windows/Mac安装包)

告别盲调&#xff01;用STM32CubeMonitor实时可视化你的MCU变量&#xff08;附Windows/Mac安装包&#xff09; 调试嵌入式系统时&#xff0c;最令人抓狂的莫过于反复修改代码、下载、断点查看变量——这种"盲人摸象"式的开发方式&#xff0c;在调试动态系统&#xff…...

避坑指南:ESP32-C3蓝牙通信中ESP_GATTS_READ_EVT事件的正确理解与数据更新时机

ESP32-C3蓝牙GATT通信中的数据更新陷阱与实战解决方案 当你在ESP32-C3上实现蓝牙GATT通信时&#xff0c;是否遇到过这样的困惑&#xff1a;明明在ESP_GATTS_READ_EVT事件中更新了特征值&#xff0c;但客户端读取到的却总是旧数据&#xff1f;这个看似简单的现象背后&#xff0c…...