@redocly/recheck 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/README.md +1006 -56
  2. package/dist/cli.js +27 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/markdoc-schema.d.ts +17 -0
  5. package/dist/commands/markdoc-schema.d.ts.map +1 -0
  6. package/dist/commands/markdoc-schema.js +127 -0
  7. package/dist/commands/markdoc-schema.js.map +1 -0
  8. package/dist/commands/run.d.ts +0 -1
  9. package/dist/commands/run.d.ts.map +1 -1
  10. package/dist/commands/run.js +68 -5
  11. package/dist/commands/run.js.map +1 -1
  12. package/dist/config/load.d.ts +11 -0
  13. package/dist/config/load.d.ts.map +1 -1
  14. package/dist/config/load.js +12 -2
  15. package/dist/config/load.js.map +1 -1
  16. package/dist/config/presets/google.d.ts +3 -0
  17. package/dist/config/presets/google.d.ts.map +1 -0
  18. package/dist/config/presets/google.js +1671 -0
  19. package/dist/config/presets/google.js.map +1 -0
  20. package/dist/config/presets/inclusive-language.d.ts +3 -0
  21. package/dist/config/presets/inclusive-language.d.ts.map +1 -0
  22. package/dist/config/presets/inclusive-language.js +321 -0
  23. package/dist/config/presets/inclusive-language.js.map +1 -0
  24. package/dist/config/presets/index.d.ts +67 -0
  25. package/dist/config/presets/index.d.ts.map +1 -0
  26. package/dist/config/presets/index.js +137 -0
  27. package/dist/config/presets/index.js.map +1 -0
  28. package/dist/config/presets/markdoc.d.ts +21 -0
  29. package/dist/config/presets/markdoc.d.ts.map +1 -0
  30. package/dist/config/presets/markdoc.js +101 -0
  31. package/dist/config/presets/markdoc.js.map +1 -0
  32. package/dist/config/presets/markdown-relaxed.d.ts +3 -0
  33. package/dist/config/presets/markdown-relaxed.d.ts.map +1 -0
  34. package/dist/config/presets/markdown-relaxed.js +98 -0
  35. package/dist/config/presets/markdown-relaxed.js.map +1 -0
  36. package/dist/config/presets/markdown.d.ts +43 -0
  37. package/dist/config/presets/markdown.d.ts.map +1 -0
  38. package/dist/config/presets/markdown.js +132 -0
  39. package/dist/config/presets/markdown.js.map +1 -0
  40. package/dist/config/presets/microsoft.d.ts +3 -0
  41. package/dist/config/presets/microsoft.d.ts.map +1 -0
  42. package/dist/config/presets/microsoft.js +2268 -0
  43. package/dist/config/presets/microsoft.js.map +1 -0
  44. package/dist/config/presets/minimal.d.ts +3 -0
  45. package/dist/config/presets/minimal.d.ts.map +1 -0
  46. package/dist/config/presets/minimal.js +21 -0
  47. package/dist/config/presets/minimal.js.map +1 -0
  48. package/dist/config/presets/plain-language.d.ts +3 -0
  49. package/dist/config/presets/plain-language.d.ts.map +1 -0
  50. package/dist/config/presets/plain-language.js +351 -0
  51. package/dist/config/presets/plain-language.js.map +1 -0
  52. package/dist/config/presets/prose.d.ts +52 -0
  53. package/dist/config/presets/prose.d.ts.map +1 -0
  54. package/dist/config/presets/prose.js +138 -0
  55. package/dist/config/presets/prose.js.map +1 -0
  56. package/dist/config/schema.d.ts +128 -22
  57. package/dist/config/schema.d.ts.map +1 -1
  58. package/dist/config/schema.js +105 -21
  59. package/dist/config/schema.js.map +1 -1
  60. package/dist/config/validate.d.ts +12 -2
  61. package/dist/config/validate.d.ts.map +1 -1
  62. package/dist/config/validate.js +1200 -44
  63. package/dist/config/validate.js.map +1 -1
  64. package/dist/core/auto-fix.d.ts +8 -13
  65. package/dist/core/auto-fix.d.ts.map +1 -1
  66. package/dist/core/auto-fix.js +94 -75
  67. package/dist/core/auto-fix.js.map +1 -1
  68. package/dist/core/case-preserve.d.ts +46 -0
  69. package/dist/core/case-preserve.d.ts.map +1 -0
  70. package/dist/core/case-preserve.js +57 -0
  71. package/dist/core/case-preserve.js.map +1 -0
  72. package/dist/core/directives.d.ts +9 -0
  73. package/dist/core/directives.d.ts.map +1 -0
  74. package/dist/core/directives.js +73 -0
  75. package/dist/core/directives.js.map +1 -0
  76. package/dist/core/files.d.ts +63 -0
  77. package/dist/core/files.d.ts.map +1 -1
  78. package/dist/core/files.js +185 -0
  79. package/dist/core/files.js.map +1 -1
  80. package/dist/core/inline-code.d.ts +87 -0
  81. package/dist/core/inline-code.d.ts.map +1 -0
  82. package/dist/core/inline-code.js +104 -0
  83. package/dist/core/inline-code.js.map +1 -0
  84. package/dist/core/line-endings.d.ts +32 -0
  85. package/dist/core/line-endings.d.ts.map +1 -0
  86. package/dist/core/line-endings.js +65 -0
  87. package/dist/core/line-endings.js.map +1 -0
  88. package/dist/core/markdoc-tags.d.ts +79 -0
  89. package/dist/core/markdoc-tags.d.ts.map +1 -0
  90. package/dist/core/markdoc-tags.js +131 -0
  91. package/dist/core/markdoc-tags.js.map +1 -0
  92. package/dist/core/runner.d.ts +92 -3
  93. package/dist/core/runner.d.ts.map +1 -1
  94. package/dist/core/runner.js +348 -110
  95. package/dist/core/runner.js.map +1 -1
  96. package/dist/core/timing.d.ts.map +1 -1
  97. package/dist/data/markdoc-realm-schema.d.ts +3 -0
  98. package/dist/data/markdoc-realm-schema.d.ts.map +1 -0
  99. package/dist/data/markdoc-realm-schema.js +760 -0
  100. package/dist/data/markdoc-realm-schema.js.map +1 -0
  101. package/dist/data/proper-nouns.d.ts +2 -0
  102. package/dist/data/proper-nouns.d.ts.map +1 -0
  103. package/dist/data/proper-nouns.js +208 -0
  104. package/dist/data/proper-nouns.js.map +1 -0
  105. package/dist/index.d.ts +90 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +152 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/metrics/formulas.d.ts +17 -0
  110. package/dist/metrics/formulas.d.ts.map +1 -0
  111. package/dist/metrics/formulas.js +70 -0
  112. package/dist/metrics/formulas.js.map +1 -0
  113. package/dist/metrics/index.d.ts +5 -0
  114. package/dist/metrics/index.d.ts.map +1 -0
  115. package/dist/metrics/index.js +3 -0
  116. package/dist/metrics/index.js.map +1 -0
  117. package/dist/metrics/statistics.d.ts +27 -0
  118. package/dist/metrics/statistics.d.ts.map +1 -0
  119. package/dist/metrics/statistics.js +56 -0
  120. package/dist/metrics/statistics.js.map +1 -0
  121. package/dist/parser/index.d.ts +18 -0
  122. package/dist/parser/index.d.ts.map +1 -0
  123. package/dist/parser/index.js +168 -0
  124. package/dist/parser/index.js.map +1 -0
  125. package/dist/parser/markdoc/extract-statics.d.ts +45 -0
  126. package/dist/parser/markdoc/extract-statics.d.ts.map +1 -0
  127. package/dist/parser/markdoc/extract-statics.js +139 -0
  128. package/dist/parser/markdoc/extract-statics.js.map +1 -0
  129. package/dist/parser/markdoc/pairing.d.ts +63 -0
  130. package/dist/parser/markdoc/pairing.d.ts.map +1 -0
  131. package/dist/parser/markdoc/pairing.js +94 -0
  132. package/dist/parser/markdoc/pairing.js.map +1 -0
  133. package/dist/parser/markdoc/schema.d.ts +85 -0
  134. package/dist/parser/markdoc/schema.d.ts.map +1 -0
  135. package/dist/parser/markdoc/schema.js +86 -0
  136. package/dist/parser/markdoc/schema.js.map +1 -0
  137. package/dist/parser/markdoc/span.d.ts +64 -0
  138. package/dist/parser/markdoc/span.d.ts.map +1 -0
  139. package/dist/parser/markdoc/span.js +729 -0
  140. package/dist/parser/markdoc/span.js.map +1 -0
  141. package/dist/parser/markdoc/structure.d.ts +28 -0
  142. package/dist/parser/markdoc/structure.d.ts.map +1 -0
  143. package/dist/parser/markdoc/structure.js +153 -0
  144. package/dist/parser/markdoc/structure.js.map +1 -0
  145. package/dist/parser/markdoc/syntax.d.ts +44 -0
  146. package/dist/parser/markdoc/syntax.d.ts.map +1 -0
  147. package/dist/parser/markdoc/syntax.js +317 -0
  148. package/dist/parser/markdoc/syntax.js.map +1 -0
  149. package/dist/parser/types.d.ts +18 -0
  150. package/dist/parser/types.d.ts.map +1 -0
  151. package/dist/parser/types.js.map +1 -0
  152. package/dist/reporter/fixes.d.ts.map +1 -1
  153. package/dist/reporter/fixes.js +22 -1
  154. package/dist/reporter/fixes.js.map +1 -1
  155. package/dist/reporter/statistics.d.ts +1 -8
  156. package/dist/reporter/statistics.d.ts.map +1 -1
  157. package/dist/reporter/statistics.js.map +1 -1
  158. package/dist/rules/registry.d.ts +15 -0
  159. package/dist/rules/registry.d.ts.map +1 -0
  160. package/dist/rules/registry.js +81 -0
  161. package/dist/rules/registry.js.map +1 -0
  162. package/dist/rules/scope/capitalization.d.ts +3 -0
  163. package/dist/rules/scope/capitalization.d.ts.map +1 -0
  164. package/dist/rules/scope/capitalization.js +161 -0
  165. package/dist/rules/scope/capitalization.js.map +1 -0
  166. package/dist/rules/scope/conditional.d.ts +3 -0
  167. package/dist/rules/scope/conditional.d.ts.map +1 -0
  168. package/dist/rules/scope/conditional.js +112 -0
  169. package/dist/rules/scope/conditional.js.map +1 -0
  170. package/dist/rules/scope/consistency.d.ts +3 -0
  171. package/dist/rules/scope/consistency.d.ts.map +1 -0
  172. package/dist/rules/scope/consistency.js +178 -0
  173. package/dist/rules/scope/consistency.js.map +1 -0
  174. package/dist/rules/scope/length.d.ts +3 -0
  175. package/dist/rules/scope/length.d.ts.map +1 -0
  176. package/dist/rules/scope/length.js +69 -0
  177. package/dist/rules/scope/length.js.map +1 -0
  178. package/dist/rules/scope/max-image-size.d.ts +3 -0
  179. package/dist/rules/scope/max-image-size.d.ts.map +1 -0
  180. package/dist/rules/scope/max-image-size.js +65 -0
  181. package/dist/rules/scope/max-image-size.js.map +1 -0
  182. package/dist/rules/scope/metric.d.ts +17 -0
  183. package/dist/rules/scope/metric.d.ts.map +1 -0
  184. package/dist/rules/scope/metric.js +216 -0
  185. package/dist/rules/scope/metric.js.map +1 -0
  186. package/dist/rules/scope/occurrence.d.ts +3 -0
  187. package/dist/rules/scope/occurrence.d.ts.map +1 -0
  188. package/dist/rules/scope/occurrence.js +48 -0
  189. package/dist/rules/scope/occurrence.js.map +1 -0
  190. package/dist/rules/scope/pattern.d.ts +3 -0
  191. package/dist/rules/scope/pattern.d.ts.map +1 -0
  192. package/dist/rules/scope/pattern.js +75 -0
  193. package/dist/rules/scope/pattern.js.map +1 -0
  194. package/dist/rules/scope/repetition.d.ts +3 -0
  195. package/dist/rules/scope/repetition.d.ts.map +1 -0
  196. package/dist/rules/scope/repetition.js +139 -0
  197. package/dist/rules/scope/repetition.js.map +1 -0
  198. package/dist/rules/scope/semantic-line-breaks.d.ts +3 -0
  199. package/dist/rules/scope/semantic-line-breaks.d.ts.map +1 -0
  200. package/dist/rules/scope/semantic-line-breaks.js +213 -0
  201. package/dist/rules/scope/semantic-line-breaks.js.map +1 -0
  202. package/dist/rules/scope/spelling.d.ts +27 -0
  203. package/dist/rules/scope/spelling.d.ts.map +1 -0
  204. package/dist/rules/scope/spelling.js +227 -0
  205. package/dist/rules/scope/spelling.js.map +1 -0
  206. package/dist/rules/scope/swap.d.ts +3 -0
  207. package/dist/rules/scope/swap.d.ts.map +1 -0
  208. package/dist/rules/scope/swap.js +149 -0
  209. package/dist/rules/scope/swap.js.map +1 -0
  210. package/dist/rules/scope/title-case.d.ts +42 -0
  211. package/dist/rules/scope/title-case.d.ts.map +1 -0
  212. package/dist/rules/scope/title-case.js +264 -0
  213. package/dist/rules/scope/title-case.js.map +1 -0
  214. package/dist/rules/token/blanks-around-fences.d.ts +3 -0
  215. package/dist/rules/token/blanks-around-fences.d.ts.map +1 -0
  216. package/dist/rules/token/blanks-around-fences.js +44 -0
  217. package/dist/rules/token/blanks-around-fences.js.map +1 -0
  218. package/dist/rules/token/blanks-around-headings.d.ts +3 -0
  219. package/dist/rules/token/blanks-around-headings.d.ts.map +1 -0
  220. package/dist/rules/token/blanks-around-headings.js +108 -0
  221. package/dist/rules/token/blanks-around-headings.js.map +1 -0
  222. package/dist/rules/token/blanks-around-lists.d.ts +3 -0
  223. package/dist/rules/token/blanks-around-lists.d.ts.map +1 -0
  224. package/dist/rules/token/blanks-around-lists.js +56 -0
  225. package/dist/rules/token/blanks-around-lists.js.map +1 -0
  226. package/dist/rules/token/blanks-around-tables.d.ts +3 -0
  227. package/dist/rules/token/blanks-around-tables.d.ts.map +1 -0
  228. package/dist/rules/token/blanks-around-tables.js +42 -0
  229. package/dist/rules/token/blanks-around-tables.js.map +1 -0
  230. package/dist/rules/token/code-block-style.d.ts +3 -0
  231. package/dist/rules/token/code-block-style.d.ts.map +1 -0
  232. package/dist/rules/token/code-block-style.js +30 -0
  233. package/dist/rules/token/code-block-style.js.map +1 -0
  234. package/dist/rules/token/code-fence-style.d.ts +3 -0
  235. package/dist/rules/token/code-fence-style.d.ts.map +1 -0
  236. package/dist/rules/token/code-fence-style.js +35 -0
  237. package/dist/rules/token/code-fence-style.js.map +1 -0
  238. package/dist/rules/token/commands-show-output.d.ts +3 -0
  239. package/dist/rules/token/commands-show-output.d.ts.map +1 -0
  240. package/dist/rules/token/commands-show-output.js +38 -0
  241. package/dist/rules/token/commands-show-output.js.map +1 -0
  242. package/dist/rules/token/descriptive-link-text.d.ts +3 -0
  243. package/dist/rules/token/descriptive-link-text.d.ts.map +1 -0
  244. package/dist/rules/token/descriptive-link-text.js +53 -0
  245. package/dist/rules/token/descriptive-link-text.js.map +1 -0
  246. package/dist/rules/token/emphasis-style.d.ts +3 -0
  247. package/dist/rules/token/emphasis-style.d.ts.map +1 -0
  248. package/dist/rules/token/emphasis-style.js +51 -0
  249. package/dist/rules/token/emphasis-style.js.map +1 -0
  250. package/dist/rules/token/fenced-code-language.d.ts +3 -0
  251. package/dist/rules/token/fenced-code-language.d.ts.map +1 -0
  252. package/dist/rules/token/fenced-code-language.js +35 -0
  253. package/dist/rules/token/fenced-code-language.js.map +1 -0
  254. package/dist/rules/token/first-line-h1.d.ts +3 -0
  255. package/dist/rules/token/first-line-h1.d.ts.map +1 -0
  256. package/dist/rules/token/first-line-h1.js +107 -0
  257. package/dist/rules/token/first-line-h1.js.map +1 -0
  258. package/dist/rules/token/heading-increment.d.ts +3 -0
  259. package/dist/rules/token/heading-increment.d.ts.map +1 -0
  260. package/dist/rules/token/heading-increment.js +27 -0
  261. package/dist/rules/token/heading-increment.js.map +1 -0
  262. package/dist/rules/token/heading-start-left.d.ts +3 -0
  263. package/dist/rules/token/heading-start-left.d.ts.map +1 -0
  264. package/dist/rules/token/heading-start-left.js +31 -0
  265. package/dist/rules/token/heading-start-left.js.map +1 -0
  266. package/dist/rules/token/heading-style.d.ts +3 -0
  267. package/dist/rules/token/heading-style.d.ts.map +1 -0
  268. package/dist/rules/token/heading-style.js +41 -0
  269. package/dist/rules/token/heading-style.js.map +1 -0
  270. package/dist/rules/token/helpers.d.ts +313 -0
  271. package/dist/rules/token/helpers.d.ts.map +1 -0
  272. package/dist/rules/token/helpers.js +746 -0
  273. package/dist/rules/token/helpers.js.map +1 -0
  274. package/dist/rules/token/hr-style.d.ts +3 -0
  275. package/dist/rules/token/hr-style.d.ts.map +1 -0
  276. package/dist/rules/token/hr-style.js +28 -0
  277. package/dist/rules/token/hr-style.js.map +1 -0
  278. package/dist/rules/token/index.d.ts +75 -0
  279. package/dist/rules/token/index.d.ts.map +1 -0
  280. package/dist/rules/token/index.js +226 -0
  281. package/dist/rules/token/index.js.map +1 -0
  282. package/dist/rules/token/line-length.d.ts +3 -0
  283. package/dist/rules/token/line-length.d.ts.map +1 -0
  284. package/dist/rules/token/line-length.js +120 -0
  285. package/dist/rules/token/line-length.js.map +1 -0
  286. package/dist/rules/token/link-fragments.d.ts +3 -0
  287. package/dist/rules/token/link-fragments.d.ts.map +1 -0
  288. package/dist/rules/token/link-fragments.js +145 -0
  289. package/dist/rules/token/link-fragments.js.map +1 -0
  290. package/dist/rules/token/link-image-reference-definitions.d.ts +3 -0
  291. package/dist/rules/token/link-image-reference-definitions.d.ts.map +1 -0
  292. package/dist/rules/token/link-image-reference-definitions.js +50 -0
  293. package/dist/rules/token/link-image-reference-definitions.js.map +1 -0
  294. package/dist/rules/token/link-image-style.d.ts +3 -0
  295. package/dist/rules/token/link-image-style.d.ts.map +1 -0
  296. package/dist/rules/token/link-image-style.js +131 -0
  297. package/dist/rules/token/link-image-style.js.map +1 -0
  298. package/dist/rules/token/list-indent.d.ts +3 -0
  299. package/dist/rules/token/list-indent.d.ts.map +1 -0
  300. package/dist/rules/token/list-indent.js +60 -0
  301. package/dist/rules/token/list-indent.js.map +1 -0
  302. package/dist/rules/token/list-length.d.ts +3 -0
  303. package/dist/rules/token/list-length.d.ts.map +1 -0
  304. package/dist/rules/token/list-length.js +55 -0
  305. package/dist/rules/token/list-length.js.map +1 -0
  306. package/dist/rules/token/list-marker-space.d.ts +3 -0
  307. package/dist/rules/token/list-marker-space.d.ts.map +1 -0
  308. package/dist/rules/token/list-marker-space.js +52 -0
  309. package/dist/rules/token/list-marker-space.js.map +1 -0
  310. package/dist/rules/token/markdoc-attributes.d.ts +3 -0
  311. package/dist/rules/token/markdoc-attributes.d.ts.map +1 -0
  312. package/dist/rules/token/markdoc-attributes.js +269 -0
  313. package/dist/rules/token/markdoc-attributes.js.map +1 -0
  314. package/dist/rules/token/markdoc-pairing.d.ts +3 -0
  315. package/dist/rules/token/markdoc-pairing.d.ts.map +1 -0
  316. package/dist/rules/token/markdoc-pairing.js +73 -0
  317. package/dist/rules/token/markdoc-pairing.js.map +1 -0
  318. package/dist/rules/token/markdoc-syntax.d.ts +3 -0
  319. package/dist/rules/token/markdoc-syntax.d.ts.map +1 -0
  320. package/dist/rules/token/markdoc-syntax.js +119 -0
  321. package/dist/rules/token/markdoc-syntax.js.map +1 -0
  322. package/dist/rules/token/markdoc-unknown-tag.d.ts +3 -0
  323. package/dist/rules/token/markdoc-unknown-tag.d.ts.map +1 -0
  324. package/dist/rules/token/markdoc-unknown-tag.js +64 -0
  325. package/dist/rules/token/markdoc-unknown-tag.js.map +1 -0
  326. package/dist/rules/token/messages.d.ts +4 -0
  327. package/dist/rules/token/messages.d.ts.map +1 -0
  328. package/dist/rules/token/messages.js +20 -0
  329. package/dist/rules/token/messages.js.map +1 -0
  330. package/dist/rules/token/no-alt-text.d.ts +3 -0
  331. package/dist/rules/token/no-alt-text.d.ts.map +1 -0
  332. package/dist/rules/token/no-alt-text.js +47 -0
  333. package/dist/rules/token/no-alt-text.js.map +1 -0
  334. package/dist/rules/token/no-bare-urls.d.ts +3 -0
  335. package/dist/rules/token/no-bare-urls.d.ts.map +1 -0
  336. package/dist/rules/token/no-bare-urls.js +88 -0
  337. package/dist/rules/token/no-bare-urls.js.map +1 -0
  338. package/dist/rules/token/no-blanks-blockquote.d.ts +3 -0
  339. package/dist/rules/token/no-blanks-blockquote.d.ts.map +1 -0
  340. package/dist/rules/token/no-blanks-blockquote.js +39 -0
  341. package/dist/rules/token/no-blanks-blockquote.js.map +1 -0
  342. package/dist/rules/token/no-duplicate-heading.d.ts +3 -0
  343. package/dist/rules/token/no-duplicate-heading.d.ts.map +1 -0
  344. package/dist/rules/token/no-duplicate-heading.js +101 -0
  345. package/dist/rules/token/no-duplicate-heading.js.map +1 -0
  346. package/dist/rules/token/no-duplicate-link-destinations.d.ts +3 -0
  347. package/dist/rules/token/no-duplicate-link-destinations.d.ts.map +1 -0
  348. package/dist/rules/token/no-duplicate-link-destinations.js +65 -0
  349. package/dist/rules/token/no-duplicate-link-destinations.js.map +1 -0
  350. package/dist/rules/token/no-emphasis-as-heading.d.ts +3 -0
  351. package/dist/rules/token/no-emphasis-as-heading.d.ts.map +1 -0
  352. package/dist/rules/token/no-emphasis-as-heading.js +44 -0
  353. package/dist/rules/token/no-emphasis-as-heading.js.map +1 -0
  354. package/dist/rules/token/no-empty-headings.d.ts +3 -0
  355. package/dist/rules/token/no-empty-headings.d.ts.map +1 -0
  356. package/dist/rules/token/no-empty-headings.js +28 -0
  357. package/dist/rules/token/no-empty-headings.js.map +1 -0
  358. package/dist/rules/token/no-empty-links.d.ts +3 -0
  359. package/dist/rules/token/no-empty-links.d.ts.map +1 -0
  360. package/dist/rules/token/no-empty-links.js +67 -0
  361. package/dist/rules/token/no-empty-links.js.map +1 -0
  362. package/dist/rules/token/no-hard-tabs.d.ts +3 -0
  363. package/dist/rules/token/no-hard-tabs.d.ts.map +1 -0
  364. package/dist/rules/token/no-hard-tabs.js +76 -0
  365. package/dist/rules/token/no-hard-tabs.js.map +1 -0
  366. package/dist/rules/token/no-inline-html.d.ts +3 -0
  367. package/dist/rules/token/no-inline-html.d.ts.map +1 -0
  368. package/dist/rules/token/no-inline-html.js +45 -0
  369. package/dist/rules/token/no-inline-html.js.map +1 -0
  370. package/dist/rules/token/no-missing-space-atx.d.ts +3 -0
  371. package/dist/rules/token/no-missing-space-atx.d.ts.map +1 -0
  372. package/dist/rules/token/no-missing-space-atx.js +36 -0
  373. package/dist/rules/token/no-missing-space-atx.js.map +1 -0
  374. package/dist/rules/token/no-missing-space-closed-atx.d.ts +3 -0
  375. package/dist/rules/token/no-missing-space-closed-atx.d.ts.map +1 -0
  376. package/dist/rules/token/no-missing-space-closed-atx.js +45 -0
  377. package/dist/rules/token/no-missing-space-closed-atx.js.map +1 -0
  378. package/dist/rules/token/no-multiple-blanks.d.ts +3 -0
  379. package/dist/rules/token/no-multiple-blanks.d.ts.map +1 -0
  380. package/dist/rules/token/no-multiple-blanks.js +35 -0
  381. package/dist/rules/token/no-multiple-blanks.js.map +1 -0
  382. package/dist/rules/token/no-multiple-space-atx.d.ts +13 -0
  383. package/dist/rules/token/no-multiple-space-atx.d.ts.map +1 -0
  384. package/dist/rules/token/no-multiple-space-atx.js +50 -0
  385. package/dist/rules/token/no-multiple-space-atx.js.map +1 -0
  386. package/dist/rules/token/no-multiple-space-blockquote.d.ts +3 -0
  387. package/dist/rules/token/no-multiple-space-blockquote.d.ts.map +1 -0
  388. package/dist/rules/token/no-multiple-space-blockquote.js +43 -0
  389. package/dist/rules/token/no-multiple-space-blockquote.js.map +1 -0
  390. package/dist/rules/token/no-multiple-space-closed-atx.d.ts +3 -0
  391. package/dist/rules/token/no-multiple-space-closed-atx.d.ts.map +1 -0
  392. package/dist/rules/token/no-multiple-space-closed-atx.js +19 -0
  393. package/dist/rules/token/no-multiple-space-closed-atx.js.map +1 -0
  394. package/dist/rules/token/no-reversed-links.d.ts +3 -0
  395. package/dist/rules/token/no-reversed-links.d.ts.map +1 -0
  396. package/dist/rules/token/no-reversed-links.js +52 -0
  397. package/dist/rules/token/no-reversed-links.js.map +1 -0
  398. package/dist/rules/token/no-space-in-code.d.ts +3 -0
  399. package/dist/rules/token/no-space-in-code.d.ts.map +1 -0
  400. package/dist/rules/token/no-space-in-code.js +75 -0
  401. package/dist/rules/token/no-space-in-code.js.map +1 -0
  402. package/dist/rules/token/no-space-in-emphasis.d.ts +3 -0
  403. package/dist/rules/token/no-space-in-emphasis.d.ts.map +1 -0
  404. package/dist/rules/token/no-space-in-emphasis.js +79 -0
  405. package/dist/rules/token/no-space-in-emphasis.js.map +1 -0
  406. package/dist/rules/token/no-space-in-links.d.ts +3 -0
  407. package/dist/rules/token/no-space-in-links.d.ts.map +1 -0
  408. package/dist/rules/token/no-space-in-links.js +48 -0
  409. package/dist/rules/token/no-space-in-links.js.map +1 -0
  410. package/dist/rules/token/no-trailing-punctuation.d.ts +3 -0
  411. package/dist/rules/token/no-trailing-punctuation.d.ts.map +1 -0
  412. package/dist/rules/token/no-trailing-punctuation.js +38 -0
  413. package/dist/rules/token/no-trailing-punctuation.js.map +1 -0
  414. package/dist/rules/token/no-trailing-spaces.d.ts +3 -0
  415. package/dist/rules/token/no-trailing-spaces.d.ts.map +1 -0
  416. package/dist/rules/token/no-trailing-spaces.js +89 -0
  417. package/dist/rules/token/no-trailing-spaces.js.map +1 -0
  418. package/dist/rules/token/ol-prefix.d.ts +3 -0
  419. package/dist/rules/token/ol-prefix.d.ts.map +1 -0
  420. package/dist/rules/token/ol-prefix.js +70 -0
  421. package/dist/rules/token/ol-prefix.js.map +1 -0
  422. package/dist/rules/token/proper-names.d.ts +3 -0
  423. package/dist/rules/token/proper-names.d.ts.map +1 -0
  424. package/dist/rules/token/proper-names.js +93 -0
  425. package/dist/rules/token/proper-names.js.map +1 -0
  426. package/dist/rules/token/reference-links-images.d.ts +3 -0
  427. package/dist/rules/token/reference-links-images.d.ts.map +1 -0
  428. package/dist/rules/token/reference-links-images.js +36 -0
  429. package/dist/rules/token/reference-links-images.js.map +1 -0
  430. package/dist/rules/token/required-headings.d.ts +3 -0
  431. package/dist/rules/token/required-headings.d.ts.map +1 -0
  432. package/dist/rules/token/required-headings.js +83 -0
  433. package/dist/rules/token/required-headings.js.map +1 -0
  434. package/dist/rules/token/single-h1.d.ts +3 -0
  435. package/dist/rules/token/single-h1.d.ts.map +1 -0
  436. package/dist/rules/token/single-h1.js +56 -0
  437. package/dist/rules/token/single-h1.js.map +1 -0
  438. package/dist/rules/token/single-trailing-newline.d.ts +3 -0
  439. package/dist/rules/token/single-trailing-newline.d.ts.map +1 -0
  440. package/dist/rules/token/single-trailing-newline.js +25 -0
  441. package/dist/rules/token/single-trailing-newline.js.map +1 -0
  442. package/dist/rules/token/strong-style.d.ts +3 -0
  443. package/dist/rules/token/strong-style.d.ts.map +1 -0
  444. package/dist/rules/token/strong-style.js +51 -0
  445. package/dist/rules/token/strong-style.js.map +1 -0
  446. package/dist/rules/token/table-column-count.d.ts +3 -0
  447. package/dist/rules/token/table-column-count.d.ts.map +1 -0
  448. package/dist/rules/token/table-column-count.js +44 -0
  449. package/dist/rules/token/table-column-count.js.map +1 -0
  450. package/dist/rules/token/table-column-style.d.ts +3 -0
  451. package/dist/rules/token/table-column-style.d.ts.map +1 -0
  452. package/dist/rules/token/table-column-style.js +179 -0
  453. package/dist/rules/token/table-column-style.js.map +1 -0
  454. package/dist/rules/token/table-pipe-style.d.ts +3 -0
  455. package/dist/rules/token/table-pipe-style.d.ts.map +1 -0
  456. package/dist/rules/token/table-pipe-style.js +54 -0
  457. package/dist/rules/token/table-pipe-style.js.map +1 -0
  458. package/dist/rules/token/ul-indent.d.ts +3 -0
  459. package/dist/rules/token/ul-indent.d.ts.map +1 -0
  460. package/dist/rules/token/ul-indent.js +72 -0
  461. package/dist/rules/token/ul-indent.js.map +1 -0
  462. package/dist/rules/token/ul-style.d.ts +3 -0
  463. package/dist/rules/token/ul-style.d.ts.map +1 -0
  464. package/dist/rules/token/ul-style.js +80 -0
  465. package/dist/rules/token/ul-style.js.map +1 -0
  466. package/dist/rules/types.d.ts +81 -0
  467. package/dist/rules/types.d.ts.map +1 -0
  468. package/dist/rules/types.js +2 -0
  469. package/dist/rules/types.js.map +1 -0
  470. package/dist/rules/utils.d.ts +29 -0
  471. package/dist/rules/utils.d.ts.map +1 -0
  472. package/dist/{assertions → rules}/utils.js +27 -0
  473. package/dist/rules/utils.js.map +1 -0
  474. package/dist/scopes/extractor.d.ts +7 -0
  475. package/dist/scopes/extractor.d.ts.map +1 -0
  476. package/dist/scopes/extractor.js +475 -0
  477. package/dist/scopes/extractor.js.map +1 -0
  478. package/dist/scopes/selector.d.ts +51 -0
  479. package/dist/scopes/selector.d.ts.map +1 -0
  480. package/dist/scopes/selector.js +121 -0
  481. package/dist/scopes/selector.js.map +1 -0
  482. package/dist/scopes/sentences.d.ts +7 -0
  483. package/dist/scopes/sentences.d.ts.map +1 -0
  484. package/dist/scopes/sentences.js +115 -0
  485. package/dist/scopes/sentences.js.map +1 -0
  486. package/dist/scopes/types.d.ts +44 -0
  487. package/dist/scopes/types.d.ts.map +1 -0
  488. package/dist/scopes/types.js +2 -0
  489. package/dist/scopes/types.js.map +1 -0
  490. package/dist/scopes/vocabulary.d.ts +16 -0
  491. package/dist/scopes/vocabulary.d.ts.map +1 -0
  492. package/dist/scopes/vocabulary.js +70 -0
  493. package/dist/scopes/vocabulary.js.map +1 -0
  494. package/dist/types/assertions.d.ts +95 -32
  495. package/dist/types/assertions.d.ts.map +1 -1
  496. package/dist/types/problems.d.ts +4 -5
  497. package/dist/types/problems.d.ts.map +1 -1
  498. package/dist/types/rules.d.ts +4 -6
  499. package/dist/types/rules.d.ts.map +1 -1
  500. package/examples/appendices/google.appendix.yaml +91 -0
  501. package/examples/appendices/inclusive-language.appendix.yaml +61 -0
  502. package/examples/appendices/microsoft.appendix.yaml +99 -0
  503. package/examples/appendices/plain-language.appendix.yaml +88 -0
  504. package/examples/google.yaml +1525 -0
  505. package/examples/inclusive-language.yaml +304 -0
  506. package/examples/microsoft.yaml +1542 -0
  507. package/examples/plain-language.yaml +325 -0
  508. package/package.json +49 -16
  509. package/presets/google/PROVENANCE.md +1022 -0
  510. package/presets/google/sources.json +192 -0
  511. package/presets/inclusive-language/PROVENANCE.md +174 -0
  512. package/presets/inclusive-language/sources.json +107 -0
  513. package/presets/microsoft/PROVENANCE.md +1555 -0
  514. package/presets/microsoft/sources.json +494 -0
  515. package/presets/plain-language/PROVENANCE.md +364 -0
  516. package/presets/plain-language/sources.json +108 -0
  517. package/dist/assertions/bullet-style.d.ts +0 -3
  518. package/dist/assertions/bullet-style.d.ts.map +0 -1
  519. package/dist/assertions/bullet-style.js +0 -60
  520. package/dist/assertions/bullet-style.js.map +0 -1
  521. package/dist/assertions/index.d.ts +0 -21
  522. package/dist/assertions/index.d.ts.map +0 -1
  523. package/dist/assertions/index.js +0 -30
  524. package/dist/assertions/index.js.map +0 -1
  525. package/dist/assertions/max-image-size.d.ts +0 -3
  526. package/dist/assertions/max-image-size.d.ts.map +0 -1
  527. package/dist/assertions/max-image-size.js +0 -73
  528. package/dist/assertions/max-image-size.js.map +0 -1
  529. package/dist/assertions/max-line-length.d.ts +0 -3
  530. package/dist/assertions/max-line-length.d.ts.map +0 -1
  531. package/dist/assertions/max-line-length.js +0 -68
  532. package/dist/assertions/max-line-length.js.map +0 -1
  533. package/dist/assertions/no-broken-fragment-links.d.ts +0 -3
  534. package/dist/assertions/no-broken-fragment-links.d.ts.map +0 -1
  535. package/dist/assertions/no-broken-fragment-links.js +0 -79
  536. package/dist/assertions/no-broken-fragment-links.js.map +0 -1
  537. package/dist/assertions/no-duplicate-headings.d.ts +0 -3
  538. package/dist/assertions/no-duplicate-headings.d.ts.map +0 -1
  539. package/dist/assertions/no-duplicate-headings.js +0 -66
  540. package/dist/assertions/no-duplicate-headings.js.map +0 -1
  541. package/dist/assertions/no-hard-tabs.d.ts +0 -3
  542. package/dist/assertions/no-hard-tabs.d.ts.map +0 -1
  543. package/dist/assertions/no-hard-tabs.js +0 -63
  544. package/dist/assertions/no-hard-tabs.js.map +0 -1
  545. package/dist/assertions/no-trailing-spaces.d.ts +0 -3
  546. package/dist/assertions/no-trailing-spaces.d.ts.map +0 -1
  547. package/dist/assertions/no-trailing-spaces.js +0 -72
  548. package/dist/assertions/no-trailing-spaces.js.map +0 -1
  549. package/dist/assertions/pattern.d.ts +0 -3
  550. package/dist/assertions/pattern.d.ts.map +0 -1
  551. package/dist/assertions/pattern.js +0 -39
  552. package/dist/assertions/pattern.js.map +0 -1
  553. package/dist/assertions/semantic-line-breaks.d.ts +0 -3
  554. package/dist/assertions/semantic-line-breaks.d.ts.map +0 -1
  555. package/dist/assertions/semantic-line-breaks.js +0 -152
  556. package/dist/assertions/semantic-line-breaks.js.map +0 -1
  557. package/dist/assertions/swap.d.ts +0 -3
  558. package/dist/assertions/swap.d.ts.map +0 -1
  559. package/dist/assertions/swap.js +0 -39
  560. package/dist/assertions/swap.js.map +0 -1
  561. package/dist/assertions/utils.d.ts +0 -8
  562. package/dist/assertions/utils.d.ts.map +0 -1
  563. package/dist/assertions/utils.js.map +0 -1
  564. package/dist/core/scope-parser.d.ts +0 -26
  565. package/dist/core/scope-parser.d.ts.map +0 -1
  566. package/dist/core/scope-parser.js +0 -110
  567. package/dist/core/scope-parser.js.map +0 -1
  568. package/dist/files.d.ts +0 -2
  569. package/dist/files.d.ts.map +0 -1
  570. package/dist/files.js +0 -39
  571. package/dist/files.js.map +0 -1
  572. package/dist/load-config.d.ts +0 -25
  573. package/dist/load-config.d.ts.map +0 -1
  574. package/dist/load-config.js +0 -104
  575. package/dist/load-config.js.map +0 -1
  576. package/dist/load.d.ts +0 -25
  577. package/dist/load.d.ts.map +0 -1
  578. package/dist/load.js +0 -112
  579. package/dist/load.js.map +0 -1
  580. package/dist/scope.d.ts +0 -26
  581. package/dist/scope.d.ts.map +0 -1
  582. package/dist/scope.js +0 -110
  583. package/dist/scope.js.map +0 -1
  584. package/dist/types.d.ts +0 -109
  585. package/dist/types.d.ts.map +0 -1
  586. package/dist/types.js.map +0 -1
  587. package/dist/validate.d.ts +0 -31
  588. package/dist/validate.d.ts.map +0 -1
  589. package/dist/validate.js +0 -154
  590. package/dist/validate.js.map +0 -1
  591. /package/dist/{types.js → parser/types.js} +0 -0
