news 2026/9/11 17:56:57

DevDocs 如何用 thor docs:download 与 docs:list 下载和更新预生成的文档包?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DevDocs 如何用 thor docs:download 与 docs:list 下载和更新预生成的文档包?

DevDocs 如何用 thor docs:download 与 docs:list 下载和更新预生成的文档包?

【免费下载链接】devdocsAPI Documentation Browser项目地址: https://gitcode.com/GitHub_Trending/de/devdocs

在本地搭建 DevDocs(一个聚合多份 API 文档并提供即时搜索的浏览器)时,需要把预生成的文档包从 DevDocs 的服务器下载到本地,再由 Sinatra 应用读取。本文对应的任务是:克隆 DevDocs 仓库后,用thor docs:list查看可用的文档及版本,用thor docs:download按需下载或更新文档包,最后启动本地服务确认下载的文档能正常访问。

适用前提(来自 README.md 的 Manual Installation 一节):

  • Ruby 4.0.6(版本在Gemfile中定义)
  • libcurl
  • 一个 ExecJS 支持的 JavaScript 运行时(macOS 和 Windows 自带;Linux 上需要 Node.js)

准备:克隆仓库并安装依赖

以下命令按顺序在终端中执行:

git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs gem install bundler bundle install

README 特别提醒:如果系统上安装了多个 Ruby 版本,后续所有thor命令都必须通过bundle exec执行(例如bundle exec thor docs:download --default)。

用 thor docs:list 查询文档名和版本

下载之前先确认目标文档的确切名称和版本:

thor docs:list

该命令列出当前项目支持的全部文档,带版本的文档会以名称@版本号的形式逐行输出,结果通过tty-pager分页显示。实现位于 lib/tasks/docs.thor。

docs:list还有一个--packaged选项,但它列出的是本地已经打包(*.tar.gz)的文档,用于维护者流程,普通下载场景不需要。

另外,运行thor list可以在项目根目录查看 CLI 提供的所有命令和选项。

下载文档包

thor docs:download的用法为(见 lib/tasks/docs.thor):

thor docs:download (<doc> <doc@version>... | --default | --installed | --all)

按目标选择参数:

  • 按需下载:直接传一个或多个文档名,如

    thor docs:download html css

    带版本的文档必须用名称@版本格式指定版本,例如thor docs:download node@10\ LTS(README.md 与 docs/maintainers.md 中均以rails@5.2这类写法举例)。不带版本时,docs:download会取该文档定义的第一个版本。

  • --default:下载 README 手动安装流程推荐的默认集合(css dom html http javascript,定义于 lib/docs.rb)。首次安装走这条路径即可。

  • --all:下载并安装本项目支持的全部文档。Docker 镜像构建时用的就是这个选项(见 Dockerfile 中的thor docs:download --all)。

  • --installed:重新下载所有已经下载过的文档,即"更新全部已装文档"的命令,详见下文。

下载过程的输出形如:每处理完一个文档打印一行(序号/总数) 文档名 版本 OK,失败时打印FAILED (异常类: 异常信息);全部完成后打印Done。命令结束后还会自动重新生成清单文件(generate_manifest),该清单写入public/docs/docs.json,供应用端知道系统上当前有哪些文档。

启动服务并验证

下载完成后启动服务器:

bundle exec rackup

然后把浏览器指向 localhost:9292。按 README.md 的说明,第一次请求会花几秒编译 assets,之后即可正常浏览——这就是"下载成功"的可核对结果:页面中能看到刚下载的文档集,并可用侧边栏的文档选择界面勾选要启用的文档。

如果某行输出是FAILED,检查网络与文档名拼写;文档名错误时会看到ERROR: ...以及提示Run "thor docs:list" to see the list of docs and versions.,回到上一步核对名称和版本即可。

更新已下载的文档

README 明确说明:项目目前没有别的更新机制,更新分两部分:

git pull origin main # 更新代码 thor docs:download --installed # 下载所有已装文档的最新版本

--installed的范围由本地public/docs下存在的index.json决定(见 lib/docs.rb 的Docs.installed),所以它只会更新你已经下载过的文档,不会拉取新的。

