CLI untuk menghasilkan peta situs XML untuk situs statis dari sistem file lokal.
CLI yang cepat dan mudah untuk menghasilkan peta situs XML atau TXT dengan mencari file .html
di sistem file lokal Anda. Secara otomatis mengecualikan file yang berisi meta noindex
. Dapat juga digunakan sebagai modul Node.
CATATAN: Ini adalah cabang V2. Jika Anda mencari versi yang lebih lama, lihat cabang V1. V2 berisi perubahan yang dapat menyebabkan gangguan . Cari tahu apa yang berubah di halaman rilis.
$ npm i -g static-sitemap-cli
$ sscli -b https://example.com -r public
Ini menjaring direktori public/
untuk file yang cocok **/*.html
, lalu mem-parsing setiap file untuk tag meta robot noindex
- tidak termasuk file tersebut jika tag tersebut ada - dan akhirnya menghasilkan sitemap.xml
dan sitemap.txt
ke dalam public/
akar.
Lihat di bawah untuk contoh penggunaan lebih lanjut.
Usage: sscli [options]
CLI to generate XML sitemaps for static sites from local filesystem
Options:
-b, --base <url> base URL (required)
-r, --root <dir> root working directory (default: ".")
-m, --match <glob...> globs to match (default: ["**/*.html"])
-i, --ignore <glob...> globs to ignore (default: ["404.html"])
-c, --changefreq <glob,changefreq...> comma-separated glob-changefreq pairs
-p, --priority <glob,priority...> comma-separated glob-priority pairs
--no-robots do not parse html files for noindex meta
--concurrent <max> concurrent number of html parsing ops (default: 32)
--no-clean do not use clean URLs
--slash add trailing slash to all URLs
-f, --format <format> sitemap format (choices: "xml", "txt", "both", default: "both")
-o, --stdout output sitemap to stdout instead
-v, --verbose be more verbose
-V, --version output the version number
-h, --help display help for command
Secara default, semua file .html
yang cocok disalurkan melalui parser HTML cepat untuk mendeteksi apakah tag meta noindex
disetel - biasanya dalam bentuk <meta name="robots" content="noindex" />
- dalam hal ini file tersebut dikecualikan dari peta situs yang dihasilkan. Untuk menonaktifkan perilaku ini, berikan opsi --no-robots
.
Untuk kinerja yang lebih baik, pembacaan file dialirkan dalam potongan 1kb
, dan penguraian segera berhenti ketika meta noindex
, atau tag penutup </head>
, terdeteksi ( <body>
tidak diurai). Operasi ini dilakukan secara bersamaan dengan batas kumpulan async sebesar 32. Batas tersebut dapat diubah menggunakan opsi --concurrent
.
Menyembunyikan ekstensi file .html
di peta situs seperti:
./rootDir/index.html -> https://example.com/
./rootDor/foo/index.html -> https://example.com/foo
./rootDor/foo/bar.html -> https://example.com/foo/bar
Diaktifkan secara default; opsi pass --no-clean
untuk menonaktifkan.
Menambahkan garis miring ke semua URL seperti:
./rootDir/index.html -> https://example.com/
./rootDir/foo/index.html -> https://example.com/foo/
./rootDir/foo/bar.html -> https://example.com/foo/bar/
Dinonaktifkan secara default; lewati opsi --slash
untuk mengaktifkan.
CATATAN: Tidak dapat digunakan bersama dengan --no-clean
. Selain itu, garis miring selalu ditambahkan ke domain root.
Flag -m
dan -i
memperbolehkan banyak entri. Secara default, keduanya disetel ke ["**/*.html"]
dan ["404.html"]
masing-masing. Ubah pola glob agar sesuai dengan kasus penggunaan Anda seperti:
$ sscli ... -m '**/*.{html,jpg,png}' -i '404.html' 'ignore/**' 'this/other/specific/file.html'
Flag -c
dan -p
mengizinkan banyak entri dan menerima pasangan glob-*
sebagai input. Pasangan glob-*
adalah pasangan <glob>,<value>
yang dipisahkan koma. Misalnya, pasangan glob-changefreq mungkin terlihat seperti ini:
$ sscli ... -c '**,weekly' 'events/**,daily'
Entri yang terakhir menggantikan yang sebelumnya. Dalam contoh di atas, jalur yang cocok dengan events/**
memiliki frekuensi perubahan daily
, sedangkan jalur lainnya disetel ke weekly
.
Opsi dapat diteruskan melalui properti sscli
di package.json
, atau melalui file JSON .ssclirc
, atau melalui konvensi standar lainnya.
$ sscli -b https://x.com -f txt -o
$ sscli -b https://x.com -r dist -f xml -o > www/sm.xml
$ sscli -b https://x.com/foo -r dist/foo -f xml -o > dist/sitemap.xml
$ sscli -b https://x.com -r dist -m '**/*.{jpg,jpeg,gif,png,bmp,webp,svg}' -f txt
static-sitemap-cli
juga dapat digunakan sebagai modul Node.
import {
generateUrls ,
generateXmlSitemap ,
generateTxtSitemap
} from 'static-sitemap-cli'
const options = {
base : 'https://x.com' ,
root : 'path/to/root' ,
match : [ '**/*html' ] ,
ignore : [ '404.html' ] ,
changefreq : [ ] ,
priority : [ ] ,
robots : true ,
concurrent : 32 ,
clean : true ,
slash : false
}
generateUrls ( options ) . then ( ( urls ) => {
const xmlString = generateXmlSitemap ( urls )
const txtString = generateTxtSitemap ( urls )
. . .
} )
Menggunakan generator peta situs XML dengan sendirinya:
import { generateXmlSitemap } from 'static-sitemap-cli'
const urls = [
{ loc : 'https://x.com/' , lastmod : '2022-02-22' } ,
{ loc : 'https://x.com/about' , lastmod : '2022-02-22' } ,
...
]
const xml = generateXmlSitemap ( urls )
Alur kerja kontribusi Github standar berlaku.
Spesifikasi pengujian ada di test/spec.js
. Untuk menjalankan tes:
$ npm run test
adalah
Perubahan dicatat di halaman rilis.