すべてのGithubアクションをご覧ください:https://actions.cicirello.org/
| githubアクション | |
|---|---|
| ステータスを構築します | |
| ソース情報 | |
| サポート |
Generate-Sitemap GitHubアクションは、GitHubページでホストされているWebサイトのサイトマップを生成し、次の機能を備えています。
<lastmod>タグを生成します。ファイルがそのワークフローの実行中に作成されたがまだコミットされていない場合、代わりに現在の日付を使用します(ただし、最初に新しく作成されたファイルをコミットすることを可能にすることをお勧めします)。<meta name="robots" content="noindex">ディレクティブのHTMLファイルのコンテンツをチェックします。Disallow:解析しますUser-agent: *index.htmlのファイルの場合、ページの優先URLがエンコリングディレクトリで終了し、 index.html除外することを想定しています。たとえば、 https://WEBSITE/PATH/index.htmlの代わりに、サイトマップにはそのような場合にhttps://WEBSITE/PATH/が含まれます。.html拡張子を除外するオプションを提供します。Generate-Sitemap GitHubアクションは、他のGitHubアクションと組み合わせて使用するように設計されています。たとえば、生成されたサイトマップをコミットしてプッシュしません。ワークフローの他のアクションと組み合わせる例については、例を参照してください。
Generate-sitemapアクションは、Githubページサイトのものであり、HTMLが静的サイトジェネレーターによって生成されるか、手で書かれているかどうかにかかわらず、リポジトリにサイト自体のHTMLなどを含むようにします。たとえば、複数のJavaプロジェクトドキュメントサイトに使用します。このサイトでは、ほとんどのサイトがJavadocによって生成されます。また、カスタム静的サイトジェネレーターで生成された個人Webサイトでも使用します。 GitHubページサイトのリポジトリにサービスが提供されているサイト(HTMLファイル、PDFファイルなど)が含まれている限り、Generate-Sitemapアクションが適用されます。
Generate-Sitemapアクションは、GithubページJekyllサイト向けではありません(サイトをローカルで生成し、Markdownの代わりにHTML出力をプッシュしない限り、なぜそうするのですか?)。 GithubページJekyllサイトの場合、リポジトリにはマークダウンが含まれており、マークダウンから生成されるHTMLではなく。 Generate-Sitemapアクションは、そのユースケースをサポートしていません。 JekyllのWebサイトのサイトマップを生成したい場合は、そのためのJekyllプラグインがあります。
ドキュメントの残りの部分は、次のセクションに編成されています。
このアクションはfetch-depth: 0のactions/checkout@v2に依存しています。チェックアウトアクション<lastmod> fetch-depthを0に設定すると、 generate-sitemapアクションがsitemap.xml履歴にアクセスできるようになります。代わりに、チェックアウトアクションを適用するときにデフォルトを使用する場合、 <lastmod>タグは正しくありません。ワークフローのステップとして、以下を必ず含めてください。
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-rootリポジトリのルートに対するウェブサイトのルートへのパス。デフォルト.ほとんどの場合、ページサイトのルートがリポジトリ自体のルートである場合など、ほとんどの場合。ドキュメントWebサイトなど、 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アクションは、存在する場合、robots.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これを使用して、サイトマップ形式を指定します。デフォルト: xml 。デフォルトで生成されたsitemap.xmlには、各ファイルの最後のコミット日を使用して生成されるlastMod日付が含まれます。この入力をxml以外に設定すると、URLをリストする単純なテキストsitemap.txtが生成されます。
drop-html-extension drop-html-extension入力は、サイトマップにリストされているURLから.html拡張子を除外するオプションを提供します。デフォルトはdrop-html-extension: falseです。このオプションを使用する場合は、 drop-html-extension: trueに渡すだけです。 githubページには、URLにファイル拡張子がない場合、対応するHTMLファイルが自動的に提供されます。たとえば、サイトのユーザーがURL( https://WEBSITE/PATH/filename )にブラウズを参照する場合(拡張機能なし)、githubページがhttps://WEBSITE/PATH/filename.htmlが存在する場合は自動的に提供します。 generate-sitemapアクションのデフォルトの動作には、ファイル名に.html拡張子があるページの.html拡張子が含まれます。 SiteMapのURLから.html拡張機能を除外する場合は、 drop-html-extension: true 。また、HTMLファイル内にリストされている標準的なリンクがここで選択したことに対応することを確認する必要があることに注意してください。
date-only date-only入力は、XMLサイトマップにLastModの完全な日付と時刻が含まれているか、日付のみが含まれているかどうかを制御します。デフォルトはdate-only: false 。これには、LastModフィールドの完全な日付と時間が含まれます。 LastModの日付のみが必要な場合は、 date-only: true使用します。
sitemap-path生成されたサイトマップは、Webサイトのルートに配置されます。この出力は、リポジトリのルートに対する生成されたサイトマップファイルへのパスです。 path-to-root入力を使用しなかった場合、この出力はSiteMapファイル( sitemap.xmlまたはsitemap.txt )の名前である必要があります。
url-countこの出力は、サイトマップ内のURLの数を提供します。
excluded-countこの出力は、HTMLファイル内の<meta name="robots" content="noindex"> 、または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入力を使用して、サイトマップにさまざまな追加タイプを追加します。ワークフローはinclude-htmlおよびinclude-pdfのデフォルト値を使用しているため、これにはHTMLファイルと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モニターは変更のために、そしてサイトマップが変更された場合、プル要求が作成されます。
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. この最初の例は、開発者の個人的なウェブサイトからのものです。ワークフローの1つであるSiteMap-Generation.ymlは、サイトマップを生成するために厳密です。このリポジトリのステージングブランチに*.htmlまたは*.pdfファイルのいずれかのプッシュで実行されます。サイトマップを生成した後、Peter-Evans/Create-Pull-Requestを使用してプルリクエストを生成します。そのステップを代わりにコミットとプッシュに置き換えることもできます。結果のサイトマップは、sitemap.xmlで見つけることができます。
この次の例は、Chips-N-Salsa LibraryのドキュメントWebサイト用です。 docs.ymlワークフローは、 *.javaファイルのいずれかのプッシュとプルリクエストで実行されます。 Mavenを使用してJavadocを実行します(たとえば、 mvn javadoc:javadocを使用)。次に、生成されたJavadocドキュメントをdocsディレクトリにコピーし、そこからAPI Webサイトが提供されます。これに続いて、別のGithubアクション、Cicirello/Javadoc-Cleanupが続きます。これにより、Javadoc生成されたWebサイトをいくつか編集して、モバイルブラウジングを改善します。
次に、Javadocおよび/またはJavadoc-Cleanupによって生成された変更を(まだプッシュせずに)コミットします。これらのコミットを実行した後、サイトマップを生成するためにGenerate-Sitemapアクションを実行します。 LastModの日付が正確になるように、サイトの変更をコミットした後にこれを行います。最後に、Peter-Evans/Create-Pull-Requestを使用してプルリクエストを生成します。そのステップを代わりにコミットとプッシュに置き換えることもできます。
結果のサイトマップは、sitemap.xmlで見つけることができます。
generate-sitemapアクションは、次のものを使用します。
Dev.toのGenerate-Sitemapに関するブログ投稿の選択を次に示します。
プロジェクトをさまざまな方法でサポートできます。
generate-sitemapアクションが役立つと思う場合は、リポジトリを主演させることを検討してください。このGitHubアクションのスクリプトとドキュメントは、MITライセンスの下でリリースされます。