Skip to content

Commit 419df84

Browse files
Release packages (#15)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 04f450c commit 419df84

12 files changed

Lines changed: 50 additions & 48 deletions

File tree

.changeset/smaller-compatible-markdown.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# @tanstack/markdown
2+
3+
## 0.0.14
4+
5+
### Patch Changes
6+
7+
- 04f450c: Improve Markdown compatibility and parsing speed while reducing parser, renderer, and documentation extension bundles.
8+
9+
- Preserve code span whitespace and exact backtick delimiters, handle escaped punctuation and nested emphasis, and retain formatted image alt text.
10+
- Correct nested list tightness, ordered lists starting at zero, indented code fences, escaped table pipes, and link destinations and reference labels. Prevent nested link anchors.
11+
- Avoid generated heading and footnote definition ID collisions, preserve headings across footnote content, and render backreferences for footnotes ending in non-paragraph blocks.
12+
- Keep callouts within quoted content, preserve prototype-shaped comment attributes and package-manager names, and guard oversized code-line ranges.
13+
- Reduce repeated scanning and allocations in inline parsing, React and Octane list rendering, and documentation extensions.
14+
15+
Add regression coverage, ratchet 403 CommonMark examples, and enforce minified, gzip, and Brotli budgets for every public entry point. Existing public APIs and runtime dependencies are unchanged.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tanstack/markdown",
3-
"version": "0.0.13",
3+
"version": "0.0.14",
44
"type": "module",
55
"description": "A tiny, fast, deterministic Markdown renderer for blogs and documentation.",
66
"license": "MIT",

skills/_artifacts/domain_map.yaml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Generated by skill-domain-discovery
22
# Library: @tanstack/markdown
3-
# Version: 0.0.13
3+
# Version: 0.0.14
44
# Date: 2026-07-22
55
# Status: reviewed
66

77
status: reviewed
88
library:
99
name: '@tanstack/markdown'
10-
version: '0.0.13'
10+
version: '0.0.14'
1111
repository: 'https://github.com/TanStack/markdown'
1212
description: 'A synchronous Markdown parser and renderer for controlled blog and documentation content.'
1313
primary_framework: 'framework-agnostic'
@@ -54,7 +54,7 @@ skills:
5454
source: 'docs/core-concepts/syntax-profile.md'
5555
priority: 'HIGH'
5656
status: 'active'
57-
version_context: 'Intentional product boundary in 0.0.13.'
57+
version_context: 'Intentional product boundary in 0.0.14.'
5858
skills: ['render-markdown', 'production-pipelines']
5959
- mistake: 'Reparsing unchanged content on every render'
6060
mechanism: 'String inputs are parsed by complete-document renderers, while a cached MarkdownDocument skips repeated parsing.'
@@ -68,7 +68,7 @@ skills:
6868
source: 'docs/core-concepts/document-model.md'
6969
priority: 'MEDIUM'
7070
status: 'active'
71-
version_context: 'Current API behavior in 0.0.13.'
71+
version_context: 'Current API behavior in 0.0.14.'
7272
skills: ['render-markdown', 'production-pipelines']
7373
- mistake: 'Applying parser options after parsing'
7474
mechanism: 'Parse-only options do not retroactively change a pre-parsed AST.'
@@ -81,7 +81,7 @@ skills:
8181
source: 'docs/reference/html.md'
8282
priority: 'HIGH'
8383
status: 'active'
84-
version_context: 'Current AST/render split in 0.0.13.'
84+
version_context: 'Current AST/render split in 0.0.14.'
8585
- mistake: 'Using parseInline for document definitions'
8686
mechanism: 'Standalone inline parsing does not extract document-level reference links or footnote definitions unless parser state is supplied.'
8787
wrong_pattern: |
@@ -91,7 +91,7 @@ skills:
9191
source: 'docs/reference/default-entry.md'
9292
priority: 'MEDIUM'
9393
status: 'active'
94-
version_context: 'Current parsing contract in 0.0.13.'
94+
version_context: 'Current parsing contract in 0.0.14.'
9595

9696
- name: 'Render with React'
9797
slug: 'react-rendering'
@@ -118,7 +118,7 @@ skills:
118118
source: 'docs/guides/react.md'
119119
priority: 'HIGH'
120120
status: 'active'
121-
version_context: 'React adapter contract in 0.0.13.'
121+
version_context: 'React adapter contract in 0.0.14.'
122122
skills: ['react-rendering', 'production-pipelines']
123123
- mistake: 'Mapping AST node names instead of emitted tags'
124124
mechanism: 'The components option is keyed by emitted HTML/custom-element tag names such as a or md-tab-panel.'
@@ -129,7 +129,7 @@ skills:
129129
source: 'docs/guides/react.md'
130130
priority: 'HIGH'
131131
status: 'active'
132-
version_context: 'Current component map in 0.0.13.'
132+
version_context: 'Current component map in 0.0.14.'
133133
- mistake: 'Expecting HTML extension hooks in React output'
134134
mechanism: 'MarkdownExtension.renderHtml is HTML-specific; cross-renderer custom output must use ComponentNode and component mappings.'
135135
wrong_pattern: |
@@ -141,7 +141,7 @@ skills:
141141
source: 'docs/guides/extensions.md'
142142
priority: 'HIGH'
143143
status: 'active'
144-
version_context: 'Renderer-specific extension boundary in 0.0.13.'
144+
version_context: 'Renderer-specific extension boundary in 0.0.14.'
145145
skills: ['react-rendering', 'custom-extensions']
146146

147147
- name: 'Render with Octane'
@@ -168,7 +168,7 @@ skills:
168168
source: 'docs/reference/octane.md'
169169
priority: 'HIGH'
170170
status: 'active'
171-
version_context: 'Octane adapter contract in 0.0.13.'
171+
version_context: 'Octane adapter contract in 0.0.14.'
172172
- mistake: 'Using a React component in the Octane component map'
173173
mechanism: 'Octane replacements must be host tag strings or Octane ComponentBody values.'
174174
wrong_pattern: |
@@ -179,7 +179,7 @@ skills:
179179
source: 'docs/guides/octane.md'
180180
priority: 'HIGH'
181181
status: 'active'
182-
version_context: 'Octane component map in 0.0.13.'
182+
version_context: 'Octane component map in 0.0.14.'
183183
- mistake: 'Ignoring Octane static-render return structure'
184184
mechanism: 'octane/server static rendering returns an object containing html and css rather than only an HTML string.'
185185
wrong_pattern: |
@@ -230,7 +230,7 @@ skills:
230230
source: 'docs/guides/docs-preset.md'
231231
priority: 'HIGH'
232232
status: 'active'
233-
version_context: 'Docs preset contract in 0.0.13.'
233+
version_context: 'Docs preset contract in 0.0.14.'
234234
- mistake: 'Using unmatched comment component boundaries'
235235
mechanism: 'An unmatched block start is consumed as an empty component while its body remains ordinary Markdown.'
236236
wrong_pattern: |
@@ -245,7 +245,7 @@ skills:
245245
source: 'src/extensions/comment-components.ts'
246246
priority: 'HIGH'
247247
status: 'active'
248-
version_context: 'Current block parser behavior in 0.0.13.'
248+
version_context: 'Current block parser behavior in 0.0.14.'
249249
- mistake: 'Feeding a tab transform the wrong content shape'
250250
mechanism: 'Each tab variant returns the original node when its expected headings, code files, package lines, or supported bundlers are absent.'
251251
wrong_pattern: |
@@ -261,7 +261,7 @@ skills:
261261
source: 'docs/guides/docs-preset.md'
262262
priority: 'MEDIUM'
263263
status: 'active'
264-
version_context: 'Current docs transforms in 0.0.13.'
264+
version_context: 'Current docs transforms in 0.0.14.'
265265
- mistake: 'Assuming code metadata highlights code by itself'
266266
mechanism: 'Fence metadata is parsed into the AST, but tokenization and themes require an external highlighter.'
267267
wrong_pattern: |
@@ -272,7 +272,7 @@ skills:
272272
source: 'docs/core-concepts/syntax-profile.md'
273273
priority: 'MEDIUM'
274274
status: 'active'
275-
version_context: 'Intentional core/optional boundary in 0.0.13.'
275+
version_context: 'Intentional core/optional boundary in 0.0.14.'
276276
skills: ['docs-features', 'production-pipelines']
277277

278278
- name: 'Write Custom Extensions'
@@ -304,7 +304,7 @@ skills:
304304
source: 'docs/guides/extensions.md'
305305
priority: 'HIGH'
306306
status: 'active'
307-
version_context: 'Block extension contract in 0.0.13.'
307+
version_context: 'Block extension contract in 0.0.14.'
308308
- mistake: 'Ordering a general parser before a specific parser'
309309
mechanism: 'Extensions run in array order, so an earlier broad parser can prevent a later parser from seeing its syntax.'
310310
wrong_pattern: |
@@ -314,7 +314,7 @@ skills:
314314
source: 'docs/guides/extensions.md'
315315
priority: 'HIGH'
316316
status: 'active'
317-
version_context: 'Current ordered extension lifecycle in 0.0.13.'
317+
version_context: 'Current ordered extension lifecycle in 0.0.14.'
318318
- mistake: 'Using HTML hooks for cross-framework custom nodes'
319319
mechanism: 'renderHtml hooks do not run in React or Octane; ComponentNode plus adapter component maps is the portable path.'
320320
wrong_pattern: |
@@ -332,7 +332,7 @@ skills:
332332
source: 'docs/guides/extensions.md'
333333
priority: 'HIGH'
334334
status: 'active'
335-
version_context: 'Renderer extension boundary in 0.0.13.'
335+
version_context: 'Renderer extension boundary in 0.0.14.'
336336
skills: ['custom-extensions', 'react-rendering', 'octane-rendering']
337337
- mistake: 'Changing the extension set between parse and render'
338338
mechanism: 'Document transforms are embedded in the AST, while HTML render hooks still require the active extension at render time.'
@@ -345,7 +345,7 @@ skills:
345345
source: 'docs/guides/extensions.md'
346346
priority: 'MEDIUM'
347347
status: 'active'
348-
version_context: 'Current parse/render extension split in 0.0.13.'
348+
version_context: 'Current parse/render extension split in 0.0.14.'
349349

350350
- name: 'Ship a Production Content Pipeline'
351351
slug: 'production-pipelines'
@@ -373,7 +373,7 @@ skills:
373373
source: 'docs/core-concepts/security.md'
374374
priority: 'CRITICAL'
375375
status: 'active'
376-
version_context: 'Security boundary in 0.0.13.'
376+
version_context: 'Security boundary in 0.0.14.'
377377
skills: ['production-pipelines', 'react-rendering', 'octane-rendering']
378378
- mistake: 'Returning a complete pre/code tree from a highlighter'
379379
mechanism: 'The callback output becomes the trusted contents of the renderer-owned code element.'
@@ -386,7 +386,7 @@ skills:
386386
source: 'docs/guides/syntax-highlighting.md'
387387
priority: 'HIGH'
388388
status: 'active'
389-
version_context: 'CodeHighlighter contract in 0.0.13.'
389+
version_context: 'CodeHighlighter contract in 0.0.14.'
390390
- mistake: 'Trusting arbitrary highlighter output'
391391
mechanism: 'Highlighter output is inserted without escaping in HTML, React, and Octane renderers.'
392392
wrong_pattern: |
@@ -396,7 +396,7 @@ skills:
396396
source: 'docs/core-concepts/security.md'
397397
priority: 'CRITICAL'
398398
status: 'active'
399-
version_context: 'Trusted callback boundary in 0.0.13.'
399+
version_context: 'Trusted callback boundary in 0.0.14.'
400400
- mistake: 'Bundling optional highlighting into the client path'
401401
mechanism: 'Language grammars and themes can outweigh Markdown parsing; highlighting should stay build-time or server-side when possible.'
402402
wrong_pattern: |
@@ -408,7 +408,7 @@ skills:
408408
source: 'docs/guides/performance.md'
409409
priority: 'MEDIUM'
410410
status: 'active'
411-
version_context: 'Intentional dependency boundary in 0.0.13.'
411+
version_context: 'Intentional dependency boundary in 0.0.14.'
412412
- mistake: 'Treating safe defaults as a complete sanitizer'
413413
mechanism: 'Dangerous protocols and raw HTML are constrained, but application-specific outbound links, images, and final HTML policies remain external.'
414414
wrong_pattern: |
@@ -419,7 +419,7 @@ skills:
419419
source: 'docs/core-concepts/security.md'
420420
priority: 'CRITICAL'
421421
status: 'active'
422-
version_context: 'Documented security limit in 0.0.13.'
422+
version_context: 'Documented security limit in 0.0.14.'
423423

424424
tensions:
425425
- name: 'Compatibility breadth versus bundle budget'

skills/_artifacts/skill_tree.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Generated by skill-tree-generator
22
# Library: @tanstack/markdown
3-
# Version: 0.0.13
3+
# Version: 0.0.14
44
# Date: 2026-07-22
55

66
library:
77
name: '@tanstack/markdown'
8-
version: '0.0.13'
8+
version: '0.0.14'
99
repository: 'https://github.com/TanStack/markdown'
1010
description: 'A synchronous Markdown parser and renderer for controlled blog and documentation content.'
1111
generated_from:

skills/custom-extensions/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ description: >
77
metadata:
88
type: core
99
library: '@tanstack/markdown'
10-
library_version: '0.0.13'
10+
library_version: '0.0.14'
1111
requires:
1212
- 'render-markdown'
1313
sources:

skills/docs-features/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: >
99
metadata:
1010
type: core
1111
library: '@tanstack/markdown'
12-
library_version: '0.0.13'
12+
library_version: '0.0.14'
1313
requires:
1414
- 'render-markdown'
1515
sources:

skills/octane-rendering/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ metadata:
99
type: framework
1010
library: '@tanstack/markdown'
1111
framework: 'octane'
12-
library_version: '0.0.13'
12+
library_version: '0.0.14'
1313
requires:
1414
- 'render-markdown'
1515
sources:

skills/production-pipelines/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: >
88
metadata:
99
type: lifecycle
1010
library: '@tanstack/markdown'
11-
library_version: '0.0.13'
11+
library_version: '0.0.14'
1212
requires:
1313
- 'render-markdown'
1414
sources:
@@ -127,7 +127,7 @@ import { parseMarkdown } from '@tanstack/markdown/parser'
127127
const cache = new Map<string, MarkdownDocument>()
128128

129129
export function renderCachedArticle(key: string, source: string): string {
130-
const cacheKey = `markdown-0.0.13:${key}`
130+
const cacheKey = `markdown-0.0.14:${key}`
131131
let document = cache.get(cacheKey)
132132
if (!document) {
133133
document = parseMarkdown(source, {

skills/react-rendering/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ metadata:
99
type: framework
1010
library: '@tanstack/markdown'
1111
framework: 'react'
12-
library_version: '0.0.13'
12+
library_version: '0.0.14'
1313
requires:
1414
- 'render-markdown'
1515
sources:

0 commit comments

Comments
 (0)