로컬 파일 시스템에서 정적 사이트에 대한 XML 사이트맵을 생성하는 CLI.
로컬 파일 시스템에서 .html
파일을 검색하여 XML 또는 TXT 사이트맵을 생성하는 빠르고 쉬운 CLI입니다. noindex
메타가 포함된 파일을 자동으로 제외합니다. 노드 모듈로도 사용할 수 있습니다.
참고: 이는 V2 분기입니다. 이전 버전을 찾고 있다면 V1 분기를 참조하세요. V2에는 주요 변경 사항이 포함되어 있습니다. 릴리스 페이지에서 변경된 내용을 알아보세요.
$ npm i -g static-sitemap-cli
$ sscli -b https://example.com -r public
이는 **/*.html
과 일치하는 파일을 public/
디렉토리에서 트롤링한 다음 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>
는 구문 분석되지 않습니다). 이 작업은 비동기 풀 제한 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
로 설정되어 있습니다.
옵션은 package.json
의 sscli
속성, .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
ISC
변경 사항은 릴리스 페이지에 기록됩니다.