Skip to content

docs: migrate 16 README files to a single NRG template#932

Open
andriishin wants to merge 1 commit intofilecxx:mainfrom
andriishin:nrg-migration
Open

docs: migrate 16 README files to a single NRG template#932
andriishin wants to merge 1 commit intofilecxx:mainfrom
andriishin:nrg-migration

Conversation

@andriishin
Copy link
Copy Markdown

Why

README.md and 15 translations (README.ar.md, README.de.md, README.es.md, README.fa.md, README.fr.md, README.hi.md, README.it.md, README.ja.md, README.ko.md, README.pt-BR.md, README.ru.md, README.sv.md, README.tr-TR.md, README.zh-CN.md, README.zh-TW.md) are hand-maintained side-by-side. With 16 files in lockstep, every README change means editing the same paragraph in 16 places — a real maintenance burden as the project grows.

This PR migrates all sixteen files to a single source-of-truth template using Nanolaba Readme Generator (NRG). Combined with nanolaba/nrg-action@v1, regeneration happens in CI on every push to main — no toolchain locally, just YAML.

What changes

  • New: README.src.md — the unified source. Each line is tagged with <!--<lang>--> so it appears only in that language's output. Generated programmatically; outputs are byte-identical to today's files (modulo a 2-line auto-generated header).
  • New: .github/workflows/nrg.yml — runs nanolaba/nrg-action@v1 (pinned to NRG 1.1):
    • Push to main touching README.src.md or workflow → regenerates and auto-commits.
    • PR touching any README*.md or template → drift check (mode: check) — fails with unified diff when a contributor edits a generated file directly.
  • Modified: all 16 README files — regenerated. The only change is the 2-line auto-generated header at the top.

Verification

Locally, regenerating with NRG 1.1 from Maven Central against current main (commit 770b2a8) produces output that diffs against the originals only by the 2-line auto-generated header. Zero functional content change.

What's intentionally NOT in this PR

  • Translation alignment. Today's content lives unchanged in README.src.md. Future PRs can extract shared structural elements (badges, language nav strip, image references) into shared regions of the template.
  • Nothing in the FileCentipede source/build is touched.

How to regenerate locally

curl -L -o nrg.jar https://repo1.maven.org/maven2/com/nanolaba/readme-generator/1.1/readme-generator-1.1.jar
java -jar nrg.jar -f README.src.md

About NRG

com.nanolaba:readme-generator — open-source, Apache 2.0, Java 8+. Ships as CLI, Maven plugin, GitHub Action, and library. Zero local toolchain needed when used through the action.

Replaces 16 hand-maintained READMEs (en + ar/de/es/fa/fr/hi/it/ja/
ko/pt-BR/ru/sv/tr-TR/zh-CN/zh-TW) with a single README.src.md,
regenerated in CI by nanolaba/nrg-action@v1 on push to main. All 16
outputs are byte-identical to the originals (modulo a 2-line
auto-generated header NRG injects at the top).

Drift-check job runs in mode: check on PRs that touch any README*.md
or the template, failing the build with a unified diff when a
contributor edits a generated file directly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant