cnblogs

v2026.09.24

Publish, update and read CNBlogs (博客园) posts with a personal access token through the API used by the official vscode-cnb client. Use when the user wants to publish Markdown to 博客园, save a CNBlogs draft, edit or delete a post, or list posts or categories.

GitHub
安装命令
npx skhub add acedatacloud/cnblogs
Markdown
SKILL.md

Use the bundled standard-library CLI. The connector injects the user's 博客园 personal access token as $CNBLOGS_TOKEN. Never print it. The CLI follows the current official cnblogs/vscode-cnb client contract at https://write.cnblogs.com/api (Authorization: Bearer plus Authorization-Type: pat).

python3 "$SKILL_DIR/scripts/cnblogs.py" whoami

If authentication fails, ask the user to create a PAT at https://account.cnblogs.com/settings/tokens and reconnect. Do not ask for their account password or Cookie.

Read the blog

# Verify the token and inspect the account's post template.
python3 "$SKILL_DIR/scripts/cnblogs.py" whoami

# Categories and recent posts.
python3 "$SKILL_DIR/scripts/cnblogs.py" categories
python3 "$SKILL_DIR/scripts/cnblogs.py" posts --limit 20
python3 "$SKILL_DIR/scripts/cnblogs.py" post POST_ID

Create a draft or publish

Prepare the complete Markdown in a file. Category values are numeric IDs from the categories command; tags are names.

# First call is always a dry run and does not load credentials or call the API.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api"

# Save as a private draft after the user confirms.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api" --confirm

# Public publishing additionally requires --publish.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api" --publish --confirm

--confirm is valid only as the final argument. Always show the title, categories, tags, visibility and full content to the user before a public publish. Default to a draft unless the user explicitly requests publication.

Update and delete

Updating requires an explicit visibility choice so an existing post is not silently unpublished. All commands below dry-run without trailing --confirm.

python3 "$SKILL_DIR/scripts/cnblogs.py" update POST_ID \
  --title "新标题" --content-file /tmp/article.md --publish --confirm

python3 "$SKILL_DIR/scripts/cnblogs.py" update POST_ID \
  --title "新标题" --content-file /tmp/article.md --draft --confirm

python3 "$SKILL_DIR/scripts/cnblogs.py" delete POST_ID --confirm

Use the real returned post_id, URL, or media URL. Do not retry a timed-out write automatically because its outcome may be unknown; list recent posts or inspect the post first.

Record the output

After a confirmed public publish returns a real URL, call publish_artifact once with kind="article", channel="cnblogs", the title, returned URL, and status="delivered". Do not record drafts or failed/unknown writes.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

NOASSERTION

源路径

skills/cnblogs

默认分支

main

最新提交

57cc298

Tree SHA

acaa402