Articli 是一个可以管理多个平台内容的命令行工具, 通过解析 Markdown 文件内容以及调用平台接口,实现内容管理。

最终目标是基于 本地文件 + Git 代码仓 管理所有的文章, 并且可以通过命令行操作以及 CI/CD,实现文章在各个平台的发布、更新等功能。 这样做的好处有:

  • 数据安全,既发布到了第三方平台,又可以通过 Git 代码仓管理,避免因平台问题导致数据丢失
  • 可以实现自动化,比如文章自动在多个平台发布、更新
  • 面向程序员的 CLI 工具,可以实现更多个性化的操作

为本项目点赞将鼓励作者继续完善下去,欢迎提出建议、Bug、PR。

GitHub 地址

支持的平台

安装

NPM

npm install -g @k8scat/articli

Homebrew

# 使用 tap
brew tap k8scat/tap
# 安装 Articli
brew install acli

# 直接安装
brew install k8scat/tap/acli

# 升级
brew update
brew upgrade k8scat/tap/acli

Docker

# 将配置文件的目录挂载到容器内
docker run \
  -it \
  --rm \
  -v $HOME/.config/articli:/root/.config/articli \
  k8scat/articli:latest \
  juejin auth login

# 升级
docker pull k8scat/articli:latest

二进制

Please download from the releases page.

源码编译

git clone https://github.com/k8scat/articli.git
cd articli
make

文章模板

我们将使用文件内容开头 --- 之间的数据作为文章的配置信息(元数据), 根据配置信息在不同平台上创建或更新文章,参考 文章模板

使用说明

所有的命令都可以通过 -h--help 参数查看帮助信息。

查看版本

acli version

GitHub

登录

使用 GitHub Token 进行登录

# 交互式登录
acli github auth login

# 从标准输入获取 Token
acli github auth login --with-token < token.txt

上传文件

# 上传 README.md 文件到 testrepo 仓库
acli github file upload --repo testrepo README.md

# 使用网络资源
# 使用 -p 指定在仓库中存储的路径
acli github file upload --repo testrepo \
  -p testdir/homebrew-social-card.png \
  https://brew.sh/assets/img/homebrew-social-card.png

列取文件

# 获取代码仓 testrepo 根目录的文件列表,包括文件和目录
acli github file get --repo testrepo

# 如果 testpath 是目录,则获取代码仓 testrepo 中 testpath 目录下的文件;
# 如果 testpath 是文件,则只获取该文件
acli github file get --repo testrepo --path testpath

articli-github-file-upload.png

删除文件

# 使用 -o 或 --owner 可以指定仓库的 owner
acli github file delete --owner testowner --repo testrepo --path testdir/filename.txt

掘金 CLI

登录

使用浏览器 Cookie 进行登录

# 交互式登录
acli juejin auth login

# 从标准输入获取 Cookie
acli juejin auth login --with-cookie < cookie.txt

创建/更新文章

# create 命令可以通过识别文章的配置信息,自动选择创建或者更新文章,同时发布到掘金
acli juejin article create markdown-file.md

查看文章列表

通过 -k--keyword 关键字参数过滤文章列表

acli juejin article list -k Docker

打开文章

使用默认浏览器打开文章

acli juejin article view 7055689358657093646

查看分类

acli juejin category list

查看标签

# 过滤关键字
acli juejin tag list -k Go

缓存标签

由于标签的数量比较多,可以通过设置缓存加快读取速度

# 设置缓存
acli juejin tag cache

# 使用缓存
acli jujin tag list --use-cache

上传图片

支持上传本地图片和网络图片

# 本地图片
acli juejin image upload leetcode-go.png

# 网络图片
acli juejin image upload https://launchtoast.com/wp-content/uploads/2021/11/learn-rust-programming-language.png

简化命令

使用 alias 别名进行简化命令

# 将 acli juejin 简化成 jcli
cat >> ~/.bashrc << EOF
alias jcli="acli juejin"
alias gcli="acli github"
EOF

# 生效
source ~/.bashrc

# 使用简化后的命令查看掘金的登录状态
jcli auth status