Skip to content

docs(fix[haddock]) Repair native API browser navigation - #5

Merged
tony merged 5 commits into
masterfrom
fix/haddock-navigation
Nov 10, 2026
Merged

tony merged 5 commits into
masterfrom
fix/haddock-navigation

Conversation

@tony

@tony tony commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #4, which adds the public Server and snapshot API. Haddock emits ambiguous record-field anchors and instance links without targets for that interface. This change prepares a separate browser copy from the compiled library and retains the original output for comparison.

Summary

  • Add owner-qualified record fields and instance-local method targets.
  • Preserve ambiguous name links through explicit record-owner or source-line choices.
  • Validate local navigation, browser assets and enabled Quick Jump resources.
  • Keep wide declaration and symbol-index tables scrollable within narrow pages.
  • Retain raw output, compiled interfaces and digest evidence in separate CI artifacts.
  • Document native browser preparation and HTTP setup for interactive search.
  • Describe native navigation and narrow-screen reading in the Unreleased changelog with the PR reference.

Design decisions

Preparation edits generated navigation tags and appends explicit choice destinations. It preserves source text, line anchors, signatures and compiled interfaces. The default theme contains wide declaration and symbol-index tables within narrow viewports. The command qualifies the selected Haddock output and binds Cabal-plan lookup to the local library source.

Missing public targets, unexpected duplicate IDs, inconsistent search owners and incomplete browser assets fail before the output directory appears. Hidden-module instance attributions retain their text and valid source links. Native module reexports keep their own representation.

Both CI uploads include the generated hidden guide files covered by the digest manifest. The command does not establish freshness for arbitrary raw inputs or check external URL availability.

Test plan

  • Reject source-layout name collisions, missing resources and wrong-owner search metadata.
  • Check Hspec/QuickCheck specifications and Tasty units.
  • Execute public programs and Haddock examples from source archives.
  • Execute the current preparation command and regressions from a fresh source archive.
  • Build Haddock and check the prepared browser's local destinations and resources.
  • Follow field, instance, source and expanded Quick Jump results in Chromium.
  • Check native module/index layouts and local table scrolling at phone, tablet and desktop widths in Chromium.
  • Check documentation drift and Cabal metadata.
  • Complete hosted CI. Downloaded artifacts from the source-equivalent browser implementation match their recorded digests.

The browser check samples Chromium. Source-listing mobile layout, Firefox/WebKit and full accessibility/browser qualification remain open.

Companion PR

Shared Haskell observation and Runtime documentation retains its own source profile and CI gate. This follow-up changes the native artifact workflow.

tony added a commit that referenced this pull request Nov 9, 2026
why: The changelog should describe the reader-visible documentation change
with its review reference.

what:
- Record distinct field, method and source navigation in the native browser
- Link the artifact and digest workflow to PR #5
tony added a commit that referenced this pull request Nov 9, 2026
why: Readers need to know how wide API tables behave on phones.
what:
- Note local scrolling for native declaration and symbol-index sections
- Attribute the behavior to pull request #5
tony added 5 commits November 9, 2026 18:16
why: Repeated record labels and generated source identifiers make native
documentation links ambiguous, while instance details link to absent targets.

what:
- Prepare a separate HTML copy with owner and instance scoped anchors
- Preserve ambiguous legacy links through explicit owner or line choices
- Retain raw files, compiled interfaces and source text with digest evidence
- Reject missing targets, unexpected duplicates and unsupported native output
why: Contributors need a reproducible native browser with working navigation
and a retained original for comparison.

what:
- Select the local library artifact from Cabal's configured build plan
- Run navigation regressions and retain separate raw and prepared CI artifacts
- Include preparation tools in the source archive
- Document preparation, HTTP search setup and qualification limits
why: Source identifiers can share layout names, and an incomplete browser
must not pass preparation or lose files covered by its digest manifest.

what:
- Keep source choices outside listings and check source text and line anchors
- Validate local HTML and CSS assets plus enabled Quick Jump resources
- Reject inconsistent search owners while preserving native module reexports
- Include generated hidden guide files in both documentation uploads
why: Constructor, instance and symbol-index tables can widen the native
API page beyond a phone viewport.
what:
- Keep wide sections locally scrollable in the prepared default theme
- Preserve raw stylesheet bytes and record both stylesheet digests
- Describe section scrolling in the native API browser guide
why: Help readers find declarations and use the native API browser.
what:
- Describe record, instance and source navigation with contained scrolling
- Link the documentation changes to PR #5 in one changelog commit
@tony
tony force-pushed the feat/capture-recovery branch from b996025 to ee92f05 Compare November 10, 2026 00:18
@tony
tony force-pushed the fix/haddock-navigation branch from 9b7aa46 to 6a3e6c1 Compare November 10, 2026 00:18
@tony
tony marked this pull request as ready for review November 10, 2026 00:25
@tony
tony changed the base branch from feat/capture-recovery to master November 10, 2026 00:26
@tony
tony merged commit e5eb53d into master Nov 10, 2026
4 of 7 checks 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