限制与常见问题

  • 依赖生产环境thor docs:download下载的是维护者通过thor docs:upload上传到生产的包(下载源为 downloads.devdocs.io,见 docs/maintainers.md)。如果某个新文档的 PR 已合并但文件尚未上传到生产,对该文档的docs:download会失败——这不是本地环境问题。
  • public/docs/docs.json不要提交:它只反映本地下载/生成过哪些文档,全新 clone 下应为空(docs/maintainers.md 明确要求 never commit)。
  • 可选分支--rclonedocs:download支持--rclone选项,改用rclone copy devdocs:devdocs-downloads/<path>.tar.gz ...从远端拉包(lib/tasks/docs.thor),需要本机已配置好 rclone 的devdocs远端;默认路径用 HTTP 直接下载,一般无需此选项。
  • 不要本地重新抓取:对大多数文档,直接docs:download拿官方测试过的版本即可;thor docs:generate会向源站发起数千次 HTTP 请求,README 与 docs/maintainers.md 都建议只在修改 scraper 代码时才运行。

完成以上步骤后,public/docs下有解压好的文档目录、public/docs/docs.json已更新、rackup服务在 localhost:9292 可正常浏览所下载的文档,即说明下载与更新流程全部完成。

【免费下载链接】devdocsAPI Documentation Browser项目地址: https://gitcode.com/GitHub_Trending/de/devdocs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 17:56:33

书霸AI期刊论文:把写作拆成可核验的步骤

https://www.shubaai.com 很多人使用AI写期刊论文时&#xff0c;最容易陷入一个误区&#xff1a;只关注“能不能生成”&#xff0c;却忽略了“生成之后能不能核验、修改和投稿”。书霸AI写作里的“期刊论文”功能&#xff0c;适合把论文初稿的形成过程拆成几个明确环节&#xf…

作者头像 李华
网站建设 2026/9/11 17:55:33

React 表单面试中受控组件与非受控组件怎么选?

React 表单面试中受控组件与非受控组件怎么选&#xff1f; 【免费下载链接】front-end-interview-handbook Front End interview preparation materials for busy engineers (updated for 2026) 项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-handb…

作者头像 李华
网站建设 2026/9/11 17:53:24

智能水利平台的高并发实时调度与水质分析工程实践

我之前做过不少水利相关的数据项目&#xff0c;但像这次这样把高并发实时调度和水质分析揉在同一个平台里的&#xff0c;还真是头一回。整个项目从需求梳理到落地&#xff0c;踩了不少坑&#xff0c;也沉淀了些可复用的思路。今天就把奥斯陆这个智能水利场景下的工程设计实践&a…

作者头像 李华
网站建设 2026/9/11 17:48:14

Maestro 从零到实战:用 YAML 测试流搞定 UI 自动化测试

Maestro 从零到实战&#xff1a;用 YAML 测试流搞定 UI 自动化测试 【免费下载链接】Maestro Painless E2E Automation for Mobile and Web 项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro 还在手动点按、逐帧截图做回归吗&#xff1f;Maestro 是开源 UI 自…

作者头像 李华
网站建设 2026/9/11 17:47:32

点读笔素材制作:BNL转TNB格式转换与易读宝魔术贴工厂实战

简介&#xff1a;易读宝魔术贴教程及全套工具是一套面向电商卖家及有声内容制作者的实用资源&#xff0c;旨在帮助用户自行制作有声教程&#xff0c;解决魔术贴格式转换&#xff08;如BNL转TNB&#xff09;的常见问题。压缩包共收录1210个文件&#xff0c;以QML界面组件、DLL动…

作者头像 李华
网站建设 2026/9/11 17:43:45

【k8s】从 GitLab 504 到 Ceph 存储问题

详细排查与操作全过程复盘 以下是本次从 GitLab 504 到 Ceph 存储清理 的完整操作流程&#xff0c;每一步均包含&#xff1a;操作背景、具体命令、预期结果、实际结果及结论。阶段一&#xff1a;问题感知与初步定位&#xff08;GitLab 504&#xff09; 步骤 1&#xff1a;确认 …

作者头像 李华