Skip to content

Support private or filtered xref-domain export for Manual HTML output #840

@ejgallego

Description

@ejgallego

VersoManual.manualMain currently writes xref.json from the full TraverseState.domains map via emitXrefsJson, with no way for downstream extensions to distinguish:

  • domains that are part of the public cross-reference surface
  • domains that are only being used as structured traversal-time storage for local runtime/UI state

This creates two related problems:

  1. Traversal domains are treated as public by default.
    Extensions may reasonably use domains for internal data, but those domains are still exported into xref.json and therefore become part of the apparent public cross-reference contract.

  2. xref.json is emitted pretty-printed rather than minified/compressed.
    This increases output size further, but this seems secondary to the export-scope problem above.

I detected this in Verso Blueprints due to xref.json size.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions