O DEVDOCS combina várias documentações de desenvolvedor em uma interface da web limpa e organizada com pesquisa instantânea, suporte offline, versão móvel, tema escuro, atalhos de teclado e muito mais.
O DevDocs foi criado por Thibaut Courouble e é operado pelo Freecodecamp.
Entre em contato com a comunidade em discórdia se você quiser se juntar à equipe!
Acompanhe as notícias de desenvolvimento:
ÍNDER: Início rápido · Visão · App · Rasper · Comandos · Contribuindo · Documentação · Projetos Relacionados · Licença · Perguntas?
A menos que você queira contribuir com o projeto, recomendamos o uso da versão hospedada em devdocs.io. Está atualizado e trabalha offline fora da caixa.
A maneira mais fácil de executar o DevDocs localmente é usar o Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latestIsso começará a Devdocs no localhost: 9292. Fornecemos imagens regulares e baseadas em alpinas:
ghcr.io/freecodcamp/devdocs:latest - imagem padrãoghcr.io/freecodcamp/devdocs:latest-alpine base de alpina (tamanho menor)As imagens são construídas e atualizadas automaticamente com a documentação mais recente.
Como alternativa, você pode construir a imagem:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevdocs é feito de duas peças: um raspador de rubi que gera a documentação e os metadados e um aplicativo JavaScript alimentado por um pequeno aplicativo Sinatra.
O DEVDOCS requer Ruby 3.3.0 (definido no Gemfile ), LIBCURL e um tempo de execução do JavaScript suportado pelo ExecJS (incluído no OS X e Windows; Node.js no Linux). Depois de instalar isso, execute os seguintes 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, aponte seu navegador para localhost: 9292 (a primeira solicitação levará alguns segundos para compilar os ativos). Você está pronto.
O comando thor docs:download é usado para baixar documentações pré-geradas dos servidores de DevDocs (por exemplo thor docs:download html css ). Você pode ver a lista de documentações e versões disponíveis executando thor docs:list . Para atualizar todas as documentações baixadas, execute thor docs:download --installed . Para baixar e instalar toda a documentação, este projeto está disponível, execute thor docs:download --all .
NOTA: Atualmente, não existe um mecanismo de atualização além do git pull origin main para atualizar o código e thor docs:download --installed para baixar a versão mais recente dos documentos. Para se manter informado sobre novos lançamentos, não deixe de assistir a este repositório.
O DevDocs visa tornar a documentação de referência de leitura e pesquisa rápida, fácil e agradável.
Os principais objetivos do aplicativo são:
Nota: DevDocs não é um guia de programação nem um mecanismo de pesquisa. Todo o nosso conteúdo é retirado de fontes de terceiros e o projeto não pretende competir com os mecanismos de pesquisa de texto completo. Sua espinha dorsal é metadados; Cada pedaço de conteúdo é identificado por uma corda única e "óbvia" e curta. Tutoriais, guias e outros conteúdos que não atendem a esse requisito estão fora do escopo do projeto.
O aplicativo da web é todo JavaScript do lado do cliente, alimentado por um pequeno aplicativo Sinatra/Sprockets. Ele depende de arquivos gerados pelo raspador.
Muitas das decisões de design do código foram conduzidas pelo fato de o aplicativo usar XHR para carregar o conteúdo diretamente no quadro principal. Isso inclui remover os documentos originais da maior parte de sua marcação HTML (por exemplo, scripts e folhas de estilo) para evitar poluir o quadro principal e prefixar todos os nomes de classes CSS com um sublinhado para evitar conflitos.
Outro fator determinante é o desempenho e o fato de tudo acontecer no navegador. Um trabalhador de serviço (que vem com seu próprio conjunto de restrições) e localStorage são usados para acelerar o tempo de inicialização, enquanto o consumo de memória é mantido sob controle, permitindo que o usuário escolha seu próprio conjunto de documentações. O algoritmo de pesquisa é mantido simples porque precisa ser rápido, mesmo pesquisando em 100.000 strings.
Devdocs sendo uma ferramenta de desenvolvedor, os requisitos do navegador são altos:
Isso permite que o código aproveite as mais recentes APIs DOM e HTML5 e torne o desenvolvimento de DevDocs muito mais divertido!
O raspador é responsável por gerar os arquivos de documentação e índice (metadados) usados pelo aplicativo. Está escrito em Ruby sob o módulo Docs .
Atualmente, existem dois tipos de raspadores: UrlScraper que baixam arquivos via HTTP e FileScraper que os lê do sistema de arquivos local. Ambos fazem cópias dos documentos HTML, seguindo recursivamente os links que correspondem a um conjunto de regras e aplicando todos os tipos de modificações ao longo do caminho, além de criar um índice dos arquivos e seus metadados. Os documentos são analisados usando Nokogiri.
As modificações feitas em cada documento incluem:
<html> , <head> , etc.), comentários, nós vazios, etc.Essas modificações são aplicadas através de um conjunto de filtros usando a biblioteca HTML :: Pipeline. Cada raspador inclui filtros específicos para si, um dos quais é encarregado de descobrir os metadados das páginas.
O resultado final é um conjunto de parciais HTML normalizados e dois arquivos JSON (Index + Dados offline). Como os arquivos de índice são carregados separadamente pelo aplicativo após as preferências do usuário, o raspador também cria um arquivo de manifesto JSON que contém informações sobre as documentações atualmente disponíveis no sistema (como nome, versão, data de atualização etc.).
Mais informações sobre raspadores e filtros estão disponíveis na pasta docs .
A interface da linha de comando usa Thor. Para ver todos os comandos e opções, execute thor list na raiz do projeto.
# 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 Se várias versões do Ruby estiverem instaladas no seu sistema, os comandos deverão ser executados através do bundle exec .
Contribuições são bem -vindas. Leia as diretrizes contribuintes.
Fez algo legal? Sinta -se à vontade para abrir um PR para adicionar uma nova linha a esta tabela! Você pode descobrir novos projetos via https://github.com/topics/devdocs.
| Projeto | Descrição | Última confirmação | Estrelas |
|---|---|---|---|
| YannickGLT/Alfred-Devdocs | Alfred Workflow | ||
| Merith-tk/devdocs_webapp_kotlin | Aplicação Android | ||
| Gruehle/Dev-Docs-Viewer | Extensão de colchetes | ||
| EGOIST/DEVDOCS-DESKTOP | Aplicação de elétrons | ||
| skeeto/devdocs-lookup | EMACS função | ||
| astoff/devdocs.el | Visualizador do EMACS | ||
| Naquad/devdocs-shell | Shell GTK com integração Vim | ||
| hardpixel/devDocs-desktop | Aplicação GTK | ||
| QWFY/DOC Browser | Aplicação Linux | ||
| dteoh/devdocs-macos | Aplicativo MacOS | ||
| Plugin de texto sublime | Plugin de texto sublime | ||
| Mohamed3nan/Devdocs-Tab | VS Extensão de código (veja como guia) | ||
| DEIBIT/VSCODE-DEVDOCS | Vs extensão de código (abra o navegador) | ||
| MDH34/QuickDocs | Visualizador baseado em Vala/Python | ||
| girishji/devdocs.vim | VIM Plugin & Tui (navegue dentro de Vim) | ||
| Romainl/vim-devdocs | VIM Plugin | ||
| Esperando para Dev/Vim-www | VIM Plugin | ||
| Luckasranarison/nvim-devdocs | Plugin Neovim | ||
| Toiletbril/Dedoc | Visualizador baseado no terminal | ||
| Raycast Devdocs | Extensão de Raycast | Indisponível | Indisponível |
| Chrisgrieser/Alfred-Docs-Searches | Alfred Workflow |
Copyright 2013–2024 Thibaut Courouble e outros colaboradores
Este software é licenciado nos termos da licença pública de Mozilla v2.0. Consulte os arquivos de direitos autorais e de licença.
Não use o nome DevDocs para endossar ou promover produtos derivados deste software sem a permissão dos mantenedores, exceto o necessário para cumprir os requisitos de aviso/atribuição.
Também desejamos que qualquer arquivo de documentação gerado usando este software seja atribuído aos devDocs. Sejamos justos para todos os colaboradores, dando crédito ao vencimento do crédito. Obrigado!
Se você tiver alguma dúvida, sinta -se à vontade para perguntar na sala de bate -papo colaborador em Discord.