Schauen Sie sich alle unsere Github -Aktionen an: https://actions.cicirello.org/
| Github -Aktionen | |
|---|---|
| Status erstellen | |
| Quellinformationen | |
| Unterstützung |
Die GitHub-Aktion für Generate-Sitemap-Aktion generiert eine Sitemap für eine Website, die auf Github-Seiten gehostet wird, und verfügt über die folgenden Funktionen:
<lastmod> -Tag im Sitemap -Eintrag zu generieren. Wenn die Datei während dieses Workflow -Laufs erstellt wurde, aber noch nicht festgelegt ist, verwendet sie stattdessen das aktuelle Datum (wir empfehlen jedoch, zuerst neu erstellte Dateien zu begehen).<meta name="robots" content="noindex"> Anweisungen, ausgenommen alle, die aus der Sitemap ausführen.Disallow: Regeln für User-agent: * .index.html Verzeichnis endet und die index.html auslässt. Anstelle von https://WEBSITE/PATH/index.html enthält die Sitemap beispielsweise https://WEBSITE/PATH/ in einem solchen Fall..html -Erweiterungen von URLs, die in Sitemap aufgeführt sind.Die GitHub-Aktion für Generate-Sitemap ist so konzipiert, dass sie in Kombination mit anderen Github-Aktionen verwendet werden soll. Zum Beispiel wird die generierte Sitemap nicht angezeigt und verschoben. Beispiele für Beispiele für die Kombination mit anderen Aktionen in Ihrem Workflow finden Sie in den Beispielen.
Die Aktion für generierende Sitemap gilt für GitHub-Seiten-Sites, so dass das Repository die HTML usw. der Site selbst enthält, unabhängig davon, ob die HTML von einem statischen Site-Generator erzeugt oder von Hand geschrieben wurde. Zum Beispiel verwende ich es für mehrere Java -Projektdokumentationsseiten, auf denen der größte Teil der Website von Javadoc generiert wird. Ich benutze es auch mit meiner persönlichen Website, die mit einem benutzerdefinierten statischen Site -Generator generiert wird. Solange das Repository für die GitHub-Seiten-Site die Site enthält (z. B. HTML-Dateien, PDF-Dateien usw.), gilt die Aktion für Generate-Sitemap.
Die Aktion für generierende Sitemap gilt nicht für GitHub-Seiten Jekyll-Websites (es sei denn, Sie erzeugen die Site lokal und drücken die HTML-Ausgabe anstelle des Markus, aber warum sollten Sie das tun?). Bei einer Github -Seiten Jekyll -Site enthält das Repository Markdown und nicht die HTML, die aus dem Markdown generiert wird. Die Aktion für generierende Sitemap unterstützt diesen Anwendungsfall nicht. Wenn Sie eine Sitemap für eine Jekyll -Website generieren möchten, gibt es dafür ein Jekyll -Plugin.
Der Rest der Dokumentation ist in die folgenden Abschnitte organisiert:
Diese Aktion basiert auf actions/checkout@v2 mit fetch-depth: 0 . Durch das Einstellen der fetch-depth auf 0 für die Checkout-Aktion wird sichergestellt, dass die Aktion generate-sitemap auf den Commit-Historie zugreifen wird, der zum Generieren der <lastmod> -Tags in der Datei sitemap.xml verwendet wird. Wenn Sie stattdessen die Standardeinstellung verwenden, wenn Sie die Checkout -Aktion anwenden, sind die <lastmod> Tags falsch. Nehmen Sie also unbedingt den folgenden Schritt in Ihren Workflow ein:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root Der Pfad zur Stammweite der Website relativ zum Stammwurzel des Repositorys. Standard . ist in den meisten Fällen angemessen, z. B. wenn die Wurzel Ihrer Seiten der Website die Wurzel des Repositorys selbst ist. Wenn Sie dies für eine GitHub -Seiten -Website im docs -Verzeichnis verwenden, z. B. für eine Dokumentations -Website, geben Sie nur docs für diese Eingabe weiter.
base-url-path Dies ist die URL zu Ihrer Website. Sie müssen dies angeben, damit Ihre Sitemap aussagekräftig ist. Es ist standardmäßig https://web.address.of.your.nifty.website/ für Demonstrationszwecke.
include-html Dieses Flag bestimmt, ob HTML -Dateien in Ihrer Sitemap enthalten sind (Dateien mit einer Erweiterung von .html oder .htm ). Standard: true .
include-pdf Dieses Flag bestimmt, ob PDF -Dateien in Ihrem Sitemap enthalten sind. Standard: true .
additional-extensions Wenn Sie URLs in andere Dokumenttypen einfügen möchten, können Sie die Eingabe additional-extensions verwenden, um eine Liste (durch Leerzeichen getrennt) von Dateierweiterungen anzugeben. Beispielsweise indexieren Google (und andere Suchmaschinen) eine Vielzahl anderer Dateitypen, einschließlich docx , doc , Quellcode für verschiedene gängige Programmiersprachen usw. Hier finden Sie ein Beispiel:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths Die Aktion schließt automatisch alle Dateien oder Verzeichnisse basierend auf einer Robots.txt -Datei aus, falls vorhanden. Wenn Sie jedoch über zusätzliche Verzeichnisse oder einzelne Dateien verfügen, die Sie von der Sitemap ausschließen möchten, die nicht anderweitig blockiert sind, können Sie die Eingabe exclude-paths verwenden, um eine Liste davon anzugeben, die von Whitespace-Zeichen getrennt sind. Wenn Sie beispielsweise das Verzeichnis /exclude-these sowie die einzelnen Datei /nositemap.html ausschließen möchten, können Sie Folgendes verwenden:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlWenn Sie viele solcher Fälle ausschließen müssen, kann Ihr Workflow leichter zu lesen sein, wenn Sie eine YAML-Multi-Line-Zeichenfolge verwenden, mit Folgendes:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format Verwenden Sie dies, um das Sitemap -Format anzugeben. Standard: xml . Die vom Standard generierte sitemap.xml enthält LastMOD -Daten, die mit den letzten Festungsdaten jeder Datei generiert werden. Wenn Sie diese Eingabe auf etwas anderes als xml festlegen, generiert er eine einfache Text sitemap.txt in der einfach die URLs aufgelistet sind.
drop-html-extension Die drop-html-extension Eingabe bietet die Option, .html Erweiterung aus URLs auszuschließen, die in der Sitemap aufgeführt sind. Die Standardeinstellung ist drop-html-extension: false . Wenn Sie diese Option verwenden möchten, übergeben Sie einfach drop-html-extension: true für die Aktion in Ihrem Workflow. GitHub -Seiten dient automatisch der entsprechenden HTML -Datei, wenn die URL keine Dateierweiterung hat. Wenn beispielsweise ein Benutzer Ihrer Website zur URL, https://WEBSITE/PATH/filename (ohne Erweiterung), serviert, serviert GitHub -Seiten automatisch https://WEBSITE/PATH/filename.html wenn es existiert. Das Standardverhalten der Aktion generate-sitemap enthält die .html Erweiterung für Seiten, auf denen der Dateiname die Erweiterung .html hat. Wenn Sie es vorziehen, die .html Erweiterung aus den URLs in Ihrer Sitemap auszuschließen, geben Sie drop-html-extension: true . Beachten Sie, dass Sie auch sicherstellen sollten, dass alle kanonischen Links, die Sie in den HTML -Dateien auflisten, Ihrer Auswahl hier entsprechen.
date-only Die Eingabetaste date-only steuert, ob XML-Sitemaps das vollständige Datum und die Uhrzeit in LastMod oder nur das Datum enthalten. Die Standardeinstellung ist date-only: false , das das vollständige Datum und die volle Uhrzeit in den Feldern von LastMod enthält. Wenn Sie das Datum nur im LastMod möchten, verwenden Sie date-only: true .
sitemap-path Die generierte Sitemap befindet sich in der Stammweite der Website. Diese Ausgabe ist der Pfad zur generierten Sitemap -Datei relativ zum Root des Repositorys. Wenn Sie die path-to-root Eingabe nicht verwendet haben, sollte diese Ausgabe einfach der Name der Sitemap-Datei ( sitemap.xml oder sitemap.txt ) sein.
url-countDiese Ausgabe liefert die Anzahl der URLs in der Sitemap.
excluded-count Diese Ausgabe liefert die Anzahl der von der Sitemap ausgeschlossenen URLs aufgrund von <meta name="robots" content="noindex"> innerhalb von HTML -Dateien oder aufgrund des Ausschlusses von Anweisungen in einer robots.txt -Datei.
Sie können die Aktion mit einem Schritt in Ihrem Workflow wie folgt ausführen:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/Im obigen Beispiel wurde die Hauptversion von Release verwendet, die sicherstellt, dass Sie die neueste Patch -Level -Version, einschließlich aller Fehlerbehebungen usw., verwenden. Wenn Sie es vorziehen, können Sie auch eine bestimmte Version verwenden, wie z. B. mit:
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ In diesem Beispiel-Workflow verwenden wir alle Standardeingänge mit Ausnahme des base-url-path Pfadeingangs. Das Ergebnis ist eine sitemap.xml -Datei im Stamm des Repositorys. Nach Abschluss wiedergibt es einfach die Ausgänge.
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 }}" Dieser Beispiel -Workflow zeigt, wie Sie dies verwenden können, um eine Sitemap für eine Seiten -Site im docs -Verzeichnis des Repositorys zu generieren. Es zeigt auch, dass pdf -Dateien ausgeschlossen werden und eine einfache Text -Sitemap konfiguriert werden.
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 }}" In diesem Beispiel-Workflow fügen wir der Sitemap verschiedene zusätzliche Typen hinzu, indem wir die additional-extensions . Beachten Sie, dass dies auch HTML-Dateien und PDF-Dateien umfasst, da der Workflow die Standardwerte für include-html und include-pdf verwendet, die beide standardmäßig 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 }}" Vermutlich möchten Sie etwas mit Ihrem Sitemap machen, sobald es erzeugt wird. In diesem Beispiel-Workflow kombinieren wir ihn mit der Aktion Peter-Evans/Create-Pull-Request. Zunächst erzeugt die cicirello/generate-sitemap -Aktion die Sitemap. Und dann die peter-evans/create-pull-request -Monitore für Änderungen, und wenn sich die geänderte Sitemap geändert hat, wird eine Pull-Anfrage erstellt.
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. Dieses erste wirkliche Beispiel stammt von der persönlichen Website des Entwicklers. Einer der Workflows, Sitemap-Generation.yml, ist ausschließlich die Erzeugung der Sitemap. Es läuft auf Pushes von entweder *.html oder *.pdf -Dateien zum Staging -Zweig dieses Repositorys. Nach dem Erstellen der Sitemap verwendet es Peter-Evans/Create-Pull-Request, um eine Pull-Anforderung zu erstellen. Sie können diesen Schritt auch durch ein Commit und Push ersetzen. Die resultierende Sitemap finden Sie hier: Sitemap.xml.
Dieses nächste Beispiel ist für die Dokumentationswebsite der Chips-N-Salsa-Bibliothek. Der Workflow docs.yml läuft auf Push und Pull-Requests von beiden *.java Dateien. Es verwendet Maven, um Javadoc zu betreiben (z. B. mit mvn javadoc:javadoc ). Anschließend kopiert es die generierte Javadoc -Dokumentation in das docs -Verzeichnis, aus dem die API -Website bedient wird. Es folgt eine weitere Github-Aktion, Cicirello/Javadoc-Cleanup, die einige Änderungen an der von Javadoc generierten Website zur Verbesserung des mobilen Browsings vornimmt.
Als nächstes verpflichtet es Änderungen (ohne noch voranzutreiben) von Javadoc und/oder Javadoc-Cleanup. Nachdem diese Commits durchgeführt wurden, wird nun die Aktion für generierende Sitemap ausgeführt, um die Sitemap zu generieren. Dies geschieht, nachdem sich die Website -Änderungen so begangen hat, dass die LastMod -Daten korrekt sind. Schließlich verwendet es Peter-Evans/Create-Pull-Request, um eine Pull-Anfrage zu generieren. Sie können diesen Schritt auch durch ein Commit und Push ersetzen.
Die resultierende Sitemap finden Sie hier: Sitemap.xml.
Die Aktion generate-sitemap verwendet Folgendes:
Hier finden Sie eine Auswahl von Blog-Posts über Generate-Sitemap auf dev.to:
Sie können das Projekt auf verschiedene Weise unterstützen:
generate-sitemap -Aktion nützlich finden, sollten Sie das Repository in Betracht ziehen.Die Skripte und Dokumentation für diese GitHub -Aktion werden unter der MIT -Lizenz veröffentlicht.