Part of #24.
Unit 5: Static script serving + build wiring
Goal: Ensure both scripts are served verbatim at stable docs.halos.fi/migrate/<script>.sh URLs and the strict build passes.
Requirements: R6
Dependencies: Units 1, 2/3 (the script files exist).
Files:
- Modify/confirm: placement under
docs/migrate/ (or docs/assets/migrate/) so MkDocs copies them verbatim
- Modify:
mkdocs.yml if a nav-exclude or not_in_nav is needed to keep --strict happy
Approach:
- Confirm
mkdocs build --strict copies the .sh files unmodified and does not fail/warn on non-markdown-not-in-nav. Adjust placement or nav config minimally if it does.
- Confirm the deployed GitHub Pages URL returns the raw script bytes (content-type irrelevant to
curl -O).
Patterns to follow: Existing static assets under docs/assets/; deploy workflow .github/workflows/deploy.yml.
Test scenarios:
- Happy path:
mkdocs build --strict succeeds with the scripts present.
- Integration: built
site/migrate/openplotter-backup.sh is byte-identical to source.
Test expectation: build-level only — no unit tests.
Verification: Both scripts download intact via the documented curl command from the deployed site.
Part of #24.
Unit 5: Static script serving + build wiring
Goal: Ensure both scripts are served verbatim at stable
docs.halos.fi/migrate/<script>.shURLs and the strict build passes.Requirements: R6
Dependencies: Units 1, 2/3 (the script files exist).
Files:
docs/migrate/(ordocs/assets/migrate/) so MkDocs copies them verbatimmkdocs.ymlif a nav-exclude ornot_in_navis needed to keep--stricthappyApproach:
mkdocs build --strictcopies the.shfiles unmodified and does not fail/warn on non-markdown-not-in-nav. Adjust placement or nav config minimally if it does.curl -O).Patterns to follow: Existing static assets under
docs/assets/; deploy workflow.github/workflows/deploy.yml.Test scenarios:
mkdocs build --strictsucceeds with the scripts present.site/migrate/openplotter-backup.shis byte-identical to source.Test expectation: build-level only — no unit tests.
Verification: Both scripts download intact via the documented
curlcommand from the deployed site.