logo
0
0
WeChat Login

cnblog-publisher

博客园文章批量发布工具,支持 Markdown 文章自动发布到博客园。

特性

  • 支持 Markdown 文章批量发布
  • 自动解析 YAML front matter(标题、分类、标签)
  • 自动上传图片到博客园
  • 增量发布(记录已发布文章,避免重复发布)
  • 关键词自动分类(根据标题匹配添加分类和标签)
  • 命令行使用方便

安装

使用 pip

pip install cnblog-publisher

使用 uv

uv pip install cnblog-publisher

快速开始

1. 配置环境变量

export CNBLOGS_BLOG_NAME="your-blog-name" # 博客名(英文) export CNBLOGS_USERNAME="your-username" # 用户名 export CNBLOGS_PAT="your-pat-token" # Open API 个人访问令牌 export CNBLOGS_META_TOKEN="your-meta-token" # MetaWeblog 令牌

2. 创建文章目录

在当前目录下创建 articles 目录,放入 Markdown 文件:

--- title: 我的第一篇文章 categories: - 技术 tags: - Python - 博客 --- # 文章正文 这是一篇使用 Markdown 编写的博客文章。 ![示例图片](./images/example.png)

3. 关键词自动分类(可选)

在执行目录下创建 keywords.txt 文件,根据文章标题中的关键词自动添加分类和标签:

# 格式:关键词;分类1,分类2;标签1,标签2 Python;技术,编程;python,代码 JavaScript;技术,前端;js,前端 Docker;技术,DevOps;docker,容器

如果文章标题包含 "Python 入门",会自动添加分类 "技术"、"编程" 和标签 "python"、"代码"。

4. 发布文章

cnblog-publish

或指定文章目录:

cnblog-publish -d /path/to/articles

命令行选项

-v, --version 显示版本号 -d, --dir 指定文章目录(默认: ./articles)

Python API

from cnblog_publisher import CnblogsPublisher, load_article from pathlib import Path # 初始化发布器 publisher = CnblogsPublisher( blog_name="your-blog-name", username="your-username", pat="your-pat-token", meta_token="your-meta-token" ) # 发布文章 result = publisher.publish_post( title="文章标题", content="文章内容(Markdown)", categories=["分类1", "分类2"], tags=["标签1", "标签2"] )

开发

# 克隆项目 git clone https://cnb.cool/zhenxiauto/articles/cnblogs.git cd cnblogs # 安装开发依赖 uv sync --all-extras # 本地安装 uv pip install -e .

更新日志

详见 CHANGELOG.md

许可

MIT License

About

博客园的文章上传工具

416.00 KiB
0 forks0 stars1 branches2 TagREADMEMIT license
Language
Python100%