{"repo":"caol64/wenyan-cli","free":true,"listed":false,"github":"https://github.com/caol64/wenyan-cli","clone":"git clone https://github.com/caol64/wenyan-cli.git","description":"文颜的 CLI 工具，方便使用命令行将markdown排版并上传到微信公众号","language":"TypeScript","stars":214,"topics":["wenyan","cli","wechat"],"license":"Apache-2.0","category":"cli-tools","readme_excerpt":"文颜 CLI 简介 文颜（Wenyan） 是一款多平台 Markdown 排版与发布工具，支持将 Markdown 一键转换并发布至： - 微信公众号 - 知乎 - 今日头条 - 以及其它内容平台（持续扩展中） 文颜的目标是： 让写作者专注内容，而不是排版和平台适配 。 [!NOTE] 进阶玩法：告别套用模板，亲手打造主题：公众号排版Skill 文颜的不同版本 文颜目前提供多种形态，覆盖不同使用场景： - macOS App Store 版 - MAC 桌面应用 - 跨平台桌面版 - Windows/Linux - 👉CLI 版本 - 本项目 - MCP 版本 - AI 自动发文 特性 - 一键发布 Markdown 到微信公众号草稿箱 - 自动上传本地图片与封面 - 支持远程 Server 发布（绕过 IP 白名单限制） - 内置多套精美排版主题 - 支持自定义主题 - 可作为 CI/CD 自动发文工具 - 可集成 AI Agent 自动发布 快速开始 命令概览 命令 说明 ------- --------- publish 发布文章 render 渲染 HTML theme 管理主题 credential 配置公众号凭据 serve 启动 Server 概念 内容输入 内容输入是指如何把 Markdown 文章分发给 wenyan-cli ，支持以下四种方式： 方式 示例 说明 ------- --------- --------- 本地路径（推荐） wenyan publish -f article.md cli 直接读取磁盘上的文章 URL wenyan publish -f http://test.md cli 直接读取网络上的文章 参数 wenyan publish \"# 文章\" 适用于快速发布短内容 管道 cat article.md \\ wenyan publish 适用于 CI/CD，脚本批量发布 环境变量配置 [!IMPORTANT] 请确保运行文颜的机器已配置如下环境变量，否则上传接口[ wenyan publish ]将调用失败。 - WECHAT APP ID - WECHAT APP SECRET [!NOTE] 你可以通过 --env-file=.env 的方式配置环境变量。 微信公众号 IP 白名单 [!IMPORTANT] 请确保运行文颜的机器 IP 已加入微信公众号后台的 IP 白名单，否则上传接口将调用失败。 配置说明文档：https://yuzhi.tech/docs/wenyan/upload [!NOTE] 你可以通过 server 模式或者添加代理两种方式解决 IP 频繁变动的问题。 文章格式 为了正确上传文章，每篇 Markdown 顶部需要包含一段 frontmatter ： 字段说明： - title 文章标题（必填） - cover 文章封面 - 本地路径或网络图片 - 如果正文中已有图片，可省略 - author 文章作者 - source url 原文地址 示例文章 文内图片和文章封面 把文章发布到公众号之前，文颜会按照微信要求自动处理文章内的所有图片，将其上传到公众号素材库。目前文颜对于以下两种图片都能很好的支持： - 本地硬盘绝对路径（如： /Users/xxx/image.jpg ） - 网络路径（如： https://example.com/image.jpg ） 仅当“内容输入”方式为“本地路径”时，以下路径也能完美支持： - 当前文章的相对路径（如： ./assets/ima","default_branch":null,"files":null,"tree":[],"storefront":"/r/caol64","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/caol64/wenyan-cli/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}