ตรวจสอบการกระทำของ GitHub ทั้งหมดของเรา: https://actions.cicirello.org/
| การกระทำของ GitHub | |
|---|---|
| สร้างสถานะ | |
| ข้อมูลแหล่งที่มา | |
| สนับสนุน |
การดำเนินการ Generate-Sitemap GitHub สร้างแผนผังไซต์สำหรับเว็บไซต์ที่โฮสต์บนหน้า GitHub และมีคุณสมบัติดังต่อไปนี้:
<lastmod> ในรายการ SiteMap หากไฟล์ถูกสร้างขึ้นในระหว่างการทำงานของเวิร์กโฟลว์ แต่ยังไม่ได้กระทำแล้วจะใช้วันที่ปัจจุบันแทน (อย่างไรก็ตามเราขอแนะนำหากเป็นไปได้ที่จะใช้ไฟล์ที่สร้างขึ้นใหม่ก่อน)<meta name="robots" content="noindex"> คำสั่งไม่รวมสิ่งใดก็ตามที่ทำจากแผนผังไซต์Disallow: กฎสำหรับ User-agent: *index.html ว่า URL ที่ต้องการสำหรับหน้าจะลงท้ายด้วยไดเรกทอรีที่ปิดล้อมออกจาก index.html ตัวอย่างเช่นแทนที่จะเป็น https://WEBSITE/PATH/index.html , sitemap จะมี https://WEBSITE/PATH/ ในกรณีดังกล่าว.html จาก URL ที่ระบุไว้ใน Sitemapการกระทำ GITHUB Generate-Sitemap ได้รับการออกแบบมาเพื่อใช้ร่วมกับการกระทำของ GitHub อื่น ๆ ตัวอย่างเช่นมันไม่ได้กระทำและผลักดันแผนผังไซต์ที่สร้างขึ้น ดูตัวอย่างสำหรับตัวอย่างของการรวมกับการกระทำอื่น ๆ ในเวิร์กโฟลว์ของคุณ
การกระทำของ Generate-Sitemap นั้นใช้สำหรับไซต์ GitHub Pages ซึ่งที่เก็บมี HTML ฯลฯ ของไซต์เองไม่ว่า HTML จะถูกสร้างขึ้นโดยเครื่องกำเนิดไซต์แบบคงที่หรือเขียนด้วยมือหรือไม่ ตัวอย่างเช่นฉันใช้มันสำหรับไซต์เอกสารโครงการ Java หลายแห่งซึ่งส่วนใหญ่ของไซต์ถูกสร้างขึ้นโดย Javadoc ฉันยังใช้กับเว็บไซต์ส่วนตัวของฉันซึ่งสร้างขึ้นด้วยเครื่องกำเนิดไซต์แบบคงที่ที่กำหนดเอง ตราบใดที่พื้นที่เก็บข้อมูลสำหรับไซต์ GitHub Pages มีไซต์ที่ให้บริการ (เช่นไฟล์ HTML, ไฟล์ PDF ฯลฯ ) การดำเนินการของ Generate-Sitemap นั้นใช้ได้
การกระทำของ Generate-Sitemap ไม่ได้มีไว้สำหรับไซต์ GitHub หน้า Jekyll (เว้นแต่คุณจะสร้างเว็บไซต์ในพื้นที่และผลักดันเอาต์พุต HTML แทนการทำเครื่องหมาย แต่ทำไมคุณถึงทำเช่นนั้น?) ในกรณีของไซต์ GitHub หน้า Jekyll พื้นที่เก็บข้อมูลจะมี markdown และไม่ใช่ HTML ที่สร้างขึ้นจาก markdown การกระทำของ Generate-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 ไปยังเว็บไซต์ของคุณ คุณต้องระบุสิ่งนี้เพื่อให้แผนผังไซต์ของคุณมีความหมาย มันเริ่มต้นเป็น https://web.address.of.your.nifty.website/ เพื่อการสาธิต
include-html ธงนี้กำหนดว่าไฟล์ HTML จะรวมอยู่ใน Sitemap ของคุณ (ไฟล์ที่มีส่วนขยายของ .html หรือ .htm ) ค่าเริ่มต้น: true
include-pdf ธงนี้กำหนดว่าไฟล์ PDF จะรวมอยู่ในแผนผังไซต์ของคุณหรือไม่ ค่าเริ่มต้น: 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 เพื่อระบุรายการของพวกเขาซึ่งคั่นด้วยอักขระ Whitespace ใด ๆ ตัวอย่างเช่นหากคุณต้องการยกเว้นไดเรกทอรี /exclude-these รวมถึงไฟล์แต่ละไฟล์ /nositemap.html คุณสามารถใช้สิ่งต่อไปนี้:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlหากคุณมีหลายกรณีที่จะแยกออกเวิร์กโฟลว์ของคุณอาจอ่านได้ง่ายกว่าถ้าคุณใช้สตริง Multi-line Yaml ด้วยสิ่งต่อไปนี้:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format ใช้สิ่งนี้เพื่อระบุรูปแบบ sitemap ค่าเริ่มต้น: xml sitemap.xml ที่สร้างขึ้นโดยค่าเริ่มต้นจะมีวันที่สุดท้ายที่สร้างขึ้นโดยใช้วันที่ comment สุดท้ายของแต่ละไฟล์ การตั้งค่าอินพุตนี้เป็นสิ่งอื่นที่ไม่ใช่ 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 โดยอัตโนมัติจะให้บริการ https://WEBSITE/PATH/filename.html โดยอัตโนมัติหากมีอยู่ พฤติกรรมเริ่มต้นของการดำเนินการ generate-sitemap รวมถึงส่วนขยาย .html สำหรับหน้าเว็บที่ชื่อไฟล์มีส่วนขยาย .html หากคุณต้องการแยกส่วนขยาย .html ออกจาก URL ในแผนผังไซต์ของคุณให้ส่ง drop-html-extension: true กับการกระทำในเวิร์กโฟลว์ของคุณ โปรดทราบว่าคุณควรตรวจสอบให้แน่ใจว่าลิงค์ใด ๆ ที่คุณแสดงรายการภายในไฟล์ HTML นั้นสอดคล้องกับตัวเลือกของคุณที่นี่
date-only การควบคุมอินพุต date-only ว่าแผนที่ XML นั้นรวมถึงวันที่และเวลาเต็มใน LastMod หรือวันที่เท่านั้น ค่าเริ่มต้นคือ date-only: false ซึ่งรวมถึงวันที่และเวลาเต็มในฟิลด์ LastMod หากคุณต้องการวันที่ใน LastMod เท่านั้นให้ใช้ date-only: true
sitemap-path แผนผังไซต์ที่สร้างขึ้นจะถูกวางไว้ในรูทของเว็บไซต์ เอาต์พุตนี้เป็นพา ธ ไปยังไฟล์ sitemap ที่สร้างขึ้นเทียบกับรูทของที่เก็บ หากคุณไม่ได้ใช้อินพุต path-to-root เอาต์พุตนี้ควรเป็นชื่อของไฟล์ sitemap ( sitemap.xml หรือ sitemap.txt )
url-countผลลัพธ์นี้ให้จำนวน URL ในแผนผังไซต์
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 }}" ตัวอย่างเวิร์กโฟลว์นี้แสดงให้เห็นถึงวิธีการใช้สิ่งนี้เพื่อสร้างแผนผังไซต์สำหรับไซต์หน้าในไดเรกทอรี 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 }}" สันนิษฐานว่าคุณต้องการทำบางสิ่งบางอย่างกับแผนผังไซต์ของคุณเมื่อมีการสร้าง ในเวิร์กโฟลว์ตัวอย่างนี้เรารวมเข้ากับแอ็คชั่น Peter-Evans/Create-Pull-Request ขั้นแรกการกระทำของ cicirello/generate-sitemap จะสร้างแผนผังไซต์ จากนั้นจอภาพ peter-evans/create-pull-request สำหรับการเปลี่ยนแปลงและหากแผนผังเว็บไซต์เปลี่ยนจะสร้างคำขอดึง
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 เป็นอย่างเคร่งครัดสำหรับการสร้างแผนผังไซต์ มันทำงานบน pushes ของไฟล์ *.html หรือ *.pdf ไปยังสาขาการจัดเตรียมของที่เก็บนี้ หลังจากสร้างแผนผังไซต์แล้วจะใช้ Peter-Evans/Create-Pull-Request เพื่อสร้างคำขอดึง นอกจากนี้คุณยังสามารถแทนที่ขั้นตอนนั้นด้วยการกระทำและผลักดันแทน คุณสามารถค้นหาแผนผังไซต์ที่ได้ที่นี่: siteMap.xml
ตัวอย่างต่อไปนี้มีไว้สำหรับเว็บไซต์เอกสารของไลบรารี Chips-N-Salsa เวิร์กโฟลว์ docs.yml ทำงานบนการกดและการตอบกลับของไฟล์ *.java มันใช้ Maven เพื่อเรียกใช้ Javadoc (เช่น mvn javadoc:javadoc ) จากนั้นจะคัดลอกเอกสาร Javadoc ที่สร้างขึ้นไปยังไดเรกทอรี docs ซึ่งมีการให้บริการเว็บไซต์ API ตามด้วยแอ็คชั่น GitHub อื่น Cicirello/Javadoc-Cleanup ซึ่งทำให้การแก้ไขบางอย่างไปยังเว็บไซต์ Javadoc ที่สร้างขึ้นเพื่อปรับปรุงการท่องเว็บมือถือ
ถัดไปจะทำการเปลี่ยนแปลงใด ๆ (โดยไม่ต้องผลักดัน) ที่ผลิตโดย Javadoc และ/หรือ Javadoc-Cleanup หลังจากดำเนินการเหล่านั้นแล้วตอนนี้จะดำเนินการแอ็คชั่น Generate-Sitemap เพื่อสร้างแผนผังไซต์ มันทำสิ่งนี้หลังจากที่มีการเปลี่ยนแปลงเว็บไซต์เพื่อให้วันที่สุดท้ายจะถูกต้อง ในที่สุดก็ใช้ Peter-Evans/Create-Pull-Request เพื่อสร้างคำขอดึง นอกจากนี้คุณยังสามารถแทนที่ขั้นตอนนั้นด้วยการกระทำและผลักดันแทน
คุณสามารถค้นหาแผนผังไซต์ที่ได้ที่นี่: siteMap.xml
การกระทำของ generate-sitemap ใช้สิ่งต่อไปนี้:
นี่คือการเลือกโพสต์บล็อกเกี่ยวกับ Generate-Sitemap บน dev.to:
คุณสามารถสนับสนุนโครงการได้หลายวิธี:
generate-sitemap มีประโยชน์ให้พิจารณานำแสดงโดยที่เก็บสคริปต์และเอกสารประกอบสำหรับการดำเนินการ GitHub นี้ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT