1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-DevDocs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

DevDocs — браузер документации API

DevDocs объединяет различные документации разработчиков в чистом и организованном веб-интерфейсе с мгновенным поиском, поддержкой офлайн, мобильной версией, тёмной темой, сочетаниями клавиш и многим другим.

DevDocs был создан Тибо Курублем (Thibaut Courouble) и управляется freeCodeCamp.

В настоящее время мы ищем сопровождающих

Если вы хотите присоединиться к команде, обратитесь к сообществу на Discord.

Следите за новостями разработки:

  • Присоединяйтесь к чату DevDocs на Discord;
  • Следите за репозиторием на GitHub;
  • Подписывайтесь на @DevDocs в Twitter.

Содержание: Быстрый старт · Видение · Приложение · 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 стремится сделать чтение и поиск справочной документации быстрыми, лёгкими и приятными.

Основные цели приложения:

  • Минимизировать время загрузки;
  • Улучшить качество, скорость и порядок результатов поиска;
  • Максимально использовать кэширование и другие оптимизации производительности;
  • Поддерживать чистый и читаемый пользовательский интерфейс;
  • Быть полностью функциональным в автономном режиме;
  • Поддерживать полное управление клавиатурой;
  • Уменьшить «переключение контекста», используя согласованную типографику и дизайн во всех документациях;
  • Сократить беспорядок, сосредоточившись на определённой категории контента (API/справочная информация) и индексируя только минимум, полезный большинству разработчиков.

Примечание: DevDocs не является ни руководством по программированию, ни поисковой системой. Весь наш контент взят из сторонних источников, и проект не намерен конкурировать с полнотекстовыми поисковыми системами. Его основой являются метаданные; каждый фрагмент контента идентифицируется уникальной, «очевидной» и короткой строкой. Учебники, руководства и другой контент, который... Приложение

Веб-приложение полностью написано на клиентском JavaScript и работает на небольшом приложении Sinatra/Sprockets. Оно использует файлы, сгенерированные скребком (см. ниже).

Многие проектные решения были обусловлены тем, что приложение использует XHR для загрузки контента непосредственно в основной фрейм. Это включает в себя удаление из оригинальных документов большей части их HTML-разметки (например, скриптов и таблиц стилей), чтобы избежать загрязнения основного фрейма, и добавление префикса «_» ко всем именам классов CSS, чтобы предотвратить конфликты.

Ещё одним движущим фактором является производительность и тот факт, что всё происходит в браузере. Сервисный работник (который имеет свой собственный набор ограничений) и localStorage используются для ускорения времени загрузки, а потребление памяти контролируется, позволяя пользователю выбирать собственный набор документации. Алгоритм поиска остаётся простым, потому что он должен быть быстрым даже при поиске по 100 000 строк.

DevDocs — это инструмент разработчика, поэтому требования к браузеру высоки:

  • последние версии Firefox, Chrome или Opera;
  • Safari 11.1+;
  • Edge 17+;
  • iOS 11.3+.

Это позволяет коду использовать новейшие DOM и HTML5 API и делает разработку DevDocs намного более увлекательной!

Скребок

Скребок отвечает за генерацию документации и индексных файлов (метаданных), используемых приложением. Он написан на Ruby в модуле Docs.

В настоящее время существует два вида скребков: UrlScraper, который загружает файлы через HTTP, и FileScraper, который читает их из локальной файловой системы. Они оба делают копии HTML-документов, рекурсивно следуя ссылкам, которые соответствуют набору правил, и применяя всевозможные модификации, а также создавая индекс файлов и их метаданных. Документы анализируются с помощью Nokogiri.

Модификации, внесённые в каждый документ, включают:

  • удаление содержимого, такого как структура документа (, и т. д.), комментарии, пустые узлы и т.д.;
  • исправление ссылок (например, для удаления дубликатов);
  • замену всех внешних (не скребённых) URL-адресов их полностью квалифицированными аналогами;
  • замену всех внутренних (скребённых) URL-адресов их неквалифицированными и относительными аналогами;
  • добавление контента, такого как заголовок и ссылка на исходный документ;
  • обеспечение правильного выделения синтаксиса с помощью Prism.

Эти модификации применяются через набор фильтров с использованием библиотеки HTML::Pipeline. Каждый скребок включает фильтры, специфичные для него, один из которых отвечает за определение метаданных страниц.

Конечным результатом является набор нормализованных HTML-фрагментов и два файла JSON (индекс + автономные данные). Поскольку индексные файлы загружаются отдельно приложением в соответствии с предпочтениями пользователя, скребок также создаёт файл манифеста JSON, содержащий информацию о доступных в системе документах (таких как их имя, версия, дата обновления и т. д.).

Дополнительная информация о скребках и фильтрах доступна в папке docs.

Доступные команды

Интерфейс командной строки использует Thor. Чтобы увидеть все команды и параметры, запустите thor list из корня проекта. Используя команду «test».

Запустить «help 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 Последний коммит GitHub Звёзды GitHub
Merith-TK/devdocs_webapp_kotlin Android application Последний коммит GitHub Звёзды GitHub
gruehle/dev-docs-viewer Brackets extension Последний коммит GitHub Звёзды GitHub
egoist/devdocs-desktop Electron application Последний коммит GitHub Звёзды GitHub
skeeto/devdocs-lookup Emacs function Последний коммит GitHub Звёзды GitHub
astoff/devdocs.el Emacs viewer Последний коммит GitHub Звёзды GitHub
naquad/devdocs-shell GTK shell with Vim integration Последний коммит GitHub
---
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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Ruby и 6 других языков
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-DevDocs.git
git@api.gitlife.ru:oschina-mirror/mirrors-DevDocs.git
oschina-mirror
mirrors-DevDocs
mirrors-DevDocs
main