@zvndev/darkmown 2.12.3 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -5,6 +5,7 @@ Darkmown is a Markdown-native web framework. You build sites by writing `.md` an
5
5
  ## The one rule
6
6
 
7
7
  - `.md` files are plain CommonMark. Directives stay inert text.
8
+ - `.wd` adds read-only task lists: `- [ ] item` and `- [x] item` render as checkboxes, with no runtime. For a checkbox the reader can tick, use `:checkbox`.
8
9
  - `.wd` files are the same Markdown **plus directives** (state, loops, conditionals, includes, forms).
9
10
  - To make a `.md` page interactive, **rename it to `.wd`**. ⚠️ Renaming means the old `.md` is **gone** — never leave both `index.md` and `index.wd`, that is a fatal `Duplicate route` build error. Upgrade = delete the `.md`, create the `.wd`.
10
11
  - Static pages ship **zero** JavaScript; a page loads the ~6.6 KB gzipped runtime (CI-enforced under 8 KB) only if it declares reactive behavior. What ships at `/__wd/runtime.js` is a minified build of the readable source, with a sourcemap beside it at `/__wd/runtime.js.map`.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,36 @@
2
2
 
3
3
  All notable changes to Darkmown are documented here. Versions follow [semver](https://semver.org); pre-1.0 minor versions may contain breaking changes.
4
4
 
5
+ ## 2.13.0 (2026-11-01)
6
+
7
+ ### Added
8
+
9
+ - `.wd` task lists: `- [ ] item` and `- [x] item` render as read-only checkboxes, with no runtime. `.md` stays strict CommonMark.
10
+
11
+ ## 2.12.4 (2026-11-01)
12
+
13
+ Closes what the 2026-10-23 audit got past the 2.12.3 security pass, and stops two kinds of broken page from passing `validate` as clean.
14
+
15
+ ### Security
16
+
17
+ - Raw-HTML interpolation now reads a fragment the way the browser's tokenizer does. A `>` inside an earlier quoted value (`<button title=">" onclick="{ x }">`) no longer hides the attribute from the guard.
18
+ - A value in a `<script>` or `<style>` body is dropped with a warning. JSON scripts such as `application/ld+json` still take values.
19
+ - `to`, `from`, `by` and each entry of `values` get the URL scheme check, closing SVG `<animate>` and `<set>`.
20
+ - `<{ x }>` can no longer choose the tag name.
21
+ - The dev and preview servers apply the cross-site guard to every URL the `api/` runner serves, including `/api` itself.
22
+ - Host-only files are refused in any letter case, for macOS and Windows filesystems.
23
+ - A `:fetch` placeholder holding `[".."]` is treated as missing, like `..`.
24
+ - The generated Cloudflare worker answers malformed percent-encoding with a 400 instead of throwing.
25
+
26
+ ### Warnings
27
+
28
+ - `{ name }` that matches nothing now warns with its line and the nearest declared name. It still ships as literal text. Write `\{ name }` to show braces on purpose.
29
+ - A `:fetch` URL reading a name the page never declares now warns, since the request will not fire until something sets it.
30
+
31
+ ### Fixed
32
+
33
+ - The MCP stdio test accepts a prerelease version, which had been failing every canary since 2026-10-15.
34
+
5
35
  ## 2.12.3 (2026-10-22)
6
36
 
7
37
  A security pass over the runtime, the compiler's output escaping, and the local servers. Nothing found executed script on a default (`html: false`) page; the fixes close denial-of-service, redirect, and leak paths, plus script injection on `html: true` pages fed by data.
package/README.md CHANGED
@@ -103,6 +103,7 @@ npm run dev # live demo site — the same site that runs darkmown.com
103
103
 
104
104
  - `site/pages` is the route tree. `.md` and `.wd` files become pages.
105
105
  - `.md` is strict CommonMark (real parser: ordered lists, tables, blockquotes, images, the lot). Directives stay plain text, and the build hints when it spots `.wd` syntax in a `.md` file.
106
+ - `.wd` adds read-only task lists: `- [ ] item` and `- [x] item` render as checkboxes, with no runtime. For a checkbox the reader can tick, use `:checkbox`.
106
107
  - Files or folders starting with `.`, `-`, or `_` are hidden from routing.
107
108
  - `site/_` is the include shelf for `@include /name.wd`.
108
109
  - Matching `page.skin` and `page.js` colocate styling and behavior by basename.
@@ -115,6 +115,7 @@ The 1.3.0 cycle shipped the crawler *files* (sitemap, rss, robots). This closes
115
115
  ## Fundamentally aligned
116
116
 
117
117
  - **Markdown-first authoring:** `.md` is strict CommonMark rendered by a real parser (markdown-it); `.wd` is the same Markdown plus first-party directives. Renaming the file is the upgrade path — extensions genuinely gate functionality.
118
+ - **Task lists in `.wd`:** `- [ ]` and `- [x]` compile to read-only checkboxes in `.wd` only, as static output. `.md` stays strict CommonMark. Covered by `tests/task-lists.test.js`.
118
119
  - **Content tree over components:** routing, includes, and repeated fragments are file/document based instead of React-style components.
119
120
  - **Tiered output:** static routes emit HTML/CSS and no Darkmown runtime; reactive routes opt into `/__wd/runtime.js`, a minified build of the readable source with a sourcemap beside it (~6.6 KB gzipped, CI-enforced below the 8 KB target).
120
121
  - **No virtual DOM:** state changes patch direct DOM bindings, conditional regions, and keyed loop regions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zvndev/darkmown",
3
- "version": "2.12.3",
3
+ "version": "2.13.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -91,6 +91,7 @@ For editing, there is a VS Code extension for `.wd` and `.skin` files: see [Edit
91
91
  ## The two formats
92
92
 
93
93
  - `.md` is strict CommonMark. Directives, includes, and `{ bindings }` stay plain text, and the build prints a hint if it spots `.wd` syntax in a `.md` file.
94
+ - `.wd` adds read-only task lists: `- [ ] item` and `- [x] item` render as checkboxes, with no runtime. For a checkbox the reader can tick, use `:checkbox`.
94
95
  - `.wd` is Markdown plus directives. Renaming a file from `.md` to `.wd` is the upgrade path — nothing else changes.
95
96
 
96
97
  ## Routing rules