DevDocs는 깨끗하고 정리 된 웹 UI의 여러 개발자 문서를 즉시 검색, 오프라인 지원, 모바일 버전, 다크 테마, 키보드 바로 가기 등을 결합합니다.
Devdocs는 Thibaut Courouble에 의해 만들어졌으며 Freecodecamp에서 작동합니다.
팀에 합류하려면 불화로 커뮤니티에 연락하십시오!
개발 뉴스를 추적하십시오.
목차 : 빠른 시작 · 비전 · App · Scraper · 명령 · 기여 · 문서 · 관련 프로젝트 · 라이센스 · 질문?
프로젝트에 기여하지 않는 한 DevDocs.io에서 호스팅 된 버전을 사용하는 것이 좋습니다. 최신 상태이며 오프라인으로 작동합니다.
로컬에서 DevDoc을 운영하는 가장 쉬운 방법은 Docker를 사용하는 것입니다.
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latest이것은 LocalHost : 9292에서 DevDocs를 시작합니다. 우리는 일반 및 알파인 기반 이미지를 모두 제공합니다.
ghcr.io/freecodcamp/devdocs:latest 표준 이미지ghcr.io/freecodcamp/devdocs:latest-alpine 알파인 기반 (작은 크기)이미지는 최신 문서로 매달 자동으로 구축 및 업데이트됩니다.
또는 이미지를 직접 만들 수 있습니다.
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevDocs는 문서와 메타 데이터를 생성하는 루비 스크레이퍼와 작은 Sinatra 앱으로 구동되는 JavaScript 앱의 두 조각으로 만들어졌습니다.
DevDocs에는 Ruby 3.3.0 ( Gemfile 에 정의), Libcurl 및 ExecJS (OS X 및 Windows에 포함)가 지원하는 JavaScript 런타임이 필요합니다 (Linux의 Node.js). 이 설치되면 다음 명령을 실행하십시오.
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
gem install bundler
bundle install
bundle exec thor docs:download --default
bundle exec rackup마지막으로, Browser를 LocalHost : 9292에서 가리 킵니다 (첫 번째 요청은 자산을 컴파일하는 데 몇 초가 걸립니다). 당신은 모두 설정되었습니다.
thor docs:download 명령은 DevDocs 서버 (예 : thor docs:download html css )에서 사전 생성 된 문서를 다운로드하는 데 사용됩니다. thor docs:list 실행하여 사용 가능한 문서 및 버전 목록을 볼 수 있습니다. 다운로드 된 모든 문서를 업데이트하려면 thor docs:download --installed 실행하십시오. 이 프로젝트에서 사용할 수있는 모든 문서를 다운로드하고 설치하려면 thor docs:download --all 실행하십시오.
참고 : 현재 Code 및 thor docs:download --installed 업데이트하기위한 git pull origin main 이외의 업데이트 메커니즘이 없습니다. 다운로드 -최신 버전의 문서를 다운로드하도록 설치했습니다. 새로운 릴리스에 대한 정보를 유지하려면이 저장소를보십시오.
DevDocs는 참조 문서를 빠르고 쉽고 즐겁게 읽고 검색하는 것을 목표로합니다.
앱의 주요 목표는 다음과 같습니다.
참고 : DevDocs는 프로그래밍 안내서 나 검색 엔진이 아닙니다. 우리의 모든 콘텐츠는 타사 소스에서 가져오고 프로젝트는 전체 텍스트 검색 엔진과 경쟁하지 않습니다. 백본은 메타 데이터입니다. 각 콘텐츠는 독특한 "명백한"및 짧은 문자열로 식별됩니다. 이 요구 사항을 충족하지 않는 튜토리얼, 가이드 및 기타 콘텐츠는 프로젝트의 범위를 벗어납니다.
웹 앱은 모든 클라이언트 측 JavaScript이며 작은 Sinatra/Sprockets 애플리케이션으로 구동됩니다. 스크레이퍼가 생성 한 파일에 의존합니다.
많은 코드의 설계 결정은 앱이 XHR을 사용하여 컨텐츠를 메인 프레임에 직접로드한다는 사실에 의해 주도되었습니다. 여기에는 메인 프레임 오염을 피하기 위해 대부분의 HTML 마크 업 (예 : 스크립트 및 스타일 시트)의 원본 문서를 제거하고 충돌을 방지하기 위해 모든 CSS 클래스 이름을 밑줄로 접두사를 접두사합니다.
또 다른 주행 요소는 성능과 브라우저에서 모든 것이 발생한다는 사실입니다. 서비스 작업자 (자체 제약 조건 세트와 함께 제공됨)와 localStorage 부팅 시간의 속도를 높이는 데 사용되며 사용자는 자신의 문서 세트를 선택할 수 있도록 메모리 소비를 확인합니다. 검색 알고리즘은 100,000 문자열을 통해 빠르게 검색해야하므로 간단하게 유지됩니다.
개발자 도구 인 DevDoc은 브라우저 요구 사항이 높습니다.
이를 통해 코드는 최신 DOM 및 HTML5 API를 활용하고 개발을 훨씬 더 재미있게 만들 수 있습니다!
스크레이퍼는 앱에서 사용하는 문서 및 색인 파일 (메타 데이터)을 생성 할 책임이 있습니다. Docs 모듈에 따라 Ruby로 작성되었습니다.
현재 두 가지 종류의 스크레이퍼가 있습니다 : UrlScraper 는 http 및 FileScraper 통해 파일을 다운로드하여 로컬 파일 시스템에서 읽습니다. 둘 다 HTML 문서의 사본을 만들어 일련의 규칙과 일치하는 링크를 따르고 파일의 색인 및 메타 데이터 인덱스를 구축 할뿐만 아니라 그 과정에서 모든 종류의 수정을 적용합니다. 문서는 Nokogiri를 사용하여 구문 분석됩니다.
각 문서에 대한 수정에는 다음이 포함됩니다.
<html> , <head> 등), 주석, 빈 노드 등과 같은 컨텐츠 제거이러한 수정은 html :: 파이프 라인 라이브러리를 사용하여 필터 세트를 통해 적용됩니다. 각 스크레이퍼에는 자체에 특정 필터가 포함되어 있으며 그 중 하나는 페이지의 메타 데이터를 알아내는 작업입니다.
최종 결과는 정규화 된 HTML 부분 세트와 2 개의 JSON 파일 (색인 + 오프라인 데이터)입니다. 인덱스 파일은 사용자의 환경 설정에 따라 앱에 의해 별도로로드되므로 스크레이퍼는 현재 시스템에서 사용할 수있는 문서 (예 : 이름, 버전, 업데이트 날짜 등)에 대한 정보가 포함 된 JSON Manifest 파일을 만듭니다.
스크레이퍼 및 필터에 대한 자세한 내용은 docs 폴더에서 확인할 수 있습니다.
명령 줄 인터페이스는 Thor를 사용합니다. 모든 명령과 옵션을 보려면 프로젝트의 루트에서 thor list 실행하십시오.
# 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 시스템에 여러 버전의 Ruby가 설치된 경우 bundle exec 통해 명령을 실행해야합니다.
기부금을 환영합니다. 기고 가이드 라인을 읽으십시오.
멋진 것을 만들었습니까? 이 테이블에 새 행을 추가하려면 PR을 열어 주시기 바랍니다! https://github.com/topics/devdocs를 통해 새로운 프로젝트를 발견 할 수 있습니다.
| 프로젝트 | 설명 | 마지막 커밋 | 별 |
|---|---|---|---|
| Yannickglt/Alfred-Devdocs | 알프레드 워크 플로 | ||
| merith-tk/devdocs_webapp_kotlin | 안드로이드 응용 프로그램 | ||
| Gruehle/dev-docs-viewer | 괄호 확장 | ||
| 자아/Devdocs-desktop | 전자 적용 | ||
| Skeeto/Devdocs-Lookup | EMACS 기능 | ||
| astoff/devdocs.el | EMACS 시청자 | ||
| naquad/devdocs-shell | VIM 통합이있는 GTK 쉘 | ||
| Hardpixel/devdocs-desktop | GTK 응용 프로그램 | ||
| QWFY/Doc-Browser | 리눅스 응용 프로그램 | ||
| dteoh/devdocs-macos | MACOS 응용 프로그램 | ||
| 숭고한 텍스트 플러그인 | 숭고한 텍스트 플러그인 | ||
| Mohamed3nan/devdocs-tab | 대 코드 확장 (탭보기) | ||
| deibit/vscode-devdocs | 대 코드 확장 (브라우저 열기) | ||
| MDH34/QuickDocs | Vala/Python 기반 뷰어 | ||
| Girishji/devdocs.vim | vim 플러그인 & tui (내부 vim 탐색) | ||
| Romainl/Vim-Devdocs | vim 플러그인 | ||
| 대기 중/vim www | vim 플러그인 | ||
| Luckasranarison/nvim-devdocs | Neovim 플러그인 | ||
| 화장실/dedoc | 터미널 기반 뷰어 | ||
| Raycast Devdocs | Raycast 확장 | 없는 | 없는 |
| Chrisgrieser/Alfred-Docs Searches | 알프레드 워크 플로 |
Copyright 2013–2024 Thibaut Courouble 및 기타 기고자
이 소프트웨어는 Mozilla Public License v2.0의 조건에 따라 라이센스가 부여됩니다. 저작권 및 라이센스 파일을 참조하십시오.
통지/속성 요구 사항을 준수하는 데 필요한 경우를 제외하고는 DevDocs라는 이름을 사용하여 관리자의 허가 없이이 소프트웨어에서 파생 된 제품을 보증하거나 홍보하지 마십시오.
또한이 소프트웨어를 사용하여 생성 된 모든 문서 파일이 DevDocs에 기인하기를 바랍니다. 크레딧이 마감 될 때 신용을 제공함으로써 모든 기고자들에게 공정하게합시다. 감사해요!
궁금한 점이 있으시면 Discord의 기고자 채팅방에서 자유롭게 문의하십시오.