Skip to content

Cut over to the node.js builder.#161

Merged
KubaO merged 15 commits into
twinbasic:mainfrom
KubaO:staging
May 27, 2026
Merged

Cut over to the node.js builder.#161
KubaO merged 15 commits into
twinbasic:mainfrom
KubaO:staging

Conversation

@KubaO
Copy link
Copy Markdown
Collaborator

@KubaO KubaO commented May 27, 2026

No description provided.

KubaO added 15 commits May 27, 2026 14:25
PLAN-10 is the Jekyll-to-tbdocs cutover (flip default destination,
swap CI to invoke tbdocs, retire verify-phase{1..8}.mjs harnesses,
expand scripts/check_links.mjs into a site-integrity checker).

The output-changing FUTURE-WORK items (Shiki, mermaid auto-gen,
copy-code SSR, search-data minification, AST-based JTD patcher)
that were previously routed to Phase 10 are now Phase 11 -- they
land after the cutover when the byte-vs-Jekyll acceptance bar is
no longer in play.
…map/search)

Extends scripts/check_links.mjs with five integrity-check flags that
share the existing htmlparser2 SAX parse pass -- no second file read:

  --check-html     unclosed / mismatched tags (HTML5 void-aware)
  --check-a11y     <img> missing alt, empty <a>, empty href
  --check-ids      duplicate id="..." attributes on the same page
  --check-sitemap  every .html (less book.html / 404.html / redirect
                   stubs) appears in sitemap.xml
  --check-search   every .html (same exclusions) has at least one
                   entry in assets/js/search-data.json

Redirect-stub detection is implicit: a <meta http-equiv="refresh">
during the SAX pass marks the file for exclusion from sitemap /
search checks.  Sitemap and search-data URLs are normalised
(strip .html, decode %-escapes) to match deriveUrlPath output for
pages with and without an explicit permalink.

Exit codes: 0 OK, 1 link failure, 2 integrity failure, 3 both.
Default invocation (no flags) preserves the existing link-only
behaviour byte-for-byte; check.bat is unchanged in this commit.

Verified against current docs/_site/ (Jekyll output):
  --check-html      0 findings
  --check-a11y      0 findings
  --check-sitemap   0 findings
  --check-search    0 findings
  --check-ids      43 findings (pre-existing duplicate IDs: theme
                   <div id="top"> collides with property/heading
                   anchors named 'Top'; 'installation' on FAQ;
                   'big5' on Open; 'curdir' on CurDir).  These
                   are real site bugs, not checker false positives;
                   commit 3 will not wire --check-ids into check.bat
                   until they're fixed in a follow-up.
@KubaO KubaO merged commit 6e7cdbb into twinbasic:main May 27, 2026
1 check passed
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