Replace manpage build with multi-language mdbook docs in CI

- Remove manpage generation step and man2html dependency
- Add mdbook theme patching for language selector and utility links
- Repack tldr zip with pages/ prefix (uudoc expects this structure)
- Build translated docs via build-docs-l10n.sh for 18 languages
- Collect translated docs to /coreutils/docs-{lang}/
This commit is contained in:
Sylvestre Ledru
2026-03-22 09:13:57 +01:00
parent 6e9e149052
commit 7f9102ed0c
+20 -13
View File
@@ -48,7 +48,7 @@ jobs:
- name: Install system deps - name: Install system deps
run: | run: |
sudo apt install libacl1-dev libselinux1-dev libsystemd-dev man2html sudo apt install libacl1-dev libselinux1-dev libsystemd-dev
- name: Install necessary tools (mdbook and mdbook-toc) - name: Install necessary tools (mdbook and mdbook-toc)
uses: taiki-e/install-action@v2 uses: taiki-e/install-action@v2
@@ -66,19 +66,30 @@ jobs:
done done
cp -r coreutils-l10n/src/uucore/* coreutils/src/uucore/ 2>/dev/null || true cp -r coreutils-l10n/src/uucore/* coreutils/src/uucore/ 2>/dev/null || true
- name: Patch mdbook theme with language selector
run: |
uutils.github.io/scripts/patch-mdbook-theme.sh coreutils/docs
- name: Build Coreutils Docs - name: Build Coreutils Docs
run: | run: |
cd coreutils cd coreutils
curl -sfL https://github.com/tldr-pages/tldr/releases/download/v2.3/tldr-pages.zip -o docs/tldr.zip || true # Download and repack tldr zip: uudoc expects pages/common/ prefix
curl -sfL https://github.com/tldr-pages/tldr/releases/download/v2.3/tldr-pages.zip -o /tmp/tldr-raw.zip || true
if [ -f /tmp/tldr-raw.zip ]; then
mkdir -p /tmp/tldr-repack/pages
cd /tmp/tldr-repack && unzip -o /tmp/tldr-raw.zip -d pages/ > /dev/null
zip -r "$OLDPWD/docs/tldr.zip" pages/ > /dev/null
cd "$OLDPWD"
fi
cargo run --bin uudoc --all-features cargo run --bin uudoc --all-features
cd docs cd docs
# Remove deprecated 'multilingual' field unsupported by newer mdbook # Remove deprecated 'multilingual' field unsupported by newer mdbook
sed -i '/^multilingual/d' book.toml sed -i '/^multilingual/d' book.toml
mdbook build mdbook build
- name: Build Coreutils Manpages (all languages) - name: Build Coreutils Docs (translations)
run: | run: |
uutils.github.io/scripts/build-all-manpages.sh coreutils manpages-html uutils.github.io/templates uutils.github.io/scripts/build-docs-l10n.sh coreutils
- name: Build Findutils Docs - name: Build Findutils Docs
run: | run: |
@@ -98,15 +109,11 @@ jobs:
cp -r uutils.github.io/public public cp -r uutils.github.io/public public
cp -r coreutils/docs/book public/coreutils/docs cp -r coreutils/docs/book public/coreutils/docs
cp -r findutils/docs/book public/findutils/docs cp -r findutils/docs/book public/findutils/docs
# Copy English manpages to /coreutils/manpages/ # Copy translated docs to /coreutils/docs-{lang}/
mkdir -p public/coreutils/manpages for lang_dir in coreutils/docs/book-*/; do
cp -r manpages-html/en/* public/coreutils/manpages/ [ -d "$lang_dir" ] || continue
# Copy translated manpages to /coreutils/manpages-{lang}/ lang=$(basename "$lang_dir" | sed 's/^book-//')
for lang_dir in manpages-html/*/; do cp -r "$lang_dir" "public/coreutils/docs-${lang}"
lang=$(basename "$lang_dir")
[ "$lang" = "en" ] && continue
mkdir -p "public/coreutils/manpages-${lang}"
cp -r "${lang_dir}"* "public/coreutils/manpages-${lang}/"
done done
- name: Upload artifact for checking the output - name: Upload artifact for checking the output