Devdocs combina múltiples documentaciones de desarrolladores en una interfaz de usuario web limpia y organizada con búsqueda instantánea, soporte fuera de línea, versión móvil, tema oscuro, atajos de teclado y más.
Devdocs fue creado por Thibaut Couruble y es operado por FreecodeCamp.
¡Comuníquese con la comunidad en Discord si desea unirse al equipo!
Realice un seguimiento de las noticias de desarrollo:
Tabla de contenido: Inicio rápido · Visión · APP · Rasta · Comandos · Contribuyendo · Documentación · Proyectos relacionados · Licencia · Preguntas?
A menos que desee contribuir al proyecto, recomendamos usar la versión alojada en DevDocs.io. Está actualizado y funciona fuera de línea fuera de la caja.
La forma más fácil de ejecutar DevDocs localmente es usar Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latestEsto comenzará a Devdocs en Localhost: 9292. Proporcionamos imágenes regulares y alpinas:
ghcr.io/freecodcamp/devdocs:latest - Imagen estándarghcr.io/freecodcamp/devdocs:latest-alpine en alpino (tamaño más pequeño)Las imágenes se construyen y se actualizan automáticamente mensualmente con la última documentación.
Alternativamente, puede construir la imagen usted mismo:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevdocs está hecho de dos piezas: un raspador de rubí que genera la documentación y los metadatos, y una aplicación JavaScript alimentada por una pequeña aplicación Sinatra.
Devdocs requiere Ruby 3.3.0 (definido en Gemfile ), libcurl y un tiempo de ejecución de JavaScript compatible con execjs (incluido en OS X y Windows; node.js en Linux). Una vez que tenga estos instalados, ejecute los siguientes comandos:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
gem install bundler
bundle install
bundle exec thor docs:download --default
bundle exec rackupFinalmente, apunte su navegador en Localhost: 9292 (la primera solicitud tardará unos segundos en compilar los activos). Estás listo.
El comando thor docs:download se usa para descargar documentaciones previamente generadas de los servidores de Devdocs (por ejemplo, thor docs:download html css ). Puede ver la lista de documentos y versiones disponibles ejecutando thor docs:list . Para actualizar todas las documentaciones descargadas, ejecute thor docs:download --installed . Para descargar e instalar toda la documentación que este proyecto tiene disponible, ejecute thor docs:download --all .
Nota: Actualmente no hay un mecanismo de actualización que no sea git pull origin main para actualizar el código y thor docs:download --installed para descargar la última versión de los documentos. Para mantenerse informado sobre los nuevos lanzamientos, asegúrese de ver este repositorio.
Devdocs tiene como objetivo hacer que la lectura y la búsqueda de documentación de referencia sean rápidas, fáciles y agradables.
Los objetivos principales de la aplicación son:
Nota: Devdocs no es una guía de programación ni un motor de búsqueda. Todo nuestro contenido se extrae de fuentes de terceros y el proyecto no tiene la intención de competir con los motores de búsqueda de texto completo. Su columna vertebral es metadatos; Cada pieza de contenido se identifica por una cadena única, "obvia" y corta. Los tutoriales, las guías y otros contenidos que no cumplen con este requisito están fuera del alcance del proyecto.
La aplicación web es JavaScript del lado del cliente, alimentada por una pequeña aplicación Sinatra/Sprokets. Se basa en archivos generados por el raspador.
Muchas de las decisiones de diseño del código fueron impulsadas por el hecho de que la aplicación usa XHR para cargar contenido directamente en la trama principal. Esto incluye despojar los documentos originales de la mayoría de su marcado HTML (por ejemplo, scripts y hojas de estilo) para evitar contaminar el marco principal y prefijar todos los nombres de clases CSS con un bajo para evitar conflictos.
Otro factor impulsor es el rendimiento y el hecho de que todo sucede en el navegador. Un trabajador de servicio (que viene con su propio conjunto de restricciones) y localStorage se utilizan para acelerar el tiempo de arranque, mientras que el consumo de memoria se mantiene en control al permitir que el usuario elija su propio conjunto de documentos. El algoritmo de búsqueda se mantiene simple porque debe ser rápido incluso buscar en 100,000 cadenas.
Devdocs Al ser una herramienta de desarrollador, los requisitos del navegador son altos:
¡Esto permite que el código aproveche las últimas API DOM y HTML5 y haga que el desarrollo de DevDocs sea mucho más divertido!
El raspador es responsable de generar la documentación y los archivos de índice (metadatos) utilizados por la aplicación. Está escrito en Ruby bajo el módulo Docs .
Actualmente hay dos tipos de raspadores: UrlScraper que descarga archivos a través de HTTP y FileScraper que los lee desde el sistema de archivos local. Ambos hacen copias de los documentos HTML, siguen de forma recursiva que coinciden con un conjunto de reglas y aplican todo tipo de modificaciones en el camino, además de construir un índice de los archivos y sus metadatos. Los documentos se analizan usando Nokogiri.
Las modificaciones realizadas en cada documento incluyen:
<html> , <head> , etc.), comentarios, nodos vacíos, etc.Estas modificaciones se aplican a través de un conjunto de filtros utilizando la biblioteca HTML :: Pipeline. Cada raspador incluye filtros específicos para sí mismo, uno de los cuales tiene la tarea de descubrir los metadatos de las páginas.
El resultado final es un conjunto de parciales HTML normalizados y dos archivos JSON (índice + datos fuera de línea). Debido a que los archivos de índice se cargan por separado por la aplicación siguiendo las preferencias del usuario, el raspador también crea un archivo manifiesto JSON que contiene información sobre las documentos disponibles actualmente en el sistema (como su nombre, versión, fecha de actualización, etc.).
Más información sobre raspadores y filtros está disponible en la carpeta docs .
La interfaz de línea de comandos usa Thor. Para ver todos los comandos y opciones, ejecute thor list desde la raíz del proyecto.
# 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 Si se instalan varias versiones de Ruby en su sistema, los comandos deben ejecutarse a través de bundle exec .
Las contribuciones son bienvenidas. Lea las pautas contribuyentes.
¿Hizo algo genial? ¡Siéntase libre de abrir un PR para agregar una nueva fila a esta mesa! Es posible que desee descubrir nuevos proyectos a través de https://github.com/topics/devdocs.
| Proyecto | Descripción | Último compromiso | Estrellas |
|---|---|---|---|
| Yannickglt/Alfred-Devdocs | Flujo de trabajo de Alfred | ||
| Merith-tk/devdocs_webapp_kotlin | Aplicación Android | ||
| Gruehle/dev-docs-Viewer | Extensión de los soportes | ||
| egoist/devdocs-desktop | Aplicación de electrones | ||
| skeeto/devdocs-m para | Función de emacs | ||
| astoff/devdocs.el | Visor de emacs | ||
| naquad/devdocs-shell | Shell gtk con integración vim | ||
| hardpixel/devdocs-desktop | Aplicación GTK | ||
| QWFY/Doc-navegador | Aplicación de Linux | ||
| dteoh/devdocs-macos | aplicación macOS | ||
| Complemento de texto sublime | Complemento de texto sublime | ||
| mohamed3nan/devdocs-tab | VS Extensión del código (Ver como pestaña) | ||
| deibit/vscode-devdocs | VS Extensión de código (abra el navegador) | ||
| mdh34/quickdocs | Visor con sede en Vala/Python | ||
| girishji/devdocs.vim | Vim Plugin & Tui (navegar dentro de Vim) | ||
| romainl/vim-devdocs | Complemento VIM | ||
| Esperando para-Dev/vim-www | Complemento VIM | ||
| Luckasranarison/NVIM-devdocs | Complemento neovim | ||
| baño de baño/dedoc | Visor basado en terminal | ||
| Devdocs de rayos | Extensión de rayos | Indisponible | Indisponible |
| Chrisgrieser/Alfred-Docs Searches | Flujo de trabajo de Alfred |
Copyright 2013–2024 Thibaut Courubo y otros contribuyentes
Este software tiene licencia bajo los términos de la licencia pública de Mozilla v2.0. Vea los archivos de derechos de autor y licencia.
No use el nombre DevDocs para respaldar o promover productos derivados de este software sin el permiso de los mantenedores, excepto que sea necesario para cumplir con los requisitos de notificación/atribución.
También deseamos que cualquier archivo de documentación generado utilizando este software se atribuya a DevDocs. Seamos justos con todos los contribuyentes dando crédito donde el crédito se debe. ¡Gracias!
Si tiene alguna pregunta, no dude en preguntarles en la sala de chat de contribuyentes en Discord.