Skip to content

Build Lite and Full editions from one shared codebase #19

Description

@trsdn

Goal

Publish Lite and Full editions from the same source tree and release tag without allowing the implementations to diverge.

Lite remains the smallest native editor/viewer and receives all dependency-free or very small features tracked in #18. Full is a strict superset that adds heavier offline rendering capabilities such as Mermaid and expanded syntax highlighting.

Requirements

  • Use build-time capability flags and shared protocols/components; do not maintain edition branches or copied source trees.
  • Physically exclude Full-only JavaScript, CSS, licenses, and other assets from Lite artifacts.
  • Keep the same application identity so installing one edition replaces the other instead of registering competing Markdown handlers.
  • Show the installed edition and version in About or Settings.
  • Full must preserve the same sandbox, CSP, DOMPurify, resource confinement, offline operation, editing, dirty-state, printing, and native document lifecycle as Lite.
  • Build and test both editions in CI from every release tag.
  • Publish clearly named Lite and Full DMGs and SHA-256 files; sign, notarize, staple, and Gatekeeper-check both.
  • Keep Full as the recommended download while documenting Lite as the minimum-footprint option.
  • Record exact dependency versions, licenses, checksums, and edition membership.

Acceptance criteria

  • A clean Lite bundle contains no Mermaid, svg-pan-zoom, or Full highlighter assets.
  • Full passes all Lite tests plus Full-only rendering/security tests.
  • Opening or editing ordinary Markdown in Full does not initialize any Full-only renderer.
  • Both artifacts are produced reproducibly from one commit and version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions