Découvrez toutes nos actions GitHub: https://actions.cicirello.org/
| Actions github | |
|---|---|
| Statut de construction | |
| Informations sur la source | |
| Soutien |
L'action Generate-sitemap GitHub génère un site de site pour un site Web hébergé sur les pages GitHub et dispose des fonctionnalités suivantes:
<lastmod> dans l'entrée du site. Si le fichier a été créé pendant cette exécution de workflow, mais pas encore engagé, il utilise plutôt la date actuelle (cependant, nous recommandons si possible commettant d'abord des fichiers nouvellement créés).<meta name="robots" content="noindex"> directives, à l'exclusion de celles qui le font du site.Disallow: règles pour User-agent: * .index.html que l'URL préférée de la page se termine par le répertoire d'enclosage, laissant de côté l' index.html . Par exemple, au lieu de https://WEBSITE/PATH/index.html , le site de site contiendra https://WEBSITE/PATH/ dans un tel cas..html à partir des URL répertoriées dans le site.L'action Generate-Sitemap GitHub est conçue pour être utilisée en combinaison avec d'autres actions GitHub. Par exemple, il ne s'engage pas et ne pousse pas le plan du site généré. Voir les exemples pour des exemples de combinaison avec d'autres actions dans votre flux de travail.
L'action de génération de sitemap concerne les sites de pages GitHub, de sorte que le référentiel contient le HTML, etc. du site lui-même, que le HTML ait été généré ou non par un générateur de site statique ou écrit à la main. Par exemple, je l'utilise pour plusieurs sites de documentation du projet Java, où la majeure partie du site est générée par Javadoc. Je l'utilise également avec mon site Web personnel, qui est généré avec un générateur de site statique personnalisé. Tant que le référentiel du site GitHub Pages contient le site comme servi (par exemple, fichiers HTML, fichiers PDF, etc.), l'action Generate-Sitemap est applicable.
L'action Generate-Sitemap n'est pas pour les sites de Jekyll de GitHub Pages (sauf si vous générez le site localement et poussez la sortie HTML au lieu de la marque, mais pourquoi feriez-vous cela?). Dans le cas d'un site GitHub Pages Jekyll, le référentiel contient Markdown, et non le HTML généré à partir de la marque. L'action Generate-Sitemap ne prend pas en charge ce cas d'utilisation. Si vous cherchez à générer un site de site pour un site Web Jekyll, il y a un plugin Jekyll pour cela.
Le reste de la documentation est organisé dans les sections suivantes:
Cette action repose sur actions/checkout@v2 avec fetch-depth: 0 . La définition de la fetch-depth sur 0 pour l'action de paiement garantit que l'action generate-sitemap aura accès à l'historique de la validation, qui est utilisé pour générer les balises <lastmod> dans le fichier sitemap.xml . Si vous utilisez à la place la valeur par défaut lors de l'application de l'action de paiement, les balises <lastmod> seront incorrectes. Assurez-vous donc d'inclure ce qui suit comme étape de votre flux de travail:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root Le chemin vers la racine du site Web par rapport à la racine du référentiel. Défaut . est approprié dans la plupart des cas, comme chaque fois que la racine de votre site de pages est la racine du référentiel lui-même. Si vous utilisez cela pour un site GitHub Pages dans le répertoire docs , comme pour un site Web de documentation, il suffit de passer docs pour cette entrée.
base-url-path Ceci est l'URL de votre site Web. Vous devez spécifier cela pour que votre plan du site soit significatif. Il est par défaut https://web.address.of.your.nifty.website/ à des fins de démonstration.
include-html Cet drapeau détermine si les fichiers HTML sont inclus dans votre plan du site (fichiers avec une extension de .html ou .htm ). Par défaut: true .
include-pdf Cet drapeau détermine si les fichiers PDF sont inclus dans votre plan du site. Par défaut: true .
additional-extensions Si vous souhaitez inclure des URL vers d'autres types de documents, vous pouvez utiliser l'entrée additional-extensions pour spécifier une liste (séparée par des espaces) des extensions de fichiers. Par exemple, Google (et d'autres moteurs de recherche) indexent une variété d'autres types de fichiers, y compris docx , doc , code source pour divers langages de programmation courants, etc. Voici un exemple:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths L'action exclura automatiquement tous les fichiers ou répertoires basés sur un fichier robots.txt, s'il est présent. Mais si vous avez des répertoires supplémentaires ou des fichiers individuels que vous souhaitez exclure du plan du site qui ne sont pas bloqués autrement, vous pouvez utiliser l'entrée exclude-paths pour en spécifier une liste, séparée par des caractères d'espace blanc. Par exemple, si vous souhaitez exclure le répertoire /exclude-these ainsi que le fichier individuel /nositemap.html , vous pouvez utiliser ce qui suit:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlSi vous avez de nombreux cas à exclure, votre flux de travail peut être plus facile à lire si vous utilisez une chaîne multi-ligne YAML, avec les suivantes:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format Utilisez-le pour spécifier le format du site. Par défaut: xml . Le sitemap.xml généré par la valeur par défaut contiendra des dates de lastmod générées à l'aide des dernières dates de validation de chaque fichier. La définition de cette entrée sur autre chose que xml générera un sitemap.txt de texte brut.txt répertoriant simplement les URL.
drop-html-extension L'entrée drop-html-extension fournit l'option pour exclure l'extension .html à partir des URL répertoriées dans le site. La valeur par défaut est drop-html-extension: false . Si vous souhaitez utiliser cette option, passez simplement drop-html-extension: true à l'action de votre flux de travail. Les pages GitHub servent automatiquement le fichier HTML correspondant si l'URL n'a pas d'extension de fichier. Par exemple, si un utilisateur de votre site parcourt l'URL, https://WEBSITE/PATH/filename (sans extension), les pages GitHub servent automatiquement https://WEBSITE/PATH/filename.html s'il existe. Le comportement par défaut de l'action generate-sitemap comprend l'extension .html pour les pages où le nom de fichier a l'extension .html . Si vous préférez exclure l'extension .html des URL de votre plan du site, passez drop-html-extension: true à l'action de votre flux de travail. Notez que vous devez également vous assurer que tous les liens canoniques que vous répertoriez dans les fichiers HTML correspondent à votre choix ici.
date-only Les contrôles d'entrée à date-only si les sitemaps XML incluent la date et l'heure complètes dans LastMod, ou seulement la date. La valeur par défaut est date-only: false , qui inclut la date et l'heure complètes dans les champs LastMod. Si vous ne voulez que la date dans le lastmod, utilisez date-only: true .
sitemap-path Le plan du site généré est placé à l'origine du site Web. Cette sortie est le chemin d'accès au fichier de sitemap généré par rapport à la racine du référentiel. Si vous n'avez pas utilisé l'entrée path-to-root , cette sortie doit simplement être le nom du fichier Sitemap ( sitemap.xml ou sitemap.txt ).
url-countCette sortie fournit le nombre d'URL dans le plan du site.
excluded-count Cette sortie fournit le nombre d'URL exclues du site du site en raison de <meta name="robots" content="noindex"> dans les fichiers html, ou en raison de l'exclusion des directives dans un fichier robots.txt .
Vous pouvez exécuter l'action avec une étape dans votre flux de travail comme ceci:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/Dans l'exemple ci-dessus, la version de version principale a été utilisée, ce qui garantit que vous utiliserez la dernière version du niveau de correctif, y compris les corrections de bogues, etc. Si vous préférez, vous pouvez également utiliser une version spécifique comme avec:
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ Dans cet exemple de workflow, nous utilisons toutes les entrées par défaut à l'exception de l'entrée base-url-path . Le résultat sera un fichier sitemap.xml dans la racine du référentiel. Une fois terminé, il fait ensuite écho aux sorties.
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 }}" Cet exemple de workflow illustre comment vous pouvez l'utiliser pour générer un site de site pour un site de pages dans le répertoire docs du référentiel. Il démontre également l'exclusion des fichiers pdf et la configuration d'un site de sitemap de texte brut.
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 }}" Dans cet exemple de workflow, nous ajoutons divers types supplémentaires au site de sitemap à l'aide de l'entrée additional-extensions . Notez que cela inclut également les fichiers HTML et les fichiers PDF, car le workflow utilise les valeurs par défaut pour include-html et include-pdf , qui par défaut sont 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 }}" Vraisemblablement, vous voulez faire quelque chose avec votre plan de site une fois qu'il est généré. Dans cet exemple de workflow, nous le combinons avec l'action Peter-Evans / Create-Pull-Request. Tout d'abord, l'action cicirello/generate-sitemap génère le site. Et puis les moniteurs peter-evans/create-pull-request pour les modifications, et si le plan du site modifié créera une demande de traction.
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. Ce premier vrai exemple provient du site Web personnel du développeur. L'un des workflows, Sitemap-Generation.yml, est strictement pour générer le plan du site. Il s'exécute sur des poussées de fichiers *.html ou *.pdf à la branche de mise en scène de ce référentiel. Après avoir généré le plan du site, il utilise Peter-Evans / Create-Pull-Request pour générer une demande de traction. Vous pouvez également remplacer cette étape par un engagement et pousser à la place. Vous pouvez trouver le plan du site résultant ici: sitemap.xml.
Cet exemple suivant concerne le site Web de documentation de la bibliothèque Chips-N-Salsa. Le flux de travail docs.yml fonctionne sur les refus push et pull des fichiers *.java . Il utilise Maven pour exécuter Javadoc (par exemple, avec mvn javadoc:javadoc ). Il copie ensuite la documentation Javadoc générée au répertoire docs , à partir duquel le site Web de l'API est servi. Ceci est suivi d'une autre action GitHub, Cicirello / Javadoc-Cleanup, qui apporte quelques modifications au site Web généré par Javadoc pour améliorer la navigation mobile.
Ensuite, il commet des changements (sans pousser encore) produits par Javadoc et / ou Javadoc-Cleanup. Après avoir effectué ces commits, il exécute désormais l'action de génération de sitemap pour générer le plan du site. Il le fait après avoir commis les modifications du site afin que les dates LastMod soient exactes. Enfin, il utilise Peter-Evans / Create-Pull-Request pour générer une demande de traction. Vous pouvez également remplacer cette étape par un engagement et pousser à la place.
Vous pouvez trouver le plan du site résultant ici: sitemap.xml.
L'action generate-sitemap utilise les éléments suivants:
Voici une sélection d'articles de blog sur Generate-Sitemap sur Dev.To:
Vous pouvez soutenir le projet de plusieurs façons:
generate-sitemap utile, envisagez de mettre en vedette le référentiel.Les scripts et la documentation de cette action GitHub sont publiés sous la licence MIT.