跳转到主要内容

概览

Web2MD CLI 让你直接在终端里把任意 URL 转成干净的 Markdown。输出可以用管道喂给 LLM、批量处理 URL 列表,或者导入你的 Obsidian 仓库——全程不用打开浏览器。
CLI 需要 Node.js 18+。运行 node -v 检查你的版本。

安装

无需安装——直接用 npx 运行即可:
也可以全局安装,启动更快:

运行模式

Web2MD CLI 根据你的配置以三种模式运行:

本地模式

默认模式。 无需 API key,本地抓取页面并转换,适用于大多数公开网站。

服务端模式

配置 API key 后启用。 设置 WEB2MD_API_KEY 即可解锁 Reddit、Fandom/Wikia 等需要服务端处理的受限站点。

Bridge 模式

--bridge 参数启用。 通过你的 Chrome 扩展抓取 JS 渲染或需要登录的页面,这些页面静态抓取拿不到。

命令行参数

环境变量

把这些变量加进你的 shell 配置文件(~/.zshrc~/.bashrc),这样每次打开终端都能生效:

使用示例

基础转换

把 Markdown 打印到 stdout。

通过管道喂给 LLM

保存到文件

--meta 参数会在文件开头加上 YAML frontmatter,包含标题、来源 URL、字数、token 数、阅读时长和日期。

从文件批量转换

创建一个 urls.txt 文件:
然后运行:
每个 URL 会在 ./research 目录下单独存为一个 .md 文件。

导入 Obsidian 仓库

每个页面会保存到 ~/Documents/MyVault/raw/,同时更新 ~/Documents/MyVault/INDEX.md,其中包含所有已转换页面的链接。

用 API key 转换 Reddit

Reddit 需要有效的 API key。由于 Reddit 的反爬限制,没有 key 时 Reddit URL 会转换失败。

Bridge 模式

用 Chrome 扩展处理 JS 渲染或需要登录的页面:
Bridge 模式要求已安装 Web2MD Chrome 扩展且 Chrome 处于运行状态。CLI 通过 Chrome 的 native messaging 协议与扩展通信。

JSON 输出

返回结构化输出:
适合程序化消费,或用管道传给 jq

优化支持的站点

Web2MD 内置了以下站点的专用适配器,输出比通用转换更干净:
  • Wikipedia —— 干净的文章提取,信息框(infobox)处理
  • arXiv —— 论文摘要和元数据
  • Hacker News —— 带评论的讨论串
  • GitHub —— Issue 和 Pull Request
  • Stack Overflow —— 问题和回答
  • dev.to —— 博客文章
  • Medium —— 文章(可绕过付费墙预览)
  • Substack —— Newsletter 文章
  • OpenAI Docs —— 文档页面
  • 基于 Mintlify 的文档站 —— 用 Mintlify 搭建的文档站点
  • Reddit —— 帖子和评论(需要 API key)

常见工作流

把 AI Agent 的上下文目录指向 ./context,回答就有据可依。
在 Obsidian 里建立一个带索引、可搜索的研究资料库。
去掉图片和链接,减少喂给 LLM 时的 token 消耗。