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的貢獻者聊天室裡詢問他們。