@redocly/recheck 0.15.0 → 2.58.1
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/README.md +71 -1886
- package/examples/appendices/google.appendix.yaml +1 -1
- package/examples/appendices/inclusive-language.appendix.yaml +1 -1
- package/examples/appendices/microsoft.appendix.yaml +1 -1
- package/examples/appendices/plain-language.appendix.yaml +1 -1
- package/examples/appendices/technical-english.appendix.yaml +1 -1
- package/examples/google.yaml +7 -7
- package/examples/inclusive-language.yaml +7 -7
- package/examples/microsoft.yaml +7 -7
- package/examples/plain-language.yaml +7 -7
- package/examples/technical-english.yaml +7 -7
- package/lib/actions/baseline.d.ts +15 -0
- package/lib/actions/baseline.d.ts.map +1 -0
- package/lib/actions/baseline.js +51 -0
- package/lib/actions/baseline.js.map +1 -0
- package/lib/actions/lint.d.ts +51 -0
- package/lib/actions/lint.d.ts.map +1 -0
- package/lib/actions/lint.js +123 -0
- package/lib/actions/lint.js.map +1 -0
- package/lib/actions/markdoc-schema.d.ts +34 -0
- package/lib/actions/markdoc-schema.d.ts.map +1 -0
- package/lib/actions/markdoc-schema.js +106 -0
- package/lib/actions/markdoc-schema.js.map +1 -0
- package/lib/actions/readability.d.ts +25 -0
- package/lib/actions/readability.d.ts.map +1 -0
- package/lib/actions/readability.js +47 -0
- package/lib/actions/readability.js.map +1 -0
- package/lib/actions/roots.d.ts +7 -0
- package/lib/actions/roots.d.ts.map +1 -0
- package/lib/actions/roots.js +36 -0
- package/lib/actions/roots.js.map +1 -0
- package/lib/config/presets/api-descriptions.d.ts +8 -0
- package/lib/config/presets/api-descriptions.d.ts.map +1 -0
- package/lib/config/presets/api-descriptions.js +24 -0
- package/lib/config/presets/api-descriptions.js.map +1 -0
- package/lib/config/presets/google.d.ts +3 -0
- package/lib/config/presets/google.d.ts.map +1 -0
- package/lib/config/presets/google.js +1086 -0
- package/lib/config/presets/google.js.map +1 -0
- package/lib/config/presets/inclusive-language.d.ts +3 -0
- package/lib/config/presets/inclusive-language.d.ts.map +1 -0
- package/lib/config/presets/inclusive-language.js +151 -0
- package/lib/config/presets/inclusive-language.js.map +1 -0
- package/lib/config/presets/index.d.ts +16 -0
- package/lib/config/presets/index.d.ts.map +1 -0
- package/lib/config/presets/index.js +38 -0
- package/lib/config/presets/index.js.map +1 -0
- package/lib/config/presets/markdoc.d.ts +3 -0
- package/lib/config/presets/markdoc.d.ts.map +1 -0
- package/lib/config/presets/markdoc.js +45 -0
- package/lib/config/presets/markdoc.js.map +1 -0
- package/lib/config/presets/markdown-relaxed.d.ts +3 -0
- package/lib/config/presets/markdown-relaxed.d.ts.map +1 -0
- package/lib/config/presets/markdown-relaxed.js +34 -0
- package/lib/config/presets/markdown-relaxed.js.map +1 -0
- package/lib/config/presets/markdown.d.ts +11 -0
- package/lib/config/presets/markdown.d.ts.map +1 -0
- package/lib/config/presets/markdown.js +73 -0
- package/lib/config/presets/markdown.js.map +1 -0
- package/lib/config/presets/microsoft.d.ts +3 -0
- package/lib/config/presets/microsoft.d.ts.map +1 -0
- package/lib/config/presets/microsoft.js +1260 -0
- package/lib/config/presets/microsoft.js.map +1 -0
- package/lib/config/presets/minimal.d.ts +3 -0
- package/lib/config/presets/minimal.d.ts.map +1 -0
- package/lib/config/presets/minimal.js +13 -0
- package/lib/config/presets/minimal.js.map +1 -0
- package/lib/config/presets/plain-language.d.ts +3 -0
- package/lib/config/presets/plain-language.d.ts.map +1 -0
- package/lib/config/presets/plain-language.js +175 -0
- package/lib/config/presets/plain-language.js.map +1 -0
- package/lib/config/presets/prose.d.ts +3 -0
- package/lib/config/presets/prose.d.ts.map +1 -0
- package/lib/config/presets/prose.js +60 -0
- package/lib/config/presets/prose.js.map +1 -0
- package/lib/config/presets/technical-english.d.ts +22 -0
- package/lib/config/presets/technical-english.d.ts.map +1 -0
- package/lib/config/presets/technical-english.js +61 -0
- package/lib/config/presets/technical-english.js.map +1 -0
- package/lib/config/resolve.d.ts +36 -0
- package/lib/config/resolve.d.ts.map +1 -0
- package/lib/config/resolve.js +106 -0
- package/lib/config/resolve.js.map +1 -0
- package/lib/config/schema.d.ts +215 -0
- package/lib/config/schema.d.ts.map +1 -0
- package/lib/config/schema.js +152 -0
- package/lib/config/schema.js.map +1 -0
- package/lib/config/validate.d.ts +19 -0
- package/lib/config/validate.d.ts.map +1 -0
- package/lib/config/validate.js +1049 -0
- package/lib/config/validate.js.map +1 -0
- package/lib/core/auto-fix.d.ts.map +1 -0
- package/lib/core/auto-fix.js +94 -0
- package/lib/core/auto-fix.js.map +1 -0
- package/lib/core/baseline.d.ts +43 -0
- package/lib/core/baseline.d.ts.map +1 -0
- package/lib/core/baseline.js +142 -0
- package/lib/core/baseline.js.map +1 -0
- package/lib/core/case-preserve.d.ts +11 -0
- package/lib/core/case-preserve.d.ts.map +1 -0
- package/lib/core/case-preserve.js +22 -0
- package/lib/core/case-preserve.js.map +1 -0
- package/lib/core/directives.d.ts.map +1 -0
- package/lib/core/directives.js +66 -0
- package/lib/core/directives.js.map +1 -0
- package/lib/core/files.d.ts +31 -0
- package/lib/core/files.d.ts.map +1 -0
- package/lib/core/files.js +184 -0
- package/lib/core/files.js.map +1 -0
- package/lib/core/inline-code.d.ts +33 -0
- package/lib/core/inline-code.d.ts.map +1 -0
- package/lib/core/inline-code.js +50 -0
- package/lib/core/inline-code.js.map +1 -0
- package/lib/core/line-endings.d.ts +13 -0
- package/lib/core/line-endings.d.ts.map +1 -0
- package/lib/core/line-endings.js +39 -0
- package/lib/core/line-endings.js.map +1 -0
- package/lib/core/markdoc-tags.d.ts +48 -0
- package/lib/core/markdoc-tags.d.ts.map +1 -0
- package/lib/core/markdoc-tags.js +102 -0
- package/lib/core/markdoc-tags.js.map +1 -0
- package/lib/core/prose-extract.d.ts +6 -0
- package/lib/core/prose-extract.d.ts.map +1 -0
- package/lib/core/prose-extract.js +71 -0
- package/lib/core/prose-extract.js.map +1 -0
- package/lib/core/readability.d.ts +17 -0
- package/lib/core/readability.d.ts.map +1 -0
- package/lib/core/readability.js +34 -0
- package/lib/core/readability.js.map +1 -0
- package/lib/core/rule-filters.d.ts +29 -0
- package/lib/core/rule-filters.d.ts.map +1 -0
- package/lib/core/rule-filters.js +88 -0
- package/lib/core/rule-filters.js.map +1 -0
- package/lib/core/runner.d.ts +60 -0
- package/lib/core/runner.d.ts.map +1 -0
- package/lib/core/runner.js +305 -0
- package/lib/core/runner.js.map +1 -0
- package/lib/core/summary.d.ts +4 -0
- package/lib/core/summary.d.ts.map +1 -0
- package/lib/core/summary.js +37 -0
- package/lib/core/summary.js.map +1 -0
- package/lib/core/timing.d.ts +9 -0
- package/lib/core/timing.d.ts.map +1 -0
- package/lib/core/timing.js +19 -0
- package/lib/core/timing.js.map +1 -0
- package/lib/data/markdoc-realm-schema.d.ts.map +1 -0
- package/lib/data/markdoc-realm-schema.js +782 -0
- package/lib/data/markdoc-realm-schema.js.map +1 -0
- package/lib/data/proper-nouns.d.ts.map +1 -0
- package/lib/data/proper-nouns.js +42 -0
- package/lib/data/proper-nouns.js.map +1 -0
- package/lib/data/realm-front-matter-schema.d.ts +12 -0
- package/lib/data/realm-front-matter-schema.d.ts.map +1 -0
- package/lib/data/realm-front-matter-schema.js +51 -0
- package/lib/data/realm-front-matter-schema.js.map +1 -0
- package/lib/index.d.ts +81 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +114 -0
- package/lib/index.js.map +1 -0
- package/lib/metrics/formulas.d.ts +9 -0
- package/lib/metrics/formulas.d.ts.map +1 -0
- package/lib/metrics/formulas.js +59 -0
- package/lib/metrics/formulas.js.map +1 -0
- package/lib/metrics/statistics.d.ts +14 -0
- package/lib/metrics/statistics.d.ts.map +1 -0
- package/lib/metrics/statistics.js +35 -0
- package/lib/metrics/statistics.js.map +1 -0
- package/lib/parser/index.d.ts +13 -0
- package/lib/parser/index.d.ts.map +1 -0
- package/lib/parser/index.js +123 -0
- package/lib/parser/index.js.map +1 -0
- package/lib/parser/markdoc/extract-statics.d.ts +28 -0
- package/lib/parser/markdoc/extract-statics.d.ts.map +1 -0
- package/lib/parser/markdoc/extract-statics.js +80 -0
- package/lib/parser/markdoc/extract-statics.js.map +1 -0
- package/lib/parser/markdoc/pairing.d.ts +38 -0
- package/lib/parser/markdoc/pairing.d.ts.map +1 -0
- package/lib/parser/markdoc/pairing.js +77 -0
- package/lib/parser/markdoc/pairing.js.map +1 -0
- package/lib/parser/markdoc/schema.d.ts +56 -0
- package/lib/parser/markdoc/schema.d.ts.map +1 -0
- package/lib/parser/markdoc/schema.js +60 -0
- package/lib/parser/markdoc/schema.js.map +1 -0
- package/lib/parser/markdoc/span.d.ts +52 -0
- package/lib/parser/markdoc/span.d.ts.map +1 -0
- package/lib/parser/markdoc/span.js +577 -0
- package/lib/parser/markdoc/span.js.map +1 -0
- package/lib/parser/markdoc/structure.d.ts +17 -0
- package/lib/parser/markdoc/structure.d.ts.map +1 -0
- package/lib/parser/markdoc/structure.js +121 -0
- package/lib/parser/markdoc/structure.js.map +1 -0
- package/lib/parser/markdoc/syntax.d.ts +17 -0
- package/lib/parser/markdoc/syntax.d.ts.map +1 -0
- package/lib/parser/markdoc/syntax.js +262 -0
- package/lib/parser/markdoc/syntax.js.map +1 -0
- package/lib/parser/types.d.ts.map +1 -0
- package/lib/presets.d.ts +6 -0
- package/lib/presets.d.ts.map +1 -0
- package/lib/presets.js +12 -0
- package/lib/presets.js.map +1 -0
- package/lib/rules/registry.d.ts +13 -0
- package/lib/rules/registry.d.ts.map +1 -0
- package/lib/rules/registry.js +54 -0
- package/lib/rules/registry.js.map +1 -0
- package/lib/rules/scope/capitalization.d.ts.map +1 -0
- package/lib/rules/scope/capitalization.js +128 -0
- package/lib/rules/scope/capitalization.js.map +1 -0
- package/lib/rules/scope/conditional.d.ts.map +1 -0
- package/lib/rules/scope/conditional.js +93 -0
- package/lib/rules/scope/conditional.js.map +1 -0
- package/lib/rules/scope/consistency.d.ts.map +1 -0
- package/lib/rules/scope/consistency.js +118 -0
- package/lib/rules/scope/consistency.js.map +1 -0
- package/lib/rules/scope/length.d.ts.map +1 -0
- package/lib/rules/scope/length.js +50 -0
- package/lib/rules/scope/length.js.map +1 -0
- package/lib/rules/scope/max-image-size.d.ts.map +1 -0
- package/lib/rules/scope/max-image-size.js +55 -0
- package/lib/rules/scope/max-image-size.js.map +1 -0
- package/lib/rules/scope/metric.d.ts +3 -0
- package/lib/rules/scope/metric.d.ts.map +1 -0
- package/lib/rules/scope/metric.js +59 -0
- package/lib/rules/scope/metric.js.map +1 -0
- package/lib/rules/scope/occurrence.d.ts.map +1 -0
- package/lib/rules/scope/occurrence.js +41 -0
- package/lib/rules/scope/occurrence.js.map +1 -0
- package/lib/rules/scope/pattern.d.ts.map +1 -0
- package/lib/rules/scope/pattern.js +58 -0
- package/lib/rules/scope/pattern.js.map +1 -0
- package/lib/rules/scope/repetition.d.ts.map +1 -0
- package/lib/rules/scope/repetition.js +134 -0
- package/lib/rules/scope/repetition.js.map +1 -0
- package/lib/rules/scope/semantic-line-breaks.d.ts.map +1 -0
- package/lib/rules/scope/semantic-line-breaks.js +180 -0
- package/lib/rules/scope/semantic-line-breaks.js.map +1 -0
- package/lib/rules/scope/spelling.d.ts +11 -0
- package/lib/rules/scope/spelling.d.ts.map +1 -0
- package/lib/rules/scope/spelling.js +146 -0
- package/lib/rules/scope/spelling.js.map +1 -0
- package/lib/rules/scope/swap.d.ts.map +1 -0
- package/lib/rules/scope/swap.js +111 -0
- package/lib/rules/scope/swap.js.map +1 -0
- package/lib/rules/scope/title-case.d.ts +24 -0
- package/lib/rules/scope/title-case.d.ts.map +1 -0
- package/lib/rules/scope/title-case.js +216 -0
- package/lib/rules/scope/title-case.js.map +1 -0
- package/lib/rules/token/blanks-around-fences.d.ts.map +1 -0
- package/lib/rules/token/blanks-around-fences.js.map +1 -0
- package/lib/rules/token/blanks-around-headings.d.ts.map +1 -0
- package/lib/rules/token/blanks-around-headings.js +96 -0
- package/lib/rules/token/blanks-around-headings.js.map +1 -0
- package/lib/rules/token/blanks-around-lists.d.ts.map +1 -0
- package/lib/rules/token/blanks-around-lists.js +48 -0
- package/lib/rules/token/blanks-around-lists.js.map +1 -0
- package/lib/rules/token/blanks-around-tables.d.ts.map +1 -0
- package/lib/rules/token/blanks-around-tables.js +40 -0
- package/lib/rules/token/blanks-around-tables.js.map +1 -0
- package/lib/rules/token/code-block-style.d.ts.map +1 -0
- package/lib/rules/token/code-block-style.js.map +1 -0
- package/lib/rules/token/code-fence-style.d.ts.map +1 -0
- package/lib/rules/token/code-fence-style.js.map +1 -0
- package/lib/rules/token/commands-show-output.d.ts.map +1 -0
- package/lib/rules/token/commands-show-output.js.map +1 -0
- package/lib/rules/token/descriptive-link-text.d.ts.map +1 -0
- package/lib/rules/token/descriptive-link-text.js +46 -0
- package/lib/rules/token/descriptive-link-text.js.map +1 -0
- package/lib/rules/token/fenced-code-language.d.ts.map +1 -0
- package/lib/rules/token/fenced-code-language.js.map +1 -0
- package/lib/rules/token/first-line-h1.d.ts.map +1 -0
- package/lib/rules/token/first-line-h1.js +83 -0
- package/lib/rules/token/first-line-h1.js.map +1 -0
- package/lib/rules/token/front-matter.d.ts.map +1 -0
- package/lib/rules/token/front-matter.js +169 -0
- package/lib/rules/token/front-matter.js.map +1 -0
- package/lib/rules/token/heading-increment.d.ts.map +1 -0
- package/lib/rules/token/heading-increment.js +26 -0
- package/lib/rules/token/heading-increment.js.map +1 -0
- package/lib/rules/token/heading-start-left.d.ts.map +1 -0
- package/lib/rules/token/heading-start-left.js.map +1 -0
- package/lib/rules/token/heading-style.d.ts.map +1 -0
- package/lib/rules/token/heading-style.js.map +1 -0
- package/lib/rules/token/helpers.d.ts +115 -0
- package/lib/rules/token/helpers.d.ts.map +1 -0
- package/lib/rules/token/helpers.js +502 -0
- package/lib/rules/token/helpers.js.map +1 -0
- package/lib/rules/token/hr-style.d.ts.map +1 -0
- package/lib/rules/token/hr-style.js.map +1 -0
- package/lib/rules/token/index.d.ts +65 -0
- package/lib/rules/token/index.d.ts.map +1 -0
- package/lib/rules/token/index.js +157 -0
- package/lib/rules/token/index.js.map +1 -0
- package/lib/rules/token/line-length.d.ts.map +1 -0
- package/lib/rules/token/line-length.js +96 -0
- package/lib/rules/token/line-length.js.map +1 -0
- package/lib/rules/token/link-fragments.d.ts.map +1 -0
- package/lib/rules/token/link-fragments.js +398 -0
- package/lib/rules/token/link-fragments.js.map +1 -0
- package/lib/rules/token/link-image-reference-definitions.d.ts.map +1 -0
- package/lib/rules/token/link-image-reference-definitions.js.map +1 -0
- package/lib/rules/token/link-image-style.d.ts.map +1 -0
- package/lib/rules/token/link-image-style.js +138 -0
- package/lib/rules/token/link-image-style.js.map +1 -0
- package/lib/rules/token/list-indent.d.ts.map +1 -0
- package/lib/rules/token/list-indent.js.map +1 -0
- package/lib/rules/token/list-length.d.ts.map +1 -0
- package/lib/rules/token/list-length.js +31 -0
- package/lib/rules/token/list-length.js.map +1 -0
- package/lib/rules/token/list-marker-space.d.ts.map +1 -0
- package/lib/rules/token/list-marker-space.js.map +1 -0
- package/lib/rules/token/markdoc-attributes.d.ts.map +1 -0
- package/lib/rules/token/markdoc-attributes.js +198 -0
- package/lib/rules/token/markdoc-attributes.js.map +1 -0
- package/lib/rules/token/markdoc-pairing.d.ts.map +1 -0
- package/lib/rules/token/markdoc-pairing.js +65 -0
- package/lib/rules/token/markdoc-pairing.js.map +1 -0
- package/lib/rules/token/markdoc-syntax.d.ts.map +1 -0
- package/lib/rules/token/markdoc-syntax.js +84 -0
- package/lib/rules/token/markdoc-syntax.js.map +1 -0
- package/lib/rules/token/markdoc-unknown-tag.d.ts.map +1 -0
- package/lib/rules/token/markdoc-unknown-tag.js +44 -0
- package/lib/rules/token/markdoc-unknown-tag.js.map +1 -0
- package/lib/rules/token/no-alt-text.d.ts.map +1 -0
- package/lib/rules/token/no-alt-text.js +43 -0
- package/lib/rules/token/no-alt-text.js.map +1 -0
- package/lib/rules/token/no-bare-urls.d.ts.map +1 -0
- package/lib/rules/token/no-bare-urls.js +74 -0
- package/lib/rules/token/no-bare-urls.js.map +1 -0
- package/lib/rules/token/no-blanks-blockquote.d.ts.map +1 -0
- package/lib/rules/token/no-blanks-blockquote.js.map +1 -0
- package/lib/rules/token/no-duplicate-heading.d.ts.map +1 -0
- package/lib/rules/token/no-duplicate-heading.js +89 -0
- package/lib/rules/token/no-duplicate-heading.js.map +1 -0
- package/lib/rules/token/no-duplicate-link-destinations.d.ts.map +1 -0
- package/lib/rules/token/no-duplicate-link-destinations.js +54 -0
- package/lib/rules/token/no-duplicate-link-destinations.js.map +1 -0
- package/lib/rules/token/no-emphasis-as-heading.d.ts.map +1 -0
- package/lib/rules/token/no-emphasis-as-heading.js +39 -0
- package/lib/rules/token/no-emphasis-as-heading.js.map +1 -0
- package/lib/rules/token/no-empty-headings.d.ts.map +1 -0
- package/lib/rules/token/no-empty-headings.js +21 -0
- package/lib/rules/token/no-empty-headings.js.map +1 -0
- package/lib/rules/token/no-empty-links.d.ts.map +1 -0
- package/lib/rules/token/no-empty-links.js.map +1 -0
- package/lib/rules/token/no-hard-tabs.d.ts.map +1 -0
- package/lib/rules/token/no-hard-tabs.js.map +1 -0
- package/lib/rules/token/no-inline-html.d.ts.map +1 -0
- package/lib/rules/token/no-inline-html.js +41 -0
- package/lib/rules/token/no-inline-html.js.map +1 -0
- package/lib/rules/token/no-multiple-blanks.d.ts.map +1 -0
- package/lib/rules/token/no-multiple-blanks.js.map +1 -0
- package/lib/rules/token/no-multiple-space-atx.d.ts +9 -0
- package/lib/rules/token/no-multiple-space-atx.d.ts.map +1 -0
- package/lib/rules/token/no-multiple-space-atx.js +46 -0
- package/lib/rules/token/no-multiple-space-atx.js.map +1 -0
- package/lib/rules/token/no-multiple-space-closed-atx.d.ts.map +1 -0
- package/lib/rules/token/no-multiple-space-closed-atx.js.map +1 -0
- package/lib/rules/token/no-reversed-links.d.ts.map +1 -0
- package/lib/rules/token/no-reversed-links.js.map +1 -0
- package/lib/rules/token/no-space-in-code.d.ts.map +1 -0
- package/lib/rules/token/no-space-in-code.js.map +1 -0
- package/lib/rules/token/no-space-in-emphasis.d.ts.map +1 -0
- package/lib/rules/token/no-space-in-emphasis.js +72 -0
- package/lib/rules/token/no-space-in-emphasis.js.map +1 -0
- package/lib/rules/token/no-space-in-links.d.ts.map +1 -0
- package/lib/rules/token/no-space-in-links.js.map +1 -0
- package/lib/rules/token/no-trailing-punctuation.d.ts.map +1 -0
- package/lib/rules/token/no-trailing-punctuation.js.map +1 -0
- package/lib/rules/token/no-trailing-spaces.d.ts.map +1 -0
- package/lib/rules/token/no-trailing-spaces.js.map +1 -0
- package/lib/rules/token/ol-prefix.d.ts.map +1 -0
- package/lib/rules/token/ol-prefix.js.map +1 -0
- package/lib/rules/token/proper-names.d.ts.map +1 -0
- package/lib/rules/token/proper-names.js +87 -0
- package/lib/rules/token/proper-names.js.map +1 -0
- package/lib/rules/token/reference-links-images.d.ts.map +1 -0
- package/lib/rules/token/reference-links-images.js.map +1 -0
- package/lib/rules/token/required-headings.d.ts.map +1 -0
- package/lib/rules/token/required-headings.js +73 -0
- package/lib/rules/token/required-headings.js.map +1 -0
- package/lib/rules/token/single-h1.d.ts.map +1 -0
- package/lib/rules/token/single-h1.js +43 -0
- package/lib/rules/token/single-h1.js.map +1 -0
- package/lib/rules/token/table-column-count.d.ts.map +1 -0
- package/lib/rules/token/table-column-count.js.map +1 -0
- package/lib/rules/token/table-column-style.d.ts.map +1 -0
- package/lib/rules/token/table-column-style.js +162 -0
- package/lib/rules/token/table-column-style.js.map +1 -0
- package/lib/rules/token/table-pipe-style.d.ts.map +1 -0
- package/lib/rules/token/table-pipe-style.js.map +1 -0
- package/lib/rules/token/ul-indent.d.ts.map +1 -0
- package/lib/rules/token/ul-indent.js.map +1 -0
- package/lib/rules/token/ul-style.d.ts.map +1 -0
- package/lib/rules/token/ul-style.js +70 -0
- package/lib/rules/token/ul-style.js.map +1 -0
- package/lib/rules/types.d.ts +62 -0
- package/lib/rules/types.d.ts.map +1 -0
- package/lib/rules/utils.d.ts +18 -0
- package/lib/rules/utils.d.ts.map +1 -0
- package/lib/rules/utils.js +75 -0
- package/lib/rules/utils.js.map +1 -0
- package/lib/scopes/extractor.d.ts +6 -0
- package/lib/scopes/extractor.d.ts.map +1 -0
- package/lib/scopes/extractor.js +398 -0
- package/lib/scopes/extractor.js.map +1 -0
- package/lib/scopes/selector.d.ts +26 -0
- package/lib/scopes/selector.d.ts.map +1 -0
- package/lib/scopes/selector.js +78 -0
- package/lib/scopes/selector.js.map +1 -0
- package/lib/scopes/sentences.d.ts +13 -0
- package/lib/scopes/sentences.d.ts.map +1 -0
- package/lib/scopes/sentences.js +237 -0
- package/lib/scopes/sentences.js.map +1 -0
- package/lib/scopes/types.d.ts +35 -0
- package/lib/scopes/types.d.ts.map +1 -0
- package/lib/scopes/vocabulary.d.ts +12 -0
- package/lib/scopes/vocabulary.d.ts.map +1 -0
- package/lib/scopes/vocabulary.js +56 -0
- package/lib/scopes/vocabulary.js.map +1 -0
- package/lib/types/assertions.d.ts +97 -0
- package/lib/types/assertions.d.ts.map +1 -0
- package/lib/types/reporting.d.ts +23 -0
- package/lib/types/reporting.d.ts.map +1 -0
- package/lib/types/rules.d.ts +53 -0
- package/lib/types/rules.d.ts.map +1 -0
- package/lib/types/validation.d.ts +5 -0
- package/lib/types/validation.d.ts.map +1 -0
- package/lib/utils/is-plain-object.d.ts +2 -0
- package/lib/utils/is-plain-object.d.ts.map +1 -0
- package/lib/utils/is-plain-object.js +5 -0
- package/lib/utils/is-plain-object.js.map +1 -0
- package/package.json +58 -61
- package/presets/google/PROVENANCE.md +217 -221
- package/presets/inclusive-language/PROVENANCE.md +20 -19
- package/presets/microsoft/PROVENANCE.md +242 -243
- package/presets/plain-language/PROVENANCE.md +66 -60
- package/presets/technical-english/PROVENANCE.md +5 -5
- package/skills/recheck-config/SKILL.md +70 -20
- package/skills/recheck-lint/SKILL.md +37 -13
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -228
- package/dist/cli.js.map +0 -1
- package/dist/commands/baseline.d.ts +0 -10
- package/dist/commands/baseline.d.ts.map +0 -1
- package/dist/commands/baseline.js +0 -59
- package/dist/commands/baseline.js.map +0 -1
- package/dist/commands/markdoc-schema.d.ts +0 -17
- package/dist/commands/markdoc-schema.d.ts.map +0 -1
- package/dist/commands/markdoc-schema.js +0 -127
- package/dist/commands/markdoc-schema.js.map +0 -1
- package/dist/commands/readability.d.ts +0 -10
- package/dist/commands/readability.d.ts.map +0 -1
- package/dist/commands/readability.js +0 -90
- package/dist/commands/readability.js.map +0 -1
- package/dist/commands/run.d.ts +0 -21
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -236
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -8
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -43
- package/dist/commands/validate.js.map +0 -1
- package/dist/config/load.d.ts +0 -33
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js +0 -98
- package/dist/config/load.js.map +0 -1
- package/dist/config/presets/api-descriptions.d.ts +0 -8
- package/dist/config/presets/api-descriptions.d.ts.map +0 -1
- package/dist/config/presets/api-descriptions.js +0 -24
- package/dist/config/presets/api-descriptions.js.map +0 -1
- package/dist/config/presets/google.d.ts +0 -3
- package/dist/config/presets/google.d.ts.map +0 -1
- package/dist/config/presets/google.js +0 -1671
- package/dist/config/presets/google.js.map +0 -1
- package/dist/config/presets/inclusive-language.d.ts +0 -3
- package/dist/config/presets/inclusive-language.d.ts.map +0 -1
- package/dist/config/presets/inclusive-language.js +0 -321
- package/dist/config/presets/inclusive-language.js.map +0 -1
- package/dist/config/presets/index.d.ts +0 -67
- package/dist/config/presets/index.d.ts.map +0 -1
- package/dist/config/presets/index.js +0 -141
- package/dist/config/presets/index.js.map +0 -1
- package/dist/config/presets/markdoc.d.ts +0 -21
- package/dist/config/presets/markdoc.d.ts.map +0 -1
- package/dist/config/presets/markdoc.js +0 -101
- package/dist/config/presets/markdoc.js.map +0 -1
- package/dist/config/presets/markdown-relaxed.d.ts +0 -3
- package/dist/config/presets/markdown-relaxed.d.ts.map +0 -1
- package/dist/config/presets/markdown-relaxed.js +0 -98
- package/dist/config/presets/markdown-relaxed.js.map +0 -1
- package/dist/config/presets/markdown.d.ts +0 -43
- package/dist/config/presets/markdown.d.ts.map +0 -1
- package/dist/config/presets/markdown.js +0 -132
- package/dist/config/presets/markdown.js.map +0 -1
- package/dist/config/presets/microsoft.d.ts +0 -3
- package/dist/config/presets/microsoft.d.ts.map +0 -1
- package/dist/config/presets/microsoft.js +0 -2268
- package/dist/config/presets/microsoft.js.map +0 -1
- package/dist/config/presets/minimal.d.ts +0 -3
- package/dist/config/presets/minimal.d.ts.map +0 -1
- package/dist/config/presets/minimal.js +0 -21
- package/dist/config/presets/minimal.js.map +0 -1
- package/dist/config/presets/plain-language.d.ts +0 -3
- package/dist/config/presets/plain-language.d.ts.map +0 -1
- package/dist/config/presets/plain-language.js +0 -351
- package/dist/config/presets/plain-language.js.map +0 -1
- package/dist/config/presets/prose.d.ts +0 -52
- package/dist/config/presets/prose.d.ts.map +0 -1
- package/dist/config/presets/prose.js +0 -138
- package/dist/config/presets/prose.js.map +0 -1
- package/dist/config/presets/technical-english.d.ts +0 -34
- package/dist/config/presets/technical-english.d.ts.map +0 -1
- package/dist/config/presets/technical-english.js +0 -79
- package/dist/config/presets/technical-english.js.map +0 -1
- package/dist/config/schema.d.ts +0 -226
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -196
- package/dist/config/schema.js.map +0 -1
- package/dist/config/validate.d.ts +0 -22
- package/dist/config/validate.d.ts.map +0 -1
- package/dist/config/validate.js +0 -1315
- package/dist/config/validate.js.map +0 -1
- package/dist/core/auto-fix.d.ts.map +0 -1
- package/dist/core/auto-fix.js +0 -101
- package/dist/core/auto-fix.js.map +0 -1
- package/dist/core/baseline.d.ts +0 -49
- package/dist/core/baseline.d.ts.map +0 -1
- package/dist/core/baseline.js +0 -0
- package/dist/core/baseline.js.map +0 -1
- package/dist/core/case-preserve.d.ts +0 -46
- package/dist/core/case-preserve.d.ts.map +0 -1
- package/dist/core/case-preserve.js +0 -57
- package/dist/core/case-preserve.js.map +0 -1
- package/dist/core/directives.d.ts.map +0 -1
- package/dist/core/directives.js +0 -73
- package/dist/core/directives.js.map +0 -1
- package/dist/core/files.d.ts +0 -69
- package/dist/core/files.d.ts.map +0 -1
- package/dist/core/files.js +0 -260
- package/dist/core/files.js.map +0 -1
- package/dist/core/inline-code.d.ts +0 -87
- package/dist/core/inline-code.d.ts.map +0 -1
- package/dist/core/inline-code.js +0 -104
- package/dist/core/inline-code.js.map +0 -1
- package/dist/core/line-endings.d.ts +0 -32
- package/dist/core/line-endings.d.ts.map +0 -1
- package/dist/core/line-endings.js +0 -65
- package/dist/core/line-endings.js.map +0 -1
- package/dist/core/markdoc-tags.d.ts +0 -79
- package/dist/core/markdoc-tags.d.ts.map +0 -1
- package/dist/core/markdoc-tags.js +0 -131
- package/dist/core/markdoc-tags.js.map +0 -1
- package/dist/core/prose-extract.d.ts +0 -6
- package/dist/core/prose-extract.d.ts.map +0 -1
- package/dist/core/prose-extract.js +0 -79
- package/dist/core/prose-extract.js.map +0 -1
- package/dist/core/readability.d.ts +0 -17
- package/dist/core/readability.d.ts.map +0 -1
- package/dist/core/readability.js +0 -37
- package/dist/core/readability.js.map +0 -1
- package/dist/core/rule-filters.d.ts +0 -45
- package/dist/core/rule-filters.d.ts.map +0 -1
- package/dist/core/rule-filters.js +0 -118
- package/dist/core/rule-filters.js.map +0 -1
- package/dist/core/runner.d.ts +0 -98
- package/dist/core/runner.d.ts.map +0 -1
- package/dist/core/runner.js +0 -401
- package/dist/core/runner.js.map +0 -1
- package/dist/core/timing.d.ts +0 -24
- package/dist/core/timing.d.ts.map +0 -1
- package/dist/core/timing.js +0 -39
- package/dist/core/timing.js.map +0 -1
- package/dist/data/markdoc-realm-schema.d.ts.map +0 -1
- package/dist/data/markdoc-realm-schema.js +0 -798
- package/dist/data/markdoc-realm-schema.js.map +0 -1
- package/dist/data/proper-nouns.d.ts.map +0 -1
- package/dist/data/proper-nouns.js +0 -47
- package/dist/data/proper-nouns.js.map +0 -1
- package/dist/data/realm-front-matter-schema.d.ts +0 -28
- package/dist/data/realm-front-matter-schema.d.ts.map +0 -1
- package/dist/data/realm-front-matter-schema.js +0 -73
- package/dist/data/realm-front-matter-schema.js.map +0 -1
- package/dist/index.d.ts +0 -90
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -152
- package/dist/index.js.map +0 -1
- package/dist/metrics/formulas.d.ts +0 -17
- package/dist/metrics/formulas.d.ts.map +0 -1
- package/dist/metrics/formulas.js +0 -70
- package/dist/metrics/formulas.js.map +0 -1
- package/dist/metrics/statistics.d.ts +0 -27
- package/dist/metrics/statistics.d.ts.map +0 -1
- package/dist/metrics/statistics.js +0 -56
- package/dist/metrics/statistics.js.map +0 -1
- package/dist/parser/index.d.ts +0 -19
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js +0 -174
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/markdoc/extract-statics.d.ts +0 -45
- package/dist/parser/markdoc/extract-statics.d.ts.map +0 -1
- package/dist/parser/markdoc/extract-statics.js +0 -139
- package/dist/parser/markdoc/extract-statics.js.map +0 -1
- package/dist/parser/markdoc/pairing.d.ts +0 -63
- package/dist/parser/markdoc/pairing.d.ts.map +0 -1
- package/dist/parser/markdoc/pairing.js +0 -94
- package/dist/parser/markdoc/pairing.js.map +0 -1
- package/dist/parser/markdoc/schema.d.ts +0 -85
- package/dist/parser/markdoc/schema.d.ts.map +0 -1
- package/dist/parser/markdoc/schema.js +0 -86
- package/dist/parser/markdoc/schema.js.map +0 -1
- package/dist/parser/markdoc/span.d.ts +0 -64
- package/dist/parser/markdoc/span.d.ts.map +0 -1
- package/dist/parser/markdoc/span.js +0 -729
- package/dist/parser/markdoc/span.js.map +0 -1
- package/dist/parser/markdoc/structure.d.ts +0 -28
- package/dist/parser/markdoc/structure.d.ts.map +0 -1
- package/dist/parser/markdoc/structure.js +0 -153
- package/dist/parser/markdoc/structure.js.map +0 -1
- package/dist/parser/markdoc/syntax.d.ts +0 -44
- package/dist/parser/markdoc/syntax.d.ts.map +0 -1
- package/dist/parser/markdoc/syntax.js +0 -317
- package/dist/parser/markdoc/syntax.js.map +0 -1
- package/dist/parser/types.d.ts.map +0 -1
- package/dist/reporter/fixes.d.ts +0 -3
- package/dist/reporter/fixes.d.ts.map +0 -1
- package/dist/reporter/fixes.js +0 -41
- package/dist/reporter/fixes.js.map +0 -1
- package/dist/reporter/formats/github-actions.d.ts +0 -6
- package/dist/reporter/formats/github-actions.d.ts.map +0 -1
- package/dist/reporter/formats/github-actions.js +0 -20
- package/dist/reporter/formats/github-actions.js.map +0 -1
- package/dist/reporter/formats/json.d.ts +0 -10
- package/dist/reporter/formats/json.d.ts.map +0 -1
- package/dist/reporter/formats/json.js +0 -25
- package/dist/reporter/formats/json.js.map +0 -1
- package/dist/reporter/formats/sarif.d.ts +0 -10
- package/dist/reporter/formats/sarif.d.ts.map +0 -1
- package/dist/reporter/formats/sarif.js +0 -66
- package/dist/reporter/formats/sarif.js.map +0 -1
- package/dist/reporter/formats/table.d.ts +0 -6
- package/dist/reporter/formats/table.d.ts.map +0 -1
- package/dist/reporter/formats/table.js +0 -43
- package/dist/reporter/formats/table.js.map +0 -1
- package/dist/reporter/index.d.ts +0 -10
- package/dist/reporter/index.d.ts.map +0 -1
- package/dist/reporter/index.js +0 -42
- package/dist/reporter/index.js.map +0 -1
- package/dist/reporter/prioritize-problems.d.ts +0 -7
- package/dist/reporter/prioritize-problems.d.ts.map +0 -1
- package/dist/reporter/prioritize-problems.js +0 -29
- package/dist/reporter/prioritize-problems.js.map +0 -1
- package/dist/reporter/statistics.d.ts +0 -10
- package/dist/reporter/statistics.d.ts.map +0 -1
- package/dist/reporter/statistics.js +0 -52
- package/dist/reporter/statistics.js.map +0 -1
- package/dist/reporter/summary.d.ts +0 -10
- package/dist/reporter/summary.d.ts.map +0 -1
- package/dist/reporter/summary.js +0 -49
- package/dist/reporter/summary.js.map +0 -1
- package/dist/rules/registry.d.ts +0 -15
- package/dist/rules/registry.d.ts.map +0 -1
- package/dist/rules/registry.js +0 -81
- package/dist/rules/registry.js.map +0 -1
- package/dist/rules/scope/capitalization.d.ts.map +0 -1
- package/dist/rules/scope/capitalization.js +0 -164
- package/dist/rules/scope/capitalization.js.map +0 -1
- package/dist/rules/scope/conditional.d.ts.map +0 -1
- package/dist/rules/scope/conditional.js +0 -112
- package/dist/rules/scope/conditional.js.map +0 -1
- package/dist/rules/scope/consistency.d.ts.map +0 -1
- package/dist/rules/scope/consistency.js +0 -179
- package/dist/rules/scope/consistency.js.map +0 -1
- package/dist/rules/scope/length.d.ts.map +0 -1
- package/dist/rules/scope/length.js +0 -73
- package/dist/rules/scope/length.js.map +0 -1
- package/dist/rules/scope/max-image-size.d.ts.map +0 -1
- package/dist/rules/scope/max-image-size.js +0 -65
- package/dist/rules/scope/max-image-size.js.map +0 -1
- package/dist/rules/scope/metric.d.ts +0 -5
- package/dist/rules/scope/metric.d.ts.map +0 -1
- package/dist/rules/scope/metric.js +0 -74
- package/dist/rules/scope/metric.js.map +0 -1
- package/dist/rules/scope/occurrence.d.ts.map +0 -1
- package/dist/rules/scope/occurrence.js +0 -48
- package/dist/rules/scope/occurrence.js.map +0 -1
- package/dist/rules/scope/pattern.d.ts.map +0 -1
- package/dist/rules/scope/pattern.js +0 -75
- package/dist/rules/scope/pattern.js.map +0 -1
- package/dist/rules/scope/repetition.d.ts.map +0 -1
- package/dist/rules/scope/repetition.js +0 -139
- package/dist/rules/scope/repetition.js.map +0 -1
- package/dist/rules/scope/semantic-line-breaks.d.ts.map +0 -1
- package/dist/rules/scope/semantic-line-breaks.js +0 -236
- package/dist/rules/scope/semantic-line-breaks.js.map +0 -1
- package/dist/rules/scope/spelling.d.ts +0 -27
- package/dist/rules/scope/spelling.d.ts.map +0 -1
- package/dist/rules/scope/spelling.js +0 -227
- package/dist/rules/scope/spelling.js.map +0 -1
- package/dist/rules/scope/swap.d.ts.map +0 -1
- package/dist/rules/scope/swap.js +0 -149
- package/dist/rules/scope/swap.js.map +0 -1
- package/dist/rules/scope/title-case.d.ts +0 -46
- package/dist/rules/scope/title-case.d.ts.map +0 -1
- package/dist/rules/scope/title-case.js +0 -301
- package/dist/rules/scope/title-case.js.map +0 -1
- package/dist/rules/token/blanks-around-fences.d.ts.map +0 -1
- package/dist/rules/token/blanks-around-fences.js.map +0 -1
- package/dist/rules/token/blanks-around-headings.d.ts.map +0 -1
- package/dist/rules/token/blanks-around-headings.js +0 -108
- package/dist/rules/token/blanks-around-headings.js.map +0 -1
- package/dist/rules/token/blanks-around-lists.d.ts.map +0 -1
- package/dist/rules/token/blanks-around-lists.js +0 -56
- package/dist/rules/token/blanks-around-lists.js.map +0 -1
- package/dist/rules/token/blanks-around-tables.d.ts.map +0 -1
- package/dist/rules/token/blanks-around-tables.js +0 -42
- package/dist/rules/token/blanks-around-tables.js.map +0 -1
- package/dist/rules/token/code-block-style.d.ts.map +0 -1
- package/dist/rules/token/code-block-style.js.map +0 -1
- package/dist/rules/token/code-fence-style.d.ts.map +0 -1
- package/dist/rules/token/code-fence-style.js.map +0 -1
- package/dist/rules/token/commands-show-output.d.ts.map +0 -1
- package/dist/rules/token/commands-show-output.js.map +0 -1
- package/dist/rules/token/descriptive-link-text.d.ts.map +0 -1
- package/dist/rules/token/descriptive-link-text.js +0 -53
- package/dist/rules/token/descriptive-link-text.js.map +0 -1
- package/dist/rules/token/fenced-code-language.d.ts.map +0 -1
- package/dist/rules/token/fenced-code-language.js.map +0 -1
- package/dist/rules/token/first-line-h1.d.ts.map +0 -1
- package/dist/rules/token/first-line-h1.js +0 -107
- package/dist/rules/token/first-line-h1.js.map +0 -1
- package/dist/rules/token/front-matter.d.ts.map +0 -1
- package/dist/rules/token/front-matter.js +0 -177
- package/dist/rules/token/front-matter.js.map +0 -1
- package/dist/rules/token/heading-increment.d.ts.map +0 -1
- package/dist/rules/token/heading-increment.js +0 -27
- package/dist/rules/token/heading-increment.js.map +0 -1
- package/dist/rules/token/heading-start-left.d.ts.map +0 -1
- package/dist/rules/token/heading-start-left.js.map +0 -1
- package/dist/rules/token/heading-style.d.ts.map +0 -1
- package/dist/rules/token/heading-style.js.map +0 -1
- package/dist/rules/token/helpers.d.ts +0 -313
- package/dist/rules/token/helpers.d.ts.map +0 -1
- package/dist/rules/token/helpers.js +0 -746
- package/dist/rules/token/helpers.js.map +0 -1
- package/dist/rules/token/hr-style.d.ts.map +0 -1
- package/dist/rules/token/hr-style.js.map +0 -1
- package/dist/rules/token/index.d.ts +0 -76
- package/dist/rules/token/index.d.ts.map +0 -1
- package/dist/rules/token/index.js +0 -229
- package/dist/rules/token/index.js.map +0 -1
- package/dist/rules/token/line-length.d.ts.map +0 -1
- package/dist/rules/token/line-length.js +0 -120
- package/dist/rules/token/line-length.js.map +0 -1
- package/dist/rules/token/link-fragments.d.ts.map +0 -1
- package/dist/rules/token/link-fragments.js +0 -393
- package/dist/rules/token/link-fragments.js.map +0 -1
- package/dist/rules/token/link-image-reference-definitions.d.ts.map +0 -1
- package/dist/rules/token/link-image-reference-definitions.js.map +0 -1
- package/dist/rules/token/link-image-style.d.ts.map +0 -1
- package/dist/rules/token/link-image-style.js +0 -131
- package/dist/rules/token/link-image-style.js.map +0 -1
- package/dist/rules/token/list-indent.d.ts.map +0 -1
- package/dist/rules/token/list-indent.js.map +0 -1
- package/dist/rules/token/list-length.d.ts.map +0 -1
- package/dist/rules/token/list-length.js +0 -55
- package/dist/rules/token/list-length.js.map +0 -1
- package/dist/rules/token/list-marker-space.d.ts.map +0 -1
- package/dist/rules/token/list-marker-space.js.map +0 -1
- package/dist/rules/token/markdoc-attributes.d.ts.map +0 -1
- package/dist/rules/token/markdoc-attributes.js +0 -269
- package/dist/rules/token/markdoc-attributes.js.map +0 -1
- package/dist/rules/token/markdoc-pairing.d.ts.map +0 -1
- package/dist/rules/token/markdoc-pairing.js +0 -73
- package/dist/rules/token/markdoc-pairing.js.map +0 -1
- package/dist/rules/token/markdoc-syntax.d.ts.map +0 -1
- package/dist/rules/token/markdoc-syntax.js +0 -119
- package/dist/rules/token/markdoc-syntax.js.map +0 -1
- package/dist/rules/token/markdoc-unknown-tag.d.ts.map +0 -1
- package/dist/rules/token/markdoc-unknown-tag.js +0 -64
- package/dist/rules/token/markdoc-unknown-tag.js.map +0 -1
- package/dist/rules/token/no-alt-text.d.ts.map +0 -1
- package/dist/rules/token/no-alt-text.js +0 -47
- package/dist/rules/token/no-alt-text.js.map +0 -1
- package/dist/rules/token/no-bare-urls.d.ts.map +0 -1
- package/dist/rules/token/no-bare-urls.js +0 -88
- package/dist/rules/token/no-bare-urls.js.map +0 -1
- package/dist/rules/token/no-blanks-blockquote.d.ts.map +0 -1
- package/dist/rules/token/no-blanks-blockquote.js.map +0 -1
- package/dist/rules/token/no-duplicate-heading.d.ts.map +0 -1
- package/dist/rules/token/no-duplicate-heading.js +0 -101
- package/dist/rules/token/no-duplicate-heading.js.map +0 -1
- package/dist/rules/token/no-duplicate-link-destinations.d.ts.map +0 -1
- package/dist/rules/token/no-duplicate-link-destinations.js +0 -65
- package/dist/rules/token/no-duplicate-link-destinations.js.map +0 -1
- package/dist/rules/token/no-emphasis-as-heading.d.ts.map +0 -1
- package/dist/rules/token/no-emphasis-as-heading.js +0 -44
- package/dist/rules/token/no-emphasis-as-heading.js.map +0 -1
- package/dist/rules/token/no-empty-headings.d.ts.map +0 -1
- package/dist/rules/token/no-empty-headings.js +0 -28
- package/dist/rules/token/no-empty-headings.js.map +0 -1
- package/dist/rules/token/no-empty-links.d.ts.map +0 -1
- package/dist/rules/token/no-empty-links.js.map +0 -1
- package/dist/rules/token/no-hard-tabs.d.ts.map +0 -1
- package/dist/rules/token/no-hard-tabs.js.map +0 -1
- package/dist/rules/token/no-inline-html.d.ts.map +0 -1
- package/dist/rules/token/no-inline-html.js +0 -45
- package/dist/rules/token/no-inline-html.js.map +0 -1
- package/dist/rules/token/no-multiple-blanks.d.ts.map +0 -1
- package/dist/rules/token/no-multiple-blanks.js.map +0 -1
- package/dist/rules/token/no-multiple-space-atx.d.ts +0 -13
- package/dist/rules/token/no-multiple-space-atx.d.ts.map +0 -1
- package/dist/rules/token/no-multiple-space-atx.js +0 -50
- package/dist/rules/token/no-multiple-space-atx.js.map +0 -1
- package/dist/rules/token/no-multiple-space-closed-atx.d.ts.map +0 -1
- package/dist/rules/token/no-multiple-space-closed-atx.js.map +0 -1
- package/dist/rules/token/no-reversed-links.d.ts.map +0 -1
- package/dist/rules/token/no-reversed-links.js.map +0 -1
- package/dist/rules/token/no-space-in-code.d.ts.map +0 -1
- package/dist/rules/token/no-space-in-code.js.map +0 -1
- package/dist/rules/token/no-space-in-emphasis.d.ts.map +0 -1
- package/dist/rules/token/no-space-in-emphasis.js +0 -79
- package/dist/rules/token/no-space-in-emphasis.js.map +0 -1
- package/dist/rules/token/no-space-in-links.d.ts.map +0 -1
- package/dist/rules/token/no-space-in-links.js.map +0 -1
- package/dist/rules/token/no-trailing-punctuation.d.ts.map +0 -1
- package/dist/rules/token/no-trailing-punctuation.js.map +0 -1
- package/dist/rules/token/no-trailing-spaces.d.ts.map +0 -1
- package/dist/rules/token/no-trailing-spaces.js.map +0 -1
- package/dist/rules/token/ol-prefix.d.ts.map +0 -1
- package/dist/rules/token/ol-prefix.js.map +0 -1
- package/dist/rules/token/proper-names.d.ts.map +0 -1
- package/dist/rules/token/proper-names.js +0 -93
- package/dist/rules/token/proper-names.js.map +0 -1
- package/dist/rules/token/reference-links-images.d.ts.map +0 -1
- package/dist/rules/token/reference-links-images.js.map +0 -1
- package/dist/rules/token/required-headings.d.ts.map +0 -1
- package/dist/rules/token/required-headings.js +0 -83
- package/dist/rules/token/required-headings.js.map +0 -1
- package/dist/rules/token/single-h1.d.ts.map +0 -1
- package/dist/rules/token/single-h1.js +0 -56
- package/dist/rules/token/single-h1.js.map +0 -1
- package/dist/rules/token/table-column-count.d.ts.map +0 -1
- package/dist/rules/token/table-column-count.js.map +0 -1
- package/dist/rules/token/table-column-style.d.ts.map +0 -1
- package/dist/rules/token/table-column-style.js +0 -179
- package/dist/rules/token/table-column-style.js.map +0 -1
- package/dist/rules/token/table-pipe-style.d.ts.map +0 -1
- package/dist/rules/token/table-pipe-style.js.map +0 -1
- package/dist/rules/token/ul-indent.d.ts.map +0 -1
- package/dist/rules/token/ul-indent.js.map +0 -1
- package/dist/rules/token/ul-style.d.ts.map +0 -1
- package/dist/rules/token/ul-style.js +0 -80
- package/dist/rules/token/ul-style.js.map +0 -1
- package/dist/rules/types.d.ts +0 -83
- package/dist/rules/types.d.ts.map +0 -1
- package/dist/rules/utils.d.ts +0 -31
- package/dist/rules/utils.d.ts.map +0 -1
- package/dist/rules/utils.js +0 -90
- package/dist/rules/utils.js.map +0 -1
- package/dist/scopes/extractor.d.ts +0 -7
- package/dist/scopes/extractor.d.ts.map +0 -1
- package/dist/scopes/extractor.js +0 -536
- package/dist/scopes/extractor.js.map +0 -1
- package/dist/scopes/selector.d.ts +0 -51
- package/dist/scopes/selector.d.ts.map +0 -1
- package/dist/scopes/selector.js +0 -121
- package/dist/scopes/selector.js.map +0 -1
- package/dist/scopes/sentences.d.ts +0 -15
- package/dist/scopes/sentences.d.ts.map +0 -1
- package/dist/scopes/sentences.js +0 -202
- package/dist/scopes/sentences.js.map +0 -1
- package/dist/scopes/types.d.ts +0 -46
- package/dist/scopes/types.d.ts.map +0 -1
- package/dist/scopes/vocabulary.d.ts +0 -16
- package/dist/scopes/vocabulary.d.ts.map +0 -1
- package/dist/scopes/vocabulary.js +0 -70
- package/dist/scopes/vocabulary.js.map +0 -1
- package/dist/types/assertions.d.ts +0 -121
- package/dist/types/assertions.d.ts.map +0 -1
- package/dist/types/reporting.d.ts +0 -32
- package/dist/types/reporting.d.ts.map +0 -1
- package/dist/types/rules.d.ts +0 -41
- package/dist/types/rules.d.ts.map +0 -1
- package/dist/types/validation.d.ts +0 -6
- package/dist/types/validation.d.ts.map +0 -1
- /package/{dist → lib}/core/auto-fix.d.ts +0 -0
- /package/{dist → lib}/core/directives.d.ts +0 -0
- /package/{dist → lib}/data/markdoc-realm-schema.d.ts +0 -0
- /package/{dist → lib}/data/proper-nouns.d.ts +0 -0
- /package/{dist → lib}/metrics/index.d.ts +0 -0
- /package/{dist → lib}/metrics/index.d.ts.map +0 -0
- /package/{dist → lib}/metrics/index.js +0 -0
- /package/{dist → lib}/metrics/index.js.map +0 -0
- /package/{dist → lib}/parser/types.d.ts +0 -0
- /package/{dist → lib}/parser/types.js +0 -0
- /package/{dist → lib}/parser/types.js.map +0 -0
- /package/{dist → lib}/rules/scope/capitalization.d.ts +0 -0
- /package/{dist → lib}/rules/scope/conditional.d.ts +0 -0
- /package/{dist → lib}/rules/scope/consistency.d.ts +0 -0
- /package/{dist → lib}/rules/scope/length.d.ts +0 -0
- /package/{dist → lib}/rules/scope/max-image-size.d.ts +0 -0
- /package/{dist → lib}/rules/scope/occurrence.d.ts +0 -0
- /package/{dist → lib}/rules/scope/pattern.d.ts +0 -0
- /package/{dist → lib}/rules/scope/repetition.d.ts +0 -0
- /package/{dist → lib}/rules/scope/semantic-line-breaks.d.ts +0 -0
- /package/{dist → lib}/rules/scope/swap.d.ts +0 -0
- /package/{dist → lib}/rules/token/blanks-around-fences.d.ts +0 -0
- /package/{dist → lib}/rules/token/blanks-around-fences.js +0 -0
- /package/{dist → lib}/rules/token/blanks-around-headings.d.ts +0 -0
- /package/{dist → lib}/rules/token/blanks-around-lists.d.ts +0 -0
- /package/{dist → lib}/rules/token/blanks-around-tables.d.ts +0 -0
- /package/{dist → lib}/rules/token/code-block-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/code-block-style.js +0 -0
- /package/{dist → lib}/rules/token/code-fence-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/code-fence-style.js +0 -0
- /package/{dist → lib}/rules/token/commands-show-output.d.ts +0 -0
- /package/{dist → lib}/rules/token/commands-show-output.js +0 -0
- /package/{dist → lib}/rules/token/descriptive-link-text.d.ts +0 -0
- /package/{dist → lib}/rules/token/emphasis-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/emphasis-style.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/emphasis-style.js +0 -0
- /package/{dist → lib}/rules/token/emphasis-style.js.map +0 -0
- /package/{dist → lib}/rules/token/fenced-code-language.d.ts +0 -0
- /package/{dist → lib}/rules/token/fenced-code-language.js +0 -0
- /package/{dist → lib}/rules/token/first-line-h1.d.ts +0 -0
- /package/{dist → lib}/rules/token/front-matter.d.ts +0 -0
- /package/{dist → lib}/rules/token/heading-increment.d.ts +0 -0
- /package/{dist → lib}/rules/token/heading-start-left.d.ts +0 -0
- /package/{dist → lib}/rules/token/heading-start-left.js +0 -0
- /package/{dist → lib}/rules/token/heading-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/heading-style.js +0 -0
- /package/{dist → lib}/rules/token/hr-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/hr-style.js +0 -0
- /package/{dist → lib}/rules/token/line-length.d.ts +0 -0
- /package/{dist → lib}/rules/token/link-fragments.d.ts +0 -0
- /package/{dist → lib}/rules/token/link-image-reference-definitions.d.ts +0 -0
- /package/{dist → lib}/rules/token/link-image-reference-definitions.js +0 -0
- /package/{dist → lib}/rules/token/link-image-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/list-indent.d.ts +0 -0
- /package/{dist → lib}/rules/token/list-indent.js +0 -0
- /package/{dist → lib}/rules/token/list-length.d.ts +0 -0
- /package/{dist → lib}/rules/token/list-marker-space.d.ts +0 -0
- /package/{dist → lib}/rules/token/list-marker-space.js +0 -0
- /package/{dist → lib}/rules/token/markdoc-attributes.d.ts +0 -0
- /package/{dist → lib}/rules/token/markdoc-pairing.d.ts +0 -0
- /package/{dist → lib}/rules/token/markdoc-syntax.d.ts +0 -0
- /package/{dist → lib}/rules/token/markdoc-unknown-tag.d.ts +0 -0
- /package/{dist → lib}/rules/token/messages.d.ts +0 -0
- /package/{dist → lib}/rules/token/messages.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/messages.js +0 -0
- /package/{dist → lib}/rules/token/messages.js.map +0 -0
- /package/{dist → lib}/rules/token/no-alt-text.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-bare-urls.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-blanks-blockquote.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-blanks-blockquote.js +0 -0
- /package/{dist → lib}/rules/token/no-duplicate-heading.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-duplicate-link-destinations.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-emphasis-as-heading.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-empty-headings.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-empty-links.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-empty-links.js +0 -0
- /package/{dist → lib}/rules/token/no-hard-tabs.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-hard-tabs.js +0 -0
- /package/{dist → lib}/rules/token/no-inline-html.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-atx.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-atx.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-atx.js +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-atx.js.map +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-closed-atx.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-closed-atx.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-closed-atx.js +0 -0
- /package/{dist → lib}/rules/token/no-missing-space-closed-atx.js.map +0 -0
- /package/{dist → lib}/rules/token/no-multiple-blanks.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-multiple-blanks.js +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-blockquote.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-blockquote.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-blockquote.js +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-blockquote.js.map +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-closed-atx.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-multiple-space-closed-atx.js +0 -0
- /package/{dist → lib}/rules/token/no-reversed-links.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-reversed-links.js +0 -0
- /package/{dist → lib}/rules/token/no-space-in-code.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-space-in-code.js +0 -0
- /package/{dist → lib}/rules/token/no-space-in-emphasis.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-space-in-links.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-space-in-links.js +0 -0
- /package/{dist → lib}/rules/token/no-trailing-punctuation.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-trailing-punctuation.js +0 -0
- /package/{dist → lib}/rules/token/no-trailing-spaces.d.ts +0 -0
- /package/{dist → lib}/rules/token/no-trailing-spaces.js +0 -0
- /package/{dist → lib}/rules/token/ol-prefix.d.ts +0 -0
- /package/{dist → lib}/rules/token/ol-prefix.js +0 -0
- /package/{dist → lib}/rules/token/proper-names.d.ts +0 -0
- /package/{dist → lib}/rules/token/reference-links-images.d.ts +0 -0
- /package/{dist → lib}/rules/token/reference-links-images.js +0 -0
- /package/{dist → lib}/rules/token/required-headings.d.ts +0 -0
- /package/{dist → lib}/rules/token/single-h1.d.ts +0 -0
- /package/{dist → lib}/rules/token/single-trailing-newline.d.ts +0 -0
- /package/{dist → lib}/rules/token/single-trailing-newline.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/single-trailing-newline.js +0 -0
- /package/{dist → lib}/rules/token/single-trailing-newline.js.map +0 -0
- /package/{dist → lib}/rules/token/strong-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/strong-style.d.ts.map +0 -0
- /package/{dist → lib}/rules/token/strong-style.js +0 -0
- /package/{dist → lib}/rules/token/strong-style.js.map +0 -0
- /package/{dist → lib}/rules/token/table-column-count.d.ts +0 -0
- /package/{dist → lib}/rules/token/table-column-count.js +0 -0
- /package/{dist → lib}/rules/token/table-column-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/table-pipe-style.d.ts +0 -0
- /package/{dist → lib}/rules/token/table-pipe-style.js +0 -0
- /package/{dist → lib}/rules/token/ul-indent.d.ts +0 -0
- /package/{dist → lib}/rules/token/ul-indent.js +0 -0
- /package/{dist → lib}/rules/token/ul-style.d.ts +0 -0
- /package/{dist → lib}/rules/types.js +0 -0
- /package/{dist → lib}/rules/types.js.map +0 -0
- /package/{dist → lib}/scopes/types.js +0 -0
- /package/{dist → lib}/scopes/types.js.map +0 -0
- /package/{dist → lib}/types/assertions.js +0 -0
- /package/{dist → lib}/types/assertions.js.map +0 -0
- /package/{dist → lib}/types/index.d.ts +0 -0
- /package/{dist → lib}/types/index.d.ts.map +0 -0
- /package/{dist → lib}/types/index.js +0 -0
- /package/{dist → lib}/types/index.js.map +0 -0
- /package/{dist → lib}/types/problems.d.ts +0 -0
- /package/{dist → lib}/types/problems.d.ts.map +0 -0
- /package/{dist → lib}/types/problems.js +0 -0
- /package/{dist → lib}/types/problems.js.map +0 -0
- /package/{dist → lib}/types/reporting.js +0 -0
- /package/{dist → lib}/types/reporting.js.map +0 -0
- /package/{dist → lib}/types/rules.js +0 -0
- /package/{dist → lib}/types/rules.js.map +0 -0
- /package/{dist → lib}/types/validation.js +0 -0
- /package/{dist → lib}/types/validation.js.map +0 -0
|
@@ -0,0 +1,577 @@
|
|
|
1
|
+
// Parses the inside of one Markdoc `{% ... %}` span: its kind, name, attributes, and
|
|
2
|
+
// 0-based offsets into the span text. The tokenizer only finds where a span starts
|
|
3
|
+
// and ends.
|
|
4
|
+
//
|
|
5
|
+
// This never throws. Text that can't be parsed comes back as `kind: 'malformed'`
|
|
6
|
+
// with a `reason`.
|
|
7
|
+
//
|
|
8
|
+
// The reference is the Markdoc renderer, which turns every line ending into a single
|
|
9
|
+
// `\n` first. So `\r\n` and a lone `\r` each count as one whitespace character here.
|
|
10
|
+
//
|
|
11
|
+
// Differences from Markdoc. Unless noted, we accept some things Markdoc rejects.
|
|
12
|
+
//
|
|
13
|
+
// - Barewords: an unquoted word as a value (`{% t name=star %}`) gets kind
|
|
14
|
+
// `'bareword'`, so a rule can point at it, instead of making the span `malformed`.
|
|
15
|
+
// - Annotation bodies that start with `.` or `#` are not parsed (no `attributes` or
|
|
16
|
+
// `shortcuts`), so `{% .a.b %}` and `{% #a=1 %}` count as annotations. Shortcuts in
|
|
17
|
+
// a named tag are parsed into `shortcuts`.
|
|
18
|
+
// - An annotation that starts with an attribute (`{% width="30%" %}`) is scanned, and
|
|
19
|
+
// it accepts the same extra forms as named tags, such as `{% a=1b=2 %}`. Invalid
|
|
20
|
+
// ones (`{% a=b %}`, `{% a=1 b %}`, `{% width = "30%" %}`, `{% a="x" /%}`) are malformed.
|
|
21
|
+
// - Attributes may be glued together: `{% t a=1b=2 %}` is two attributes.
|
|
22
|
+
// - `\f` and `\v` separate attributes and shortcuts. Only the gap between the
|
|
23
|
+
// primary value and the first attribute is strict.
|
|
24
|
+
// - Strings accept any `\<char>` escape and raw newlines. Only the closing quote is
|
|
25
|
+
// checked.
|
|
26
|
+
// - Array, object and function contents are only checked for balanced brackets, so
|
|
27
|
+
// `{% fn(1,) %}` parses here but not in Markdoc.
|
|
28
|
+
// - `{%- -%}` trim markers are accepted and ignored.
|
|
29
|
+
// - A top-level variable or function may be followed by `/` (`{% $foo/%}`).
|
|
30
|
+
// - Close tags may have attributes.
|
|
31
|
+
// - Duplicate attributes (`{% t a=1 a=2 %}`) are not reported. Only a rule that knows
|
|
32
|
+
// the schema can do that.
|
|
33
|
+
// - `null`, `true` and `false` are read as whole identifiers. Markdoc reads
|
|
34
|
+
// `{% t nullable=true %}` as the attribute `able`; here it is `nullable`. As a value
|
|
35
|
+
// it becomes a bareword.
|
|
36
|
+
function isSpace(ch) {
|
|
37
|
+
return ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r' || ch === '\f' || ch === '\v';
|
|
38
|
+
}
|
|
39
|
+
// Markdoc's own whitespace: only space, tab and newline, narrower than `isSpace`.
|
|
40
|
+
function isMarkdocSpace(ch) {
|
|
41
|
+
return ch === ' ' || ch === '\t' || ch === '\n';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Skips one whitespace unit at `pos`. '\r\n' and a lone '\r' count as one unit.
|
|
45
|
+
* Returns `pos` unchanged if there is none ('\f' and '\v' are not Markdoc whitespace).
|
|
46
|
+
*/
|
|
47
|
+
function scanMarkdocSpaceUnit(text, pos, end) {
|
|
48
|
+
if (pos >= end)
|
|
49
|
+
return pos;
|
|
50
|
+
const ch = text[pos];
|
|
51
|
+
if (isMarkdocSpace(ch))
|
|
52
|
+
return pos + 1;
|
|
53
|
+
if (ch === '\r')
|
|
54
|
+
return pos + 1 < end && text[pos + 1] === '\n' ? pos + 2 : pos + 1;
|
|
55
|
+
return pos;
|
|
56
|
+
}
|
|
57
|
+
function isDigit(ch) {
|
|
58
|
+
return ch !== undefined && ch >= '0' && ch <= '9';
|
|
59
|
+
}
|
|
60
|
+
function isAlpha(ch) {
|
|
61
|
+
return ch !== undefined && ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'));
|
|
62
|
+
}
|
|
63
|
+
// Markdoc identifiers can start with a digit or dash (`1x`, `-x`), so this is the same as
|
|
64
|
+
// `isIdentChar`.
|
|
65
|
+
function isIdentStart(ch) {
|
|
66
|
+
return isAlpha(ch) || isDigit(ch) || ch === '_' || ch === '-';
|
|
67
|
+
}
|
|
68
|
+
function isIdentChar(ch) {
|
|
69
|
+
return isAlpha(ch) || isDigit(ch) || ch === '_' || ch === '-';
|
|
70
|
+
}
|
|
71
|
+
/** Scans `[A-Za-z0-9_-]+` starting at `pos`. Returns `pos` unchanged if no identifier starts there. */
|
|
72
|
+
function scanIdentifier(text, pos, end) {
|
|
73
|
+
let p = pos;
|
|
74
|
+
if (p < end && isIdentStart(text[p])) {
|
|
75
|
+
p++;
|
|
76
|
+
while (p < end && isIdentChar(text[p]))
|
|
77
|
+
p++;
|
|
78
|
+
}
|
|
79
|
+
return p;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Scans a bracketed run (`[...]`, `{...}` or `(...)`) at `pos`, ignoring brackets inside
|
|
83
|
+
* quoted strings. Returns the position after the closing bracket, or -1 if it never closes.
|
|
84
|
+
*/
|
|
85
|
+
function scanBalanced(text, pos, end, open, close) {
|
|
86
|
+
let depth = 0;
|
|
87
|
+
let p = pos;
|
|
88
|
+
while (p < end) {
|
|
89
|
+
const ch = text[p];
|
|
90
|
+
if (ch === '"' || ch === "'") {
|
|
91
|
+
const quote = ch;
|
|
92
|
+
p++;
|
|
93
|
+
while (p < end && text[p] !== quote) {
|
|
94
|
+
p += text[p] === '\\' && p + 1 < end ? 2 : 1;
|
|
95
|
+
}
|
|
96
|
+
if (p >= end)
|
|
97
|
+
return -1;
|
|
98
|
+
p++;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (ch === open) {
|
|
102
|
+
depth++;
|
|
103
|
+
p++;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (ch === close) {
|
|
107
|
+
depth--;
|
|
108
|
+
p++;
|
|
109
|
+
if (depth === 0)
|
|
110
|
+
return p;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
p++;
|
|
114
|
+
}
|
|
115
|
+
return -1;
|
|
116
|
+
}
|
|
117
|
+
/** Scans a double-quoted string starting at `pos`, decoding `\"` and `\\` escapes. */
|
|
118
|
+
function scanString(text, pos, end) {
|
|
119
|
+
let p = pos + 1;
|
|
120
|
+
let decoded = '';
|
|
121
|
+
while (p < end) {
|
|
122
|
+
const ch = text[p];
|
|
123
|
+
if (ch === '"') {
|
|
124
|
+
return { kind: 'string', value: decoded, endPos: p + 1 };
|
|
125
|
+
}
|
|
126
|
+
if (ch === '\\' && p + 1 < end) {
|
|
127
|
+
const next = text[p + 1];
|
|
128
|
+
decoded += next === '"' || next === '\\' ? next : `\\${next}`;
|
|
129
|
+
p += 2;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
decoded += ch;
|
|
133
|
+
p++;
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Scans a Markdoc number: `'-'? [0-9]+ ('.'[0-9]+)?`. There is no exponent, so in
|
|
139
|
+
* `2e3` only `2` is the number. The caller has checked that a digit (or `-` and a digit) is at `pos`.
|
|
140
|
+
*/
|
|
141
|
+
function scanNumber(text, pos, end) {
|
|
142
|
+
let p = pos;
|
|
143
|
+
if (text[p] === '-')
|
|
144
|
+
p++;
|
|
145
|
+
while (p < end && isDigit(text[p]))
|
|
146
|
+
p++;
|
|
147
|
+
if (text[p] === '.' && isDigit(text[p + 1])) {
|
|
148
|
+
p++;
|
|
149
|
+
while (p < end && isDigit(text[p]))
|
|
150
|
+
p++;
|
|
151
|
+
}
|
|
152
|
+
return { kind: 'number', value: Number(text.slice(pos, p)), endPos: p };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Scans the parts after a variable name: `.name` or `[number]` or `["string"]`.
|
|
156
|
+
* No whitespace is allowed, so `$foo[ 0 ]` and `$foo[bar]` are errors, while
|
|
157
|
+
* `$foo.bar["x"].baz` is fine.
|
|
158
|
+
*
|
|
159
|
+
* A part that does not match is left unconsumed, so the caller sees leftover text
|
|
160
|
+
* (for example after `$foo.`). Returns `pos` unchanged if there is no part.
|
|
161
|
+
*/
|
|
162
|
+
function scanVariableTail(text, pos, end) {
|
|
163
|
+
let p = pos;
|
|
164
|
+
for (;;) {
|
|
165
|
+
if (text[p] === '.') {
|
|
166
|
+
const segEnd = scanIdentifier(text, p + 1, end);
|
|
167
|
+
if (segEnd === p + 1)
|
|
168
|
+
break;
|
|
169
|
+
p = segEnd;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (text[p] === '[') {
|
|
173
|
+
const bracketValueStart = p + 1;
|
|
174
|
+
let valueEnd;
|
|
175
|
+
if (text[bracketValueStart] === '"') {
|
|
176
|
+
const str = scanString(text, bracketValueStart, end);
|
|
177
|
+
if (!str)
|
|
178
|
+
break;
|
|
179
|
+
valueEnd = str.endPos;
|
|
180
|
+
}
|
|
181
|
+
else if (isDigit(text[bracketValueStart]) ||
|
|
182
|
+
(text[bracketValueStart] === '-' && isDigit(text[bracketValueStart + 1]))) {
|
|
183
|
+
valueEnd = scanNumber(text, bracketValueStart, end).endPos;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
if (text[valueEnd] !== ']')
|
|
189
|
+
break;
|
|
190
|
+
p = valueEnd + 1;
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
return p;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Scans one value at `pos`: a string, number, `true`, `false`, `null`, a `$` or `@`
|
|
199
|
+
* variable, a function call, an array or an object. A bare word is not a value
|
|
200
|
+
* here; see `scanBareword`. Returns `null` if no value starts at `pos`.
|
|
201
|
+
*/
|
|
202
|
+
function scanValue(text, pos, end) {
|
|
203
|
+
const ch = text[pos];
|
|
204
|
+
if (ch === '"')
|
|
205
|
+
return scanString(text, pos, end);
|
|
206
|
+
// Both `$` and `@` start a variable.
|
|
207
|
+
if (ch === '$' || ch === '@') {
|
|
208
|
+
const identEnd = scanIdentifier(text, pos + 1, end);
|
|
209
|
+
if (identEnd === pos + 1)
|
|
210
|
+
return null;
|
|
211
|
+
const p = scanVariableTail(text, identEnd, end);
|
|
212
|
+
return { kind: 'variable', value: text.slice(pos, p), endPos: p };
|
|
213
|
+
}
|
|
214
|
+
if (isDigit(ch) || (ch === '-' && isDigit(text[pos + 1]))) {
|
|
215
|
+
return scanNumber(text, pos, end);
|
|
216
|
+
}
|
|
217
|
+
if (ch === '[') {
|
|
218
|
+
const closeEnd = scanBalanced(text, pos, end, '[', ']');
|
|
219
|
+
return closeEnd === -1
|
|
220
|
+
? null
|
|
221
|
+
: { kind: 'array', value: text.slice(pos, closeEnd), endPos: closeEnd };
|
|
222
|
+
}
|
|
223
|
+
if (ch === '{') {
|
|
224
|
+
const closeEnd = scanBalanced(text, pos, end, '{', '}');
|
|
225
|
+
return closeEnd === -1
|
|
226
|
+
? null
|
|
227
|
+
: { kind: 'object', value: text.slice(pos, closeEnd), endPos: closeEnd };
|
|
228
|
+
}
|
|
229
|
+
if (isIdentStart(ch)) {
|
|
230
|
+
const identEnd = scanIdentifier(text, pos, end);
|
|
231
|
+
const word = text.slice(pos, identEnd);
|
|
232
|
+
if (word === 'true')
|
|
233
|
+
return { kind: 'boolean', value: true, endPos: identEnd };
|
|
234
|
+
if (word === 'false')
|
|
235
|
+
return { kind: 'boolean', value: false, endPos: identEnd };
|
|
236
|
+
if (word === 'null')
|
|
237
|
+
return { kind: 'null', value: null, endPos: identEnd };
|
|
238
|
+
if (text[identEnd] === '(') {
|
|
239
|
+
const closeEnd = scanBalanced(text, identEnd, end, '(', ')');
|
|
240
|
+
return closeEnd === -1
|
|
241
|
+
? null
|
|
242
|
+
: { kind: 'function', value: text.slice(pos, closeEnd), endPos: closeEnd };
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Scans a bare word used as a value (`name=star`, `{% if maybe %}`). Markdoc rejects
|
|
249
|
+
* these, but recognizing them lets a rule tell the user to quote the value.
|
|
250
|
+
*/
|
|
251
|
+
function scanBareword(text, pos, end) {
|
|
252
|
+
const identEnd = scanIdentifier(text, pos, end);
|
|
253
|
+
if (identEnd === pos)
|
|
254
|
+
return null;
|
|
255
|
+
return { kind: 'bareword', value: text.slice(pos, identEnd), endPos: identEnd };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Scans the value right after the tag name (`{% if $flag %}`, `{% image "a.png" /%}`).
|
|
259
|
+
* Like Markdoc, it takes whatever value matches first, even if that is only the start
|
|
260
|
+
* of an identifier:
|
|
261
|
+
*
|
|
262
|
+
* `{% icon 1x="star" %}` -> primary `1`, then attribute `x="star"`
|
|
263
|
+
* `{% t null=1 %}` -> primary `null`, then `=1` is an error
|
|
264
|
+
*
|
|
265
|
+
* If no value matches, a bare word followed by `=` is the first attribute name (this
|
|
266
|
+
* includes `{% t a = 1 %}`, which is reported as a spacing error). Any other bare word
|
|
267
|
+
* is a bareword primary. Returns `null` if nothing matches.
|
|
268
|
+
*/
|
|
269
|
+
function scanPrimaryValue(text, pos, end) {
|
|
270
|
+
const value = scanValue(text, pos, end);
|
|
271
|
+
if (value)
|
|
272
|
+
return value;
|
|
273
|
+
const bareword = scanBareword(text, pos, end);
|
|
274
|
+
if (!bareword)
|
|
275
|
+
return null;
|
|
276
|
+
let p = bareword.endPos;
|
|
277
|
+
while (p < end && isSpace(text[p]))
|
|
278
|
+
p++;
|
|
279
|
+
if (p < end && text[p] === '=')
|
|
280
|
+
return null;
|
|
281
|
+
return bareword;
|
|
282
|
+
}
|
|
283
|
+
const NO_SPACES_AROUND_EQUALS = "Markdoc allows no spaces around an attribute's '='";
|
|
284
|
+
/**
|
|
285
|
+
* Scans `name=value` pairs and, when `allowShortcuts` is set, `.class` and `#id`
|
|
286
|
+
* shortcuts, from `startPos` to `end`. Stops at `end` or at the first error.
|
|
287
|
+
*
|
|
288
|
+
* No spaces are allowed around `=`, so `a = 1` is an error.
|
|
289
|
+
*
|
|
290
|
+
* `leadingIsSpace` decides what counts as whitespace before the first item. Later gaps
|
|
291
|
+
* accept any whitespace.
|
|
292
|
+
*
|
|
293
|
+
* A shortcut after another item needs whitespace before it. Without it, the scan
|
|
294
|
+
* falls through to the attribute name, which fails on `.` or `#`, so `{% t .a.b %}` is
|
|
295
|
+
* rejected like in Markdoc.
|
|
296
|
+
*/
|
|
297
|
+
function scanAttributes(text, startPos, end, leadingIsSpace = isSpace, allowShortcuts = false) {
|
|
298
|
+
const attributes = [];
|
|
299
|
+
const shortcuts = [];
|
|
300
|
+
let pos = startPos;
|
|
301
|
+
let isSpaceHere = leadingIsSpace;
|
|
302
|
+
let sawItem = false;
|
|
303
|
+
for (;;) {
|
|
304
|
+
const beforeSkip = pos;
|
|
305
|
+
while (pos < end && isSpaceHere(text[pos]))
|
|
306
|
+
pos++;
|
|
307
|
+
const skippedSeparator = pos > beforeSkip;
|
|
308
|
+
isSpaceHere = isSpace;
|
|
309
|
+
if (pos >= end)
|
|
310
|
+
return { pos, error: null, attributes, shortcuts };
|
|
311
|
+
const ch = text[pos];
|
|
312
|
+
if (allowShortcuts && (ch === '.' || ch === '#') && (!sawItem || skippedSeparator)) {
|
|
313
|
+
const sigilStart = pos;
|
|
314
|
+
const shortcutNameStart = pos + 1;
|
|
315
|
+
const shortcutNameEnd = scanIdentifier(text, shortcutNameStart, end);
|
|
316
|
+
if (shortcutNameEnd === shortcutNameStart) {
|
|
317
|
+
return {
|
|
318
|
+
pos,
|
|
319
|
+
error: `expected an identifier after "${ch}"`,
|
|
320
|
+
attributes,
|
|
321
|
+
shortcuts,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
shortcuts.push({
|
|
325
|
+
kind: ch === '.' ? 'class' : 'id',
|
|
326
|
+
name: text.slice(shortcutNameStart, shortcutNameEnd),
|
|
327
|
+
start: sigilStart,
|
|
328
|
+
end: shortcutNameEnd,
|
|
329
|
+
});
|
|
330
|
+
pos = shortcutNameEnd;
|
|
331
|
+
sawItem = true;
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
const nameStart = pos;
|
|
335
|
+
const nameEnd = scanIdentifier(text, pos, end);
|
|
336
|
+
if (nameEnd === nameStart) {
|
|
337
|
+
return {
|
|
338
|
+
pos,
|
|
339
|
+
error: `expected an attribute name`,
|
|
340
|
+
attributes,
|
|
341
|
+
shortcuts,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
const name = text.slice(nameStart, nameEnd);
|
|
345
|
+
pos = nameEnd;
|
|
346
|
+
if (pos >= end || text[pos] !== '=') {
|
|
347
|
+
return {
|
|
348
|
+
pos,
|
|
349
|
+
error: pos < end && isSpace(text[pos])
|
|
350
|
+
? `expected '=' immediately after attribute name "${name}" (${NO_SPACES_AROUND_EQUALS})`
|
|
351
|
+
: `expected '=' after attribute name "${name}"`,
|
|
352
|
+
attributes,
|
|
353
|
+
shortcuts,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
pos++; // consume '='
|
|
357
|
+
if (pos >= end) {
|
|
358
|
+
return {
|
|
359
|
+
pos,
|
|
360
|
+
error: `expected a value after '=' for attribute "${name}"`,
|
|
361
|
+
attributes,
|
|
362
|
+
shortcuts,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
if (isSpace(text[pos])) {
|
|
366
|
+
return {
|
|
367
|
+
pos,
|
|
368
|
+
error: `expected a value immediately after '=' for attribute "${name}" (${NO_SPACES_AROUND_EQUALS})`,
|
|
369
|
+
attributes,
|
|
370
|
+
shortcuts,
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
const valueStart = pos;
|
|
374
|
+
const scanned = scanValue(text, pos, end) ?? scanBareword(text, pos, end);
|
|
375
|
+
if (!scanned) {
|
|
376
|
+
return {
|
|
377
|
+
pos,
|
|
378
|
+
error: `unrecognized attribute value`,
|
|
379
|
+
attributes,
|
|
380
|
+
shortcuts,
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
attributes.push({
|
|
384
|
+
name,
|
|
385
|
+
valueKind: scanned.kind,
|
|
386
|
+
value: scanned.value,
|
|
387
|
+
nameStart,
|
|
388
|
+
nameEnd,
|
|
389
|
+
valueStart,
|
|
390
|
+
valueEnd: scanned.endPos,
|
|
391
|
+
});
|
|
392
|
+
pos = scanned.endPos;
|
|
393
|
+
sawItem = true;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
function malformed(reason, reasonOffset) {
|
|
397
|
+
return {
|
|
398
|
+
kind: 'malformed',
|
|
399
|
+
name: null,
|
|
400
|
+
attributes: [],
|
|
401
|
+
nameStart: 0,
|
|
402
|
+
nameEnd: 0,
|
|
403
|
+
reason,
|
|
404
|
+
...(reasonOffset === undefined ? {} : { reasonOffset }),
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
/** An annotation: no name, and the body is not parsed. */
|
|
408
|
+
function annotation() {
|
|
409
|
+
return { kind: 'annotation', name: null, attributes: [], nameStart: 0, nameEnd: 0 };
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Parses the text of one `{% ... %}` span. Offsets in the result are 0-based
|
|
413
|
+
* indexes into `spanText`. Never throws; invalid text gives `kind: 'malformed'`.
|
|
414
|
+
*/
|
|
415
|
+
export function parseMarkdocSpan(spanText) {
|
|
416
|
+
if (!spanText.startsWith('{%')) {
|
|
417
|
+
return malformed("span text does not start with the opening delimiter '{%'");
|
|
418
|
+
}
|
|
419
|
+
if (!spanText.endsWith('%}')) {
|
|
420
|
+
return malformed("span text has no closing '%}' delimiter");
|
|
421
|
+
}
|
|
422
|
+
let start = 2;
|
|
423
|
+
let end = spanText.length - 2;
|
|
424
|
+
// `{%-` and `-%}` trim markers. The `end - 1 >= start` check stops the `-` in
|
|
425
|
+
// `{%-%}` from being used twice.
|
|
426
|
+
if (spanText[start] === '-')
|
|
427
|
+
start++;
|
|
428
|
+
if (end - 1 >= start && spanText[end - 1] === '-')
|
|
429
|
+
end--;
|
|
430
|
+
if (start > end) {
|
|
431
|
+
return malformed('span delimiters leave no room for a body');
|
|
432
|
+
}
|
|
433
|
+
// A trailing `/` marks a self-closing tag, like `{% partial ... /%}`.
|
|
434
|
+
let bodyEnd = end;
|
|
435
|
+
let selfClosing = false;
|
|
436
|
+
while (bodyEnd > start && isSpace(spanText[bodyEnd - 1]))
|
|
437
|
+
bodyEnd--;
|
|
438
|
+
if (bodyEnd > start && spanText[bodyEnd - 1] === '/') {
|
|
439
|
+
selfClosing = true;
|
|
440
|
+
bodyEnd--;
|
|
441
|
+
while (bodyEnd > start && isSpace(spanText[bodyEnd - 1]))
|
|
442
|
+
bodyEnd--;
|
|
443
|
+
}
|
|
444
|
+
let pos = start;
|
|
445
|
+
while (pos < bodyEnd && isSpace(spanText[pos]))
|
|
446
|
+
pos++;
|
|
447
|
+
if (pos >= bodyEnd) {
|
|
448
|
+
return malformed('span body is empty or contains only whitespace');
|
|
449
|
+
}
|
|
450
|
+
const first = spanText[pos];
|
|
451
|
+
// Close tag: `{% /name %}`.
|
|
452
|
+
if (first === '/') {
|
|
453
|
+
const nameStart = pos + 1;
|
|
454
|
+
const nameEnd = scanIdentifier(spanText, nameStart, bodyEnd);
|
|
455
|
+
if (nameEnd === nameStart) {
|
|
456
|
+
return malformed('close tag is missing a tag name after "/"', nameStart);
|
|
457
|
+
}
|
|
458
|
+
const scanned = scanAttributes(spanText, nameEnd, bodyEnd);
|
|
459
|
+
if (scanned.error)
|
|
460
|
+
return malformed(scanned.error, scanned.pos);
|
|
461
|
+
if (scanned.pos !== bodyEnd) {
|
|
462
|
+
return malformed('unexpected trailing content in close tag', scanned.pos);
|
|
463
|
+
}
|
|
464
|
+
return {
|
|
465
|
+
kind: 'tag-close',
|
|
466
|
+
name: spanText.slice(nameStart, nameEnd),
|
|
467
|
+
attributes: scanned.attributes,
|
|
468
|
+
nameStart,
|
|
469
|
+
nameEnd,
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
// Annotation starting with `#` or `.`: `{% #id .class ... %}`. The body is not parsed.
|
|
473
|
+
// The form starting with an attribute is handled further down.
|
|
474
|
+
if (first === '#' || first === '.') {
|
|
475
|
+
return annotation();
|
|
476
|
+
}
|
|
477
|
+
// Variable: `{% $name %}` or `{% @name %}`, with an optional tail such as
|
|
478
|
+
// `.title` or `["bar"]`. The tail is not broken down further.
|
|
479
|
+
if (first === '$' || first === '@') {
|
|
480
|
+
const identStart = pos + 1;
|
|
481
|
+
const identEnd = scanIdentifier(spanText, identStart, bodyEnd);
|
|
482
|
+
if (identEnd === identStart) {
|
|
483
|
+
return malformed(`variable interpolation is missing a name after "${first}"`, identStart);
|
|
484
|
+
}
|
|
485
|
+
let p = scanVariableTail(spanText, identEnd, bodyEnd);
|
|
486
|
+
while (p < bodyEnd && isSpace(spanText[p]))
|
|
487
|
+
p++;
|
|
488
|
+
if (p !== bodyEnd) {
|
|
489
|
+
return malformed('unexpected trailing content after variable interpolation', p);
|
|
490
|
+
}
|
|
491
|
+
return { kind: 'variable', name: null, attributes: [], nameStart: 0, nameEnd: 0 };
|
|
492
|
+
}
|
|
493
|
+
// Function call: `{% equals(1,1) %}`. The `(` must directly follow the name; with a
|
|
494
|
+
// space (`{% fn (1) %}`) it falls through to the tag branch below and fails there.
|
|
495
|
+
// Once `name(` is seen it must be a function, so this check comes before the tag branch.
|
|
496
|
+
if (isIdentStart(first)) {
|
|
497
|
+
const funcNameEnd = scanIdentifier(spanText, pos, bodyEnd);
|
|
498
|
+
if (spanText[funcNameEnd] === '(') {
|
|
499
|
+
const closeEnd = scanBalanced(spanText, funcNameEnd, bodyEnd, '(', ')');
|
|
500
|
+
if (closeEnd === -1) {
|
|
501
|
+
return malformed('unterminated function call parentheses', funcNameEnd);
|
|
502
|
+
}
|
|
503
|
+
let p = closeEnd;
|
|
504
|
+
while (p < bodyEnd && isSpace(spanText[p]))
|
|
505
|
+
p++;
|
|
506
|
+
if (p !== bodyEnd) {
|
|
507
|
+
return malformed('unexpected trailing content after function interpolation', p);
|
|
508
|
+
}
|
|
509
|
+
return { kind: 'function', name: null, attributes: [], nameStart: 0, nameEnd: 0 };
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
// Annotation starting with an attribute: `{% width="30%" %}`, `{% class="x" #id .cls %}`.
|
|
513
|
+
// Markdoc tries this before a tag, so a body of only attributes and shortcuts is an
|
|
514
|
+
// annotation, not a tag. Annotation bodies are not parsed, so only accept bodies that
|
|
515
|
+
// are valid in Markdoc:
|
|
516
|
+
// - The whole body must scan without error. `{% a=1 b %}`, `{% a=1 "str" %}` and
|
|
517
|
+
// `{% width = "30%" %}` fall through and end up malformed.
|
|
518
|
+
// - No bareword values, so `{% a=b %}` is malformed.
|
|
519
|
+
// - Not self-closing, so `{% a="x" /%}` is malformed.
|
|
520
|
+
if (!selfClosing && isIdentStart(first)) {
|
|
521
|
+
const probe = scanAttributes(spanText, pos, bodyEnd, isSpace, true);
|
|
522
|
+
if (!probe.error &&
|
|
523
|
+
probe.pos === bodyEnd &&
|
|
524
|
+
!probe.attributes.some((attribute) => attribute.valueKind === 'bareword')) {
|
|
525
|
+
return annotation();
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
// Otherwise it must be an open or self-closing tag: `{% name attr=val ... %}`, with an
|
|
529
|
+
// optional primary value after the name, as in `{% if $flag %}`.
|
|
530
|
+
if (isIdentStart(first)) {
|
|
531
|
+
const nameStart = pos;
|
|
532
|
+
const nameEnd = scanIdentifier(spanText, nameStart, bodyEnd);
|
|
533
|
+
let afterPos = nameEnd;
|
|
534
|
+
while (afterPos < bodyEnd && isSpace(spanText[afterPos]))
|
|
535
|
+
afterPos++;
|
|
536
|
+
let primary;
|
|
537
|
+
let attrStart = nameEnd;
|
|
538
|
+
const primaryScan = scanPrimaryValue(spanText, afterPos, bodyEnd);
|
|
539
|
+
if (primaryScan) {
|
|
540
|
+
primary = {
|
|
541
|
+
valueKind: primaryScan.kind,
|
|
542
|
+
value: primaryScan.value,
|
|
543
|
+
valueStart: afterPos,
|
|
544
|
+
valueEnd: primaryScan.endPos,
|
|
545
|
+
};
|
|
546
|
+
// Only one whitespace character may separate the primary from the first attribute.
|
|
547
|
+
// `{% t 1 x="y" %}` is fine but `{% t 1 x="y" %}` is an error.
|
|
548
|
+
attrStart = primaryScan.endPos;
|
|
549
|
+
const afterOneUnit = scanMarkdocSpaceUnit(spanText, attrStart, bodyEnd);
|
|
550
|
+
if (afterOneUnit > attrStart) {
|
|
551
|
+
attrStart = afterOneUnit;
|
|
552
|
+
if (scanMarkdocSpaceUnit(spanText, attrStart, bodyEnd) > attrStart) {
|
|
553
|
+
return malformed("only one whitespace character may separate a tag's primary value from its first attribute", attrStart);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
// After a primary value, only strict whitespace may be skipped, so a stray '\f' or
|
|
558
|
+
// '\v' fails the attribute name scan.
|
|
559
|
+
const scanned = scanAttributes(spanText, attrStart, bodyEnd, primary ? isMarkdocSpace : isSpace, true);
|
|
560
|
+
if (scanned.error)
|
|
561
|
+
return malformed(scanned.error, scanned.pos);
|
|
562
|
+
if (scanned.pos !== bodyEnd) {
|
|
563
|
+
return malformed('unexpected trailing content in tag', scanned.pos);
|
|
564
|
+
}
|
|
565
|
+
return {
|
|
566
|
+
kind: selfClosing ? 'tag-self-closing' : 'tag-open',
|
|
567
|
+
name: spanText.slice(nameStart, nameEnd),
|
|
568
|
+
attributes: scanned.attributes,
|
|
569
|
+
nameStart,
|
|
570
|
+
nameEnd,
|
|
571
|
+
...(primary ? { primary } : {}),
|
|
572
|
+
...(scanned.shortcuts.length ? { shortcuts: scanned.shortcuts } : {}),
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
return malformed(`unexpected character "${first}"`, pos);
|
|
576
|
+
}
|
|
577
|
+
//# sourceMappingURL=span.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../src/parser/markdoc/span.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Token, TokenTree } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a 0-based offset into `tagToken.text` to a line and column in the
|
|
4
|
+
* document. Only the first line of the span starts at `startColumn`; later lines
|
|
5
|
+
* start at column 1.
|
|
6
|
+
*/
|
|
7
|
+
export declare function offsetToPosition(tagToken: Token, offset: number): {
|
|
8
|
+
line: number;
|
|
9
|
+
column: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Parses the text of every `markdocTag` token and adds its children (markers, tag
|
|
13
|
+
* name, primary value, attributes, shortcuts) under the tag in source order. The
|
|
14
|
+
* new tokens are also appended to `tree.flat`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function structureMarkdocTags(tree: TokenTree): void;
|
|
17
|
+
//# sourceMappingURL=structure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../src/parser/markdoc/structure.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAMlC;AA2DD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAwF1D"}
|