> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langbot.app/llms.txt
> Use this file to discover all available pages before exploring further.

# README blog articles

# LangBot Blog → Wiki article synchronization

`langbot-app/langbot-landing-page/src/content/blog` is the canonical article source. The Wiki publishes generated copies under `{en,zh,ja}/articles/` and stores every rendered image locally under `images/articles/` so Wiki pages do not depend on third-party hotlinks.

## Run locally

From the Wiki checkout, with the landing-page repository available as a sibling checkout:

```bash theme={null}
node scripts/sync-blog-articles.mjs --source ../langbot-landing-page
node scripts/sync-blog-articles.mjs --check --source ../langbot-landing-page
node scripts/sync-blog-articles.mjs --check
npm test
```

The synchronizer:

* requires matching English and Chinese slug sets;
* uses the canonical Japanese article when one exists and a clearly marked English fallback otherwise;
* groups navigation into product updates, engineering, tutorials/integrations, and announcements with localized labels;
* copies source images and downloads external images into the Wiki repository;
* rewrites Markdown image URLs to Wiki-local paths;
* escapes prose that would otherwise be parsed as MDX expressions;
* replaces the generated article directories and updates the `docs.json` article tabs deterministically.

Do not edit generated article pages or mirrored images manually. Fix the canonical Blog post or the synchronizer, then regenerate.

A daily GitHub Actions workflow provides drift recovery. Article publishing work should still synchronize and verify the Wiki in the same task so a new Blog post does not wait for the scheduled run.
