查看我们所有的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许可发布的。