查看我們所有的github動作:https://actions.cicirello.org/
| github動作 | |
|---|---|
| 建立狀態 | |
| 來源信息 | |
| 支持 |
生成的sitemap github操作為託管在github頁面上的網站生成站點地圖,並具有以下功能:
<lastmod>標籤。如果在工作流程運行期間創建文件但尚未提交的文件,則使用當前日期(但是,如果可能的話,請先提交新創建的文件)。<meta name="robots" content="noindex">指令,不包括從站點地圖中進行的任何操作。Disallow: User-agent: * 。index.html的文件,頁面的首選URL以封閉目錄結束,則刪除了index.html 。例如,在這種情況下,SiteMap代替https://WEBSITE/PATH/index.html ,將包含https://WEBSITE/PATH/ 。.html擴展從SiteMap列出的URL排除。生成的sitemap github動作旨在與其他github動作結合使用。例如,它不會提交並推動生成的站點地圖。有關將工作流程中其他操作結合的示例,請參見示例。
生成的sitemap操作是針對github頁面站點的,因此存儲庫包含站點本身的HTML等,而不管HTML是由靜態站點發生器生成還是手工編寫的HTML。例如,我將其用於多個Java項目文檔網站,其中大部分網站都是由Javadoc生成的。我還將其與我的個人網站一起使用,該網站是由自定義靜態網站生成器生成的。只要GitHub頁面網站的存儲庫包含所服務的站點(例如,HTML文件,PDF文件等),則適用生成sitemap操作。
生成的sitemap操作不適合github頁面jekyll站點(除非您在本地生成該站點並推動HTML輸出而不是降價,但是為什麼要這樣做?)。對於GitHub頁面Jekyll網站,存儲庫包含Markdown,而不是從Markdown生成的HTML。生成的sitemap操作不支持該用例。如果您想為Jekyll網站生成站點地圖,則有一個Jekyll插件。
該文檔的其餘部分被組織為以下各節:
此操作依賴於fetch-depth: 0的actions/checkout@v2 。 fetch-depth設置為Checkout操作的0確保generate-sitemap操作可以訪問“提交歷史記錄”,該記錄用於在sitemap.xml文件中生成<lastmod>標籤。如果您在應用結帳操作時使用默認值,則<lastmod>標籤將不正確。因此,請確保將以下內容作為您的工作流程中的一步:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root相對於存儲庫的根目錄的根源的路徑。預設.在大多數情況下,例如,每當頁面的根網站是存儲庫本身的根源時,都是合適的。如果您將其用於docs目錄中的github頁面網站,例如文檔網站,則只需通過此輸入即可通過docs 。
base-url-path這是您網站的URL。您必須將其指定,以使您的站點地圖有意義。它默認為https://web.address.of.your.nifty.website/用於演示目的。
include-html此標誌確定html文件是否包含在您的站點地圖中(具有.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該操作將自動根據機器人.txt文件排除任何文件或目錄。但是,如果您有其他目錄或單個文件,您希望將其排除在其他未被阻止的站點地圖中,則可以使用exclude-paths輸入來指定它們的列表,並由任何空間字符隔開。例如,如果您希望排除目錄/exclude-these以及單個文件/nositemap.html ,則可以使用以下內容:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.html如果您有許多這樣的情況要排除,則如果使用YAML多行字符串,則您的工作流程可能更容易閱讀:以下內容:
- 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輸入提供了從站點地圖中列出的URL排除.html擴展的選項。默認值為drop-html-extension: false 。如果您想使用此選項,只需通過drop-html-extension: true處理工作流程中的操作即可。如果URL沒有文件擴展名,則GitHub頁面將自動提供相應的HTML文件。例如,如果您的網站的用戶瀏覽到URL, https://WEBSITE/PATH/filename (沒有擴展名),github頁面自動提供https://WEBSITE/PATH/filename.html如果存在。 generate-sitemap操作的默認行為包括文件名具有.html擴展名的頁面的.html擴展名。如果您希望從站點地圖中的URL中排除.html擴展名,請傳遞drop-html-extension: true處理工作流程中的操作。請注意,您還應確保您在HTML文件中列出的任何規範鏈接都與您的選擇相對應。
date-only date-only輸入控制XML站點地圖是在LastMod中包含完整日期和時間,還是僅包括日期。默認值是date-only: false ,其中包括LastMod字段中的全日期和時間。如果您只想在LastMod中的日期,請使用date-only: true 。
sitemap-path生成的站點地圖放置在網站的根源中。此輸出是相對於存儲庫的根的生成站點文件文件的路徑。如果您不使用path-to-root輸入”,則此輸出應僅僅是SiteMap文件( sitemap.xml或sitemap.txt )的名稱。
url-count該輸出提供站點地圖中的URL數量。
excluded-count該輸出提供了由於<meta name="robots" content="noindex">在HTML文件中或由於robots.txt文件中的指令中的排除,因此提供了從站點地圖中排除的URL數量。
您可以在工作流程中執行操作:
- 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 }}"在此示例工作流程中,我們使用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監視器進行更改,如果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-Feareration.yml的工作流之一嚴格用於生成站點地圖。它運行到*.html或*.pdf文件的推送到此存儲庫的登台分支。生成站點地圖後,它使用peter-evans/create-pull-Request生成拉動請求。您也可以用提交和推動替換該步驟。您可以在此處找到最終的站點地圖:sitemap.xml。
下一個示例是用於Chips-N-Salsa庫的文檔網站。 docs.yml工作流程在push和pull- *.java上運行。它使用Maven運行Javadoc(例如,使用mvn javadoc:javadoc )。然後,它將生成的Javadoc文檔複製到docs目錄,從該目錄提供了API網站。接下來是另一個GitHub動作,Cicirello/Javadoc-Cleanup,該動作對Javadoc生成的網站進行了一些編輯,以改善移動瀏覽。
接下來,它進行了Javadoc和/或Javadoc-Cleanup產生的任何更改(尚未推動)。執行這些提交後,它現在運行生成sitemap操作以生成站點地圖。在承諾站點變化後,它可以做到這一點,以使LastMod日期準確。最後,它使用Peter-Evans/Create-Pull-Request生成拉動請求。您也可以用提交和推動替換該步驟。
您可以在此處找到最終的站點地圖:sitemap.xml。
generate-sitemap操作使用以下內容:
這是有關Dev.to上生成sitemap的博客文章的選擇:
您可以通過多種方式支持該項目:
generate-sitemap操作有用,請考慮主演存儲庫。此GitHub操作的腳本和文檔是根據MIT許可發布的。