#文章 #更新 #发布 #工具 #CLI 工具 #博客 #Front-matter

app cargo_bullhorn

用于发布和更新文章的 CLI 工具

3 个版本 (破坏性更新)

0.3.0 2021 年 7 月 7 日
0.2.0 2021 年 6 月 27 日
0.1.0 2021 年 6 月 19 日

#672 in Cargo 插件

MIT 许可证

94KB
2K SLoC

BULLHORN

"自 1849 年以来提高博客的音量至 11 级"

用于发布和更新文章的 CLI 工具。

用法

cargo install cargo_bullhorn
# Assuming ~/.cargo/bin is in `PATH` environment variable
cargo_bullhorn --help
# Optional: enable logging
export RUST_LOG="warn,cargo_bullhorn=trace"
cargo_bullhorn 0.3.0

USAGE:
    cargo_bullhorn [FLAGS] [OPTIONS] [--] [posts]...

ARGS:
    <posts>...    One or more markdown files

FLAGS:
        --draft      Posts created as drafts, if possible
        --dry        Dry run (e.g. no REST POST/PUT, GraphQL mutation, etc.)
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --compare <compare>
            How articles are compared to determine if they already exist for update [default:
            canonical-url] [possible values: canonical-url, slug]

        --config <config>
            YAML file containing configuration [default: $HOME/.bullhorn.yaml]

        --date <date>                                        Publish date if not today
        --devto-api-token <devto-api-token>                  [env: DEVTO_API_TOKEN=]
        --hashnode-api-token <hashnode-api-token>            [env: HASHNODE_API_TOKEN=]
        --hashnode-username <hashnode-username>              [env: HASHNODE_USERNAME=]
        --medium-api-token <medium-api-token>                [env: MEDIUM_API_TOKEN=]
        --medium-publication-id <medium-publication-id>      [env: MEDIUM_PUBLICATION_ID=]
        --operation <operation>
            Operation to perform (i.e. update, or submit new) [default: auto] [possible values:
            auto, put, post]

        --platforms <platforms>...
            Platform(s) to enable [default: all] [possible values: medium, devto, hashnode, tumblr,
            all]

        --remote <remote>                                    Git remote to use [default: origin]
        --slug <slug>                                        Override front-matter `slug` value
        --tumblr-blog-id <tumblr-blog-id>
            Tumblr blog ID (e.g. `https://www.tumblr.com/blog/{blog_id}`) [env: TUMBLR_BLOG_ID=]

        --tumblr-consumer-key <tumblr-consumer-key>
            Tumblr consumer key (OAuth client key) [env: TUMBLR_CONSUMER_KEY=]

        --tumblr-consumer-secret <tumblr-consumer-secret>
            Tumblr consumer secret (OAuth client secret) [env: TUMBLR_CONSUMER_SECRET=]

        --tumblr-token <tumblr-token>
            Tumblr user OAuth token [env: TUMBLR_OAUTH_TOKEN=]

        --tumblr-token-secret <tumblr-token-secret>
            Tumblr user OAuth token secret [env: TUMBLR_OAUTH_TOKEN_SECRET=]

        --update-fields <update-fields>...
            Article fields to write when updating an article [possible values: body, slug, tags]

特性

  • 支持 Front-matter
    • Jekyll
    • Hugo (YAML 部分: slug, series, description)
Github Pages Medium hashnode dev.to Tumblr
规范源
跨发文章 ✅ (作为链接)
更新文章 🚫 👎

Front-matter 字段

Github Pages Medium hashnode dev. to Tumblr
日期 🚫 👎
描述 🚫 🚫 👎 👎
发布 🚫 👎 🚫 🚫
系列 🚫 🚫 🚫 🚫
标签 👎

🚫 = 不支持 👎 = 可能 支持。存在 问题

依赖

~13–29MB
~467K SLoC