تحقق من كل إجراءات github الخاصة بنا: https://actions.cicirello.org/
| أفعال جيثب | |
|---|---|
| بناء الحالة | |
| معلومات المصدر | |
| يدعم |
يولد إجراء github github internate-sitemap خريطة موقعًا لموقع ويب مستضاف على صفحات github ، ولديه الميزات التالية:
<lastmod> في إدخال Sitemap. إذا تم إنشاء الملف أثناء تشغيل سير العمل هذا ، ولكن لم يتم ارتكابه بعد ، فهو يستخدم بدلاً من ذلك التاريخ الحالي (ومع ذلك ، نوصي إذا أمكن ارتكاب الملفات التي تم إنشاؤها حديثًا أولاً).<meta name="robots" content="noindex"> ، باستثناء أي شيء يفعله من sitemap.Disallow: قواعد User-agent: * .index.html أن عنوان URL المفضل للصفحة ينتهي بالدليل المرفق ، مما يترك index.html . على سبيل المثال ، بدلاً من https://WEBSITE/PATH/index.html ، سيحتوي خريطة sitemap على https://WEBSITE/PATH/ في مثل هذه الحالة..html من عناوين URL المدرجة في Sitemap.تم تصميم عمل github cenderate-sitemap لاستخدامه في تركيبة مع إجراءات github الأخرى. على سبيل المثال ، لا يرتكب ويدفع خريطة sitemap التي تم إنشاؤها. راجع أمثلة أمثلة على الجمع مع الإجراءات الأخرى في سير العمل.
إن إجراء توليد sitemap مخصص لمواقع صفحات github ، بحيث يحتوي المستودع على HTML ، وما إلى ذلك للموقع نفسه ، بغض النظر عما إذا كان HTML قد تم إنشاؤه بواسطة مولد موقع ثابت أو مكتوب باليد. على سبيل المثال ، أستخدمه في مواقع وثائق مشروع Java المتعددة ، حيث يتم إنشاء معظم الموقع بواسطة Javadoc. أستخدمه أيضًا مع موقع الويب الخاص بي ، والذي تم إنشاؤه باستخدام مولد موقع ثابت مخصص. طالما أن مستودع موقع صفحات github يحتوي على الموقع كما يتم تقديمه (على سبيل المثال ، ملفات HTML ، ملفات PDF ، إلخ) ، فإن إجراء sitemap ينطبق.
إن إجراءات sitemap غير مخصصة لصفحات github لمواقع jekyll (إلا إذا قمت بإنشاء الموقع محليًا ودفع إخراج HTML بدلاً من تخفيض التكلفة ، ولكن لماذا تفعل ذلك؟). في حالة موقع GitHub Pages Jekyll ، يحتوي المستودع على تخفيض ، وليس HTML الذي تم إنشاؤه من التخفيض. لا يدعم إجراء توليد sitemap هذه الحالة. إذا كنت تبحث عن إنشاء خريطة سيتيمي لموقع Jekyll ، فهناك مكون إضافي Jekyll لذلك.
يتم تنظيم الجزء المتبقي من الوثائق في الأقسام التالية:
يعتمد هذا الإجراء على actions/checkout@v2 مع fetch-depth: 0 . يضمن ضبط fetch-depth إلى 0 لإجراء الخروج أن إجراء generate-sitemap سيكون له الوصول إلى تاريخ الالتزام ، والذي يتم استخدامه لإنشاء علامات <lastmod> في ملف sitemap.xml . إذا استخدمت بدلاً من ذلك الافتراضي عند تطبيق إجراء الخروج ، فستكون علامات <lastmod> غير صحيحة. لذا تأكد من تضمين ما يلي كخطوة في سير العمل الخاص بك:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root الطريق إلى جذر الموقع بالنسبة إلى جذر المستودع. تقصير . مناسب في معظم الحالات ، مثل كلما يكون جذر موقع الصفحات الخاص بك هو جذر المستودع نفسه. إذا كنت تستخدم هذا لموقع GitHub Pages في دليل docs ، مثل موقع توثيق ، فما عليك سوى تمرير docs لهذا الإدخال.
base-url-path هذا هو عنوان URL لموقع الويب الخاص بك. يجب أن تحدد هذا ليكون خريطة sitemap ذات معنى. إنه افتراضي إلى https://web.address.of.your.nifty.website/ لأغراض التوضيح.
include-html تحدد هذه العلامة ما إذا تم تضمين ملفات HTML في sitemap الخاص بك (ملفات مع امتداد إما .html أو .htm ). الافتراضي: true .
include-pdf يحدد هذا العلامة ما إذا كانت ملفات PDF مدرجة في خريطة sitemap الخاصة بك. الافتراضي: true .
additional-extensions إذا كنت ترغب في تضمين عناوين URL لأنواع المستندات الأخرى ، فيمكنك استخدام إدخال additional-extensions لتحديد قائمة (مفصولة بمسافات) من ملحقات الملفات. على سبيل المثال ، فهرسة Google (وغيرها من محركات البحث) مجموعة متنوعة من أنواع الملفات الأخرى ، بما في ذلك docx ، doc ، رمز المصدر لمختلف لغات البرمجة الشائعة ، إلخ. هنا مثال:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths سوف يستبعد الإجراء تلقائيًا أي ملفات أو أدلة بناءً على ملف RobotS.TXT ، إن وجد. ولكن إذا كان لديك أدلة إضافية أو ملفات فردية ترغب في استبعادها من خريطة sitemap غير محظورة بطريقة أخرى ، فيمكنك استخدام مدخلات exclude-paths لتحديد قائمة منها ، مفصولة بأي شخصيات بيضاء. على سبيل المثال ، إذا كنت ترغب في استبعاد الدليل /exclude-these وكذلك الملف الفردي /nositemap.html ، فيمكنك استخدام ما يلي:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlإذا كان لديك العديد من الحالات التي يجب استبعادها ، فقد يكون من السهل قراءة تدفق سير العمل الخاص بك إذا كنت تستخدم سلسلة متعددة الخطوط ، بما يلي:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format استخدم هذا لتحديد تنسيق Sitemap. الافتراضي: xml . سيحتوي sitemap.xml الذي تم إنشاؤه بواسطة الافتراضي على تواريخ LastMod التي يتم إنشاؤها باستخدام تواريخ الالتزام الأخيرة لكل ملف. سيؤدي تعيين هذا الإدخال إلى أي شيء آخر غير xml إلى إنشاء نص عادي sitemap.txt ببساطة سرد عناوين URL.
drop-html-extension يوفر إدخال drop-html-extension خيار استبعاد تمديد .html من عناوين URL المدرجة في Sitemap. الافتراضي هو drop-html-extension: false . إذا كنت ترغب في استخدام هذا الخيار ، فما عليك سوى تمرير drop-html-extension: true للعمل في سير العمل الخاص بك. يخدم صفحات GitHub تلقائيًا ملف HTML المقابل إذا لم يكن عنوان URL ليس له ملحق. على سبيل المثال ، إذا استعرض أحد مستخدمي موقعك على عنوان URL ، https://WEBSITE/PATH/filename (بدون امتداد) ، فإن GitHub Pages يخدم تلقائيًا https://WEBSITE/PATH/filename.html إذا كانت موجودة. يتضمن السلوك الافتراضي لعمل generate-sitemap امتداد .html للصفحات التي يكون فيها اسم الملف يحتوي على امتداد .html . إذا كنت تفضل استبعاد امتداد .html من عناوين URL في خريطة sitemap الخاصة بك ، ثم تمرير drop-html-extension: true في الإجراء في سير العمل الخاص بك. لاحظ أنه يجب عليك أيضًا التأكد من أن أي روابط قانونية تدرجها ضمن ملفات HTML تتوافق مع اختيارك هنا.
date-only تتضمن شرائط إدخال date-only ما إذا كانت ملفات Sitemap XML تتضمن التاريخ والوقت الكامل في LastMod ، أو التاريخ فقط. الافتراضي هو date-only: false ، والذي يتضمن التاريخ والوقت الكامل في حقول LastMod. إذا كنت تريد فقط التاريخ في LastMod ، فاستخدم date-only: true .
sitemap-path يتم وضع خريطة sitemap التي تم إنشاؤها في جذر الموقع. هذا الإخراج هو المسار إلى ملف sitemap الذي تم إنشاؤه بالنسبة إلى جذر المستودع. إذا لم تستخدم إدخال path-to-root ، فيجب أن يكون هذا الإخراج ببساطة اسم ملف sitemap ( sitemap.xml أو sitemap.txt ).
url-countيوفر هذا الإخراج عدد عناوين URL في خريطة sitemap.
excluded-count يوفر هذا الإخراج عدد عناوين URL المستبعدة من sitemap بسبب إما <meta name="robots" content="noindex"> ضمن ملفات HTML ، أو بسبب الاستبعاد من التوجيهات في ملف robots.txt .
يمكنك تشغيل الإجراء بخطوة في سير العمل مثل هذا:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/في المثال أعلاه ، تم استخدام إصدار الإصدار الرئيسي ، والذي يضمن أنك ستستخدم أحدث إصدار من مستوى التصحيح ، بما في ذلك أي إصلاحات أخطاء ، وما إلى ذلك ، إذا كنت تفضل ذلك ، يمكنك أيضًا استخدام إصدار محدد مثل:
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ في هذا المثال سير العمل ، نستخدم جميع المدخلات الافتراضية باستثناء إدخال base-url-path . ستكون النتيجة ملف sitemap.xml في جذر المستودع. بعد الانتهاء ، ثم يردد ببساطة المخرجات.
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" يوضح سير العمل هذا المثال كيف يمكنك استخدام هذا لإنشاء خريطة sitemp لموقع الصفحات في دليل docs للمستودع. كما يوضح استبعاد ملفات pdf ، وتكوين خريطة خريطة نصية عادي.
name : Generate API sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
path-to-root : docs
include-pdf : false
sitemap-format : txt
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" في هذا المثال سير العمل ، نضيف أنواعًا إضافية مختلفة إلى خريطة sitemap باستخدام إدخال additional-extensions . لاحظ أن هذا يتضمن أيضًا ملفات HTML وملفات PDF نظرًا لأن سير العمل يستخدم القيم الافتراضية include-html include-pdf ، والتي الافتراضي على true .
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
additional-extensions : doc docx ppt pptx xls xlsx
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" من المفترض أنك تريد أن تفعل شيئًا باستخدام خريطة sitemap بمجرد إنشاؤه. في هذا المثال سير العمل ، ندمجه مع الإجراء Peter-Evans/Create-Pull-Request. أولاً ، يولد عمل cicirello/generate-sitemap خريطة sitemap. ثم peter-evans/create-pull-request بمراقبة التغييرات ، وإذا تم تغيير خريطة Sitemap ، فستقوم بإنشاء طلب سحب.
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
- name : Create Pull Request
uses : peter-evans/create-pull-request@v3
with :
title : " Automated sitemap update "
body : >
Sitemap updated by the [generate-sitemap](https://github.com/cicirello/generate-sitemap)
GitHub action. Automated pull-request generated by the
[create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action. هذا المثال الحقيقي الأول هو من الموقع الشخصي للمطور. واحدة من سير العمل ، sitemap-generation.yml ، هو بدقة لتوليد الخريطة sitem. يتم تشغيله على ملفات إما *.html أو *.pdf إلى فرع التدريج لهذا المستودع. بعد إنشاء خريطة Sitemap ، يستخدم Peter-Evans/Create-Pull-Request لإنشاء طلب سحب. يمكنك أيضًا استبدال هذه الخطوة بالالتزام والدفع بدلاً من ذلك. يمكنك العثور على sitemap الناتج هنا: sitemap.xml.
هذا المثال التالي هو موقع الوثائق لمكتبة Chips-N-Salsa. يعمل سير عمل docs.yml على مستحضرات الدفع والرسائل من ملفات *.java . يستخدم Maven لتشغيل Javadoc (على سبيل المثال ، مع mvn javadoc:javadoc ). ثم يقوم بنسخ وثائق Javadoc التي تم إنشاؤها إلى دليل docs ، الذي يتم تقديم موقع API من خلاله. ويلي ذلك إجراء GitHub آخر ، Cicirello/Javadoc-Cleanup ، والذي يقوم ببعض التعديلات على موقع Javadoc الذي تم إنشاؤه لتحسين تصفح الهاتف المحمول.
بعد ذلك ، يرتكب أي تغييرات (دون الدفع بعد) التي تنتجها Javadoc و/أو Javadoc-Cleanup. بعد أداء هذه الالتزامات ، تقوم الآن بتشغيل إجراء sitemap لإنشاء خريطة sitemap. يقوم بذلك بعد ارتكاب تغييرات الموقع بحيث تكون تواريخ LastMod دقيقة. أخيرًا ، يستخدم Peter-Evans/Create-Pull-Request لإنشاء طلب سحب. يمكنك أيضًا استبدال هذه الخطوة بالالتزام والدفع بدلاً من ذلك.
يمكنك العثور على sitemap الناتج هنا: sitemap.xml.
يستخدم إجراء generate-sitemap ما يلي:
فيما يلي مجموعة مختارة من منشورات المدونة حول إنشاء sitemap على dev.to:
يمكنك دعم المشروع بعدة طرق:
generate-sitemap مفيدًا ، فكر في بطولة المستودع.يتم إصدار البرامج النصية والوثائق الخاصة بهذا الإجراء github بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.