CLI เพื่อสร้างแผนผังเว็บไซต์ XML สำหรับไซต์คงที่จากระบบไฟล์ในเครื่อง
CLI ที่ง่ายและรวดเร็วในการสร้างแผนผังเว็บไซต์ XML หรือ TXT โดยการค้นหาไฟล์ .html
ในระบบไฟล์ในเครื่องของคุณ ยกเว้นไฟล์ที่มีเมตา noindex
โดยอัตโนมัติ ยังสามารถใช้เป็นโมดูลโหนดได้
หมายเหตุ: นี่คือสาขา V2 หากคุณกำลังมองหาเวอร์ชันเก่า โปรดดูสาขา V1 V2 มี การเปลี่ยนแปลงที่ไม่สมบูรณ์ ค้นหาสิ่งที่เปลี่ยนแปลงไปในหน้าการเผยแพร่
$ npm i -g static-sitemap-cli
$ sscli -b https://example.com -r public
วิธีนี้จะดึงข้อมูลไดเรกทอรี public/
เพื่อหาไฟล์ที่ตรงกับ **/*.html
จากนั้นแยกวิเคราะห์แต่ละไฟล์สำหรับเมตาแท็กโรบ็อต noindex
โดยไม่รวมไฟล์นั้นหากมีแท็กอยู่ และสุดท้ายจะสร้างทั้ง sitemap.xml
และ sitemap.txt
ลงใน public/
ราก.
ดูด้านล่างสำหรับตัวอย่างการใช้งานเพิ่มเติม
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
ตามค่าเริ่มต้น ไฟล์ .html
ที่ตรงกันทั้งหมดจะถูกไพพ์ผ่านตัวแยกวิเคราะห์ HTML ที่รวดเร็วเพื่อตรวจสอบว่ามีการตั้งค่าเมตาแท็ก noindex
โดยทั่วไปจะอยู่ในรูปแบบของ <meta name="robots" content="noindex" />
- ซึ่งในกรณีนี้ ไฟล์นั้น ถูกแยกออกจากแผนผังไซต์ที่สร้างขึ้น หากต้องการปิดใช้งานพฤติกรรมนี้ ให้ส่งตัวเลือก --no-robots
เพื่อประสิทธิภาพที่ดีขึ้น การอ่านไฟล์จะถูกสตรีมเป็นชิ้น 1kb
และการแยกวิเคราะห์จะหยุดทันทีเมื่อตรวจพบเมตา noindex
หรือแท็กปิด </head>
(ไม่ได้แยกวิเคราะห์ <body>
) การดำเนินการนี้ดำเนินการพร้อมกันโดยมีขีดจำกัดพูล async ที่ 32 ขีดจำกัดสามารถปรับแต่งได้โดยใช้ตัวเลือก --concurrent
ซ่อนนามสกุลไฟล์ .html
ในแผนผังเว็บไซต์ดังนี้:
./rootDir/index.html -> https://example.com/
./rootDor/foo/index.html -> https://example.com/foo
./rootDor/foo/bar.html -> https://example.com/foo/bar
เปิดใช้งานตามค่าเริ่มต้น ตัวเลือกผ่าน --no-clean
เพื่อปิดการใช้งาน
เพิ่มเครื่องหมายทับต่อท้าย URL ทั้งหมดดังนี้:
./rootDir/index.html -> https://example.com/
./rootDir/foo/index.html -> https://example.com/foo/
./rootDir/foo/bar.html -> https://example.com/foo/bar/
ปิดใช้งานโดยค่าเริ่มต้น ตัวเลือกผ่าน --slash
เพื่อเปิดใช้งาน
หมายเหตุ: ไม่สามารถใช้ร่วมกับ --no-clean
นอกจากนี้ เครื่องหมายสแลชต่อท้ายจะถูกเพิ่มไปยังโดเมนรากเสมอ
แฟล็ก -m
และ -i
อนุญาตให้มีหลายรายการ โดยค่าเริ่มต้น จะถูกตั้งค่าเป็น ["**/*.html"]
และ ["404.html"]
ตามลำดับ เปลี่ยนรูปแบบ glob ให้เหมาะกับกรณีการใช้งานของคุณดังนี้:
$ sscli ... -m '**/*.{html,jpg,png}' -i '404.html' 'ignore/**' 'this/other/specific/file.html'
แฟล็ก -c
และ -p
อนุญาตให้มีหลายรายการและยอมรับคู่ glob-*
เป็นอินพุต คู่ glob-*
คือคู่ที่คั่นด้วยเครื่องหมายจุลภาคของ <glob>,<value>
ตัวอย่างเช่น คู่ glob-changefreq อาจมีลักษณะดังนี้:
$ sscli ... -c '**,weekly' 'events/**,daily'
รายการหลังจะแทนที่รายการแรก ในตัวอย่างข้างต้น เส้นทางที่ตรงกับ events/**
มีความถี่การเปลี่ยนแปลง daily
ในขณะที่ส่วนที่เหลือตั้งค่าเป็น weekly
ตัวเลือกสามารถส่งผ่านคุณสมบัติ sscli
ใน package.json
หรือผ่านไฟล์ . .ssclirc
JSON หรือผ่านแบบแผนมาตรฐานอื่นๆ
$ 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
ยังสามารถใช้เป็นโมดูลโหนดได้
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 )
. . .
} )
การใช้ตัวสร้างแผนผังเว็บไซต์ XML ด้วยตัวเอง:
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 )
ใช้เวิร์กโฟลว์การสนับสนุน Github มาตรฐาน
รายละเอียดการทดสอบอยู่ที่ test/spec.js
หากต้องการรันการทดสอบ:
$ npm run test
ไอเอสซี
การเปลี่ยนแปลงจะถูกบันทึกไว้ในหน้าการเผยแพร่