يكتب larecipe:export مجموعات التوثيق العامة لديك في مجلد من الملفات العادية: كل صفحة بصيغة HTML وبصيغة Markdown، و llms.txt، و skill.md، وخريطة الموقع، وفهرس البحث، والواجهة. يستطيع أي مضيف ثابت أن يقدّم المجلد، ويظل البحث يعمل لأنه يجري في المتصفح.
php artisan larecipe:export --out=build/docs --base-url=https://docs.acme.dev--outهو المجلد الذي يُكتب فيه، نسبةً إلى جذر تطبيقك ما لم يبدأ بـ/. وقيمته الافتراضيةbuild/docs.--base-urlهو المكان الذي ستُقدَّم منه الملفات. تستخدمه الروابط الأساسية (canonical)، والعناوين المطلقة في نسخ Markdown، وllms.txt، وخريطة الموقع، والعنوان الأساسي الذي فيه مسار (https://acme.github.io/docs) يُضاف بادئةً لكل رابط وملف. ومن دونه يستخدم التصديرAPP_URLلديك ويقول ذلك.--setيختار مجموعات التوثيق التي تُصدَّر. كرّره لعدة مجموعات:--set=docs --set=api. ومن دونه تُصدَّر كل المجموعات، وتُتخطّى المجموعات الخاصة.
تقدّم معظم التطبيقات توثيقها من التطبيق نفسه، حيث تعمل البوابات (gates) و Ask AI و MCP والتقييمات. صدّر التوثيق حين تحتاج إليه على مضيف لا يشغّل PHP.
ما الذي يُسقطه الموقع الثابت
كل ما يحتاج إلى تطبيق يعمل: Ask AI، وخادم MCP، وتقييم الصفحات، ونقطة نهاية البحث في الخادم، وروابط المشاركة. يطبع الأمر هذه القائمة في كل تشغيل. ويظل البحث يعمل في المتصفح، لكنه لم يعد يطلق SearchPerformed. وكذلك النماذج والطلبات في مكوّناتك المخصّصة، مثل نموذج النشرة البريدية في هذا الموقع، لا تجد تطبيقًا ترسل إليه.
يُصدَّر كما يراه الزائر
يقرأ التصدير موقعك كما يقرؤه قارئ غير مسجّل الدخول، فتبقى المجموعات والإصدارات والصفحات الخاصة خارجه، وتُصيَّر كتل الصلاحيات كما يراها الزائر. وتُحَل المراجع الحية وقت التصدير: صدّر مرة أخرى بعد أن تغيّر المسارات أو الأوامر التي تعرضها.
تفاصيل
ما الذي يكتبه
- index.html
- 404.html
- llms.txt
- skill.md
- sitemap.xml
- larecipe-assets/
- d6a0a96acf5f/
- brand/
- favicon.svg
- build/
- larecipe/
- 3.x/
- index.html
- index.md
- llms.txt
- llms-full.txt
- _search/
- e83bc2e9096f.b3d38bfc22f8.json
- operate/
- caching/
- index.html
- caching.md
- caching/
- 2.x/
- ar/
- الصفحات على شكل
path/index.html، فيقدّم المضيف الثابت/3.x/operate/caching/من دون قاعدة إعادة كتابة، ونسخة Markdown لكل صفحة بجوارها على شكلpath.md. - ملفات الوكلاء:
llms.txtوskill.mdوsitemap.xmlللمجموعة، وllms.txtوllms-full.txtلكل إصدار. والمجموعة التي بلا إصدارات تحصل علىllms-full.txtواحد. - فهرس البحث الذي ينزّله الزوار، واحد لكل إصدار ولغة.
- الواجهة: ملفات LaRecipe المبنية تحت
larecipe-assets/(أوvendor/larecipe/إن كنت نشرتها)، إضافة إلى الصور والملفات الأخرى التي تشير إليها صفحاتك ويقدّمها التطبيق عبر مساراته، وملفات الأنماط المذكورة تحتassets.cssفيlarecipe.json. - ملفات من مجلد
public/تشير إليها الصفحات المصدَّرة، مثل شعارك وأيقونة الموقع، تُنسخ كما هي: ولا تُنسخ أبدًا ملفات PHP ولا الملفات التي تبدأ بنقطة ولا أي شيء خارجpublic/. ويُنسخ بناء مكوّناتك المخصّصة فيpublic/build/larecipe/كاملًا، لأنه يحمّل أجزاءً لا تذكرها أي صفحة. - مدخل المجموعة: صفحتها الرئيسية، أو صفحة صغيرة تعيد التوجيه إلى الإصدار الافتراضي، وصفحة «غير موجودة» الخاصة بها على شكل
404.html، للمجموعات ذات الإصدارات والتي بلا إصدارات على حد سواء.
تُعدَّل الصفحات لتناسب المضيف الثابت: الروابط إلى الصفحات الأخرى تنتهي بشرطة مائلة، وتُفرَّغ رموز CSRF، وتُعلَّم الصفحة على أنها ثابتة، فتحمّل الواجهة كل صفحة كاملة بدلًا من أن تطلب JSON من الخادم. وتُسقط الصفحات المصدَّرة ما كان سيستدعي خادمك: أداة التقييم، و Ask AI، وإجراء «ربط MCP»، وتبليغ اللوحة عن عمليات البحث.
كيف يعمل التصدير كزائر
يرسل التصدير كل طلب عبر نواة HTTP في تطبيقك نفسه، في العملية نفسها، مع الوسائط (middleware) والبوابات وأدوات التصيير لديك. فلا حاجة إلى تشغيل خادم.
- المجموعات الخاصة (حين يكون
access.modeمضبوطًا علىauthأوgate) تُتخطّى وتُذكر في القائمة. فالمضيف الثابت لا يستطيع أن يتحقق ممن يقرأ. - الإصدارات والصفحات الخاصة تُترك خارجًا وتُحصى في القائمة.
- كتل الصلاحيات (
<Can>و<Cannot>) تُصيَّر كما يراها قارئ غير مسجّل الدخول. - المراجع الحية تُحَل وقت التصدير. فجدول
<Route>أو<Artisan>يحوي القيم التي كانت في تطبيقك حين شغّلت التصدير.
تحمل الطلبات وكيل المستخدم LaRecipe-Export/3 (static export)، وتطلق أحداث الزيارات في LaRecipe كأي طلب آخر.
تصدير هذا الموقع
شُغّل أثناء كتابة هذه الصفحات (مع اختصار مجلد الإخراج):
docs ......................................... 126 pages, 126 Markdown twins
Left out of the static site:
- Ask AI: it answers through your server and your AI provider.
- The MCP server: agents connect to a running app.
- Page feedback: it reports to your app as a FeedbackSubmitted event.
- Server search (/_search?q=): the static site searches in the browser.
- Share links: the server checks them.
INFO Wrote 443 files to /private/tmp/…/export.الصفحات الـ 126 هي كل صفحات 3.x و 2.x مرتين: مرة بالإنجليزية ومرة تحت العناوين العربية، حيث تعود الصفحة التي لا ترجمة لها إلى الإنجليزية، كما يحدث في الموقع الحي.
كل الخيارات
larecipe:exportExport public doc sets as a static site
php artisan larecipe:export [--out [OUT]] [--set [SET]] [--base-url [BASE-URL]]| Option | Description | Default |
|---|---|---|
--out=OUT | The folder to write the site into | build/docs |
--set=SET | The doc sets to export (all public sets by default) | |
--base-url=BASE-URL | Where the site will be served from, for example https://docs.acme.dev |
التالي
- البحث: كيف يبحث المتصفح في الفهرس المصدَّر.
- النشر: تقديم التوثيق من تطبيقك بدلًا من ذلك.
- المراجع الحية: ما الذي يُحَل وقت التصدير.