@@ -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,28 @@
1
+ import type { Token, TokenTree } from '../types.js';
2
+ /**
3
+ * Maps a 0-based offset into `tagToken.text` to an absolute document line and
4
+ * column. Only line 1 of the span inherits `startColumn` as its column origin,
5
+ * because every later line starts at column 1 of the real document.
6
+ * `offsetToLineColumn` (core/line-endings.ts) is the shared CRLF/CR/LF-aware
7
+ * mapper, so this file counts lines the same way the tokenizer does.
8
+ *
9
+ * Exported so a rule holding a span-relative offset but no synthesized child
10
+ * token to borrow a position from can reuse this instead of re-deriving the
11
+ * same math.
12
+ */
13
+ export declare function offsetToPosition(tagToken: Token, offset: number): {
14
+ line: number;
15
+ column: number;
16
+ };
17
+ /**
18
+ * Re-tokenizes every `markdocTag` token's own text via `parseMarkdocSpan` and
19
+ * appends the resulting children -- open/close markers, tag name, primary value,
20
+ * attributes (each wrapping a name/value pair), and class/id shortcuts -- both
21
+ * under the tag token itself in source order and into `tree.flat`, which is
22
+ * appended to rather than globally re-sorted (the same convention
23
+ * `reparseHtmlFlow` follows). Only ever called behind `ParseOptions.markdoc`,
24
+ * and flag-off parses produce no `markdocTag` tokens at all, so flag-off output
25
+ * is untouched.
26
+ */
27
+ export declare function structureMarkdocTags(tree: TokenTree): void;
28
+ //# sourceMappingURL=structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../src/parser/markdoc/structure.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAMlC;AAiED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAgG1D"}
@@ -0,0 +1,153 @@
1
+ // Post-parse structuring pass for `markdocTag` tokens: the micromark extension
2
+ // in `syntax.ts` recognizes span boundaries only, and this pass parses each
3
+ // span's own text via the pure `parseMarkdocSpan` scanner (span.ts) and
4
+ // synthesizes child tokens (open/close markers, tag name, primary value,
5
+ // attributes, class/id shortcuts) with document-absolute positions, mutating
6
+ // the tree in place the way `reparseHtmlFlow` (parser/index.ts) does for HTML.
7
+ //
8
+ // There is no `content` parameter: every `markdocTag` token's own `.text` is
9
+ // already the exact span text, so there is nothing left to re-slice from the
10
+ // surrounding document.
11
+ import { offsetToLineColumn } from '../../core/line-endings.js';
12
+ import { parseMarkdocSpan } from './span.js';
13
+ /**
14
+ * Maps a 0-based offset into `tagToken.text` to an absolute document line and
15
+ * column. Only line 1 of the span inherits `startColumn` as its column origin,
16
+ * because every later line starts at column 1 of the real document.
17
+ * `offsetToLineColumn` (core/line-endings.ts) is the shared CRLF/CR/LF-aware
18
+ * mapper, so this file counts lines the same way the tokenizer does.
19
+ *
20
+ * Exported so a rule holding a span-relative offset but no synthesized child
21
+ * token to borrow a position from can reuse this instead of re-deriving the
22
+ * same math.
23
+ */
24
+ export function offsetToPosition(tagToken, offset) {
25
+ const { line, column } = offsetToLineColumn(tagToken.text, offset);
26
+ return {
27
+ line: tagToken.startLine + (line - 1),
28
+ column: line === 1 ? tagToken.startColumn + (column - 1) : column,
29
+ };
30
+ }
31
+ /**
32
+ * Builds a synthesized child token spanning `[start, end)` of `tagToken`'s own
33
+ * text. Offsets are always relative to the tag, even for a grandchild like
34
+ * `markdocAttributeValue`, whose structural `parent` is the `markdocAttribute`
35
+ * wrapper rather than the tag itself.
36
+ */
37
+ function synthesize(tagToken, type, start, end, parent = tagToken) {
38
+ const startPos = offsetToPosition(tagToken, start);
39
+ const endPos = offsetToPosition(tagToken, end);
40
+ return {
41
+ type,
42
+ startLine: startPos.line,
43
+ startColumn: startPos.column,
44
+ endLine: endPos.line,
45
+ endColumn: endPos.column,
46
+ text: tagToken.text.slice(start, end),
47
+ children: [],
48
+ parent,
49
+ };
50
+ }
51
+ /**
52
+ * Boundaries of the opening (`{%`/`{%-`) and closing (`%}`/`-%}`) markers within
53
+ * a span's own text. `ParsedMarkdocSpan` carries no marker offsets, and
54
+ * re-deriving them here needs no parsing: the tokenizer in `syntax.ts` only ever
55
+ * emits a `markdocTag` whose text starts with a literal `{%` and ends with a
56
+ * literal `%}`, so slicing those two fixed-width delimiters plus an optional
57
+ * trim `-` is safe. This mirrors `parseMarkdocSpan`'s own `{%-`/`-%}` stripping
58
+ * (span.ts), so a change there must be mirrored here too.
59
+ */
60
+ function markerBounds(text) {
61
+ let openEnd = 2; // past the leading '{%'
62
+ let closeStart = text.length - 2; // start of the trailing '%}'
63
+ if (text[openEnd] === '-')
64
+ openEnd++;
65
+ if (closeStart - 1 >= openEnd && text[closeStart - 1] === '-')
66
+ closeStart--;
67
+ return { openEnd, closeStart };
68
+ }
69
+ function startOf(item) {
70
+ return item.kind === 'simple' ? item.start : item.attribute.nameStart;
71
+ }
72
+ /**
73
+ * Re-tokenizes every `markdocTag` token's own text via `parseMarkdocSpan` and
74
+ * appends the resulting children -- open/close markers, tag name, primary value,
75
+ * attributes (each wrapping a name/value pair), and class/id shortcuts -- both
76
+ * under the tag token itself in source order and into `tree.flat`, which is
77
+ * appended to rather than globally re-sorted (the same convention
78
+ * `reparseHtmlFlow` follows). Only ever called behind `ParseOptions.markdoc`,
79
+ * and flag-off parses produce no `markdocTag` tokens at all, so flag-off output
80
+ * is untouched.
81
+ */
82
+ export function structureMarkdocTags(tree) {
83
+ const appended = [];
84
+ for (const token of tree.flat) {
85
+ if (token.type !== 'markdocTag')
86
+ continue;
87
+ const parsed = parseMarkdocSpan(token.text);
88
+ token.markdocKind = parsed.kind;
89
+ const { openEnd, closeStart } = markerBounds(token.text);
90
+ const pending = [
91
+ { kind: 'simple', type: 'markdocTagMarker', start: 0, end: openEnd },
92
+ { kind: 'simple', type: 'markdocTagMarker', start: closeStart, end: token.text.length },
93
+ ];
94
+ // Annotation, variable, function, and malformed spans carry no tag name, so
95
+ // none of them gets a name child.
96
+ if (parsed.name !== null) {
97
+ pending.push({
98
+ kind: 'simple',
99
+ type: 'markdocTagName',
100
+ start: parsed.nameStart,
101
+ end: parsed.nameEnd,
102
+ });
103
+ }
104
+ if (parsed.primary) {
105
+ pending.push({
106
+ kind: 'simple',
107
+ type: 'markdocTagPrimary',
108
+ start: parsed.primary.valueStart,
109
+ end: parsed.primary.valueEnd,
110
+ });
111
+ }
112
+ for (const attribute of parsed.attributes) {
113
+ pending.push({ kind: 'attribute', attribute });
114
+ }
115
+ // Shortcuts are only present for named tag-open and self-closing spans, and
116
+ // are absent rather than empty for every other kind.
117
+ for (const shortcut of parsed.shortcuts ?? []) {
118
+ pending.push({
119
+ kind: 'simple',
120
+ type: 'markdocShortcut',
121
+ start: shortcut.start,
122
+ end: shortcut.end,
123
+ });
124
+ }
125
+ // Markers sit at the fixed extremes and name/primary/attributes/shortcuts
126
+ // can never overlap each other, so sorting by start offset alone reproduces
127
+ // the document order micromark uses for a token's `children` array.
128
+ pending.sort((a, b) => startOf(a) - startOf(b));
129
+ for (const item of pending) {
130
+ if (item.kind === 'simple') {
131
+ const child = synthesize(token, item.type, item.start, item.end);
132
+ token.children.push(child);
133
+ appended.push(child);
134
+ continue;
135
+ }
136
+ const { attribute } = item;
137
+ const attributeToken = synthesize(token, 'markdocAttribute', attribute.nameStart, attribute.valueEnd);
138
+ const nameToken = synthesize(token, 'markdocAttributeName', attribute.nameStart, attribute.nameEnd, attributeToken);
139
+ const valueToken = synthesize(token, 'markdocAttributeValue', attribute.valueStart, attribute.valueEnd, attributeToken);
140
+ attributeToken.children.push(nameToken, valueToken);
141
+ token.children.push(attributeToken);
142
+ appended.push(attributeToken, nameToken, valueToken);
143
+ }
144
+ }
145
+ // Pushed one at a time rather than spread as arguments: `push(...appended)`
146
+ // throws `RangeError: Maximum call stack size exceeded` once `appended`
147
+ // outgrows the engine's argument limit, which a document with tens of
148
+ // thousands of tags reaches, and this pass must never throw on a large
149
+ // document.
150
+ for (const token of appended)
151
+ tree.flat.push(token);
152
+ }
153
+ //# sourceMappingURL=structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/parser/markdoc/structure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { Extension } from 'micromark-util-types';
2
+ declare module 'micromark-util-types' {
3
+ interface TokenTypeMap {
4
+ markdocTag: 'markdocTag';
5
+ }
6
+ }
7
+ /**
8
+ * Markdoc tag-span micromark extension, gated behind `ParseOptions.markdoc`.
9
+ * Off by default: Liquid and Jinja templates use the identical `{% %}`
10
+ * delimiter, so tokenizing it unconditionally would misinterpret non-Markdoc
11
+ * documents.
12
+ *
13
+ * Takes the document text so both constructs can share one `%}` index over it
14
+ * (see `MarkdocCloseIndex`), so a fresh extension is built per parse.
15
+ *
16
+ * Disabling `codeIndented` and `setextUnderline` matches how a Markdoc document
17
+ * is actually compiled: Markdoc's own tokenizer unconditionally disables
18
+ * indented code and setext headings for every document it parses.
19
+ *
20
+ * `codeIndented` is the reason a 4-space-indented `{% card %}` gets recognized
21
+ * here at all -- micromark otherwise reads that line as an indented code block,
22
+ * so the tag never tokenizes and its less-indented close orphans. Realm's own
23
+ * `allowIndentation: true` is a separate, broader knob that strips the "4+
24
+ * spaces means code, bail out" guard from every other block rule, which is what
25
+ * lets an indented `{% /card %}` terminate a paragraph and close its tag.
26
+ * Removing micromark's construct gives us both of those effects at once,
27
+ * because it removes the one shared indentation gate every other flow construct
28
+ * is checked against.
29
+ *
30
+ * With `setextUnderline` disabled, a would-be underline line is no longer
31
+ * resolved into a setext heading and stays ordinary paragraph text -- or, for a
32
+ * run of `-`/`*`/`_`, still ends the paragraph as a `thematicBreak`, which
33
+ * remains enabled. That matches Realm, which renders `Title\n=====\n` as a
34
+ * paragraph containing the literal underline text and `Title\n-----\n` as a
35
+ * paragraph followed by `<hr>`.
36
+ *
37
+ * Both disables live inside the flag-on extension, so a flag-off parse never
38
+ * sees them and stays byte-identical. The knock-on effect under the flag is
39
+ * deliberate and matches the renderer: indented prose that micromark would have
40
+ * hidden inside `codeIndented` becomes ordinary paragraph content, and
41
+ * therefore becomes visible to the prose rules.
42
+ */
43
+ export declare function markdocSyntax(content: string): Extension;
44
+ //# sourceMappingURL=syntax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../../src/parser/markdoc/syntax.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAmB,SAAS,EAAoB,MAAM,sBAAsB,CAAC;AAKzF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,YAAY;QACpB,UAAU,EAAE,YAAY,CAAC;KAC1B;CACF;AAyTD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAexD"}
@@ -0,0 +1,317 @@
1
+ // Micromark syntax extension recognizing `{% ... %}` Markdoc span boundaries
2
+ // only: one `markdocTag` token per span, no interior structure. The name,
3
+ // attributes, and markers are synthesized later by `structureMarkdocTags`
4
+ // (structure.ts) from the span's own text, keeping the tricky parsing in a
5
+ // pure, unit-testable function shared by both forms below rather than in
6
+ // tokenizer state.
7
+ //
8
+ // Two constructs, both hooked on `{`:
9
+ // - `text`, the inline form: a tag sharing its line with other content. It
10
+ // must close on the same line; anything else falls back to ordinary
11
+ // paragraph text rather than failing the parse.
12
+ // - `flow`, the block form: a tag alone on its line. It may span multiple
13
+ // lines, and its closing `%}` must be followed only by whitespace to
14
+ // end-of-line, or the span reparses as inline content instead.
15
+ //
16
+ // Neither construct caps how far it scans: real tags reach a few thousand
17
+ // characters when their attribute list is broken across lines, and any fixed
18
+ // ceiling would silently stop tokenizing those. The `%}` index below keeps the
19
+ // scanning linear without one.
20
+ import { codes, types as mmTypes } from 'micromark-util-symbol';
21
+ /** True iff the `%}` at `at` is followed only by spaces/tabs to end-of-line/EOF. */
22
+ function closesALine(content, at) {
23
+ for (let index = at + 2; index < content.length; index++) {
24
+ const code = content.charCodeAt(index);
25
+ if (code === 32 /* space */ || code === 9 /* tab */)
26
+ continue;
27
+ return code === 10 /* \n */ || code === 13 /* \r */;
28
+ }
29
+ return true; // ran to EOF
30
+ }
31
+ function buildCloseIndex(content) {
32
+ // Line counting mirrors micromark's: `\r\n` is one line ending, as are a
33
+ // lone `\r` and a lone `\n`.
34
+ let lineCount = 1;
35
+ for (let index = 0; index < content.length; index++) {
36
+ const code = content.charCodeAt(index);
37
+ if (code === 13) {
38
+ if (content.charCodeAt(index + 1) === 10)
39
+ index++;
40
+ lineCount++;
41
+ }
42
+ else if (code === 10) {
43
+ lineCount++;
44
+ }
45
+ }
46
+ const size = lineCount + 2;
47
+ const lastCloseOnLine = new Int32Array(size).fill(-1);
48
+ const firstCloseOnLine = new Int32Array(size).fill(-1);
49
+ const blockCloseFromLine = new Int32Array(size).fill(-1);
50
+ let line = 1;
51
+ for (let index = 0; index < content.length; index++) {
52
+ const code = content.charCodeAt(index);
53
+ if (code === 13) {
54
+ if (content.charCodeAt(index + 1) === 10)
55
+ index++;
56
+ line++;
57
+ continue;
58
+ }
59
+ if (code === 10) {
60
+ line++;
61
+ continue;
62
+ }
63
+ // `%%}` is deliberately not skipped past: the scanner's own `%`-run
64
+ // handling closes on the last `%` before the `}`, which is the occurrence
65
+ // recorded here.
66
+ if (code === 37 /* % */ && content.charCodeAt(index + 1) === 125 /* } */) {
67
+ if (firstCloseOnLine[line] < 0)
68
+ firstCloseOnLine[line] = index;
69
+ lastCloseOnLine[line] = index;
70
+ }
71
+ }
72
+ // Carried backwards: a line with no close of its own inherits the first
73
+ // close of the next line that has one.
74
+ let carried = -1;
75
+ for (let at = lineCount; at >= 1; at--) {
76
+ const first = firstCloseOnLine[at];
77
+ if (first >= 0)
78
+ carried = closesALine(content, first) ? first : -1;
79
+ blockCloseFromLine[at] = carried;
80
+ }
81
+ return { lastCloseOnLine, firstCloseOnLine, blockCloseFromLine };
82
+ }
83
+ function read(table, line) {
84
+ return line >= 0 && line < table.length ? table[line] : -1;
85
+ }
86
+ /** No `%}` left on this line at or after `offset` -- an inline span cannot close. */
87
+ function inlineScanIsHopeless(index, line, offset) {
88
+ return read(index.lastCloseOnLine, line) < offset;
89
+ }
90
+ /** The first `%}` this block attempt would reach is missing or unusable. */
91
+ function blockScanIsHopeless(index, line, offset) {
92
+ const first = read(index.firstCloseOnLine, line);
93
+ // The line's entry describes the first close from the line's start, so if
94
+ // the attempt begins past that close, stand aside and let the scanner decide.
95
+ if (first >= 0 && first < offset)
96
+ return false;
97
+ return read(index.blockCloseFromLine, line) < 0;
98
+ }
99
+ function createTokenizeText(index) {
100
+ return function (effects, ok, nok) {
101
+ const now = this.now.bind(this);
102
+ return start;
103
+ function start(code) {
104
+ const point = now();
105
+ if (inlineScanIsHopeless(index, point.line, point.offset))
106
+ return nok(code);
107
+ effects.enter('markdocTag');
108
+ effects.consume(code); // '{'
109
+ return afterBrace;
110
+ }
111
+ function afterBrace(code) {
112
+ if (code !== codes.percentSign)
113
+ return nok(code);
114
+ effects.consume(code);
115
+ return inside;
116
+ }
117
+ // Inline spans cannot cross a line ending, so EOF or a line ending here
118
+ // nok()s back to ordinary text. The flow construct handles the multi-line
119
+ // case in block position instead.
120
+ function inside(code) {
121
+ if (code === codes.eof ||
122
+ code === codes.carriageReturn ||
123
+ code === codes.lineFeed ||
124
+ code === codes.carriageReturnLineFeed) {
125
+ return nok(code);
126
+ }
127
+ if (code === codes.percentSign) {
128
+ effects.consume(code);
129
+ return maybeClose;
130
+ }
131
+ effects.consume(code);
132
+ return inside;
133
+ }
134
+ // Consume a whole run of `%` so a body that ends in `%` characters
135
+ // (`{% t x="100%%" %}`) still reaches the real close delimiter instead of
136
+ // stopping at the first `%`.
137
+ function maybeClose(code) {
138
+ if (code === codes.rightCurlyBrace) {
139
+ effects.consume(code);
140
+ effects.exit('markdocTag');
141
+ return ok;
142
+ }
143
+ if (code === codes.percentSign) {
144
+ effects.consume(code);
145
+ return maybeClose;
146
+ }
147
+ return inside(code);
148
+ }
149
+ };
150
+ }
151
+ function createTokenizeFlow(index) {
152
+ return function (effects, ok, nok) {
153
+ const now = this.now.bind(this);
154
+ // Micromark requires every `effects.consume()` to immediately follow an
155
+ // `enter()` with no `exit()` in between. That check looks only at the last
156
+ // recorded event rather than at stack depth, so once a nested line ending
157
+ // has been entered and exited, the next character needs a fresh `enter()`
158
+ // even though `markdocTag` is still open underneath. `dataOpen` tracks
159
+ // whether such a per-line wrapper (reusing the generic `data` type) is
160
+ // currently open. The segments are pure bookkeeping: `structureMarkdocTags`
161
+ // reads only a `markdocTag`'s `.text`, never its micromark children, so a
162
+ // segment boundary need not line up with anything Markdoc-meaningful.
163
+ let dataOpen = false;
164
+ return start;
165
+ function start(code) {
166
+ const point = now();
167
+ if (blockScanIsHopeless(index, point.line, point.offset))
168
+ return nok(code);
169
+ effects.enter('markdocTag');
170
+ effects.consume(code); // '{'
171
+ return afterBrace;
172
+ }
173
+ function afterBrace(code) {
174
+ if (code !== codes.percentSign)
175
+ return nok(code);
176
+ effects.consume(code);
177
+ return inside;
178
+ }
179
+ function openData() {
180
+ if (!dataOpen) {
181
+ effects.enter(mmTypes.data);
182
+ dataOpen = true;
183
+ }
184
+ }
185
+ function closeData() {
186
+ if (dataOpen) {
187
+ effects.exit(mmTypes.data);
188
+ dataOpen = false;
189
+ }
190
+ }
191
+ function inside(code) {
192
+ if (code === codes.eof)
193
+ return nok(code);
194
+ if (code === codes.carriageReturn ||
195
+ code === codes.lineFeed ||
196
+ code === codes.carriageReturnLineFeed) {
197
+ closeData(); // must close before nesting `lineEnding` -- see the note above `dataOpen`
198
+ effects.enter(mmTypes.lineEnding);
199
+ effects.consume(code);
200
+ effects.exit(mmTypes.lineEnding);
201
+ return inside;
202
+ }
203
+ openData();
204
+ if (code === codes.percentSign) {
205
+ effects.consume(code);
206
+ return maybeClose;
207
+ }
208
+ effects.consume(code);
209
+ return inside;
210
+ }
211
+ function maybeClose(code) {
212
+ if (code === codes.rightCurlyBrace) {
213
+ effects.consume(code);
214
+ return after;
215
+ }
216
+ if (code === codes.percentSign) {
217
+ effects.consume(code);
218
+ return maybeClose;
219
+ }
220
+ return inside(code);
221
+ }
222
+ // The block form allows only trailing whitespace after `%}`. Any other
223
+ // content on the same line (`{% partial /%} tag.`) means this is inline
224
+ // content, so nok() defers to the text construct's own attempt.
225
+ //
226
+ // `markdocTag` closes on the `}` itself, before any trailing whitespace, so
227
+ // the token's text always ends with a literal `%}`. Downstream relies on
228
+ // that: `parseMarkdocSpan` gates on it, and `markerBounds` (structure.ts)
229
+ // derives the close marker from the text's last two characters, so a token
230
+ // carrying `"...%} "` would classify malformed. The whitespace run becomes
231
+ // its own sibling `whitespace` token.
232
+ function after(code) {
233
+ if (code === codes.eof ||
234
+ code === codes.carriageReturn ||
235
+ code === codes.lineFeed ||
236
+ code === codes.carriageReturnLineFeed) {
237
+ closeData(); // must close before exiting the outer `markdocTag` (a strict LIFO stack)
238
+ effects.exit('markdocTag');
239
+ return ok(code);
240
+ }
241
+ if (code === codes.space || code === codes.horizontalTab) {
242
+ closeData();
243
+ effects.exit('markdocTag');
244
+ effects.enter(mmTypes.whitespace);
245
+ return trailingWhitespace(code);
246
+ }
247
+ return nok(code);
248
+ }
249
+ function trailingWhitespace(code) {
250
+ if (code === codes.space || code === codes.horizontalTab) {
251
+ effects.consume(code);
252
+ return trailingWhitespace;
253
+ }
254
+ effects.exit(mmTypes.whitespace);
255
+ if (code === codes.eof ||
256
+ code === codes.carriageReturn ||
257
+ code === codes.lineFeed ||
258
+ code === codes.carriageReturnLineFeed) {
259
+ return ok(code);
260
+ }
261
+ return nok(code);
262
+ }
263
+ };
264
+ }
265
+ /**
266
+ * Markdoc tag-span micromark extension, gated behind `ParseOptions.markdoc`.
267
+ * Off by default: Liquid and Jinja templates use the identical `{% %}`
268
+ * delimiter, so tokenizing it unconditionally would misinterpret non-Markdoc
269
+ * documents.
270
+ *
271
+ * Takes the document text so both constructs can share one `%}` index over it
272
+ * (see `MarkdocCloseIndex`), so a fresh extension is built per parse.
273
+ *
274
+ * Disabling `codeIndented` and `setextUnderline` matches how a Markdoc document
275
+ * is actually compiled: Markdoc's own tokenizer unconditionally disables
276
+ * indented code and setext headings for every document it parses.
277
+ *
278
+ * `codeIndented` is the reason a 4-space-indented `{% card %}` gets recognized
279
+ * here at all -- micromark otherwise reads that line as an indented code block,
280
+ * so the tag never tokenizes and its less-indented close orphans. Realm's own
281
+ * `allowIndentation: true` is a separate, broader knob that strips the "4+
282
+ * spaces means code, bail out" guard from every other block rule, which is what
283
+ * lets an indented `{% /card %}` terminate a paragraph and close its tag.
284
+ * Removing micromark's construct gives us both of those effects at once,
285
+ * because it removes the one shared indentation gate every other flow construct
286
+ * is checked against.
287
+ *
288
+ * With `setextUnderline` disabled, a would-be underline line is no longer
289
+ * resolved into a setext heading and stays ordinary paragraph text -- or, for a
290
+ * run of `-`/`*`/`_`, still ends the paragraph as a `thematicBreak`, which
291
+ * remains enabled. That matches Realm, which renders `Title\n=====\n` as a
292
+ * paragraph containing the literal underline text and `Title\n-----\n` as a
293
+ * paragraph followed by `<hr>`.
294
+ *
295
+ * Both disables live inside the flag-on extension, so a flag-off parse never
296
+ * sees them and stays byte-identical. The knock-on effect under the flag is
297
+ * deliberate and matches the renderer: indented prose that micromark would have
298
+ * hidden inside `codeIndented` becomes ordinary paragraph content, and
299
+ * therefore becomes visible to the prose rules.
300
+ */
301
+ export function markdocSyntax(content) {
302
+ const index = buildCloseIndex(content);
303
+ const textConstruct = {
304
+ name: 'markdocTagText',
305
+ tokenize: createTokenizeText(index),
306
+ };
307
+ const flowConstruct = {
308
+ name: 'markdocTagFlow',
309
+ tokenize: createTokenizeFlow(index),
310
+ };
311
+ return {
312
+ text: { [codes.leftCurlyBrace]: textConstruct },
313
+ flow: { [codes.leftCurlyBrace]: flowConstruct },
314
+ disable: { null: ['codeIndented', 'setextUnderline'] },
315
+ };
316
+ }
317
+ //# sourceMappingURL=syntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../../src/parser/markdoc/syntax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { MarkdocTagKind } from './markdoc/span.js';
2
+ export interface Token {
3
+ type: string;
4
+ startLine: number;
5
+ startColumn: number;
6
+ endLine: number;
7
+ endColumn: number;
8
+ text: string;
9
+ children: Token[];
10
+ parent: Token | null;
11
+ inHtmlFlow?: boolean;
12
+ markdocKind?: MarkdocTagKind | 'malformed';
13
+ }
14
+ export interface TokenTree {
15
+ children: Token[];
16
+ flat: Token[];
17
+ }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IAarB,UAAU,CAAC,EAAE,OAAO,CAAC;IAIrB,WAAW,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;CACf"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":""}