Unified · Split
| @@ -10,9 +10,9 @@ Please reach out to the community on [Discord](https://discord.gg/PRyKn3Vbay) if · 9 unmodified lines | |||
| 10 | 10 | ||
| 11 | Keep track of development news: | 11 | Keep track of development news: |
| 12 | 12 | ||
| 13 | - Join the `#contributors` chat room on [Discord](https://discord.gg/PRyKn3Vbay) | 13 | * Join the `#contributors` chat room on [Discord](https://discord.gg/PRyKn3Vbay) |
| 14 | - Watch the repository on [GitHub](https://github.com/freeCodeCamp/devdocs/subscription) | 14 | * Watch the repository on [GitHub](https://github.com/freeCodeCamp/devdocs/subscription) |
| 15 | - Follow [@DevDocs](https://twitter.com/DevDocs) on Twitter | 15 | * Follow [@DevDocs](https://twitter.com/DevDocs) on Twitter |
| 16 | 16 | ||
| 17 | **Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [Documentation](#documentation) · [Related Projects](#related-projects) · [License](#copyright--license) · [Questions?](#questions) | 17 | **Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [Documentation](#documentation) · [Related Projects](#related-projects) · [License](#copyright--license) · [Questions?](#questions) |
| 18 | 18 | ||
| @@ -29,7 +29,6 @@ docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodecamp/devdocs:latest · 10 unmodified lines | |||
| 29 | ``` | 29 | ``` |
| 30 | 30 | ||
| 31 | This will start DevDocs at [localhost:9292](http://localhost:9292). We provide both regular and Alpine-based images: | 31 | This will start DevDocs at [localhost:9292](http://localhost:9292). We provide both regular and Alpine-based images: |
| 32 | |||
| 33 | - `ghcr.io/freecodecamp/devdocs:latest` - Standard image | 32 | - `ghcr.io/freecodecamp/devdocs:latest` - Standard image |
| 34 | - `ghcr.io/freecodecamp/devdocs:latest-alpine` - Alpine-based (smaller size) | 33 | - `ghcr.io/freecodecamp/devdocs:latest-alpine` - Alpine-based (smaller size) |
| 35 | 34 | ||
| @@ -71,14 +70,14 @@ DevDocs aims to make reading and searching reference documentation fast, easy an · 35 unmodified lines | |||
| 71 | 70 | ||
| 72 | The app's main goals are to: | 71 | The app's main goals are to: |
| 73 | 72 | ||
| 74 | - Keep load times as short as possible | 73 | * Keep load times as short as possible |
| 75 | - Improve the quality, speed, and order of search results | 74 | * Improve the quality, speed, and order of search results |
| 76 | - Maximize the use of caching and other performance optimizations | 75 | * Maximize the use of caching and other performance optimizations |
| 77 | - Maintain a clean and readable user interface | 76 | * Maintain a clean and readable user interface |
| 78 | - Be fully functional offline | 77 | * Be fully functional offline |
| 79 | - Support full keyboard navigation | 78 | * Support full keyboard navigation |
| 80 | - Reduce “context switch” by using a consistent typography and design across all documentations | 79 | * Reduce “context switch” by using a consistent typography and design across all documentations |
| 81 | - Reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers. | 80 | * Reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers. |
| 82 | 81 | ||
| 83 | **Note:** DevDocs is neither a programming guide nor a search engine. All our content is pulled from third-party sources and the project doesn't intend to compete with full-text search engines. Its backbone is metadata; each piece of content is identified by a unique, "obvious" and short string. Tutorials, guides and other content that don't meet this requirement are outside the scope of the project. | 82 | **Note:** DevDocs is neither a programming guide nor a search engine. All our content is pulled from third-party sources and the project doesn't intend to compete with full-text search engines. Its backbone is metadata; each piece of content is identified by a unique, "obvious" and short string. Tutorials, guides and other content that don't meet this requirement are outside the scope of the project. |
| 84 | 83 | ||
| @@ -92,10 +91,10 @@ Another driving factor is performance and the fact that everything happens in th · 7 unmodified lines | |||
| 92 | 91 | ||
| 93 | DevDocs being a developer tool, the browser requirements are high: | 92 | DevDocs being a developer tool, the browser requirements are high: |
| 94 | 93 | ||
| 95 | - Recent versions of Firefox, Chrome, or Opera | 94 | * Recent versions of Firefox, Chrome, or Opera |
| 96 | - Safari 11.1+ | 95 | * Safari 11.1+ |
| 97 | - Edge 17+ | 96 | * Edge 17+ |
| 98 | - iOS 11.3+ | 97 | * iOS 11.3+ |
| 99 | 98 | ||
| 100 | This allows the code to take advantage of the latest DOM and HTML5 APIs and make developing DevDocs a lot more fun! | 99 | This allows the code to take advantage of the latest DOM and HTML5 APIs and make developing DevDocs a lot more fun! |
| 101 | 100 | ||
| @@ -107,12 +106,12 @@ There are currently two kinds of scrapers: `UrlScraper` which downloads files vi · 5 unmodified lines | |||
| 107 | 106 | ||
| 108 | Modifications made to each document include: | 107 | Modifications made to each document include: |
| 109 | 108 | ||
| 110 | - removing content such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc. | 109 | * removing content such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc. |
| 111 | - fixing links (e.g. to remove duplicates) | 110 | * fixing links (e.g. to remove duplicates) |
| 112 | - replacing all external (not scraped) URLs with their fully qualified counterpart | 111 | * replacing all external (not scraped) URLs with their fully qualified counterpart |
| 113 | - replacing all internal (scraped) URLs with their unqualified and relative counterpart | 112 | * replacing all internal (scraped) URLs with their unqualified and relative counterpart |
| 114 | - adding content, such as a title and link to the original document | 113 | * adding content, such as a title and link to the original document |
| 115 | - ensuring correct syntax highlighting using [Prism](http://prismjs.com/) | 114 | * ensuring correct syntax highlighting using [Prism](http://prismjs.com/) |
| 116 | 115 | ||
| 117 | These modifications are applied via a set of filters using the [HTML::Pipeline](https://github.com/jch/html-pipeline) library. Each scraper includes filters specific to itself, one of which is tasked with figuring out the pages' metadata. | 116 | These modifications are applied via a set of filters using the [HTML::Pipeline](https://github.com/jch/html-pipeline) library. Each scraper includes filters specific to itself, one of which is tasked with figuring out the pages' metadata. |
| 118 | 117 | ||
| @@ -144,10 +143,10 @@ thor console:docs # Start a REPL in the "Docs" module · 25 unmodified lines | |||
| 144 | 143 | ||
| 145 | # Tests can be run quickly from within the console using the "test" command. | 144 | # Tests can be run quickly from within the console using the "test" command. |
| 146 | # Run "help test" for usage instructions. | 145 | # Run "help test" for usage instructions. |
| 147 | thor test:all # Run all tests | 146 | thor test:all # Run all tests |
| 148 | thor test:docs # Run "Docs" tests | 147 | thor test:docs # Run "Docs" tests |
| 149 | thor test:app # Run "App" tests | 148 | thor test:app # Run "App" tests |
| 150 | thor test:app:coverage # Run coverage for "App" tests | 149 | thor test:coverage # Run coverage report on "App" tests |
| 151 | 150 | ||
| 152 | # Assets | 151 | # Assets |
| 153 | thor assets:compile # Compile assets (not required in development mode) | 152 | thor assets:compile # Compile assets (not required in development mode) |
| @@ -162,10 +161,10 @@ Contributions are welcome. Please read the [contributing guidelines](./.github/C · 8 unmodified lines | |||
| 162 | 161 | ||
| 163 | ## Documentation | 162 | ## Documentation |
| 164 | 163 | ||
| 165 | - [Adding documentations to DevDocs](./docs/adding-docs.md) | 164 | * [Adding documentations to DevDocs](./docs/adding-docs.md) |
| 166 | - [Scraper Reference](./docs/scraper-reference.md) | 165 | * [Scraper Reference](./docs/scraper-reference.md) |
| 167 | - [Filter Reference](./docs/filter-reference.md) | 166 | * [Filter Reference](./docs/filter-reference.md) |
| 168 | - [Maintainers’ Guide](./docs/maintainers.md) | 167 | * [Maintainers’ Guide](./docs/maintainers.md) |
| 169 | 168 | ||
| 170 | ## DevDocs Quick Usage Cheatsheet | 169 | ## DevDocs Quick Usage Cheatsheet |
| 171 | 170 | ||
| @@ -184,34 +183,35 @@ Below are some helpful shortcuts and usage tips that are not immediately obvious · 12 unmodified lines | |||
| 184 | 183 | ||
| 185 | These shortcuts make DevDocs faster to navigate and more efficient for daily use. | 184 | These shortcuts make DevDocs faster to navigate and more efficient for daily use. |
| 186 | 185 | ||
| 186 | |||
| 187 | ## Related Projects | 187 | ## Related Projects |
| 188 | 188 | ||
| 189 | Made something cool? Feel free to open a PR to add a new row to this table! You might want to discover new projects via https://github.com/topics/devdocs. | 189 | Made something cool? Feel free to open a PR to add a new row to this table! You might want to discover new projects via https://github.com/topics/devdocs. |
| 190 | 190 | ||
| 191 | <!-- table is sorted by description --> | 191 | <!-- table is sorted by description --> |
| 192 | 192 | ||
| 193 | | Project | Description | Last commit | Stars | | 193 | | Project | Description | Last commit | Stars | |
| 194 | | ------------------------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | 194 | | ------------------------------------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | |
| 195 | | [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow |  |  | | 195 | | [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow |  |  | |
| 196 | | [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application |  |  | | 196 | | [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application |  |  | |
| 197 | | [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension |  |  | | 197 | | [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension |  |  | |
| 198 | | [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Electron application |  |  | | 198 | | [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Electron application |  |  | |
| 199 | | [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Emacs function |  |  | | 199 | | [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Emacs function |  |  | |
| 200 | | [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer |  |  | | 200 | | [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer |  |  | |
| 201 | | [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration |  |  | | 201 | | [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration |  |  | |
| 202 | | [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK application |  |  | | 202 | | [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK application |  |  | |
| 203 | | [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Linux application |  |  | | 203 | | [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Linux application |  |  | |
| 204 | | [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | macOS application |  |  | | 204 | | [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | macOS application |  |  | |
| 205 | | [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin |  |  | | 205 | | [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin |  |  | |
| 206 | | [mohamed3nan/DevDocs-Tab](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension (view as tab) |  |  | | 206 | | [mohamed3nan/DevDocs-Tab](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension (view as tab) |  |  | |
| 207 | | [deibit/vscode-devdocs](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code extension (open the browser) |  |  | | 207 | | [deibit/vscode-devdocs](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code extension (open the browser) |  |  | |
| 208 | | [mdh34/quickDocs](https://github.com/mdh34/quickDocs) | Vala/Python based viewer |  |  | | 208 | | [mdh34/quickDocs](https://github.com/mdh34/quickDocs) | Vala/Python based viewer |  |  | |
| 209 | | [girishji/devdocs.vim](https://github.com/girishji/devdocs.vim) | Vim plugin & TUI (browse inside Vim) |  |  | | 209 | | [girishji/devdocs.vim](https://github.com/girishji/devdocs.vim) | Vim plugin & TUI (browse inside Vim) |  |  | |
| 210 | | [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Vim plugin |  |  | | 210 | | [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Vim plugin |  |  | |
| 211 | | [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin |  |  | | 211 | | [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin |  |  | |
| 212 | | [emmanueltouzery/apidocs.nvim](https://github.com/emmanueltouzery/apidocs.nvim) | Neovim plugin |  |  | | 212 | | [emmanueltouzery/apidocs.nvim](https://github.com/emmanueltouzery/apidocs.nvim) | Neovim plugin |  |  | |
| 213 | | [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer |  |  | | 213 | | [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer |  |  | |
| 214 | | [Raycast Devdocs](https://www.raycast.com/djpowers/devdocs) | Raycast extension | Unavailable | Unavailable | | 214 | | [Raycast Devdocs](https://www.raycast.com/djpowers/devdocs) | Raycast extension | Unavailable | Unavailable | |
| 215 | | [chrisgrieser/alfred-docs-searches](https://github.com/chrisgrieser/alfred-docs-searches) | Alfred workflow |  |  | | 215 | | [chrisgrieser/alfred-docs-searches](https://github.com/chrisgrieser/alfred-docs-searches) | Alfred workflow |  |  | |
| 216 | 216 | ||
| 217 | ## Copyright / License | 217 | ## Copyright / License |