Crier:跨平台发布您的内容

发布: (2025年12月17日 GMT+8 11:28)
4 min read
原文: Dev.to

Source: Dev.to

(请提供需要翻译的正文内容,我才能为您完成简体中文翻译。)

概述

crier 是一个命令行工具,用于将内容跨平台同步发布。
它让你只需编写一次帖子,即可同时发布到 dev.to、Ghost、WordPress、Hashnode、Medium、Bluesky、Mastodon、Threads、Telegram、Discord 等多个平台。

pip install crier

问题

维护博客并在多个平台上触达受众通常涉及繁琐的手动步骤:

  • 将内容复制到 dev.to
  • 创建带链接的 Bluesky 帖子
  • 在 Mastodon 上发送嘟文
  • 在 Discord 等平台发布公告

每个平台都有其独特的界面、API 和怪癖。

解决方案:一条命令发布到所有平台

crier publish post.md --to devto --to bluesky --to mastodon --to discord

该命令:

  • 将完整文章发布到 dev.to
  • 创建包含标题、描述和链接的 Bluesky 帖子
  • 在 Mastodon 上发送嘟文,使用从标签中提取的主题标签
  • 向你的 Discord 服务器发送嵌入式公告

支持的平台

平台类型备注
dev.to博客完整文章支持
Hashnode博客完整文章支持
Medium博客仅发布
Ghost博客完整文章支持
WordPress博客自托管或 .com
Buttondown通讯邮件订阅者
Bluesky社交带链接卡的帖子
Mastodon社交带标签的嘟文
Threads社交短帖子
LinkedIn社交专业网络
Twitter/X社交复制粘贴模式
Telegram频道机器人帖子
Discord频道Webhook 嵌入

Markdown 输入格式

crier 读取带有可选 YAML 前置内容的标准 Markdown 文件:

---
title: "My Post Title"
description: "A brief description"
tags: [python, cli, automation]
canonical_url: https://myblog.com/my-post
---
  • 对于博客平台 – 完整文章将被发布。
  • 对于社交平台 – 将创建一个带有返回 canonical_url 链接的简短公告。

GitHub Actions 集成

crier 与 GitHub Actions 结合,以在每次推送时自动跨平台发布。

初始化 Action

crier init-action

此命令会创建工作流文件并将 API 密钥设置为 GitHub Secrets。

示例工作流 (.github/workflows/crosspost.yml)

name: Cross-Post Content

on:
  push:
    branches: [main]
    paths:
      - 'posts/**/*.md'

jobs:
  crosspost:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'

      - run: pip install crier

      - name: Cross-post to platforms
        env:
          CRIER_DEVTO_API_KEY: ${{ secrets.CRIER_DEVTO_API_KEY }}
          CRIER_BLUESKY_API_KEY: ${{ secrets.CRIER_BLUESKY_API_KEY }}
        run: |
          crier backfill ./posts --yes

      - name: Save publication state
        run: |
          git config user.name "github-actions[bot]"
          git add .crier/
          git diff --staged --quiet || git commit -m "Update publication registry"
          git push

发布登记

crier 会维护一个登记文件(.crier/registry.yaml),记录已发布的内容:

posts:
  "posts/my-article.md":
    title: "My Article"
    publications:
      devto:
        id: "12345"
        url: https://dev.to/user/my-article
      bluesky:
        id: "abc123"

以后添加新平台时,系统会自动为已有内容进行回填。

CLI 参考

CommandDescription
crier publish FILE [--to PLATFORM]...发布到一个或多个平台
crier backfill PATH [--profile NAME]发布缺失的内容
crier audit PATH显示需要发布的内容
crier list PLATFORM列出您在某个平台上的文章
crier update PLATFORM ID --file FILE更新已有的发布
crier platforms显示可用的平台
crier config set KEY VALUE配置 API 密钥
crier init-action设置 GitHub Actions 工作流

设置 API 密钥

crier config set devto.api_key YOUR_DEV_TO_KEY
crier config set bluesky.api_key "handle.bsky.social:app-password"
crier config set mastodon.api_key "mastodon.social:access-token"

定义配置文件

创建 ~/.config/crier/config.yaml

profiles:
  blogs: [devto, hashnode]
  social: [bluesky, mastodon]
  all: [blogs, social]

使用配置文件:

crier publish post.md --profile all

链接

  • PyPI:
  • GitHub:
  • 文档:
Back to Blog

相关文章

阅读更多 »