Echa un vistazo a todas nuestras acciones de GitHub: https://actions.cicirello.org/
| Acciones de Github | |
|---|---|
| Estado de construcción | |
| Información de origen | |
| Apoyo |
La acción GitHub de Generate-SitEmap genera un mapa del sitio para un sitio web alojado en las páginas de GitHub, y tiene las siguientes características:
<lastmod> en la entrada del mapa del sitio. Si el archivo se creó durante esa ejecución de flujo de trabajo, pero aún no se ha comprometido, entonces usa la fecha actual (sin embargo, recomendamos si es posible cometer archivos recién creados primero).<meta name="robots" content="noindex"> directivas, excluyendo cualquiera que haga desde el mapa del sitio.Disallow: reglas para User-agent: * .index.html que la URL preferida para la página finaliza con el directorio de encerrado, dejando de lado el index.html . Por ejemplo, en lugar de https://WEBSITE/PATH/index.html , el mapa del sitio contendrá https://WEBSITE/PATH/ en este caso..html de las URL enumeradas en el mapa del sitio.La acción GitHub de Sitemap de Sitemap está diseñada para usarse en combinación con otras acciones de GitHub. Por ejemplo, no compromete y presiona el mapa del sitio generado. Vea los ejemplos para ver ejemplos de combinación con otras acciones en su flujo de trabajo.
La acción de Sitemap Generate es para sitios de páginas GitHub, de modo que el repositorio contiene el HTML, etc. del sitio en sí, independientemente de si el HTML fue generado o no por un generador de sitio estático o escrito a mano. Por ejemplo, lo uso para múltiples sitios de documentación del proyecto Java, donde Javadoc genera la mayor parte del sitio. También lo uso con mi sitio web personal, que se genera con un generador de sitios estático personalizado. Mientras el repositorio del sitio de las páginas GitHub contenga el sitio como se sirve (p. Ej., Archivos HTML, archivos PDF, etc.), es aplicable la acción Generate-SitEmap.
La acción Generate-SitEmap no es para los sitios Jekyll de las páginas GitHub (a menos que genere el sitio localmente y presione la salida HTML en lugar de la reducción, pero ¿por qué harías eso?). En el caso de un sitio de Jekyll de las páginas GitHub, el repositorio contiene Markdown, y no el HTML que se genera a partir de la Markdown. La acción Generate-SitEmap no admite ese caso de uso. Si está buscando generar un mapa del sitio para un sitio web de Jekyll, hay un complemento Jekyll para eso.
El resto de la documentación se organiza en las siguientes secciones:
Esta acción se basa en actions/checkout@v2 con fetch-depth: 0 . Establecer el fetch-depth en 0 para la acción de pago asegura que la acción generate-sitemap tenga acceso al historial de confirmación, que se utiliza para generar las etiquetas <lastmod> en el archivo sitemap.xml . Si en su lugar usa el valor predeterminado al aplicar la acción de pago, las etiquetas <lastmod> serán incorrectas. Así que asegúrese de incluir lo siguiente como un paso en su flujo de trabajo:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root El camino hacia la raíz del sitio web en relación con la raíz del repositorio. Por defecto . es apropiado en la mayoría de los casos, como cada vez que la raíz de sus páginas es la raíz del repositorio en sí. Si está utilizando esto para un sitio de páginas GitHub en el directorio docs , como para un sitio web de documentación, simplemente pase docs para esta entrada.
base-url-path Esta es la URL de su sitio web. Debe especificar esto para que su mapa del sitio sea significativo. El valor predeterminado es https://web.address.of.your.nifty.website/ para fines de demostración.
include-html Este indicador determina si los archivos HTML están incluidos en su mapa del sitio (archivos con una extensión de .html o .htm ). Valor predeterminado: true .
include-pdf Este indicador determina si los archivos PDF están incluidos en su mapa del sitio. Valor predeterminado: true .
additional-extensions Si desea incluir URL en otros tipos de documentos, puede usar la entrada additional-extensions para especificar una lista (separada por espacios) de extensiones de archivos. Por ejemplo, Google (y otros motores de búsqueda) indexan una variedad de otros tipos de archivos, incluidos docx , doc , código fuente para varios lenguajes de programación comunes, etc. Aquí hay un ejemplo:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths La acción excluirá automáticamente cualquier archivo o directorios basado en un archivo robots.txt, si está presente. Pero si tiene directorios adicionales o archivos individuales que desea excluir del mapa del sitio que de otro modo no está bloqueado, puede usar la entrada de exclude-paths para especificar una lista de ellos, separada por cualquier caracteres de espacio en blanco. Por ejemplo, si desea excluir el directorio /exclude-these , así como el archivo individual /nositemap.html , puede usar lo siguiente:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlSi tiene muchos de estos casos para excluir, su flujo de trabajo puede ser más fácil de leer si usa una cadena de múltiples líneas YAML, con lo siguiente:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format Use esto para especificar el formato de mapa del sitio. Valor predeterminado: xml . El sitemap.xml generado por el valor predeterminado contendrá fechas de LastMod que se generan utilizando las últimas fechas de confirmación de cada archivo. Establecer esta entrada en cualquier otra cosa que no sea xml generará un sitemap.txt de texto sin formato. Txt simplemente enumere las URL.
drop-html-extension La entrada drop-html-extension proporciona la opción de excluir la extensión .html de las URL enumeradas en el mapa del sitio. El valor predeterminado es drop-html-extension: false . Si desea usar esta opción, simplemente pase drop-html-extension: true a la acción en su flujo de trabajo. Las páginas de GitHub sirven automáticamente al archivo HTML correspondiente si URL no tiene extensión de archivo. Por ejemplo, si un usuario de su sitio navega a la URL, https://WEBSITE/PATH/filename (sin extensión), GitHub Pages sirve automáticamente https://WEBSITE/PATH/filename.html si existe. El comportamiento predeterminado de la acción generate-sitemap incluye la extensión .html para páginas donde el nombre de archivo tiene la extensión .html . Si prefiere excluir la extensión .html de las URL en su mapa del sitio, luego pase drop-html-extension: true a la acción en su flujo de trabajo. Tenga en cuenta que también debe asegurarse de que cualquier enlace canónico que enumere dentro de los archivos HTML corresponde a su elección aquí.
date-only La entrada date-only controla si los mapache XML incluyen la fecha y hora completas en LastMod, o solo la fecha. El valor predeterminado es date-only: false , que incluye la fecha y hora completas en los campos de LastMod. Si solo desea la fecha en LastMod, use date-only: true .
sitemap-path El mapa del sitio generado se coloca en la raíz del sitio web. Esta salida es la ruta al archivo de mapa del sitio generado en relación con la raíz del repositorio. Si no usó la entrada path-to-root , entonces esta salida debería ser simplemente el nombre del archivo Sitemap ( sitemap.xml o sitemap.txt ).
url-countEsta salida proporciona el número de URL en el mapa del sitio.
excluded-count Esta salida proporciona el número de URL excluidas del mapa del sitio debido a <meta name="robots" content="noindex"> dentro de los archivos HTML, o debido a la exclusión de las directivas en un archivo robots.txt .
Puede ejecutar la acción con un paso en su flujo de trabajo como este:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/En el ejemplo anterior, se utilizó la versión de lanzamiento principal, que garantiza que use la última versión de nivel de parche, incluidas cualquier corrección de errores, etc. Si lo prefiere, también puede usar una versión específica como con:
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ En este ejemplo de flujo de trabajo, utilizamos todas las entradas predeterminadas, excepto la entrada base-url-path . El resultado será un archivo sitemap.xml en la raíz del repositorio. Después de finalizar, simplemente hace eco de las salidas.
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 }}" Este flujo de trabajo de ejemplo ilustra cómo puede usar esto para generar un mapa del sitio para un sitio de páginas en el directorio docs del repositorio. También demuestra excluir archivos pdf y configurar un mapa del sitio de texto sin formato.
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 }}" En este ejemplo de flujo de trabajo, agregamos varios tipos adicionales al mapa del sitio utilizando la entrada additional-extensions . Tenga en cuenta que esto también incluye archivos HTML y archivos PDF, ya que el flujo de trabajo está utilizando los valores predeterminados para include-html e include-pdf , que es un 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 }}" Presumiblemente, desea hacer algo con su mapa del sitio una vez que se genera. En este ejemplo de flujo de trabajo, lo combinamos con la acción Peter-Evans/Create-Pull-Request. Primero, la acción cicirello/generate-sitemap genera el mapa del sitio. Y luego los monitores de peter-evans/create-pull-request para cambios, y si el mapa del sitio cambiado creará una solicitud de extracción.
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. Este primer ejemplo real es del sitio web personal del desarrollador. Uno de los flujos de trabajo, Sitemap-Generation.yml, es estrictamente para generar el mapa del sitio. Se ejecuta con empuje de los archivos *.html o *.pdf a la rama de puesta en escena de este repositorio. Después de generar el mapa del sitio, utiliza Peter-Evans/Create-Pull-Request para generar una solicitud de extracción. También puede reemplazar ese paso con una confirmación y empuje en su lugar. Puede encontrar el mapa del sitio resultante aquí: siteMap.xml.
Este siguiente ejemplo es para el sitio web de documentación de la biblioteca Chips-N-Asssa. El flujo de trabajo Docs.Ml se ejecuta en Push and Pull-Requests de cualquiera de los archivos *.java . Utiliza Maven para ejecutar Javadoc (por ejemplo, con mvn javadoc:javadoc ). Luego copia la documentación de Javadoc generada al Directorio docs , desde el cual se sirve el sitio web de la API. Esto es seguido por otra acción de Github, Cicirello/Javadoc-C-CLEANUP, que hace algunas ediciones al sitio web generado por Javadoc para mejorar la navegación móvil.
A continuación, comete cualquier cambio (sin presionar todavía) producido por Javadoc y/o Javadoc-C-CLEANUP. Después de realizar esos compromisos, ahora ejecuta la acción Generate Sitemap para generar el mapa del sitio. Hace esto después de cometer los cambios del sitio para que las fechas de LastMod sean precisas. Finalmente, usa Peter-Evans/Create-Pull-Request para generar una solicitud de extracción. También puede reemplazar ese paso con una confirmación y empuje en su lugar.
Puede encontrar el mapa del sitio resultante aquí: siteMap.xml.
La acción generate-sitemap usa lo siguiente:
Aquí hay una selección de publicaciones de blog sobre Generate Sitemap en Dev.To:
Puede apoyar el proyecto de varias maneras:
generate-sitemap , considere protagonizar el repositorio.Los scripts y la documentación para esta acción de GitHub se lanzan bajo la licencia MIT.