يجمع DevDocs بين وثائق المطورين المتعددة في واجهة مستخدم ويب نظيفة ومنظمة مع البحث الفوري ، والدعم غير المتصلة بالإنترنت ، وإصدار الهاتف المحمول ، والموضوع المظلم ، واختصارات لوحة المفاتيح ، وأكثر من ذلك.
تم إنشاء 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 : 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 devdocsيتكون DevDocs من قطعتين: مكشطة روبي تقوم بإنشاء الوثائق والبيانات الوصفية ، وتطبيق JavaScript الذي يعمل بتطبيق Sinatra صغير.
يتطلب DevDocs Ruby 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 . لتنزيل وتثبيت جميع الوثائق التي يتوفرها هذا المشروع ، Run thor docs:download --all .
ملاحظة: لا توجد حاليًا أي آلية تحديث بخلاف git pull origin main لتحديث thor docs:download --installed لتنزيل أحدث إصدار من المستندات. للبقاء على اطلاع بالإصدارات الجديدة ، تأكد من مشاهدة هذا المستودع.
يهدف DevDocs إلى جعل القراءة والبحث في الوثائق المرجعية سريعة وسهلة وممتعة.
الأهداف الرئيسية للتطبيق هي:
ملاحظة: DevDocs ليس دليل البرمجة ولا محرك بحث. يتم سحب جميع المحتوى الخاص بنا من مصادر الطرف الثالث ولا ينوي المشروع التنافس مع محركات البحث النصية الكاملة. العمود الفقري هو البيانات الوصفية. يتم تحديد كل قطعة من المحتوى من خلال سلسلة فريدة و "واضحة" وقصيرة. البرامج التعليمية والأدلة والمحتوى الآخر الذي لا يفي بهذا المطلب خارج نطاق المشروع.
تطبيق الويب هو كل JavaScript من جانب العميل ، مدعوم من تطبيق Sinatra/Sprockets صغير. يعتمد على الملفات التي تم إنشاؤها بواسطة مكشطة.
كانت العديد من قرارات تصميم الكود مدفوعة بحقيقة أن التطبيق يستخدم XHR لتحميل المحتوى مباشرة في الإطار الرئيسي. ويشمل ذلك تجريد المستندات الأصلية لمعظم علامات HTML الخاصة بهم (مثل البرامج النصية وورائح الأنماط) لتجنب تلويث الإطار الرئيسي ، ويبدوم جميع أسماء فئة CSS مع السطح لمنع النزاعات.
عامل القيادة الآخر هو الأداء وحقيقة أن كل شيء يحدث في المتصفح. يتم استخدام عامل الخدمة (الذي يأتي مع مجموعة من القيود الخاصة به) و localStorage لتسريع وقت التمهيد ، بينما يتم الحفاظ على استهلاك الذاكرة من خلال السماح للمستخدم باختيار مجموعة الوثائق الخاصة به. يتم الحفاظ على خوارزمية البحث بسيطة لأنها تحتاج إلى أن تكون سريعة حتى البحث من خلال 100000 سلاسل.
DevDocs كونها أداة مطور ، فإن متطلبات المتصفح عالية:
يسمح هذا للرمز بالاستفادة من أحدث واجهات برمجة التطبيقات DOM و HTML5 وجعل تطوير DevDocs أكثر متعة!
المكشطة مسؤولة عن إنشاء ملفات الوثائق والفهرس (البيانات الوصفية) المستخدمة من قبل التطبيق. إنه مكتوب في Ruby تحت وحدة Docs .
يوجد حاليًا نوعان من الكاشطات: UrlScraper التي تقوم بتنزيل الملفات عبر HTTP و FileScraper التي تقرأها من نظام الملفات المحلي. كلاهما يصنع نسخًا من مستندات HTML ، ويتابعان بشكل متكرر الروابط التي تتطابق مع مجموعة من القواعد وتطبيق جميع أنواع التعديلات على طول الطريق ، بالإضافة إلى إنشاء فهرس للملفات وبيانات التعريف الخاصة بها. يتم تحليل المستندات باستخدام Nokogiri.
تشمل التعديلات التي تم إجراؤها على كل مستند:
<html> ، <head> ، إلخ) ، التعليقات ، العقد الفارغة ، إلخ.يتم تطبيق هذه التعديلات عبر مجموعة من المرشحات باستخدام مكتبة خط الأنابيب HTML ::. يتضمن كل مكشطة مرشحات محددة لنفسها ، يتم تكليف أحدها بمعرفة البيانات الوصفية للصفحات.
والنتيجة النهائية هي مجموعة من الجزأات 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 إذا تم تثبيت إصدارات متعددة من Ruby على نظامك ، فيجب تشغيل الأوامر من خلال 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 | ||
| Naquad/Devdocs-Shell | قذيفة GTK مع تكامل VIM | ||
| Hardpixel/devdocs-desktop | تطبيق GTK | ||
| QWFY/DOC-BREWSER | تطبيق Linux | ||
| DTEOH/DEVDOCS-MACOS | تطبيق MacOS | ||
| سامي نص مكون إضافي | سامي نص مكون إضافي | ||
| Mohamed3nan/devdocs-tab | VS Code Extension (عرض كعلامة تبويب) | ||
| deibit/vscode-devdocs | VS Code Extension (افتح المتصفح) | ||
| MDH34/QuickDocs | عارض فالا/بيثون | ||
| Girishji/devdocs.vim | VIM Plugin & Tui (تصفح داخل VIM) | ||
| Romainl/vim-devdocs | البرنامج المساعد VIM | ||
| الانتظار ل dev/vim-www | البرنامج المساعد VIM | ||
| Luckasranarison/nvim-devdocs | البرنامج المساعد Neovim | ||
| Evaletbril/dedoc | المشاهد القائم على المحطة | ||
| Raycast Devdocs | امتداد Raycast | غير متاح | غير متاح |
| Chrisgriser/Alfred-Docs-Searches | سير العمل ألفريد |
حقوق الطبع والنشر 2013-2024 ثيبوت كوروبل والمساهمين الآخرين
تم ترخيص هذا البرنامج بموجب شروط ترخيص Mozilla Public V2.0. راجع ملفات حقوق الطبع والنشر وملفات الترخيص.
يرجى عدم استخدام اسم DevDocs لدعم أو الترويج للمنتجات المستمدة من هذا البرنامج دون إذن من المشرفين ، باستثناء ما قد يكون ضروريًا للامتثال لمتطلبات الإشعار/الإسناد.
نتمنى أيضًا أن يعزى أي ملف توثيق يتم إنشاؤه باستخدام هذا البرنامج إلى DevDocs. لنكن منصفين لجميع المساهمين من خلال منح الائتمان عند استحقاق الائتمان. شكرًا!
إذا كان لديك أي أسئلة ، فلا تتردد في طرحها على غرفة الدردشة المساهمة على Discord.