DevDocs将多个开发人员文档与即时搜索,离线支持,移动版本,深色主题,键盘快捷键一样,将多个开发人员文档结合在一起。
DevDocs由Thibaut Courouble创建,由FreecodeCamp运营。
如果您想加入团队,请以不和谐与社区接触!
跟踪开发新闻:
目录:快速启动·视觉·应用程序·刮刀·命令·贡献·文档·相关项目·许可证
除非您想为该项目做出贡献,否则我们建议在DevDocs.io上使用托管版本。它是最新的,并且在离线开箱即用。
当地运行DevDocs的最简单方法是使用Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latest这将在Localhost:9292启动DevDocs。我们提供常规图像和基于高山的图像:
ghcr.io/freecodcamp/devdocs:latest标准图像ghcr.io/freecodcamp/devdocs:latest-alpine基于高山的(较小尺寸)图像将自动构建和更新,每月使用最新文档。
另外,您可以自己构建图像:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevDocs由两块制成:生成文档和元数据的红宝石刮板,以及由小型Sinatra应用程序供电的JavaScript应用程序。
DevDocs需要Ruby 3.3.0(在Gemfile中定义),libcurl和由Execj支持的JavaScript运行时(OS X和Windows中包含在Linux上的Node.js)。安装了这些安装后,请运行以下命令:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
gem install bundler
bundle install
bundle exec thor docs:download --default
bundle exec rackup最后,将您的浏览器指向Localhost:9292(第一个请求将需要几秒钟来编译资产)。你们都设定了。
thor docs:download命令用于从DevDocs的服务器下载预生成的文档(例如thor docs:download html css )。您可以通过运行thor docs:list查看可用文档和版本的列表。要更新所有下载的文档,请运行thor docs:download --installed 。要下载并安装所有文档此项目可用,请运行thor docs:download --all 。
注意:除了git pull origin main以外,目前没有其他更新机制来更新代码和thor docs:download --installed以下载最新版本的文档。要了解新版本,请确保观看此存储库。
DevDocs旨在使阅读和搜索参考文档快速,简单且令人愉快。
该应用程序的主要目标是:
注意: DevDocs既不是编程指南,也不是搜索引擎。我们所有的内容都是从第三方来源中提取的,该项目不打算与全文搜索引擎竞争。它的骨干是元数据。每个内容都通过独特的“明显”和短字符串来标识。教程,指南和其他不符合此要求的内容不在项目范围之内。
Web应用程序是所有客户端JavaScript,由小型Sinatra/Sprockets应用程序提供动力。它依赖于刮板生成的文件。
该代码的许多设计决策都是由应用程序使用XHR将内容直接加载到主帧的事实驱动的。这包括剥夺其大多数HTML标记(例如脚本和样式表)的原始文档,以避免污染主框架,并在所有CSS类名称上都以下划线为前缀以防止冲突。
另一个驱动因素是性能和一切都发生在浏览器中的事实。服务工作者(带有其自己的约束集)和localStorage用于加快启动时间,而通过允许用户选择自己的文档集来保留内存消耗。搜索算法保持简单,因为它甚至需要快速搜索100,000个字符串。
DevDocs是开发人员工具,浏览器要求很高:
这使代码可以利用最新的DOM和HTML5 API,并使开发DevDocs变得更加有趣!
刮板负责生成应用程序使用的文档和索引文件(元数据)。它用ruby在Docs模块下写。
当前有两种刮板: UrlScraper通过HTTP和FileScraper下载文件,从本地文件系统读取它们。他们俩都复制了HTML文档的副本,除了构建文件及其元数据索引外,还递归遵循符合一组规则并应用各种修改的链接。使用Nokogiri解析文档。
对每个文档进行的修改包括:
<html> , <head>等)之类的内容,注释,空节点等。这些修改是使用HTML :: Pipeline库通过一组过滤器应用的。每个刮板都包含特定于自身的过滤器,其中之一是弄清楚页面的元数据。
最终结果是一组归一化的HTML部分和两个JSON文件(索引 +离线数据)。由于索引文件按用户的首选项分别由应用程序分别加载,因此刮板还创建了一个JSON清单文件,其中包含有关系统上当前可用的文档的信息(例如其名称,版本,更新日期等)。
有关刮板和过滤器的更多信息可在docs文件夹中找到。
命令行接口使用Thor。要查看所有命令和选项,请从项目的根部运行thor list 。
# Server
rackup # Start the server (ctrl+c to stop)
rackup --help # List server options
# Docs
thor docs:list # List available documentations
thor docs:download # Download one or more documentations
thor docs:manifest # Create the manifest file used by the app
thor docs:generate # Generate/scrape a documentation
thor docs:page # Generate/scrape a documentation page
thor docs:package # Package a documentation for use with docs:download
thor docs:clean # Delete documentation packages
# Console
thor console # Start a REPL
thor console:docs # Start a REPL in the "Docs" module
# Tests can be run quickly from within the console using the "test" command.
# Run "help test" for usage instructions.
thor test:all # Run all tests
thor test:docs # Run "Docs" tests
thor test:app # Run "App" tests
# Assets
thor assets:compile # Compile assets (not required in development mode)
thor assets:clean # Clean old assets如果您的系统上安装了多个版本的Ruby,则必须通过bundle exec运行命令。
欢迎捐款。请阅读贡献指南。
做什么很酷?随意打开PR,向这张桌子添加新行!您可能需要通过https://github.com/topics/devdocs发现新项目。
| 项目 | 描述 | 最后提交 | 星星 |
|---|---|---|---|
| yannickglt/alfred-devdocs | 阿尔弗雷德工作流程 | ||
| MERITH-TK/DEVDOCS_WEBAPP_KOTLIN | Android应用 | ||
| Gruehle/Dev-Docs-Viewer | 支架扩展 | ||
| EGOIST/DEVDOCS-DESKTOP | 电子应用 | ||
| skeeto/devdocs-lookup | emacs功能 | ||
| astoff/devdocs.el | Emacs查看器 | ||
| naquad/devdocs-shell | GTK外壳具有VIM集成 | ||
| 硬像素/devdocs-desktop | GTK应用程序 | ||
| QWFY/DOC-BROWSER | Linux应用程序 | ||
| DTEOH/DEVDOCS-MACOS | MacOS应用程序 | ||
| 崇高的文本插件 | 崇高的文本插件 | ||
| Mohamed3nan/devdocs-tab | VS代码扩展名(查看为选项卡) | ||
| DEIBIT/VSCODE-DEVOCS | VS代码扩展(打开浏览器) | ||
| MDH34/QuickDocs | Vala/Python的观众 | ||
| girishji/devdocs.vim | VIM插件和TUI(在VIM内浏览) | ||
| romainl/vim-devdocs | VIM插件 | ||
| 等待dev/vim-www | VIM插件 | ||
| luckasranarison/nvim-devdocs | Neovim插件 | ||
| 厕所/Dedoc | 基于终端的观众 | ||
| Raycast Devdocs | Raycast扩展 | 不可用 | 不可用 |
| chrisgrieser/alfred-docs-searches | 阿尔弗雷德工作流程 |
版权2013 - 2024年Thibaut Courouble和其他贡献者
该软件已根据Mozilla公共许可证v2.0的条款许可。请参阅版权和许可证文件。
请不要使用devDocs名称来认可或宣传未经维护人员许可的该软件衍生的产品,除非符合通知/归因要求可能是必要的。
我们还希望将使用此软件生成的任何文档文件归因于DevDocs。让我们对所有贡献者的信用额度应得的信用额度公平。谢谢!
如果您有任何疑问,请随时在Discord的贡献者聊天室里询问他们。