Skip to content

    Development documentation — this describes the current development branch. Documented behavior may not exist in the latest release.

    ForgeGuard changes

    This is a maintained fork of tanabe/markdown-live-preview. The core editing experience is upstream’s; ForgeGuard adds privacy-conscious defaults and self-hosting artifacts. The table below lists the user-visible changes.

    AreaWhat ForgeGuard changedWhere to learn more
    Local Monaco bundlingThe Monaco editor is bundled from project dependencies instead of being loaded from a third-party runtime CDN.Reference: build
    Opt-in analyticsGoogle Analytics is disabled by default and loads only after you enable the Analytics toggle.Privacy controls
    Private modeA toggle that stops editor content from being saved to browser storage.Privacy controls
    Remote-image blockingCross-origin images are blocked by default; an explicit toggle enables them with no-referrer and lazy loading.Privacy controls
    Link/image URL policyRendered links are limited to safe schemes and get rel="noopener noreferrer nofollow"; images are limited to https:/data:.Security and privacy
    Bounded persistenceEditor content is retained for 30 days and settings for 365 days, instead of indefinitely.Export and persistence
    Nginx security headersThe container serves a strict CSP plus MIME, clickjacking, referrer, and permissions headers.Security and privacy
    Container and Compose packagingA multi-stage Dockerfile and a Compose file for local and single-host hosting.Container · Compose & Portainer
    Helm chart and GHCR publicationA published container image and an OCI Helm chart with a hardened security posture.Kubernetes

    Local bundling applies to the Monaco editor. The PDF export feature still loads the html2pdf library at runtime from cdnjs.cloudflare.com (pinned with a Subresource Integrity hash). The app is therefore not fully free of third-party runtime scripts; see Export and persistence.

    • The core Markdown editing and preview behavior is upstream’s.
    • Runtime privacy defaults are hardened but the application UI is not redesigned.
    • Upstream’s Mermaid diagram rendering is not included in this fork; see Compatibility.