DevDocs ผสมผสานเอกสารนักพัฒนาหลายรายการในเว็บ UI ที่สะอาดและเป็นระเบียบเข้ากับการค้นหาทันทีการสนับสนุนออฟไลน์เวอร์ชันมือถือธีมมืดคีย์บอร์ดลัดและอื่น ๆ
DevDocs ถูกสร้างขึ้นโดย Thibaut Courouble และดำเนินการโดย FreeCodecamp
โปรดติดต่อชุมชนใน Discord หากคุณต้องการเข้าร่วมทีม!
ติดตามข่าวการพัฒนา:
สารบัญ: เริ่มต้นอย่างรวดเร็ว·การมองเห็น·แอพ·มีดโกน·คำสั่ง·การบริจาค·เอกสาร·โครงการที่เกี่ยวข้อง·ใบอนุญาต·คำถาม?
หากคุณไม่ต้องการมีส่วนร่วมในโครงการเราขอแนะนำให้ใช้เวอร์ชันโฮสต์ที่ devDocs.io มันทันสมัยและทำงานออฟไลน์นอกกรอบ
วิธีที่ง่ายที่สุดในการเรียกใช้ devdocs ในพื้นที่คือการใช้ Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latestสิ่งนี้จะเริ่มต้น DevDocs ที่ LocalHost: 9292 เราให้ภาพทั้งภาพปกติและอัลไพน์:
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 ทำจากสองชิ้น: มีดโกนทับทิมที่สร้างเอกสารและข้อมูลเมตาและแอพ JavaScript ขับเคลื่อนโดยแอพ Sinatra ขนาดเล็ก
DevDocs ต้องการทับทิม 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 ตั้งเป้าหมายที่จะทำให้การอ่านและการค้นหาเอกสารอ้างอิงที่รวดเร็วง่ายและสนุกสนาน
เป้าหมายหลักของแอพคือ:
หมายเหตุ: DevDocs ไม่ใช่คู่มือการเขียนโปรแกรมหรือเครื่องมือค้นหา เนื้อหาทั้งหมดของเราถูกดึงจากแหล่งข้อมูลบุคคลที่สามและโครงการไม่ได้ตั้งใจที่จะแข่งขันกับเครื่องมือค้นหาข้อความเต็ม กระดูกสันหลังของมันคือข้อมูลเมตา เนื้อหาแต่ละชิ้นถูกระบุด้วย "ชัดเจน" และสตริงสั้น ๆ ที่ไม่ซ้ำกัน บทเรียนคำแนะนำและเนื้อหาอื่น ๆ ที่ไม่ตรงตามข้อกำหนดนี้อยู่นอกขอบเขตของโครงการ
เว็บแอพคือจาวาสคริปต์ฝั่งไคลเอ็นต์ซึ่งขับเคลื่อนโดยแอปพลิเคชัน Sinatra/Sprockets ขนาดเล็ก มันขึ้นอยู่กับไฟล์ที่สร้างขึ้นโดยมีดโกน
การตัดสินใจออกแบบของรหัสจำนวนมากถูกขับเคลื่อนด้วยความจริงที่ว่าแอพใช้ XHR เพื่อโหลดเนื้อหาลงในเฟรมหลักโดยตรง ซึ่งรวมถึงการลอกเอกสารต้นฉบับของมาร์กอัป HTML ส่วนใหญ่ (เช่นสคริปต์และสไตล์ชีท) เพื่อหลีกเลี่ยงการก่อมลพิษในกรอบหลักและนำหน้าชื่อคลาส CSS ทั้งหมดด้วยขีดเส้นใต้เพื่อป้องกันความขัดแย้ง
ปัจจัยขับเคลื่อนอีกประการหนึ่งคือประสิทธิภาพและความจริงที่ว่าทุกอย่างเกิดขึ้นในเบราว์เซอร์ พนักงานบริการ (ซึ่งมาพร้อมกับชุดของข้อ จำกัด ของตัวเอง) และ localStorage ใช้เพื่อเร่งเวลาบูตในขณะที่การใช้หน่วยความจำจะถูกตรวจสอบโดยอนุญาตให้ผู้ใช้เลือกชุดเอกสารของเขา/เธอ อัลกอริธึมการค้นหานั้นง่ายมากเพราะจำเป็นต้องรวดเร็วแม้กระทั่งการค้นหาผ่าน 100,000 สตริง
devdocs เป็นเครื่องมือนักพัฒนาความต้องการของเบราว์เซอร์อยู่ในระดับสูง:
สิ่งนี้ช่วยให้รหัสสามารถใช้ประโยชน์จาก APIs DOM และ HTML5 ล่าสุดและทำให้การพัฒนา devDocs สนุกยิ่งขึ้น!
มีดโกนมีหน้าที่สร้างเอกสารและไฟล์ดัชนี (ข้อมูลเมตา) ที่ใช้โดยแอป มันเขียนในทับทิมภายใต้โมดูล Docs
ขณะนี้มี scrapers สองประเภท: UrlScraper ซึ่งดาวน์โหลดไฟล์ผ่าน HTTP และ FileScraper ซึ่งอ่านจากระบบไฟล์ท้องถิ่น พวกเขาทั้งสองทำสำเนาเอกสาร HTML โดยการเชื่อมโยงซ้ำที่ตรงกับชุดของกฎและใช้การดัดแปลงทุกประเภทตลอดทางนอกเหนือจากการสร้างดัชนีของไฟล์และข้อมูลเมตาของพวกเขา เอกสารจะถูกแยกวิเคราะห์โดยใช้ nokogiri
การปรับเปลี่ยนเอกสารแต่ละฉบับรวมถึง:
<html> , <head> ฯลฯ ), ความคิดเห็น, โหนดเปล่า ฯลฯการดัดแปลงเหล่านี้จะถูกนำไปใช้ผ่านชุดตัวกรองโดยใช้ไลบรารี HTML :: Pipeline เครื่องตรวจค้นแต่ละตัวมีตัวกรองที่เฉพาะเจาะจงสำหรับตัวเองซึ่งหนึ่งในนั้นได้รับมอบหมายให้หาข้อมูลเมตาของหน้าเว็บ
ผลลัพธ์ที่ได้คือชุดของส่วน HTML ปกติและไฟล์ JSON สองไฟล์ (ดัชนี + ข้อมูลออฟไลน์) เนื่องจากไฟล์ดัชนีถูกโหลดแยกต่างหากโดยแอปตามการตั้งค่าของผู้ใช้เครื่องขูดจึงสร้างไฟล์รายการ JSON ที่มีข้อมูลเกี่ยวกับเอกสารที่มีอยู่ในระบบปัจจุบัน (เช่นชื่อรุ่นวันที่อัปเดต ฯลฯ )
ข้อมูลเพิ่มเติมเกี่ยวกับเครื่องขูดและตัวกรองมีอยู่ในโฟลเดอร์ 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 หากมีการติดตั้งทับทิมหลายรุ่นในระบบของคุณคำสั่งจะต้องเรียกใช้ผ่าน bundle exec
ยินดีต้อนรับการมีส่วนร่วม โปรดอ่านแนวทางที่มีส่วนร่วม
ทำอะไรเย็น ๆ ? อย่าลังเลที่จะเปิดประชาสัมพันธ์เพื่อเพิ่มแถวใหม่ลงในตารางนี้! คุณอาจต้องการค้นพบโครงการใหม่ผ่าน https://github.com/topics/devdocs
| โครงการ | คำอธิบาย | การกระทำครั้งสุดท้าย | ดารา |
|---|---|---|---|
| yannickglt/alfred-devdocs | เวิร์กโฟลว์อัลเฟรด | ||
| merith-tk/devdocs_webapp_kotlin | แอปพลิเคชัน Android | ||
| gruehle/dev-docs-viewer | ส่วนขยายวงเล็บ | ||
| คนเห็นแก่ตัว/devdocs-desktop | แอปพลิเคชันอิเล็กตรอน | ||
| skeeto/devdocs-lookup | ฟังก์ชั่น emacs | ||
| Astoff/devdocs.el | Emacs Viewer | ||
| Naquad/Devdocs-Shell | GTK Shell พร้อมการรวม VIM | ||
| Hardpixel/DevDocs-Desktop | แอปพลิเคชัน GTK | ||
| qwfy/doc-browser | แอปพลิเคชัน Linux | ||
| dteoh/devdocs-macos | แอปพลิเคชัน MacOS | ||
| ปลั๊กอินข้อความประเสริฐ | ปลั๊กอินข้อความประเสริฐ | ||
| mohamed3nan/devdocs-tab | VS Code Extension (ดูเป็น TAB) | ||
| deibit/vscode-devdocs | VS Code Extension (เปิดเบราว์เซอร์) | ||
| MDH34/QuickDocs | ผู้ชมที่ใช้ Vala/Python | ||
| girishji/devdocs.vim | Vim Plugin & Tui (เรียกดูภายใน VIM) | ||
| romainl/vim-devdocs | ปลั๊กอิน vim | ||
| รอ-สำหรับ Dev/vim-www | ปลั๊กอิน vim | ||
| Luckasranarison/nvim-devdocs | ปลั๊กอิน NeoVim | ||
| Toiletbril/dedoc | ผู้ชมตามเทอร์มินัล | ||
| raycast devdocs | ส่วนขยายของ Raycast | ไม่สามารถใช้งานได้ | ไม่สามารถใช้งานได้ |
| Chrisgrieser/Alfred-Docs-Searches | เวิร์กโฟลว์อัลเฟรด |
ลิขสิทธิ์ 2013–2024 Thibaut Courouble และผู้มีส่วนร่วมอื่น ๆ
ซอฟต์แวร์นี้ได้รับใบอนุญาตภายใต้ข้อกำหนดของใบอนุญาตสาธารณะ Mozilla v2.0 ดูไฟล์ลิขสิทธิ์และใบอนุญาต
โปรดอย่าใช้ชื่อ devDocs เพื่อรับรองหรือส่งเสริมผลิตภัณฑ์ที่ได้จากซอฟต์แวร์นี้โดยไม่ได้รับอนุญาตจากผู้ดูแลรักษายกเว้นตามที่จำเป็นเพื่อให้สอดคล้องกับข้อกำหนดการแจ้ง/การระบุแหล่งที่มา
นอกจากนี้เรายังหวังว่าไฟล์เอกสารใด ๆ ที่สร้างขึ้นโดยใช้ซอฟต์แวร์นี้จะนำมาประกอบกับ DevDocs มาเป็นธรรมกับผู้มีส่วนร่วมทุกคนโดยให้เครดิตเมื่อถึงกำหนดเครดิต ขอบคุณ!
หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะถามพวกเขาในห้องแชทผู้มีส่วนร่วมใน Discord