CLI pour générer des plans de site XML pour les sites statiques à partir du système de fichiers local.
CLI rapide et simple pour générer des plans de site XML ou TXT en recherchant des fichiers .html
dans votre système de fichiers local. Exclure automatiquement les fichiers contenant la méta noindex
. Peut également être utilisé comme module Node.
REMARQUE : Il s'agit de la branche V2. Si vous recherchez l'ancienne version, consultez la branche V1. La V2 contient des modifications importantes . Découvrez ce qui a changé sur la page des versions.
$ npm i -g static-sitemap-cli
$ sscli -b https://example.com -r public
Cela parcourt le répertoire public/
à la recherche des fichiers correspondant à **/*.html
, puis analyse chaque fichier pour la balise méta des robots noindex
- à l'exclusion de ce fichier si la balise existe - et génère enfin à la fois sitemap.xml
et sitemap.txt
dans le public/
racine.
Voir ci-dessous pour plus d'exemples d'utilisation.
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
Par défaut, tous les fichiers .html
correspondants sont transmis via un analyseur HTML rapide pour détecter si la balise méta noindex
est définie - généralement sous la forme de <meta name="robots" content="noindex" />
- auquel cas ce fichier est exclu du plan du site généré. Pour désactiver ce comportement, transmettez l'option --no-robots
.
Pour de meilleures performances, les lectures de fichiers sont diffusées en morceaux 1kb
et l'analyse s'arrête immédiatement lorsque la méta noindex
ou la balise de fermeture </head>
est détectée (le <body>
n'est pas analysé). Cette opération est effectuée simultanément avec une limite de pool asynchrone de 32. La limite peut être modifiée à l'aide de l'option --concurrent
.
Masque l'extension de fichier .html
dans les plans de site comme suit :
./rootDir/index.html -> https://example.com/
./rootDor/foo/index.html -> https://example.com/foo
./rootDor/foo/bar.html -> https://example.com/foo/bar
Activé par défaut ; passez l'option --no-clean
pour désactiver.
Ajoute une barre oblique finale à toutes les URL comme ceci :
./rootDir/index.html -> https://example.com/
./rootDir/foo/index.html -> https://example.com/foo/
./rootDir/foo/bar.html -> https://example.com/foo/bar/
Désactivé par défaut ; passez l'option --slash
pour l'activer.
REMARQUE : ne peut pas être utilisé avec --no-clean
. De plus, des barres obliques finales sont toujours ajoutées aux domaines racine.
Les indicateurs -m
et -i
autorisent plusieurs entrées. Par défaut, ils sont respectivement définis sur ["**/*.html"]
et ["404.html"]
. Modifiez les modèles globaux en fonction de votre cas d'utilisation, comme suit :
$ sscli ... -m '**/*.{html,jpg,png}' -i '404.html' 'ignore/**' 'this/other/specific/file.html'
Les indicateurs -c
et -p
autorisent plusieurs entrées et acceptent les paires glob-*
en entrée. Une paire glob-*
est une paire de <glob>,<value>
séparés par des virgules. Par exemple, une paire glob-changefreq peut ressembler à ceci :
$ sscli ... -c '**,weekly' 'events/**,daily'
Les dernières entrées remplacent les premières. Dans l'exemple ci-dessus, les chemins correspondant à events/**
ont une fréquence de changement daily
, tandis que les autres sont définis sur weekly
.
Les options peuvent être transmises via la propriété sscli
dans package.json
, ou via un fichier .ssclirc
JSON, ou via d'autres conventions standard.
$ 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
peut également être utilisé comme module 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 )
. . .
} )
Utilisation du générateur de plan de site XML seul :
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 )
Le workflow de contribution Github standard s'applique.
Les spécifications de test se trouvent sur test/spec.js
. Pour exécuter les tests :
$ npm run test
ISC
Les modifications sont enregistrées dans la page des versions.