DevDocs объединяет различные документации разработчиков в чистом и организованном веб-интерфейсе с мгновенным поиском, поддержкой офлайн, мобильной версией, тёмной темой, сочетаниями клавиш и многим другим.
DevDocs был создан Тибо Курублем (Thibaut Courouble) и управляется freeCodeCamp.
Если вы хотите присоединиться к команде, обратитесь к сообществу на Discord.
Следите за новостями разработки:
Содержание: Быстрый старт · Видение · Приложение · Scraper · Команды · Вклад · Документация · Связанные проекты · Лицензия · Вопросы?
Если вы не хотите вносить свой вклад в проект, мы рекомендуем использовать размещённую версию на devdocs.io. Она актуальна и работает в автономном режиме «из коробки».
DevDocs состоит из двух частей: Ruby scraper, который генерирует документацию и метаданные, и JavaScript-приложение, работающее на небольшом Sinatra-приложении.
Для работы DevDocs требуется Ruby 3.3.0 (определён в Gemfile), libcurl и среда выполнения JavaScript, поддерживаемая ExecJS (включена в OS X и Windows; Node.js в Linux). После установки выполните следующие команды:
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 можно запустить как Docker-контейнер:
# Сначала создайте образ
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t thibaut/devdocs .
# Наконец, запустите контейнер DevDocs (доступ к http://localhost:9292)
docker run --name devdocs -d -p 9292:9292 thibaut/devdocs
DevDocs стремится сделать чтение и поиск справочной документации быстрыми, лёгкими и приятными.
Основные цели приложения:
Примечание: DevDocs не является ни руководством по программированию, ни поисковой системой. Весь наш контент взят из сторонних источников, и проект не намерен конкурировать с полнотекстовыми поисковыми системами. Его основой являются метаданные; каждый фрагмент контента идентифицируется уникальной, «очевидной» и короткой строкой. Учебники, руководства и другой контент, который... Приложение
Веб-приложение полностью написано на клиентском JavaScript и работает на небольшом приложении Sinatra/Sprockets. Оно использует файлы, сгенерированные скребком (см. ниже).
Многие проектные решения были обусловлены тем, что приложение использует XHR для загрузки контента непосредственно в основной фрейм. Это включает в себя удаление из оригинальных документов большей части их HTML-разметки (например, скриптов и таблиц стилей), чтобы избежать загрязнения основного фрейма, и добавление префикса «_» ко всем именам классов CSS, чтобы предотвратить конфликты.
Ещё одним движущим фактором является производительность и тот факт, что всё происходит в браузере. Сервисный работник (который имеет свой собственный набор ограничений) и localStorage используются для ускорения времени загрузки, а потребление памяти контролируется, позволяя пользователю выбирать собственный набор документации. Алгоритм поиска остаётся простым, потому что он должен быть быстрым даже при поиске по 100 000 строк.
DevDocs — это инструмент разработчика, поэтому требования к браузеру высоки:
Это позволяет коду использовать новейшие DOM и HTML5 API и делает разработку DevDocs намного более увлекательной!
Скребок
Скребок отвечает за генерацию документации и индексных файлов (метаданных), используемых приложением. Он написан на Ruby в модуле Docs.
В настоящее время существует два вида скребков: UrlScraper, который загружает файлы через HTTP, и FileScraper, который читает их из локальной файловой системы. Они оба делают копии HTML-документов, рекурсивно следуя ссылкам, которые соответствуют набору правил, и применяя всевозможные модификации, а также создавая индекс файлов и их метаданных. Документы анализируются с помощью Nokogiri.
Модификации, внесённые в каждый документ, включают:
Эти модификации применяются через набор фильтров с использованием библиотеки HTML::Pipeline. Каждый скребок включает фильтры, специфичные для него, один из которых отвечает за определение метаданных страниц.
Конечным результатом является набор нормализованных HTML-фрагментов и два файла JSON (индекс + автономные данные). Поскольку индексные файлы загружаются отдельно приложением в соответствии с предпочтениями пользователя, скребок также создаёт файл манифеста JSON, содержащий информацию о доступных в системе документах (таких как их имя, версия, дата обновления и т. д.).
Дополнительная информация о скребках и фильтрах доступна в папке docs.
Доступные команды
Интерфейс командной строки использует Thor. Чтобы увидеть все команды и параметры, запустите thor list из корня проекта. Используя команду «test».
thor test:all # запустить все тесты thor test:docs # запустить тесты «Docs» thor test:app # запустить тесты «App»
thor assets:compile # скомпилировать активы (не требуется в режиме разработки) thor assets:clean # очистить старые активы
Если на вашей системе установлено несколько версий Ruby, команды должны выполняться через bundle exec
.
Вклад приветствуется. Пожалуйста, ознакомьтесь с руководством по внесению вклада.
Создали что-то классное? Не стесняйтесь открыть PR, чтобы добавить новую строку в эту таблицу! Вы можете узнать о новых проектах через https://github.com/topics/devdocs.
Проект | Описание | Последний коммит | Звёзды |
---|---|---|---|
yannickglt/alfred-devdocs | Alfred workflow | ||
Merith-TK/devdocs_webapp_kotlin | Android application | ||
gruehle/dev-docs-viewer | Brackets extension | ||
egoist/devdocs-desktop | Electron application | ||
skeeto/devdocs-lookup | Emacs function | ||
astoff/devdocs.el | Emacs viewer | ||
naquad/devdocs-shell | GTK shell with Vim integration | ||
--- | |||
naquad/devdocs-shell | Это приложение с открытым исходным кодом, которое предоставляет навигацию по документации для разработчиков. | ||
hardpixel/devdocs-desktop | Приложение GTK, предоставляющее навигацию по документации для разработчиков. | ||
qwfy/doc-browser | Linux-приложение, обеспечивающее навигацию по документации для разработчиков. | ||
dteoh/devdocs-macos | macOS-приложение, предоставляющее навигацию по документации для разработчиков. | ||
vitorbritto/sublime-devdocs | Плагин для Sublime Text, обеспечивающий навигацию по документации для разработчиков. | ||
mohamed3nan/DevDocs-Tab | Расширение для VS Code, представляющее документацию в виде вкладки. | ||
deibit/vscode-devdocs | Расширение для VS Code, открывающее документацию в браузере. | ||
mdh34/quickDocs | Средство просмотра документации на основе Vala/Python. | ||
girishji/devdocs.vim | Vim-плагин и TUI, позволяющие просматривать документацию внутри Vim. | ||
romainl/vim-devdocs | Vim-плагин, обеспечивающий просмотр документации. | ||
waiting-for-dev/vim-www | Vim-плагин для просмотра документации. | ||
luckasRanarison/nvim-devdocs | Neovim-плагин для навигации по документации. |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )