DevDocs menggabungkan beberapa dokumentasi pengembang di UI web yang bersih dan terorganisir dengan pencarian instan, dukungan offline, versi seluler, tema gelap, pintasan keyboard, dan banyak lagi.
DevDocs diciptakan oleh Thibaut Courouble dan dioperasikan oleh Freecodecamp.
Silakan hubungi komunitas di Discord jika Anda ingin bergabung dengan tim!
Pantau Berita Pengembangan:
Daftar Isi: Mulai Cepat · Visi · APP · Scraper · Perintah · Kontribusi · Dokumentasi · Proyek Terkait · Lisensi · Pertanyaan?
Kecuali jika Anda ingin berkontribusi pada proyek, kami sarankan menggunakan versi yang di -host di devdocs.io. Ini mutakhir dan bekerja secara offline di luar kotak.
Cara termudah untuk menjalankan DevDocs secara lokal menggunakan Docker:
docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodcamp/devdocs:latestIni akan memulai DevDocs di LocalHost: 9292. Kami menyediakan gambar berbasis alpine dan alpine:
ghcr.io/freecodcamp/devdocs:latest - gambar standarghcr.io/freecodcamp/devdocs:latest-alpine berbasis (ukuran lebih kecil)Gambar dibangun secara otomatis dan diperbarui setiap bulan dengan dokumentasi terbaru.
Atau, Anda dapat membangun gambar sendiri:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
docker build -t devdocs .
docker run --name devdocs -d -p 9292:9292 devdocsDevDocs terbuat dari dua bagian: pengikis ruby yang menghasilkan dokumentasi dan metadata, dan aplikasi JavaScript yang ditenagai oleh aplikasi Sinatra kecil.
DevDocs membutuhkan Ruby 3.3.0 (didefinisikan dalam Gemfile ), libcurl, dan runtime JavaScript yang didukung oleh EXECJS (termasuk dalam OS X dan Windows; Node.js di Linux). Setelah Anda menginstal ini, jalankan perintah berikut:
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
gem install bundler
bundle install
bundle exec thor docs:download --default
bundle exec rackupAkhirnya, arahkan browser Anda di LocalHost: 9292 (permintaan pertama akan memakan waktu beberapa detik untuk menyusun aset). Anda siap.
Perintah thor docs:download digunakan untuk mengunduh dokumentasi yang dihasilkan sebelumnya dari server DevDocs (misalnya thor docs:download html css ). Anda dapat melihat daftar dokumentasi dan versi yang tersedia dengan menjalankan thor docs:list . Untuk memperbarui semua dokumentasi yang diunduh, jalankan thor docs:download --installed . Untuk mengunduh dan menginstal semua dokumentasi, proyek ini telah tersedia, jalankan thor docs:download --all .
Catatan: Saat ini tidak ada mekanisme pembaruan selain git pull origin main untuk memperbarui kode dan thor docs:download --installed untuk mengunduh versi terbaru dari dokumen tersebut. Untuk tetap mendapat informasi tentang rilis baru, pastikan untuk menonton repositori ini.
DevDocs bertujuan untuk membuat dokumentasi referensi membaca dan mencari dengan cepat, mudah dan menyenangkan.
Tujuan utama aplikasi adalah untuk:
Catatan: DevDocs bukanlah panduan pemrograman atau mesin pencari. Semua konten kami ditarik dari sumber pihak ketiga dan proyek tidak bermaksud untuk bersaing dengan mesin pencari teks lengkap. Tulang punggungnya adalah metadata; Setiap konten diidentifikasi oleh string yang unik, "jelas" dan pendek. Tutorial, pemandu, dan konten lain yang tidak memenuhi persyaratan ini berada di luar ruang lingkup proyek.
Aplikasi Web adalah semua JavaScript sisi klien, ditenagai oleh aplikasi Sinatra/Sprockets kecil. Ini bergantung pada file yang dihasilkan oleh scraper.
Banyak keputusan desain kode didorong oleh fakta bahwa aplikasi menggunakan XHR untuk memuat konten langsung ke bingkai utama. Ini termasuk melucuti dokumen asli dari sebagian besar markup HTML mereka (misalnya skrip dan stylesheet) untuk menghindari mencemari bingkai utama, dan mengawali semua nama kelas CSS dengan garis bawah untuk mencegah konflik.
Faktor penggerak lainnya adalah kinerja dan fakta bahwa semuanya terjadi di browser. Seorang pekerja layanan (yang dilengkapi dengan hambatannya sendiri) dan localStorage digunakan untuk mempercepat waktu boot, sementara konsumsi memori tetap diperiksa dengan memungkinkan pengguna untuk memilih serangkaian dokumentasi sendiri. Algoritma pencarian tetap sederhana karena harus cepat bahkan mencari melalui 100.000 string.
DevDocs menjadi alat pengembang, persyaratan browser tinggi:
Ini memungkinkan kode untuk memanfaatkan API DOM dan HTML5 terbaru dan membuat pengembangan DevDocs jauh lebih menyenangkan!
Scraper bertanggung jawab untuk menghasilkan dokumentasi dan file indeks (metadata) yang digunakan oleh aplikasi. Itu ditulis dalam ruby di bawah modul Docs .
Saat ini ada dua jenis pencakar: UrlScraper yang mengunduh file melalui http dan FileScraper yang membacanya dari sistem file lokal. Mereka berdua membuat salinan dokumen HTML, secara rekursif mengikuti tautan yang cocok dengan serangkaian aturan dan menerapkan segala macam modifikasi di sepanjang jalan, selain membangun indeks file dan metadata mereka. Dokumen diuraikan menggunakan nokogiri.
Modifikasi yang dibuat untuk setiap dokumen meliputi:
<html> , <head> , dll.), Komentar, node kosong, dll.Modifikasi ini diterapkan melalui satu set filter menggunakan perpustakaan HTML :: Pipeline. Setiap pengikis termasuk filter khusus untuk dirinya sendiri, salah satunya ditugaskan untuk mencari tahu metadata halaman.
Hasil akhirnya adalah seperangkat parsial HTML yang dinormalisasi dan dua file JSON (indeks + data offline). Karena file indeks dimuat secara terpisah oleh aplikasi yang mengikuti preferensi pengguna, scraper juga membuat file manifes JSON yang berisi informasi tentang dokumentasi yang saat ini tersedia di sistem (seperti nama, versi, tanggal pembaruan, dll.).
Informasi lebih lanjut tentang pencakar dan filter tersedia di folder docs .
Antarmuka baris perintah menggunakan Thor. Untuk melihat semua perintah dan opsi, jalankan thor list dari root proyek.
# 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 Jika beberapa versi ruby diinstal pada sistem Anda, perintah harus dijalankan melalui bundle exec .
Kontribusi dipersilakan. Harap baca pedoman yang berkontribusi.
Membuat sesuatu yang keren? Jangan ragu untuk membuka PR untuk menambahkan baris baru ke tabel ini! Anda mungkin ingin menemukan proyek baru melalui https://github.com/topics/devdocs.
| Proyek | Keterangan | Komit terakhir | Bintang |
|---|---|---|---|
| Yannickglt/Alfred-Devdocs | Alfred Workflow | ||
| Merith-tk/devdocs_webapp_kotlin | Aplikasi Android | ||
| Gruehle/dev-docs-viewer | Ekstensi braket | ||
| Egois/DevDocs-desktop | Aplikasi Elektron | ||
| skeeto/devdocs-lookup | Fungsi Emacs | ||
| Astoff/devdocs.el | Penampil Emacs | ||
| NAQUAD/DEVDOCS-SHELL | GTK Shell dengan integrasi VIM | ||
| Hardpixel/devdocs-desktop | Aplikasi GTK | ||
| QWFY/DOC-browser | Aplikasi Linux | ||
| DTEOH/DEVDOCS-MACOS | Aplikasi MacOS | ||
| Plugin Teks Sublim | Plugin Teks Sublim | ||
| Mohamed3nan/devdocs-tab | Ekstensi kode vs (lihat sebagai tab) | ||
| deibit/vscode-devdocs | Ekstensi kode vs (buka browser) | ||
| MDH34/QuickDocs | Penampil Berbasis Vala/Python | ||
| girishji/devdocs.vim | Vim Plugin & TUI (Jelajahi di dalam VIM) | ||
| romainl/vim-devdocs | Plugin vim | ||
| tunggu-untuk-dev/vim-www | Plugin vim | ||
| LUCKASRANARISON/NVIM-DEVDOCS | Plugin Neovim | ||
| toiletbril/dedoc | Penampil berbasis terminal | ||
| Raycast devdocs | Ekstensi raycast | Tidak tersedia | Tidak tersedia |
| CHRISGRIESER/ALFRED-DOCSSECHES | Alfred Workflow |
Hak Cipta 2013–2024 Thibaut Courouble dan kontributor lainnya
Perangkat lunak ini dilisensikan berdasarkan ketentuan Lisensi Publik Mozilla v2.0. Lihat file hak cipta dan lisensi.
Harap jangan gunakan nama DevDocs untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak ini tanpa izin pengelola, kecuali sebagaimana diperlukan untuk memenuhi persyaratan pemberitahuan/atribusi.
Kami juga berharap bahwa file dokumentasi apa pun yang dihasilkan menggunakan perangkat lunak ini dikaitkan dengan DevDocs. Mari kita bersikap adil untuk semua kontributor dengan memberikan kredit di mana kredit jatuh tempo. Terima kasih!
Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya kepada mereka di ruang obrolan kontributor di perselisihan.