diff --git a/docs/comparison.md b/docs/comparison.md index c6702776..b0b7257f 100644 --- a/docs/comparison.md +++ b/docs/comparison.md @@ -4,6 +4,11 @@ How Carve compares to the markup languages you already know. The short version: Markdown's reach, Djot's consistency, web-native features by default - without turning your content into a JavaScript program. +> This page is **Carve-centric**: a feature-by-feature take against Markdown, +> Djot, and MDX. For a broader, neutral survey of the wider lightweight-markup +> landscape (AsciiDoc, reStructuredText, Textile, and more), see +> [Modern Markup Languages Comparison](./markup-languages). + ::: tip Legend ✅ native  ·  🧩 plugin / extension needed  ·  ⚠️ partial / convention  ·  ❌ not available ::: diff --git a/docs/dismissed-syntax.md b/docs/dismissed-syntax.md index 7d2431b9..a207c4df 100644 --- a/docs/dismissed-syntax.md +++ b/docs/dismissed-syntax.md @@ -254,7 +254,11 @@ syntax — symbol-based, no English keyword, symmetric with the inline --- -## CriticMarkup Integration +## CriticMarkup: doubled-marker form (`{++added++}`) + +> The CriticMarkup *feature* was adopted - it is part of the spec (section 4.14) +> with single-character markers. Only the **doubled-marker** form proposed +> below was dismissed. It lives here to record that choice. **Proposed:** ``` @@ -262,7 +266,7 @@ This is {++added++} and {--removed--} text. This is {~~old~>new~~} replacement. ``` -**Status:** Included in spec (section 4.14), but with **single**-character markers (`{+added+}`, `{-removed-}`, `{~old~>new~}`); the doubled-marker form shown above was not adopted. +**Status:** The feature is in the spec (section 4.14), but with **single**-character markers (`{+added+}`, `{-removed-}`, `{~old~>new~}`); the doubled-marker form shown above was not adopted. **Considerations:** - Useful for document review workflows diff --git a/docs/index.md b/docs/index.md index c16d08fb..e4fb8beb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -23,7 +23,7 @@ features: - title: Visual Mnemonics details: "/italic/ slashes lean, *bold* asterisks are heavy, _underline_ sits below, ~strikethrough~ runs through. Syntax that looks like its output." - title: Linear-Time Rigor - details: Djot-style linear-time parsing with no backtracking, unambiguous rules — extended with captions, abbreviations, and social conventions. + details: "Djot-style linear-time parsing with no backtracking and unambiguous rules (Djot is the markup Carve builds on), extended with captions, abbreviations, and social conventions." - title: Ten-Second Rule details: Learnable in 10 seconds for basic use. Memorable after 10 days without practice. Unambiguous within 10 characters of context. - title: Captions Everywhere diff --git a/docs/markup-languages.md b/docs/markup-languages.md index 833c2456..03734810 100644 --- a/docs/markup-languages.md +++ b/docs/markup-languages.md @@ -1,6 +1,9 @@ # Modern Markup Languages Comparison -A comparison of lightweight markup languages available today. +A broad, neutral survey of the lightweight markup languages available today. + +> For a focused, Carve-centric comparison against Markdown, Djot, and MDX, see +> [Carve vs Markdown, Djot & MDX](./comparison). ## Overview diff --git a/docs/security.md b/docs/security.md index fadf4732..13ad120f 100644 --- a/docs/security.md +++ b/docs/security.md @@ -160,12 +160,13 @@ does not launder an attack: responsible for inserting it into a trusted context and for the surrounding Content-Security-Policy. -## Relationship to the spec's SafeMode +## Beyond the baseline: SafeMode and Profiles The baseline on this page - the URL scheme denylist, the attribute name/value -hardening, and the raw-HTML escape switch - is enforced by all three -implementations (carve-php, carve-js, carve-rs) by default. `SafeMode` / -`Profile` describe a broader, opt-in policy layered ON TOP (scheme allowlists, +hardening, and the raw-HTML escape switch - is the normative default: enforced +by all three implementations (carve-php, carve-js, carve-rs) without any +configuration. `SafeMode` / `Profile` are **optional, implementation-level** +policy objects that layer a broader surface ON TOP (scheme allowlists, domain allow/deny, `rel=nofollow`, feature restriction, nesting / length limits); that wider surface is documented in the [Syntax Specification](./case-study/syntax) and may land incrementally.