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%