CLI لإنشاء خرائط مواقع XML للمواقع الثابتة من نظام الملفات المحلي.
واجهة سطر الأوامر (CLI) سريعة وسهلة لإنشاء خرائط مواقع XML أو TXT من خلال البحث في نظام الملفات المحلي الخاص بك عن ملفات .html
. استبعاد الملفات التي تحتوي على تعريف noindex
تلقائيًا. يمكن استخدامها أيضًا كوحدة Node.
ملاحظة: هذا هو فرع V2. إذا كنت تبحث عن الإصدار الأقدم، راجع فرع V1. يحتوي الإصدار الثاني على تغييرات جذرية . تعرف على ما تغير في صفحة الإصدارات.
$ 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>
). يتم تنفيذ هذه العملية بشكل متزامن مع حد تجمع غير متزامن يبلغ 32. يمكن تعديل الحد باستخدام خيار --concurrent
.
يخفي امتداد الملف .html
في ملفات Sitemap كما يلي:
./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"]
على التوالي. قم بتغيير أنماط الكرة الأرضية لتناسب حالة الاستخدام الخاصة بك كما يلي:
$ 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
كوحدة 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 )
. . .
} )
استخدام منشئ خريطة موقع 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
مركز الدراسات الدولي
يتم تسجيل التغييرات في صفحة الإصدارات.