DevDocsは、クリーンで整理されたWeb UIの複数の開発者ドキュメントを、インスタント検索、オフラインサポート、モバイルバージョン、ダークテーマ、キーボードショートカットなどと組み合わせています。
DevdocsはThibaut Couroubleによって作成され、FreeCodecampによって運営されています。
チームに参加したい場合は、Discordでコミュニティに連絡してください!
開発ニュースを追跡する:
目次:クイックスタート・ビジョン・アプリ・スクレーパー・コマンド・寄稿・ドキュメント・関連プロジェクト・ライセンス・質問?
プロジェクトに貢献したい場合を除き、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は、ドキュメントとメタデータを生成するRubyスクレーパーと、小さなSinatraアプリを搭載したJavaScriptアプリの2つの部分で作られています。
Devdocsには、Ruby 3.3.0( Gemfileで定義)、Libcurl、およびexecJS(OS XおよびWindowsに含まれる; Linuxのnode.js)がサポートするJavaScriptランタイムが必要です。これらをインストールしたら、次のコマンドを実行します。
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を利用して、開発の開発をより楽しくすることができます!
スクレーパーは、アプリが使用するドキュメントとインデックスファイル(メタデータ)を生成する責任があります。 Docsモジュールの下にRubyに書かれています。
現在、2種類のスクレーパーがあります。HTTPを介してファイルをダウンロードするUrlScraperと、ローカルファイルシステムからそれらを読み取るFileScraperです。どちらもHTMLドキュメントのコピーを作成し、ファイルとそのメタデータのインデックスを構築することに加えて、一連のルールに一致するリンクとあらゆる種類の変更を適用するリンクを再帰的に追跡します。文書は、nokogiriを使用して解析されます。
各ドキュメントに加えられた変更には次のものがあります。
<html> 、 <head>など)、コメント、空のノードなどのコンテンツの削除これらの変更は、HTML :: Pipelineライブラリを使用して、フィルターのセットを介して適用されます。各スクレーパーには、それ自体に固有のフィルターが含まれており、そのうちの1つはページのメタデータを把握することを課せられています。
最終結果は、正規化されたHTMLパーティシャルと2つのJSONファイル(インデックス +オフラインデータ)のセットです。インデックスファイルはユーザーの設定に続いてアプリによって個別にロードされるため、スクレーパーは、システムで現在利用可能なドキュメントに関する情報を含むJSONマニフェストファイル(名前、バージョン、更新日など)も作成します。
スクレーパーとフィルターの詳細については、 docsフォルダーに入手できます。
コマンドラインインターフェイスはTORを使用します。すべてのコマンドとオプションを表示するには、プロジェクトのルートから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 | ブラケットの拡張機能 | ||
| エゴイスト/devdocs-desktop | 電子アプリケーション | ||
| Skeeto/devdocs-lookup | EMACS機能 | ||
| Astoff/devdocs.el | Emacs Viewer | ||
| naquad/devdocs-shell | VIM統合を備えたGTKシェル | ||
| hardpixel/devdocs-desktop | GTKアプリケーション | ||
| qwfy/doc-browser | Linuxアプリケーション | ||
| dteoh/devdocs-macos | MACOSアプリケーション | ||
| 崇高なテキストプラグイン | 崇高なテキストプラグイン | ||
| mohamed3nan/devdocs-tab | vsコード拡張機能(タブとして表示) | ||
| deibit/vscode-devdocs | vsコード拡張機能(ブラウザを開く) | ||
| MDH34/QuickDocs | Vala/Pythonベースの視聴者 | ||
| girishji/devdocs.vim | VIMプラグイン&TUI(Vim内の閲覧) | ||
| romainl/vim-devdocs | VIMプラグイン | ||
| Waiting-for-for/vim-www | VIMプラグイン | ||
| Luckasranarison/nvim-devdocs | Neovimプラグイン | ||
| トイレブリル/dedoc | ターミナルベースの視聴者 | ||
| Raycast Devdocs | Raycast拡張機能 | 利用できません | 利用できません |
| Chrisgrieser/Alfred-Docs-Searches | アルフレッドワークフロー |
Copyright 2013–2024 Thibaut Couroubleおよびその他の貢献者
このソフトウェアは、Mozilla Public License v2.0の条件の下でライセンスされています。著作権およびライセンスファイルを参照してください。
devdocsという名前を使用して、メンテナーの許可なしにこのソフトウェアから派生した製品を承認または宣伝しないでください。
また、このソフトウェアを使用して生成されたドキュメントファイルがDevDocsに起因することを望みます。クレジットの期限があれば、クレジットを提供することにより、すべての貢献者に公平になりましょう。ありがとう!
ご質問がある場合は、Discordの寄稿者チャットルームでお気軽にお問い合わせください。