This repository builds the multilingual documentation directory for the Luna-Flow organization.
The deployment workflow discovers repositories from the GitHub organization on every build. A repository is eligible when it is public, is not a fork, and is not listed in docs/repo-docs.config.json under exclude. Archived repositories remain eligible. Every eligible repository is fetched from main; branch overrides are intentionally unsupported.
The discovery result controls which repositories may be downloaded. The category configuration does not control discovery and must never be used as an allowlist. This separation prevents a private repository visible to the build token from entering the generated site.
Repositories without a doc directory are downloaded but omitted from the site. To be included, a repository must provide the standard files and at least one package document for all three locales:
doc/en_US/README.mdanddoc/en_US/doc_standard.mddoc/zh_CN/README.mdanddoc/zh_CN/doc_standard.mddoc/ja_JP/README.mdanddoc/ja_JP/doc_standard.md
An incomplete multilingual document set emits a warning and is skipped. It must not prevent complete repositories from being published.
The /docs/ page is a curated capability directory. Edit only categories in docs/repo-docs.config.json to change category names, descriptions, repository grouping, or display order. Repository names are displayed without the Luna-Flow/ prefix.
A discovered repository that has standard documentation but is absent from every category is placed in the localized “Other” category automatically. Therefore adding a repository to the organization does not require an immediate site configuration change.
Files below each locale directory are collected automatically. Root files such as README.md and doc_standard.md remain repository-level pages. Package documents are grouped globally by filename, with the following fixed leading order:
api.mddesign.mdtutorial.md- any extension type, sorted by filename
Within each document type, the sidebar preserves the repository package directory tree. For example, backends/default/api.md appears as API → Backends → Default. New document types such as integration.md require no generator change.
CI performs these steps on every deployment:
- Run
node scripts/discover-repos.mjs ../workspace/repositories.jsonwithGH_TOKEN. - Download every discovered repository from
maininto../workspace. - Run
LUNAFLOW_REPO_ROOT=../workspace LUNAFLOW_REPO_MANIFEST=../workspace/repositories.json npm run docs:prepare. - Build VitePress.
For local development, place the categorized Luna-Flow repositories beside this repository and run npm run docs:dev. Without LUNAFLOW_REPO_MANIFEST, the generator uses the repository names already present in the category configuration; this prevents unrelated local or private directories from entering a development build. To reproduce CI discovery exactly, generate and pass a manifest. Deployment must always provide the discovery manifest.