Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion spec
Submodule spec updated 99 files
+46 −0 .github/workflows/ci.yml
+1 −1 .github/workflows/deploy.yml
+3 −3 README.md
+20 −1 docs/.vitepress/carve-lib/ast.d.ts
+1 −1 docs/.vitepress/carve-lib/ast.d.ts.map
+21 −0 docs/.vitepress/carve-lib/djot-migrate.d.ts
+1 −0 docs/.vitepress/carve-lib/djot-migrate.d.ts.map
+225 −0 docs/.vitepress/carve-lib/djot-migrate.js
+1 −0 docs/.vitepress/carve-lib/djot-migrate.js.map
+13 −0 docs/.vitepress/carve-lib/heading-ids.d.ts
+1 −0 docs/.vitepress/carve-lib/heading-ids.d.ts.map
+216 −0 docs/.vitepress/carve-lib/heading-ids.js
+1 −0 docs/.vitepress/carve-lib/heading-ids.js.map
+4 −1 docs/.vitepress/carve-lib/index.d.ts
+1 −1 docs/.vitepress/carve-lib/index.d.ts.map
+12 −2 docs/.vitepress/carve-lib/index.js
+1 −1 docs/.vitepress/carve-lib/index.js.map
+2 −0 docs/.vitepress/carve-lib/parse.d.ts
+1 −1 docs/.vitepress/carve-lib/parse.d.ts.map
+495 −77 docs/.vitepress/carve-lib/parse.js
+1 −1 docs/.vitepress/carve-lib/parse.js.map
+56 −7 docs/.vitepress/carve-lib/render-html.js
+1 −1 docs/.vitepress/carve-lib/render-html.js.map
+2 −0 docs/.vitepress/carve-lib/translit-map.d.ts
+1 −0 docs/.vitepress/carve-lib/translit-map.d.ts.map
+914 −0 docs/.vitepress/carve-lib/translit-map.js
+1 −0 docs/.vitepress/carve-lib/translit-map.js.map
+38 −17 docs/case-study/syntax.md
+46 −0 docs/edge-cases.md
+462 −4 docs/examples.md
+3 −1 package.json
+35 −0 resources/grammar.ebnf
+51 −0 tests/corpus.test.mjs
+3 −0 tests/corpus/05-lists-10.crv
+5 −0 tests/corpus/05-lists-10.html
+2 −0 tests/corpus/05-lists-6.crv
+2 −0 tests/corpus/05-lists-6.html
+3 −0 tests/corpus/05-lists-7.crv
+5 −0 tests/corpus/05-lists-7.html
+3 −0 tests/corpus/05-lists-8.crv
+4 −0 tests/corpus/05-lists-8.html
+2 −0 tests/corpus/05-lists-9.crv
+7 −0 tests/corpus/05-lists-9.html
+1 −1 tests/corpus/19-heading-ids.crv
+3 −3 tests/corpus/19-heading-ids.html
+2 −0 tests/corpus/25-table-doubled-alignment-marker.crv
+6 −0 tests/corpus/25-table-doubled-alignment-marker.html
+5 −0 tests/corpus/26-fenced-code-shorter-inner-fence.crv
+4 −0 tests/corpus/26-fenced-code-shorter-inner-fence.html
+3 −0 tests/corpus/27-blockquote-caption-after-a-blank-line.crv
+4 −0 tests/corpus/27-blockquote-caption-after-a-blank-line.html
+2 −0 tests/corpus/28-table-cell-escaped-pipe.crv
+6 −0 tests/corpus/28-table-cell-escaped-pipe.html
+2 −0 tests/corpus/29-table-cell-pipe-inside-code-span.crv
+6 −0 tests/corpus/29-table-cell-pipe-inside-code-span.html
+3 −0 tests/corpus/30-abbreviation-matches-on-word-boundaries-only.crv
+1 −0 tests/corpus/30-abbreviation-matches-on-word-boundaries-only.html
+1 −0 tests/corpus/31-mention-ignores-email-addresses.crv
+1 −0 tests/corpus/31-mention-ignores-email-addresses.html
+1 −0 tests/corpus/32-tag-requires-a-word-boundary.crv
+1 −0 tests/corpus/32-tag-requires-a-word-boundary.html
+4 −0 tests/corpus/33-table-stacked-rowspan.crv
+8 −0 tests/corpus/33-table-stacked-rowspan.html
+3 −0 tests/corpus/34-reference-link.crv
+1 −0 tests/corpus/34-reference-link.html
+3 −0 tests/corpus/35-collapsed-reference-link.crv
+1 −0 tests/corpus/35-collapsed-reference-link.html
+1 −0 tests/corpus/36-unresolved-reference-link.crv
+1 −0 tests/corpus/36-unresolved-reference-link.html
+1 −0 tests/corpus/37-smart-typography-dashes-and-quotes.crv
+1 −0 tests/corpus/37-smart-typography-dashes-and-quotes.html
+2 −0 tests/corpus/38-smart-typography-arrows-and-symbols.crv
+2 −0 tests/corpus/38-smart-typography-arrows-and-symbols.html
+1 −0 tests/corpus/39-smart-typography-escapes-and-code.crv
+1 −0 tests/corpus/39-smart-typography-escapes-and-code.html
+5 −0 tests/corpus/40-table-multi-line-cell-continuation.crv
+7 −0 tests/corpus/40-table-multi-line-cell-continuation.html
+5 −0 tests/corpus/41-table-rowspan-with-multi-line-content.crv
+7 −0 tests/corpus/41-table-rowspan-with-multi-line-content.html
+86 −0 tests/normativity.test.mjs
+56 −0 tests/spec/05-lists.test
+4 −4 tests/spec/19-heading-ids.test
+13 −0 tests/spec/25-table-doubled-alignment-marker.test
+14 −0 tests/spec/26-fenced-code-shorter-inner-fence.test
+12 −0 tests/spec/27-blockquote-caption-after-a-blank-line.test
+13 −0 tests/spec/28-table-cell-escaped-pipe.test
+13 −0 tests/spec/29-table-cell-pipe-inside-code-span.test
+9 −0 tests/spec/30-abbreviation-matches-on-word-boundaries-only.test
+7 −0 tests/spec/31-mention-ignores-email-addresses.test
+7 −0 tests/spec/32-tag-requires-a-word-boundary.test
+17 −0 tests/spec/33-table-stacked-rowspan.test
+9 −0 tests/spec/34-reference-link.test
+9 −0 tests/spec/35-collapsed-reference-link.test
+7 −0 tests/spec/36-unresolved-reference-link.test
+7 −0 tests/spec/37-smart-typography-dashes-and-quotes.test
+9 −0 tests/spec/38-smart-typography-arrows-and-symbols.test
+7 −0 tests/spec/39-smart-typography-escapes-and-code.test
+17 −0 tests/spec/40-table-multi-line-cell-continuation.test
+17 −0 tests/spec/41-table-rowspan-with-multi-line-content.test
22 changes: 18 additions & 4 deletions test/corpus.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,29 @@ const IMPLEMENTED = new Set([
'16-inline-extensions',
'17-attributes',
'18-frontmatter',
// '19-heading-ids' — temporarily skipped while the carve spec corpus
// updates its fixture from the Unicode-preserving slugs (café-notes)
// to the new ASCII-safe slugs (cafe-notes). Re-add once the spec
// submodule bumps past that corpus update.
'19-heading-ids',
'20-table-column-alignment',
'21-table-per-cell-alignment-override',
'22-headerless-table-alignment',
'23-table-without-alignment',
'24-table-alignment-with-colspan',
'25-table-doubled-alignment-marker',
'26-fenced-code-shorter-inner-fence',
'27-blockquote-caption-after-a-blank-line',
'28-table-cell-escaped-pipe',
'29-table-cell-pipe-inside-code-span',
'30-abbreviation-matches-on-word-boundaries-only',
'31-mention-ignores-email-addresses',
'32-tag-requires-a-word-boundary',
'33-table-stacked-rowspan',
'34-reference-link',
'35-collapsed-reference-link',
'36-unresolved-reference-link',
'37-smart-typography-dashes-and-quotes',
'38-smart-typography-arrows-and-symbols',
'39-smart-typography-escapes-and-code',
'40-table-multi-line-cell-continuation',
'41-table-rowspan-with-multi-line-content',
])

/**
Expand Down
12 changes: 12 additions & 0 deletions vitest.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineConfig } from 'vitest/config'

// Limit vitest discovery to this repo's own `test/` suite.
// The vendored `spec/` submodule (markup-carve/carve) carries its own
// `node:test` runners (spec/tests/corpus.test.mjs, normativity.test.mjs)
// used by the carve repo's CI; those have no Vitest API and would fail
// here as "no test suite found" if vitest tried to load them.
export default defineConfig({
test: {
include: ['test/**/*.test.ts'],
},
})
Loading