Lihat semua tindakan GitHub kami: https://actions.cicirello.org/
| Tindakan GitHub | |
|---|---|
| Bangun status | |
| Info sumber | |
| Mendukung |
Tindakan Ghithub Generate-Sitemap menghasilkan sitemap untuk situs web yang di-host di halaman github, dan memiliki fitur berikut:
<lastmod> di entri Sitemap. Jika file dibuat selama alur kerja itu berjalan, tetapi belum berkomitmen, maka ia malah menggunakan tanggal saat ini (namun, kami sarankan jika memungkinkan melakukan file yang baru dibuat terlebih dahulu).<meta name="robots" content="noindex"> arahan, tidak termasuk apa pun yang dilakukan dari sitemap.Disallow: aturan untuk User-agent: * .index.html bahwa URL yang disukai untuk halaman diakhiri dengan direktori yang melampirkan, meninggalkan index.html . Misalnya, alih -alih https://WEBSITE/PATH/index.html , sitemap akan berisi https://WEBSITE/PATH/ dalam kasus seperti itu..html dari URL yang tercantum dalam Sitemap.Tindakan Ghitub Generate-Sitemap dirancang untuk digunakan dalam kombinasi dengan tindakan GitHub lainnya. Misalnya, itu tidak berkomitmen dan mendorong sitemap yang dihasilkan. Lihat contoh untuk contoh menggabungkan dengan tindakan lain dalam alur kerja Anda.
Tindakan Generate-Sitemap adalah untuk situs halaman GitHub, sehingga repositori berisi HTML, dll dari situs itu sendiri, terlepas dari apakah HTML dihasilkan oleh generator situs statis atau ditulis dengan tangan. Misalnya, saya menggunakannya untuk beberapa situs dokumentasi proyek Java, di mana sebagian besar situs dihasilkan oleh Javadoc. Saya juga menggunakannya dengan situs web pribadi saya, yang dihasilkan dengan generator situs statis khusus. Selama repositori untuk situs GitHub Pages berisi situs sebagaimana disajikan (misalnya, file HTML, file PDF, dll), tindakan menghasilkan-sitemap berlaku.
Tindakan Generate-Sitemap bukan untuk situs GitHub Jekyll (kecuali Anda menghasilkan situs secara lokal dan mendorong output HTML alih-alih penurunan harga, tetapi mengapa Anda melakukan itu?). Dalam kasus situs GitHub Jekyll, repositori berisi markdown, dan bukan HTML yang dihasilkan dari markdown. Tindakan Generate-Sitemap tidak mendukung kasus penggunaan itu. Jika Anda ingin membuat sitemap untuk situs web Jekyll, ada plugin Jekyll untuk itu.
Sisa dari dokumentasi diatur ke dalam bagian berikut:
Tindakan ini bergantung pada actions/checkout@v2 dengan fetch-depth: 0 . Menetapkan fetch-depth ke 0 untuk tindakan checkout memastikan bahwa tindakan generate-sitemap akan memiliki akses ke riwayat komit, yang digunakan untuk menghasilkan tag <lastmod> dalam file sitemap.xml . Jika Anda malah menggunakan default saat menerapkan tindakan checkout, tag <lastmod> akan salah. Jadi pastikan untuk memasukkan yang berikut sebagai langkah dalam alur kerja Anda:
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root Jalur ke akar situs web relatif terhadap akar repositori. Bawaan . sesuai dalam kebanyakan kasus, seperti setiap kali akar situs halaman Anda adalah akar dari repositori itu sendiri. Jika Anda menggunakan ini untuk situs halaman GitHub di direktori docs , seperti untuk situs web dokumentasi, maka cukup lulus docs untuk input ini.
base-url-path Ini adalah URL ke situs web Anda. Anda harus menentukan ini agar sitemap Anda bermakna. Itu default ke https://web.address.of.your.nifty.website/ untuk tujuan demonstrasi.
include-html Bendera ini menentukan apakah file HTML disertakan dalam sitemap Anda (file dengan ekstensi .html atau .htm ). Default: true .
include-pdf Bendera ini menentukan apakah file PDF disertakan dalam sitemap Anda. Default: true .
additional-extensions Jika Anda ingin memasukkan URL ke jenis dokumen lain, Anda dapat menggunakan input additional-extensions untuk menentukan daftar (dipisahkan oleh spasi) ekstensi file. Misalnya, Google (dan mesin pencari lainnya) mengindeks berbagai jenis file lainnya, termasuk docx , doc , kode sumber untuk berbagai bahasa pemrograman umum, dll. Berikut adalah contoh:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths Tindakan akan secara otomatis mengecualikan file atau direktori apa pun berdasarkan file robots.txt, jika ada. Tetapi jika Anda memiliki direktori tambahan atau file individual yang ingin Anda kecualikan dari sitemap yang tidak diblokir, Anda dapat menggunakan input exclude-paths untuk menentukan daftarnya, dipisahkan oleh karakter spasi putih apa pun. Misalnya, jika Anda ingin mengecualikan direktori /exclude-these serta file masing-masing /nositemap.html , Anda dapat menggunakan yang berikut:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.htmlJika Anda memiliki banyak kasus seperti itu untuk dikecualikan, alur kerja Anda mungkin lebih mudah dibaca jika Anda menggunakan string multi-line YAML, dengan yang berikut:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format Gunakan ini untuk menentukan format sitemap. Default: xml . sitemap.xml yang dihasilkan oleh default akan berisi tanggal terakhir yang dihasilkan menggunakan tanggal komit terakhir dari setiap file. Mengatur input ini ke apa pun selain xml akan menghasilkan sitemap.txt teks biasa.txt Cukup mencantumkan URL.
drop-html-extension Input drop-html-extension menyediakan opsi untuk mengecualikan ekstensi .html dari URL yang tercantum dalam sitemap. Standarnya adalah drop-html-extension: false . Jika Anda ingin menggunakan opsi ini, cukup lewati drop-html-extension: true dengan tindakan dalam alur kerja Anda. Halaman GitHub secara otomatis melayani file HTML yang sesuai jika URL tidak memiliki ekstensi file. Misalnya, jika pengguna situs Anda menelusuri ke URL, https://WEBSITE/PATH/filename (tanpa ekstensi), halaman github secara otomatis melayani https://WEBSITE/PATH/filename.html jika ada. Perilaku default dari tindakan generate-sitemap mencakup ekstensi .html untuk halaman di mana nama file memiliki ekstensi .html . Jika Anda lebih suka mengecualikan ekstensi .html dari URL di sitemap Anda, maka lewati drop-html-extension: true dengan tindakan dalam alur kerja Anda. Perhatikan bahwa Anda juga harus memastikan bahwa setiap tautan kanonik yang Anda daftarkan dalam file HTML sesuai dengan pilihan Anda di sini.
date-only Input date-only mengontrol apakah sitemap XML mencakup tanggal dan waktu penuh di LastMod, atau hanya tanggal. Standarnya date-only: false , yang mencakup tanggal dan waktu penuh di bidang terakhir. Jika Anda hanya menginginkan tanggal di LastMod, maka gunakan date-only: true .
sitemap-path Sitemap yang dihasilkan ditempatkan di akar situs web. Output ini adalah jalur ke file sitemap yang dihasilkan relatif terhadap akar repositori. Jika Anda tidak menggunakan input path-to-root , maka output ini hanya harus menjadi nama file sitemap ( sitemap.xml atau sitemap.txt ).
url-countOutput ini memberikan jumlah URL di sitemap.
excluded-count Output ini memberikan jumlah URL yang dikecualikan dari sitemap karena salah satu <meta name="robots" content="noindex"> dalam file html, atau karena pengecualian dari arahan dalam file robots.txt .
Anda dapat menjalankan aksi dengan langkah dalam alur kerja Anda seperti ini:
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/Dalam contoh di atas, versi rilis utama digunakan, yang memastikan bahwa Anda akan menggunakan rilis level tambalan terbaru, termasuk perbaikan bug apa pun, dll. Jika Anda lebih suka, Anda juga dapat menggunakan versi tertentu seperti dengan:
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ Dalam contoh alur kerja ini, kami menggunakan semua input default kecuali untuk input base-url-path . Hasilnya akan menjadi file sitemap.xml di root repositori. Setelah selesai, itu hanya menggemakan output.
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 }}" Contoh alur kerja ini menggambarkan bagaimana Anda dapat menggunakan ini untuk menghasilkan sitemap untuk situs halaman di direktori docs repositori. Ini juga menunjukkan tidak termasuk file pdf , dan mengkonfigurasi sitemap teks biasa.
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 }}" Dalam contoh alur kerja ini, kami menambahkan berbagai jenis tambahan ke sitemap menggunakan input additional-extensions . Perhatikan bahwa ini juga termasuk file HTML dan file PDF karena alur kerja menggunakan nilai default untuk include-html dan include-pdf , yang keduanya default menjadi 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 }}" Agaknya Anda ingin melakukan sesuatu dengan sitemap Anda setelah dihasilkan. Dalam contoh alur kerja ini, kami menggabungkannya dengan aksi Peter-Evans/Create-Pull-Request. Pertama, tindakan cicirello/generate-sitemap menghasilkan sitemap. Dan kemudian monitor peter-evans/create-pull-request untuk perubahan, dan jika sitemap berubah akan membuat permintaan tarik.
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. Contoh nyata pertama ini adalah dari situs web pribadi pengembang. Salah satu alur kerja, sitemap-generation.yml, hanya untuk menghasilkan sitemap. Ini berjalan pada dorongan file *.html atau *.pdf ke cabang pementasan repositori ini. Setelah menghasilkan sitemap, ia menggunakan Peter-Evans/Create-Pull-Request untuk menghasilkan permintaan tarik. Anda juga dapat mengganti langkah itu dengan komit dan mendorong sebagai gantinya. Anda dapat menemukan sitemap yang dihasilkan di sini: sitemap.xml.
Contoh selanjutnya ini adalah untuk situs web dokumentasi perpustakaan Chips-N-Salsa. Alur kerja DOCS.YML berjalan pada permintaan dorong dan tarik dari file *.java . Menggunakan Maven untuk menjalankan Javadoc (misalnya, dengan mvn javadoc:javadoc ). Kemudian menyalin dokumentasi Javadoc yang dihasilkan ke direktori docs , dari mana situs web API dilayani. Ini diikuti oleh tindakan GitHub lain, Cicirello/Javadoc-Cleanup, yang membuat beberapa suntingan ke situs web Javadoc yang dihasilkan untuk meningkatkan penelusuran seluler.
Selanjutnya, ia melakukan perubahan apa pun (tanpa mendorong) yang diproduksi oleh Javadoc dan/atau Javadoc-Cleanup. Setelah melakukan komitmen itu, sekarang menjalankan tindakan generate-sitemap untuk menghasilkan sitemap. Ini melakukan ini setelah melakukan perubahan situs sehingga tanggal LastMod akan akurat. Akhirnya, ia menggunakan Peter-Evans/Create-Pull-Request untuk menghasilkan permintaan tarik. Anda juga dapat mengganti langkah itu dengan komit dan mendorong sebagai gantinya.
Anda dapat menemukan sitemap yang dihasilkan di sini: sitemap.xml.
Tindakan generate-sitemap menggunakan yang berikut:
Berikut adalah pilihan posting blog tentang generate-sitemap di dev.to:
Anda dapat mendukung proyek dalam beberapa cara:
generate-sitemap berguna, pertimbangkan membintangi repositori.Skrip dan dokumentasi untuk tindakan GitHub ini dirilis di bawah lisensi MIT.