Хөгжүүлэлт
Хөгжүүлэлтийн гарын авлага
Баримтжуулалтыг зөвхөн website/docs (Англи) дотор шинэчил. website/i18n/<locale>/… дахь орчуулгууд автоматаар үүсдэг тул гараар бүү зас. Локализацийн агуулгыг шинэчлэхэд орчуулгын даалгавруудыг (жиш., make translate_web_docs_batch) ашигла.
Урьдчилсан шаардлага
- Node.js 22+ болон npm (Node 22-оор туршсан)
- Thunderbird 128 ESR эсвэл түүнээс шинэ (гараар тест хийхэд)
Төслийн бүтэц (өндөр түвшний)
- Root: савлагааны скрипт
distribution_zip_packer.sh, баримт бичиг, скриншотууд sources/: үндсэн нэмэлтийн код (background, тохиргоо/попап UI, манифестууд, дүрснүүд)tests/: Vitest иж бүрдэлwebsite/: Docusaurus баримт (i18n ньwebsite/i18n/de/...дор)
Суулгалт ба хэрэгслүүд
- Root хамаарлуудыг суулгах:
npm ci - Баримт (заавал биш):
cd website && npm ci - Зорилтуудыг олж мэдэх:
make help
Шууд хөгжүүлэлт (web‑ext run)
- Firefox Desktop дээр хурдан давталт (зөвхөн UI smoke‑тест):
npx web-ext run --source-dir sources --target=firefox-desktop- Thunderbird дээр ажиллуулах (MailExtensions-д илүү тохиромжтой):
npx web-ext run --source-dir sources --start-url about:addons --firefox-binary "$(command -v thunderbird || echo /path/to/thunderbird)"- Зөвлөмжүүд:
- Thunderbird‑ийн Алдааны консолыг нээж байлга (Tools → Developer Tools → Error Console).
- MV3 event хуудсууд идэвхгүй үед түдгэлздэг; код өөрчлөгдсөний дараа нэмэлтийг дахин ачаал, эсвэл web‑ext автоматаар дахин ачаалуулахыг зөвшөөр.
- Зөвхөн Firefox‑д байдаг зарим зан үйл өөр; API‑ийн нийцлийг баталгаажуулахын тулд үргэлж Thunderbird дээр шалга.
- Thunderbird бинар замууд (жишээ):
- Linux:
thunderbird(ж.,/usr/bin/thunderbird) - macOS:
/Applications/Thunderbird.app/Contents/MacOS/thunderbird - Windows:
"C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe" - Профайлыг тусгаарлах: Өдөр тутмын тохиргоонд нөлөөлөхгүй байхын тулд хөгжүүлэлтэд тусдаа Thunderbird профайл ашигла.
Make зорилтууд (үсгийн дарааллаар)
Makefile нь түгээмэл хөгжүүлэлтийн урсгалыг стандартчилдаг. make help‑г хүссэн үедээ ажиллуулж бүх зорилтын нэг мөрийн хураангуйг хар.
Зөвлөмж: зорилт өгөхгүйгээр make ажиллуулбал зорилт сонгох энгийн Whiptail цэс нээгдэнэ.
| Зорилт | Нэг мөрийн тайлбар |
|---|---|
clean | Орон нутгийн build/preview артефактуудыг устгах (tmp/, web-local-preview/, website/build/). |
commit | Форматлах, тестүүдийг ажиллуулах (i18n багтсан), өөрчлөлтийн тэмдэглэлийг шинэчлэх, commit & push хийх. |
eslint | ESLint‑ийг flat конфигээр (npm run -s lint:eslint) ажиллуулах. |
help | Бүх зорилтыг нэг мөрийн тайлбартайгаар (эрэмбэлсэн) жагсаах. |
lint | sources/ дээр web‑ext lint (түр manifest; ZIP‑үүдийг үл тоомсорлоно; ноцтой бус). |
menu | Харилцан үйлчлэлтэй цэснээс зорилт болон нэмэлт аргумент сонгох. |
pack | ATN ба LOCAL ZIP‑уудыг бүтээх (linter ажиллуулна; packer скриптийг дуудаж). |
prettier | Репог газар дээр нь форматлах (өөрчлөлт бичнэ). |
prettier_check | Prettier‑ийг шалгах горимоор (бичилтгүй); дахин формат хэрэгтэй бол алдаа өгнө. |
prettier_write | prettier‑ийн синоним. |
test | Prettier (write), ESLint, дараа нь Vitest (coverage тохируулсан бол). |
test_i18n | Зөвхөн i18n тестүүд: нэмэлтийн placeholder/нийцэл + вэбсайтын нийцэл. |
translate_app | translation_app‑ийн синоним. |
translation_app | Аппын UI мөрүүдийг sources/_locales/en/messages.json‑оос хөрвүүлэх. |
translate_web_docs_batch | Вэбсайтын баримтыг OpenAI Batch API‑аар орчуулах (илүүд үзнэ). |
translate_web_docs_sync | Вэбсайтын баримтыг синхрон хөрвүүлэх (уламжлалт, багц бус). |
translate_web_index | translation_web_index‑ийн синоним. |
translation_web_index | Нүүр/навигац/доод колонтитрын UI‑г орчуулах (website/i18n/en/code.json → .../<lang>/code.json). |
web_build | Баримтыг website/build руу build хийх (--locales / BUILD_LOCALES дэмжинэ). |
web_build_linkcheck | Офлайнд аюулгүй холбоос шалгалт (алсын HTTP[S]‑г алгасна). |
web_build_local_preview | Орон нутгийн gh‑pages урьдчилсан харалт; 8080–8090 дээр автоматаар үйлчлэх; сонголтоор тест/холбоос шалгалт. |
web_push_github | website/build‑г gh-pages салбар руу түлхэх. |
Сонголтын синтакс
- Сонголтууд дамжуулахад
make <command> OPTS="…"ашигла (ишлэл ашиглахыг зөвлөе). Доорх зорилт бүр жишээ хэрэглээ г харуулна.
--
Локалийн build зөвлөмжүүд
- Локалийн дэд хэсгийг build хийх:
BUILD_LOCALES="en de"тохируул, эсвэл вэб зорилтуудадOPTS="--locales en,de"дамжуул. - Тодорхой локалийг урьдчилан харах:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/.
Build ба багцлах
- ZIP‑ууд бүтээх:
make pack - Репо root‑д ATN болон LOCAL ZIP‑уудыг үүсгэнэ (артефактуудыг гараар бүү зас)
- Зөвлөмж: багцлахаас өмнө
sources/manifest_ATN.jsonболонsources/manifest_LOCAL.json‑д хувилбарыг шинэчил - Гараар суулгах (dev): Thunderbird → Tools → Add‑ons and Themes → gear → Install Add‑on From File… → баригдсан ZIP‑ийг сонго
Тест
- Бүрэн иж бүрдэл:
make test(Vitest) - Хамрах хүрээ (заавал биш):
npm i -D @vitest/coverage-v8make test‑г ажиллуулаад; HTML тайлангcoverage/index.htmlдээр нээнэ үү- Зөвхөн i18n:
make test_i18n(UI түлхүүр/placeholder/гарчиг + вэбсайтын локаль бүрийн баримт бүрийн нийцэл, id/title/sidebar_label шалгалттай)
Дебаг ба лог
- Алдааны консоль: Tools → Developer Tools → Error Console
- Гүйлтэд дэлгэрэнгүй логуудыг асаах/унтраах:
- Идэвхжүүлэх:
messenger.storage.local.set({ debug: true }) - Идэвхгүй болгох:
messenger.storage.local.set({ debug: false }) - Хариу бичих/илгээх үед логууд харагдана
Баримт (вэбсайт)
- Хөгжүүлэлтийн сервер:
cd website && npm run start - Статик сайтыг build хийх:
cd website && npm run build - Make эквивалентууд (үсгийн дарааллаар):
make web_build,make web_build_linkcheck,make web_build_local_preview,make web_push_github - Ашиглалтын жишээнүүд:
- Зөвхөн EN, тест/холбоос шалгалтыг алгас, push хийхгүй:
make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run" - Бүх локалиуд, тест/холбоос шалгалттай, дараа нь push:
make web_build_local_preview && make web_push_github - Нийтлэхийн өмнө офлайнд аюулгүй холбоос шалгалтыг ажиллуул:
make web_build_linkcheck. - i18n: Англи эх нь
website/docs/*.mdдотор; Германы орчуулгуудwebsite/i18n/de/docusaurus-plugin-content-docs/current/*.mdдотор - Хайлт: Хэрэв CI‑д Algolia DocSearch орчны хувьсагчууд (
DOCSEARCH_APP_ID,DOCSEARCH_API_KEY,DOCSEARCH_INDEX_NAME) тохируулагдсан бол сайт Algolia хайлтыг ашиглана; үгүй бол локал хайлт руу унадаг. Нүүр хуудсан дээр/эсвэлCtrl+Kдарж хайлтын хайрцгийг нээ.
Хандивын чиглүүлэгч маршрут
website/src/pages/donate.js- Маршрут:
/donate(мөн/<locale>/donate) - Зан үйл:
- Хэрэв идэвхтэй маршрутад локаль байгаа бол (ж.,
/de/donate) түүнийг ашиглана - Үгүй бол
navigator.languagesба тох ируулсан локалиудаас хамгийн сайн тохирлыг сонгоно; анхдагч локаль руу унадаг - Дараах руу чиглүүлнэ:
en→/docs/donation- бусад →
/<locale>/docs/donation - Зөв baseUrl зохицуулалтад
useBaseUrlашигладаг - Нэмэлтээр meta refresh +
noscriptхолбоос бүхий fallback агуулна
Урьдчилсан харалтын зөвлөмжүүд
- Node preview‑г цэвэрхэн зогсоох:
http://localhost:<port>/__stopнээнэ үү (Local server started‑ны дараа хэвлэгдэнэ). - Хэрэв MDX/JSX доторх зурагнууд ачаалахгүй байвал сайтын
baseUrl‑г хүндэтгэхийн тулдuseBaseUrl('/img/...')ашигла. - Урьдчилсан харалт эхэлж, холбоос шалгалт дараа нь ажиллана; энэ нь хаахгүй (задгай гадаад холбоосууд урьдчилсан харалтыг зогсоохгүй).
- Урьдчилсан харалтын URL жишээ:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/(“Local server started” дараа хэвлэгдэнэ). - Холбоос шалгалт дахь гадаад холбоосууд: Зарим гадаад сайтууд (ж., addons.thunderbird.net) автомат мөлхөгчдийг блоклодог тул шалгалтад 403 харагдаж магадгүй. Урьдчилсан харалт хэвээр эхэлнэ; эдгээрийг үл тоож болно.
Вэбсайтыг орчуулах
Танд юу орчуулах боломжтой вэ
- Зөвхөн вэбсайтын UI: нүүр хуудас, навигац, доод колонтитр болон бусад UI мөрүүд. Баримтын агуулга одоогоор зөвхөн англи хэвээр.
Хаана засварлах вэ
website/i18n/<locale>/code.jsonфайлыг зас (жишээндen‑г ашигла).{year},{slash},{ctrl},{k},{code1}зэрэг placeholder‑уудыг өөрчлөхгүй үлдээ.
Файлуудыг үүсгэх эсвэл шинэчлэх
- Бүх локальд дутуу stubs үүсгэх:
npm --prefix website run i18n:stubs - Англиас stubs‑уудыг дарж бичих (шинэ мөр нэмж оруулсны дараа):
npm --prefix website run i18n:stubs:force - Нэг локалийн хувилбар:
npx --prefix website docusaurus write-translations --locale <locale>
Нүүр/навигац/доод колонтитрын UI мөрүүдийг орчуулах (OpenAI)
- Нэг удаа эрх олголтыг тохируул (shell эсвэл .env):
export OPENAI_API_KEY=sk-...- Заавал биш:
export OPENAI_MODEL=gpt-4o-mini - Нэг удаагийн (бүх локаль, en‑ийг алгасна):
make translate_web_index - Тодорхой локальд хязгаарлах:
make translate_web_index OPTS="--locales de,fr" - Байгаа утгуудыг дарж бичих:
make translate_web_index OPTS="--force"
Баталгаажуулалт ба дахин оролтууд
- Орчуулгын скрипт JSON бүтцийг шалгаж, буржгар хаалттай placeholder‑уудыг хадгалж, URL‑ууд өөрчлөгдөөгүйг баталгаажуулдаг.
- Баталгаажуулалт бүтэлгүйтвэл 2 удаа хүртэл санал хүсэлт өгч дахин оролддог; тэгээд одоогийн утгуудыг хэвээр үлдээнэ.
Өөрийн локалийг урьдчилан харах
- Хөгжүүлэлтийн сервер:
npm --prefix website run start - Энд зочил:
http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/
Илгээх
- Зассан
code.jsonфайл(ууд)‑тай PR нээ. Өөрчлөлтүүдийг төвлөрүүлж, боломжтой бол хурдан скриншот хавсарга.
Аюулгүй байдал ба тохиргооны зөвлөмжүүд
sources/manifest.json‑г commit хийж болохгүй (build явцад түр зуур үүсдэг)- Шинэчлэлтийн суваг тогтвортой байлгахын тулд
browser_specific_settings.gecko.id‑г тогтвортой хадгал
Тохиргоонуудын хадгалалт
- Хадгалалт: Хэрэглэгчийн бүх тохиргоо
storage.localдотор хадгалагдаж, нэмэлтийн шинэчлэлүүдийн хооронд хадгалагдана. - Суулгалт: Анхдагч утгууд нь түлхүүр үнэхээр байхгүй (undefined) үед л хэрэгжинэ.
- Шинэчлэлт: Шилжилт зөвхөн дутаасан түлхүүрүүдийг бөглөнө; одоо байгаа утгууд огт дарж бичигдэхгүй.
- Схемийн маркер:
settingsVersion(одоогоор1). - Түлхүүрүүд ба анхдагчууд:
blacklistPatterns: string[]→['*intern*', '*secret*', '*passwor*']confirmBeforeAdd: boolean→falseconfirmDefaultChoice: 'yes'|'no'→'yes'warnOnBlacklistExcluded: boolean→true- Код:
sources/background.js→initializeOrMigrateSettings()болонSCHEMA_VERSION‑г үз.
Хөгжүүлэлтийн урсгал (шинэ тохиргоо нэмэх)
sources/background.jsдоторSCHEMA_VERSION‑г өсгө.- Шинэ түлхүүр + анхдагчийг
initializeOrMigrateSettings()доторхDEFAULTSобъектод нэм. - Анхдагчийг seed хийхдээ "only-if-undefined" дүрмийг хэрэглэ; байгаа утгуудыг бүү дарж бич.
- Хэрэв тохиргоо хэрэглэгчид харагддаг бол
sources/options.js‑д холбож, локалчилсан мөрүүдийг нэм. - Тест нэм/зас (
tests/background.settings.migration.test.js‑г үз).
Гараар тест хийх зөвлөмжүүд
- Цоо шинэ суулгалтыг дуурайлгах: өргөтгөлийн өгөгдлийн сангийн хавтсыг цэвэрлэ эсвэл шинэ профайлаар эхлүүл.
- Шинэчлэлтийг дуурайлгах:
storage.localдоторsettingsVersion‑г0болгон тохируулж дахин ачаал; байгаа утгууд өөрчлөгдөөгүй, зөвхөн дутуу түлхүүрүүд нэмэгдсэнийг баталгаажуул.
Алдааг олж засварлах
- Thunderbird 128 ESR эсвэл түүнээс шинэ эсэхийг баталгаажуул
- Гүйлтийн асуудлуудад Алдааны консоль ашигла
- Хэрэв хадгалсан тохиргоонууд зөв хэрэгжихгүй байгаа мэт санагдвал Thunderbird‑ийг дахин асаагаад дахин оролдоно уу. (Thunderbird сешн хооронд зарим төлөвийг кэшлэх магадлалтай; дахин асаалт шинэ тохиргоонуудыг цэвэр ачаална.)
CI ба хамрах хүрээ
- GitHub Actions (
CI — Tests) нь vitest‑ийг хамрах хүрээний босготой (85% мөр/функц/салаа/мэдэгдэл) ажиллуулдаг. Хэрэв босго хангагдахгүй бол ажил бүтэлгүйтнэ. - Workflow нь HTML тайлан бүхий
coverage-htmlартефактыг байршуулна; гүйцэтгэлийн хуудсаас татан ав (Actions → сүүлийн гүйлт → Artifacts).
Хувь нэмэр оруулах
- Салбар/commit/PR‑ийн зааварт CONTRIBUTING.md‑г үз
- Зөвлөмж: Өдөр тутмын профайлдаа нөлөөлөхгүйн тулд тест хийхэд тусдаа Thunderbird хөгжүүлэлтийн профайл үүсгэ.
Орчуулгууд
- Том “all → all” орчуулгын ажлууд удаан, зардалтай байж болно. Эхлээд дэд хэсгээр (ж., хэдэн баримт ба 1–2 локаль) эхэлж, үр дүнг шалгаад, дараа нь өргөтгөөрэй.
- Дахин оролтын бодлого: орчуулгын ажлууд API алдаанд 3 удаа хүртэл экспоненциал backoff‑той дахин оролдлого хийнэ;
scripts/translate_web_docs_batch.jsболонscripts/translate_web_docs_sync.js‑г үз.
Баримтын скриншотууд
-
Зурагнуудаа
website/static/img/дор хадгал. -
Замууд сайтын
baseUrl‑той зөв ажиллахын тулд MD/MDX доторuseBaseUrl('/img/<filename>')ашиглан ишил. -
website/static/img/дор зураг нэмж эсвэл нэр өөрчилсний дараа бүх ишлэлүүдuseBaseUrl('/img/…')‑г үргэлжлүүлэн ашиглаж буйг баталгаажуулж, орон нутгийн урьдчилсан харалтад зөв дүрслэгдэж буй эсэхийг шалга. Favicons -
Олон хэмжээтэй
favicon.icoнь (Make + скриптүүд) бүх build замуудадwebsite/scripts/build-favicon.mjs‑аар автоматаар үүсдэг. -
Гараар алхам хийх шаардлагагүй;
icon-*.png‑г шинэчлэхэд хангалттай. Шалгах зөвлөмж -
Орчуулагдсан баримт дотор front ‑matter дахь
id‑г өөрчлөхгүй үлдээнэ; байвал зөвхөнtitleболонsidebar_label‑ийг орчуул.
clean
- Зорилго: орон нутгийн build/preview артефактуудыг устгах.
- Ашиглалт:
make clean - Устгана (хэрэв байвал):
tmp/web-local-preview/website/build/
commit
- Зорилго: форматлах, тест хийх, changelog шинэчлэх, commit хийж push хийх.
- Ашиглалт:
make commit - Дэлгэрэнгүй: Prettier (write),
make test,make test_i18nажиллуулна; stage‑д өөрчлөлт байвал changelog нэмж бичнэ;origin/<branch>руу push хийнэ.
eslint
- Зорилго: ESLint‑ийг flat конфигээр ажиллуулах.
- Ашиглалт:
make eslint
help
- Зор илго: бүх зорилтыг нэг мөрийн тайлбартайгаар жагсаах.
- Ашиглалт:
make help
lint
- Зорилго: MailExtension‑ийг
web-extашиглан lint хийх. - Ашиглалт:
make lint - Тэмдэглэл: түр хуулбарыг
sources/manifest_LOCAL.json→sources/manifest.json; build‑лэсэн ZIP‑үүдийг үл тоомсорлоно; анхааруулгууд pipeline‑ийг унагахгүй.
menu
- Зорилго: Make зорилт болон нэмэлт аргументаа сонгох харилцан үйлчлэлтэй цэс.
- Ашиглалт: аргументгүйгээр
makeажиллуул. - Тэмдэглэл: хэрэв
whiptailбайхгүй бол цэсmake helpруу унадаг.
pack
- Зорилго: ATN болон LOCAL ZIP‑уудыг build хийх (
lint‑ээс хамаарна). - Ашиглалт:
make pack - Зөвлөмж: багцлахаас өмнө хоёуланд нь хувилбаруудыг
sources/manifest_*.jsonдотор өсгө.
prettier
- Зорилго: репог газар дээр нь форматлах.
- Ашиглалт:
make prettier
prettier_check
- Зорилго: форматалтыг шалгах (бичилтгүй).
- Ашиглалт:
make prettier_check
prettier_write
- Зорилго:
prettier‑ийн синоним. - Ашиглалт:
make prettier_write
test
- Зорилго: Prettier (write), ESLint, дараа нь Vitest (суулгаатай бол coverage).
- Ашиглалт:
make test
test_i18n
- Зорилго: нэмэлтийн мөрүүд ба вэбсайтын баримтын i18n‑д төвлөрсөн тестүүд.
- Ашиглалт:
make test_i18n - Ажиллуулна:
npm run test:i18nболонnpm run -s test:website-i18n.
translate_app / translation_app
- Зорилго: нэмэлтийн UI мөрүүдийг EN‑ээс бусад локаль руу орчуулах.
- Ашиглалт:
make translation_app OPTS="--locales all|de,fr" - Тэмдэглэл: түлхүүрийн бүтэц ба placeholder‑уудыг хадгална;
translation_app.logруу лог бичнэ. Скриптийн хэлбэр:node scripts/translate_app.js --locales ….
translate_web_docs_batch / translate_web_docs_sync
- Зорилго: вэбсайтын баримтыг
website/docs/*.md‑ээсwebsite/i18n/<locale>/...руу орчуулах. - Илүүд үзэх:
translate_web_docs_batch(OpenAI Batch API)- Ашиглалт (flag‑ууд):
make translate_web_docs_batch OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Уламжлалт позициональ аргументууд бас зөвшөөрөгдөнө:
OPTS="<doc|all> <lang|all>"
- Ашиглалт (flag‑ууд):
- Зан үйл: JSONL бүтээж, upload хийж, 30 секунд тутамд шалгаж, үр дүн татаж авч, файлууд бичнэ.
- Тэмдэглэл: багц ажил (batch job) OpenAI‑ийн batch цонхны дагуу 24 цаг хүртэл үргэлжилж болно. Консол бүр шалгалтад зарцуулсан хугацааг харуулна.
- Орчин:
OPENAI_API_KEY(шаардлагатай), сонголтоорOPENAI_MODEL,OPENAI_TEMPERATURE,OPENAI_BATCH_WINDOW(анхдагч 24h),BATCH_POLL_INTERVAL_MS. - Уламжлалт:
translate_web_docs_sync- Ашиглалт (flag‑ууд):
make translate_web_docs_sync OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Уламжлалт позициональ аргументууд бас зөвшөөрөгдөнө:
OPTS="<doc|all> <lang|all>"
- Ашиглалт (flag‑ууд):
- Зан үйл: хос бүрээр синхрон хүсэлтүүд (багцжуулалтгүй).
- Тэмдэглэл:
OPTSорхигдвол харилцан үйлчлэлтэй асуултуудтай. Хоёр горим хоёулаа кодын блок/inline кодыг хадгалж, front‑matter дахьid‑г өөрчлөхгүй;translation_web_batch.log(batch) эсвэлtranslation_web_sync.log(sync) руу лог бичнэ.
translate_web_index / translation_web_index
- Зорилго: вэбсайтын UI мөрүүдийг (нүүр, навигац, доод колонтитр)
website/i18n/en/code.json‑оосwebsite/i18n/<locale>/code.jsonдоорх бүх локаль руу (en‑г үл тооцон) орчуулах. - Ашиглалт:
make translate_web_indexэсвэлmake translate_web_index OPTS="--locales de,fr [--force]" - Шаардлага:
OPENAI_API_KEY‑г экспортло (сонголтоор:OPENAI_MODEL=gpt-4o-mini). - Зан үйл: JSON бүтэц баталгаажуулж, буржгар хаалттай placeholder‑уудыг хадгалж, URL‑уудыг өөрчлөхгүй, баталгаажуулалтын алдаанд санал хүсэлтээр дахин оролдлого хийнэ.
web_build
- Зорилго: баримтын сайтыг
website/buildруу build хийх. - Ашиглалт:
make web_build OPTS="--locales en|de,en|all"(эсвэлBUILD_LOCALES="en de"тохируул) - Дотоод:
node ./node_modules/@docusaurus/core/bin/docusaurus.mjs build [--locale …]. - Хамаарал: хэрэв
website/node_modules/@docusaurusбайхгүй болwebsite/доторnpm ciажиллуулна.
web_build_linkcheck
- Зорилго: офлайнд аюулгүй холбоос шалгалт.
- Ашиглалт:
make web_build_linkcheck OPTS="--locales en|all" - Тэмдэглэл:
tmp_linkcheck_web_pagesруу build хийж; GH Pages‑ийнbaseUrl‑г/болгон дахин бичнэ; алсын HTTP(S) холбоосуудыг алгасна.
web_build_local_preview
- Зорилго: сонголттой тест/холбоос шалгалттай орон нутгийн gh‑pages урьдчилсан харалт.
- Ашиглалт:
make web_build_local_preview OPTS="--locales en|all [--no-test] [--no-link-check] [--dry-run] [--no-serve]" - Зан үйл: эхлээд Node preview серверийг оролдоно (
scripts/preview-server.mjs,/__stopдэмжинэ), бүтэлгүйтвэлpython3 -m http.server‑д унадаг; 8080–8090 дээр үйлчилнэ; PID ньweb-local-preview/.server.pidдээр.
web_push_github
- Зорилго:
website/build‑гgh-pagesсалбар руу түлхэх. - Ашиглалт:
make web_push_github
Зөвлөмж: Makefile‑д ашиглах пакет менежерийг өөрчлөхийн тулд NPM=…‑г тохируул (анхдагч нь npm).