56 lines
4.2 KiB
Markdown
56 lines
4.2 KiB
Markdown
# PDF Publication and Course Recovery Design
|
|
|
|
## Summary
|
|
|
|
Publish the 332 recovered DokuWiki PDFs whose creator permissions the repository maintainer confirmed on 2026-08-03. Then crawl the previous live DokuWiki at `https://msvincognito.nl/wiki/`, compare its public course pages with the Astro Starlight wiki, and migrate course details that are present on the previous site but absent from the new site.
|
|
|
|
The work is deliberately sequenced. PDF publication must be complete and independently verified before course recovery starts.
|
|
|
|
## PDF Publication
|
|
|
|
- Move the byte-identical recovered files from the non-public staging area to `public/media/legacy-dokuwiki/`, preserving their DokuWiki namespace hierarchy.
|
|
- Keep stable, URL-safe public paths derived from the original media IDs.
|
|
- Add a Starlight archive page titled “Previous exams and documents,” grouped by programme and course namespace, with one link for every published PDF.
|
|
- Add the archive to the main sidebar and link it from the Bachelor, Master AI, and Master DSDM programme overviews.
|
|
- Record the maintainer's permission confirmation, public path, source URL, size, and SHA-256 checksum in the existing PDF inventory and publication records.
|
|
- Treat duplicate-content files as legitimate separately named source records; do not silently collapse them.
|
|
- Do not modify, optimize, rewrite, or combine PDF contents.
|
|
|
|
## Course Recovery
|
|
|
|
- Crawl the public previous DokuWiki by pinning `msvincognito.nl` to the known origin `185.104.29.94`. The origin's expired certificate requires an explicit insecure TLS connection for this archival crawl only.
|
|
- Enumerate pages recursively through DokuWiki's sitemap/index rather than relying on the 29-page selected filesystem export.
|
|
- Include public course and programme pages below the Bachelor, Master AI, and Master DSDM study namespaces.
|
|
- Exclude DokuWiki help pages, navigation/sidebar pages, administrative pages, member-only content, and non-course association content.
|
|
- Compare canonical DokuWiki page IDs against existing Starlight routes and the original migration manifest.
|
|
- Convert missing course details to maintainable Markdown with Starlight frontmatter, preserving headings, lists, tables, links, and the source meaning.
|
|
- Add a standard historical-information warning to recovered pages because course structures and details may be outdated.
|
|
- Preserve links to the newly published PDFs when a source page refers to those media IDs.
|
|
- Add recovered pages to the appropriate manually configured sidebar section.
|
|
|
|
## Audit Contract
|
|
|
|
The original migration manifest remains the immutable record of the selected 29-page filesystem export. Supplemental published content must not be falsely added to that manifest.
|
|
|
|
Create a separate supplemental-content registry for the PDF archive and live-recovered course pages. The content audit will accept only:
|
|
|
|
1. destinations in the original migration manifest; or
|
|
2. destinations explicitly declared in the supplemental registry with a source URL and content category.
|
|
|
|
The migration report will continue to describe the selected export. A separate live-course recovery report will list every live page inspected and classify it as migrated, already represented, excluded, empty, or failed.
|
|
|
|
## Validation
|
|
|
|
PDF publication is complete when all 332 inventory records resolve to public files, every size and SHA-256 checksum matches, all files pass `pdfinfo`, the archive page links each file once, and no recovered PDF remains in the non-public staging folder.
|
|
|
|
Course recovery is complete when the recursive live crawl has no unexplained failures, every in-scope live course page has a recorded classification, every migrated page passes the content audit and Astro build, and internal links pass the rendered-site checks.
|
|
|
|
Run the complete `npm run verify` workflow after each phase. The final report must state the live-page totals and the exact number of pages added.
|
|
|
|
## Safety and Provenance
|
|
|
|
- Permission basis: the repository maintainer confirmed on 2026-08-03 that permission had been obtained from the document creators and that the PDFs may be exposed on the wiki.
|
|
- The live crawl is read-only.
|
|
- Existing user changes in the dirty working tree must be preserved.
|
|
- No deployment, push, or external server mutation is part of this task.
|
|
|