DevDocs combine plusieurs documentations de développeurs dans une interface utilisateur Web propre et organisée avec une recherche instantanée, une prise en charge hors ligne, une version mobile, un thème sombre, des raccourcis clavier, etc.
Devdocs a été créé par Thibaut Courouble et est exploité par FreeCodeCamp.
Veuillez contacter la communauté sur Discord si vous souhaitez rejoindre l'équipe!
Gardez une trace des nouvelles du développement:
Table des matières: Démarrage rapide · Vision · APP · Scraper · Commandes · Contribution · Documentation · Projets connexes · Licence · Questions?
Sauf si vous souhaitez contribuer au projet, nous vous recommandons d'utiliser la version hébergée sur DevDocs.io. Il est à jour et fonctionne hors ligne à l'extérieur de la boîte.
Le moyen le plus simple d'exécuter les devdocs localement est d'utiliser Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latestCela commencera DevDocs sur LocalHost: 9292. Nous fournissons des images régulières et alpines:
ghcr.io/freecodcamp/devdocs:latest - Image standardghcr.io/freecodcamp/devdocs:latest-alpine - à base alpine (taille plus petite)Les images sont automatiquement construites et mises à jour mensuellement avec la dernière documentation.
Alternativement, vous pouvez construire l'image vous-même:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevDocs est composé de deux pièces: un grattoir Ruby qui génère la documentation et les métadonnées, et une application JavaScript propulsée par une petite application Sinatra.
DevDocs nécessite Ruby 3.3.0 (défini dans Gemfile ), libcurl et un runtime JavaScript pris en charge par EXECJS (inclus dans OS X et Windows; Node.js sur Linux). Une fois que vous les avez installés, exécutez les commandes suivantes:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
gem install bundler
bundle install
bundle exec thor docs:download --default
bundle exec rackupEnfin, pointez votre navigateur sur LocalHost: 9292 (la première demande prendra quelques secondes pour compiler les actifs). Vous êtes prêt.
La commande thor docs:download est utilisée pour télécharger des documentations pré-générées à partir des serveurs de Devdocs (par exemple thor docs:download html css ). Vous pouvez voir la liste des documentations et versions disponibles en exécutant thor docs:list . Pour mettre à jour toutes les documentations téléchargées, exécutez thor docs:download --installed . Pour télécharger et installer toute la documentation que ce projet a disponible, exécutez thor docs:download --all .
Remarque: Il n'y a actuellement aucun mécanisme de mise à jour autre que git pull origin main pour mettre à jour le code et thor docs:download --installed pour télécharger la dernière version des documents. Pour rester informé des nouvelles versions, assurez-vous de regarder ce référentiel.
DevDocs vise à rendre la lecture et la recherche de documentation de référence rapide, facile et agréable.
Les principaux objectifs de l'application sont:
Remarque: DevDocs n'est ni un guide de programmation ni un moteur de recherche. Tout notre contenu est tiré de sources tierces et le projet n'a pas l'intention de rivaliser avec les moteurs de recherche en texte intégral. Son épine dorsale est des métadonnées; Chaque élément de contenu est identifié par une chaîne unique, "évidente" et courte. Les tutoriels, les guides et autres contenus qui ne répondent pas à cette exigence sont en dehors de la portée du projet.
L'application Web est entièrement JavaScript côté client, alimenté par une petite application Sinatra / Sproquets. Il s'appuie sur des fichiers générés par le grattoir.
De nombreuses décisions de conception du code ont été motivées par le fait que l'application utilise XHR pour charger le contenu directement dans le cadre principal. Cela comprend le dépouillage des documents originaux de la plupart de leur balisage HTML (par exemple, scripts et feuilles de style) pour éviter de polluer le cadre principal et de préfixer tous les noms de classe CSS avec un soulignement pour éviter les conflits.
Un autre facteur de conduite est les performances et le fait que tout se passe dans le navigateur. Un travailleur de service (qui est livré avec son propre ensemble de contraintes) et localStorage sont utilisés pour accélérer le temps de démarrage, tandis que la consommation de mémoire est contrôlée en permettant à l'utilisateur de choisir son propre ensemble de documentations. L'algorithme de recherche est resté simple car il doit être rapide même à la recherche de 100 000 chaînes.
DevDocs étant un outil de développeur, les exigences du navigateur sont élevées:
Cela permet au code de profiter des dernières API DOM et HTML5 et de rendre le développement de DevDocs beaucoup plus amusant!
Le grattoir est responsable de la génération des fichiers de documentation et d'index (métadonnées) utilisés par l'application. Il est écrit en Ruby sous le module Docs .
Il existe actuellement deux types de gratteaux: UrlScraper qui télécharge des fichiers via HTTP et FileScraper qui les lit à partir du système de fichiers local. Ils font tous deux des copies de documents HTML, suivant récursivement des liens qui correspondent à un ensemble de règles et appliquant toutes sortes de modifications en cours de route, en plus de créer un indice des fichiers et de leurs métadonnées. Les documents sont analysés à l'aide de Nokogiri.
Les modifications apportées à chaque document comprennent:
<html> , <head> , etc.), les commentaires, les nœuds vides, etc.Ces modifications sont appliquées via un ensemble de filtres à l'aide de la bibliothèque HTML :: Pipeline. Chaque grattoir comprend des filtres spécifiques à lui-même, dont l'un est chargé de déterminer les métadonnées des pages.
Le résultat final est un ensemble de partiels HTML normalisés et de deux fichiers JSON (index + données hors ligne). Étant donné que les fichiers d'index sont chargés séparément par l'application suivant les préférences de l'utilisateur, le grattoir crée également un fichier JSON Manifest contenant des informations sur les documentations actuellement disponibles sur le système (telles que leur nom, version, date de mise à jour, etc.).
Plus d'informations sur les grattoirs et les filtres sont disponibles dans le dossier docs .
L'interface de ligne de commande utilise Thor. Pour voir toutes les commandes et options, exécutez thor list à partir de la racine du projet.
# 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 plusieurs versions de Ruby sont installées sur votre système, les commandes doivent être exécutées via bundle exec .
Les contributions sont les bienvenues. Veuillez lire les directives contributives.
Fait quelque chose de cool? N'hésitez pas à ouvrir un RP pour ajouter une nouvelle ligne à cette table! Vous voudrez peut-être découvrir de nouveaux projets via https://github.com/topics/devdocs.
| Projet | Description | Dernier engagement | Étoiles |
|---|---|---|---|
| Yannickglt / Alfred-Devdocs | Flux de travail Alfred | ||
| Merith-Tk / Devdocs_webapp_kotlin | Application Android | ||
| Gruehle / Dev-Docs-Viewer | Extension des supports | ||
| egoist / devdocs-desktop | Application d'électrons | ||
| skeeto / devdocs-lookup | Fonction Emacs | ||
| Astoff / devdocs.el | Visionneuse Emacs | ||
| naquad / devdocs-shell | Shell GTK avec intégration VIM | ||
| hardpixel / devdocs-desktop | Application GTK | ||
| QWFY / DOC-BROWSER | Application Linux | ||
| dteoh / devdocs-macos | Application macOS | ||
| Plugin de texte sublime | Plugin de texte sublime | ||
| mohamed3nan / devdocs-tab | VS Extension de code (Afficher comme onglet) | ||
| DEIBIT / VSCODE-DEVDOCS | VS Extension de code (ouvrez le navigateur) | ||
| MDH34 / QuickDocs | Visionneuse basée sur Vala / Python | ||
| girishji / devdocs.vim | Plugin VIM & TUI (parcourir à l'intérieur VIM) | ||
| romainl / vim-devdocs | Plugin VIM | ||
| attendre pour lev / vim-www | Plugin VIM | ||
| Luckasranarison / NVIM-Devdocs | Plugin Neovim | ||
| Toiletbril / Dedoc | Visionneuse à base de terminal | ||
| Raycast Devdocs | Extension Raycast | Indisponible | Indisponible |
| Chrisgrieser / Alfred-Docs-Searches | Flux de travail Alfred |
Copyright 2013-2024 Thibaut Courouble et autres contributeurs
Ce logiciel est sous licence de la Licence publique de Mozilla v2.0. Voir le droit d'auteur et les fichiers de licence.
Veuillez ne pas utiliser le nom DevDocs pour approuver ou promouvoir des produits dérivés de ce logiciel sans l'autorisation des maintenants, sauf comme cela peut être nécessaire pour se conformer aux exigences de préavis / attribution.
Nous souhaitons également que tout fichier de documentation généré à l'aide de ce logiciel soit attribué à DevDocs. Soyons juste envers tous les contributeurs en accordant du crédit là où le crédit est dû. Merci!
Si vous avez des questions, n'hésitez pas à leur poser sur la salle de chat des contributeurs sur Discord.