@diplodoc/transform 4.0.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 (355) hide show
  1. package/CHANGELOG.diplodoc.md +38 -0
  2. package/CHANGELOG.md +404 -0
  3. package/LICENSE +21 -0
  4. package/README.md +41 -0
  5. package/README.ru.md +36 -0
  6. package/dist/css/yfm.css +736 -0
  7. package/dist/css/yfm.css.map +7 -0
  8. package/dist/css/yfm.min.css +2 -0
  9. package/dist/css/yfm.min.css.map +7 -0
  10. package/dist/js/code.d.ts +1 -0
  11. package/dist/js/cut.d.ts +1 -0
  12. package/dist/js/index.d.ts +5 -0
  13. package/dist/js/polyfill.d.ts +1 -0
  14. package/dist/js/tabs.d.ts +1 -0
  15. package/dist/js/term/index.d.ts +1 -0
  16. package/dist/js/term/utils.d.ts +10 -0
  17. package/dist/js/utils.d.ts +2 -0
  18. package/dist/js/yfm.js +432 -0
  19. package/dist/js/yfm.js.map +7 -0
  20. package/dist/js/yfm.min.js +2 -0
  21. package/dist/js/yfm.min.js.map +7 -0
  22. package/lib/getObject.d.ts +2 -0
  23. package/lib/getObject.js +11 -0
  24. package/lib/getObject.js.map +1 -0
  25. package/lib/headings.d.ts +4 -0
  26. package/lib/headings.js +73 -0
  27. package/lib/headings.js.map +1 -0
  28. package/lib/highlight.d.ts +3 -0
  29. package/lib/highlight.js +29 -0
  30. package/lib/highlight.js.map +1 -0
  31. package/lib/index.d.ts +7 -0
  32. package/lib/index.js +35 -0
  33. package/lib/index.js.map +1 -0
  34. package/lib/liquid/conditions.d.ts +4 -0
  35. package/lib/liquid/conditions.js +181 -0
  36. package/lib/liquid/conditions.js.map +1 -0
  37. package/lib/liquid/cycles.d.ts +4 -0
  38. package/lib/liquid/cycles.js +160 -0
  39. package/lib/liquid/cycles.js.map +1 -0
  40. package/lib/liquid/errors.d.ts +3 -0
  41. package/lib/liquid/errors.js +13 -0
  42. package/lib/liquid/errors.js.map +1 -0
  43. package/lib/liquid/evaluation.d.ts +3 -0
  44. package/lib/liquid/evaluation.js +138 -0
  45. package/lib/liquid/evaluation.js.map +1 -0
  46. package/lib/liquid/filters.d.ts +9 -0
  47. package/lib/liquid/filters.js +22 -0
  48. package/lib/liquid/filters.js.map +1 -0
  49. package/lib/liquid/index.d.ts +9 -0
  50. package/lib/liquid/index.js +87 -0
  51. package/lib/liquid/index.js.map +1 -0
  52. package/lib/liquid/lexical.d.ts +14 -0
  53. package/lib/liquid/lexical.js +79 -0
  54. package/lib/liquid/lexical.js.map +1 -0
  55. package/lib/liquid/services/argv.d.ts +15 -0
  56. package/lib/liquid/services/argv.js +17 -0
  57. package/lib/liquid/services/argv.js.map +1 -0
  58. package/lib/liquid/sourceMap.d.ts +24 -0
  59. package/lib/liquid/sourceMap.js +56 -0
  60. package/lib/liquid/sourceMap.js.map +1 -0
  61. package/lib/liquid/substitutions.d.ts +2 -0
  62. package/lib/liquid/substitutions.js +36 -0
  63. package/lib/liquid/substitutions.js.map +1 -0
  64. package/lib/liquid/utils.d.ts +8 -0
  65. package/lib/liquid/utils.js +24 -0
  66. package/lib/liquid/utils.js.map +1 -0
  67. package/lib/log.d.ts +18 -0
  68. package/lib/log.js +54 -0
  69. package/lib/log.js.map +1 -0
  70. package/lib/md.d.ts +14 -0
  71. package/lib/md.js +96 -0
  72. package/lib/md.js.map +1 -0
  73. package/lib/plugins/anchors/collect.d.ts +5 -0
  74. package/lib/plugins/anchors/collect.js +81 -0
  75. package/lib/plugins/anchors/collect.js.map +1 -0
  76. package/lib/plugins/anchors/constants.d.ts +2 -0
  77. package/lib/plugins/anchors/constants.js +6 -0
  78. package/lib/plugins/anchors/constants.js.map +1 -0
  79. package/lib/plugins/anchors/index.d.ts +7 -0
  80. package/lib/plugins/anchors/index.js +134 -0
  81. package/lib/plugins/anchors/index.js.map +1 -0
  82. package/lib/plugins/changelog/collect.d.ts +8 -0
  83. package/lib/plugins/changelog/collect.js +50 -0
  84. package/lib/plugins/changelog/collect.js.map +1 -0
  85. package/lib/plugins/changelog/index.d.ts +6 -0
  86. package/lib/plugins/changelog/index.js +131 -0
  87. package/lib/plugins/changelog/index.js.map +1 -0
  88. package/lib/plugins/changelog/types.d.ts +10 -0
  89. package/lib/plugins/changelog/types.js +3 -0
  90. package/lib/plugins/changelog/types.js.map +1 -0
  91. package/lib/plugins/checkbox/checkbox.d.ts +7 -0
  92. package/lib/plugins/checkbox/checkbox.js +91 -0
  93. package/lib/plugins/checkbox/checkbox.js.map +1 -0
  94. package/lib/plugins/checkbox/index.d.ts +8 -0
  95. package/lib/plugins/checkbox/index.js +12 -0
  96. package/lib/plugins/checkbox/index.js.map +1 -0
  97. package/lib/plugins/code.d.ts +3 -0
  98. package/lib/plugins/code.js +61 -0
  99. package/lib/plugins/code.js.map +1 -0
  100. package/lib/plugins/cut.d.ts +3 -0
  101. package/lib/plugins/cut.js +70 -0
  102. package/lib/plugins/cut.js.map +1 -0
  103. package/lib/plugins/deflist.d.ts +3 -0
  104. package/lib/plugins/deflist.js +8 -0
  105. package/lib/plugins/deflist.js.map +1 -0
  106. package/lib/plugins/file/const.d.ts +27 -0
  107. package/lib/plugins/file/const.js +47 -0
  108. package/lib/plugins/file/const.js.map +1 -0
  109. package/lib/plugins/file/file.d.ts +8 -0
  110. package/lib/plugins/file/file.js +63 -0
  111. package/lib/plugins/file/file.js.map +1 -0
  112. package/lib/plugins/file/index.d.ts +4 -0
  113. package/lib/plugins/file/index.js +9 -0
  114. package/lib/plugins/file/index.js.map +1 -0
  115. package/lib/plugins/images/collect.d.ts +8 -0
  116. package/lib/plugins/images/collect.js +43 -0
  117. package/lib/plugins/images/collect.js.map +1 -0
  118. package/lib/plugins/images/index.d.ts +10 -0
  119. package/lib/plugins/images/index.js +81 -0
  120. package/lib/plugins/images/index.js.map +1 -0
  121. package/lib/plugins/imsize/const.d.ts +7 -0
  122. package/lib/plugins/imsize/const.js +12 -0
  123. package/lib/plugins/imsize/const.js.map +1 -0
  124. package/lib/plugins/imsize/helpers.d.ts +6 -0
  125. package/lib/plugins/imsize/helpers.js +64 -0
  126. package/lib/plugins/imsize/helpers.js.map +1 -0
  127. package/lib/plugins/imsize/index.d.ts +8 -0
  128. package/lib/plugins/imsize/index.js +12 -0
  129. package/lib/plugins/imsize/index.js.map +1 -0
  130. package/lib/plugins/imsize/plugin.d.ts +3 -0
  131. package/lib/plugins/imsize/plugin.js +188 -0
  132. package/lib/plugins/imsize/plugin.js.map +1 -0
  133. package/lib/plugins/includes/collect.d.ts +8 -0
  134. package/lib/plugins/includes/collect.js +49 -0
  135. package/lib/plugins/includes/collect.js.map +1 -0
  136. package/lib/plugins/includes/index.d.ts +8 -0
  137. package/lib/plugins/includes/index.js +98 -0
  138. package/lib/plugins/includes/index.js.map +1 -0
  139. package/lib/plugins/links/collect.d.ts +7 -0
  140. package/lib/plugins/links/collect.js +74 -0
  141. package/lib/plugins/links/collect.js.map +1 -0
  142. package/lib/plugins/links/constants.d.ts +1 -0
  143. package/lib/plugins/links/constants.js +5 -0
  144. package/lib/plugins/links/constants.js.map +1 -0
  145. package/lib/plugins/links/index.d.ts +24 -0
  146. package/lib/plugins/links/index.js +178 -0
  147. package/lib/plugins/links/index.js.map +1 -0
  148. package/lib/plugins/meta.d.ts +3 -0
  149. package/lib/plugins/meta.js +8 -0
  150. package/lib/plugins/meta.js.map +1 -0
  151. package/lib/plugins/monospace.d.ts +3 -0
  152. package/lib/plugins/monospace.js +109 -0
  153. package/lib/plugins/monospace.js.map +1 -0
  154. package/lib/plugins/notes.d.ts +3 -0
  155. package/lib/plugins/notes.js +103 -0
  156. package/lib/plugins/notes.js.map +1 -0
  157. package/lib/plugins/sup.d.ts +3 -0
  158. package/lib/plugins/sup.js +8 -0
  159. package/lib/plugins/sup.js.map +1 -0
  160. package/lib/plugins/table/index.d.ts +3 -0
  161. package/lib/plugins/table/index.js +215 -0
  162. package/lib/plugins/table/index.js.map +1 -0
  163. package/lib/plugins/tabs.d.ts +4 -0
  164. package/lib/plugins/tabs.js +4 -0
  165. package/lib/plugins/tabs.js.map +1 -0
  166. package/lib/plugins/term/constants.d.ts +1 -0
  167. package/lib/plugins/term/constants.js +5 -0
  168. package/lib/plugins/term/constants.js.map +1 -0
  169. package/lib/plugins/term/index.d.ts +3 -0
  170. package/lib/plugins/term/index.js +108 -0
  171. package/lib/plugins/term/index.js.map +1 -0
  172. package/lib/plugins/term/termDefinitions.d.ts +4 -0
  173. package/lib/plugins/term/termDefinitions.js +125 -0
  174. package/lib/plugins/term/termDefinitions.js.map +1 -0
  175. package/lib/plugins/typings.d.ts +12 -0
  176. package/lib/plugins/typings.js +3 -0
  177. package/lib/plugins/typings.js.map +1 -0
  178. package/lib/plugins/utils.d.ts +6 -0
  179. package/lib/plugins/utils.js +30 -0
  180. package/lib/plugins/utils.js.map +1 -0
  181. package/lib/plugins/video/const.d.ts +10 -0
  182. package/lib/plugins/video/const.js +22 -0
  183. package/lib/plugins/video/const.js.map +1 -0
  184. package/lib/plugins/video/index.d.ts +8 -0
  185. package/lib/plugins/video/index.js +104 -0
  186. package/lib/plugins/video/index.js.map +1 -0
  187. package/lib/plugins/video/parsers.d.ts +6 -0
  188. package/lib/plugins/video/parsers.js +64 -0
  189. package/lib/plugins/video/parsers.js.map +1 -0
  190. package/lib/plugins/video/types.d.ts +34 -0
  191. package/lib/plugins/video/types.js +3 -0
  192. package/lib/plugins/video/types.js.map +1 -0
  193. package/lib/plugins/video/utils.d.ts +2 -0
  194. package/lib/plugins/video/utils.js +25 -0
  195. package/lib/plugins/video/utils.js.map +1 -0
  196. package/lib/plugins.d.ts +3 -0
  197. package/lib/plugins.js +36 -0
  198. package/lib/plugins.js.map +1 -0
  199. package/lib/sanitize.d.ts +12 -0
  200. package/lib/sanitize.js +572 -0
  201. package/lib/sanitize.js.map +1 -0
  202. package/lib/title.d.ts +7 -0
  203. package/lib/title.js +18 -0
  204. package/lib/title.js.map +1 -0
  205. package/lib/typings.d.ts +57 -0
  206. package/lib/typings.js +3 -0
  207. package/lib/typings.js.map +1 -0
  208. package/lib/utils.d.ts +13 -0
  209. package/lib/utils.js +79 -0
  210. package/lib/utils.js.map +1 -0
  211. package/lib/utilsFS.d.ts +27 -0
  212. package/lib/utilsFS.js +89 -0
  213. package/lib/utilsFS.js.map +1 -0
  214. package/lib/yfmlint/index.d.ts +26 -0
  215. package/lib/yfmlint/index.js +72 -0
  216. package/lib/yfmlint/index.js.map +1 -0
  217. package/lib/yfmlint/markdownlint-custom-rule/index.d.ts +9 -0
  218. package/lib/yfmlint/markdownlint-custom-rule/index.js +22 -0
  219. package/lib/yfmlint/markdownlint-custom-rule/index.js.map +1 -0
  220. package/lib/yfmlint/markdownlint-custom-rule/yfm001.d.ts +2 -0
  221. package/lib/yfmlint/markdownlint-custom-rule/yfm001.js +28 -0
  222. package/lib/yfmlint/markdownlint-custom-rule/yfm001.js.map +1 -0
  223. package/lib/yfmlint/markdownlint-custom-rule/yfm002.d.ts +2 -0
  224. package/lib/yfmlint/markdownlint-custom-rule/yfm002.js +33 -0
  225. package/lib/yfmlint/markdownlint-custom-rule/yfm002.js.map +1 -0
  226. package/lib/yfmlint/markdownlint-custom-rule/yfm003.d.ts +2 -0
  227. package/lib/yfmlint/markdownlint-custom-rule/yfm003.js +33 -0
  228. package/lib/yfmlint/markdownlint-custom-rule/yfm003.js.map +1 -0
  229. package/lib/yfmlint/markdownlint-custom-rule/yfm004.d.ts +2 -0
  230. package/lib/yfmlint/markdownlint-custom-rule/yfm004.js +28 -0
  231. package/lib/yfmlint/markdownlint-custom-rule/yfm004.js.map +1 -0
  232. package/lib/yfmlint/markdownlint-custom-rule/yfm005.d.ts +2 -0
  233. package/lib/yfmlint/markdownlint-custom-rule/yfm005.js +28 -0
  234. package/lib/yfmlint/markdownlint-custom-rule/yfm005.js.map +1 -0
  235. package/lib/yfmlint/markdownlint-custom-rule/yfm006.d.ts +2 -0
  236. package/lib/yfmlint/markdownlint-custom-rule/yfm006.js +28 -0
  237. package/lib/yfmlint/markdownlint-custom-rule/yfm006.js.map +1 -0
  238. package/lib/yfmlint/markdownlint-custom-rule/yfm007.d.ts +2 -0
  239. package/lib/yfmlint/markdownlint-custom-rule/yfm007.js +29 -0
  240. package/lib/yfmlint/markdownlint-custom-rule/yfm007.js.map +1 -0
  241. package/lib/yfmlint/markdownlint-custom-rule/yfm008.d.ts +2 -0
  242. package/lib/yfmlint/markdownlint-custom-rule/yfm008.js +28 -0
  243. package/lib/yfmlint/markdownlint-custom-rule/yfm008.js.map +1 -0
  244. package/lib/yfmlint/markdownlint-custom-rule/yfm009.d.ts +2 -0
  245. package/lib/yfmlint/markdownlint-custom-rule/yfm009.js +47 -0
  246. package/lib/yfmlint/markdownlint-custom-rule/yfm009.js.map +1 -0
  247. package/lib/yfmlint/typings.d.ts +12 -0
  248. package/lib/yfmlint/typings.js +3 -0
  249. package/lib/yfmlint/typings.js.map +1 -0
  250. package/lib/yfmlint/utils.d.ts +9 -0
  251. package/lib/yfmlint/utils.js +22 -0
  252. package/lib/yfmlint/utils.js.map +1 -0
  253. package/lib/yfmlint/yfmlint.d.ts +3 -0
  254. package/lib/yfmlint/yfmlint.js +69 -0
  255. package/lib/yfmlint/yfmlint.js.map +1 -0
  256. package/package.json +106 -0
  257. package/src/.eslintrc +10 -0
  258. package/src/js/code.ts +65 -0
  259. package/src/js/cut.ts +57 -0
  260. package/src/js/index.ts +6 -0
  261. package/src/js/polyfill.js +27 -0
  262. package/src/js/term/index.ts +79 -0
  263. package/src/js/term/utils.ts +151 -0
  264. package/src/js/utils.ts +9 -0
  265. package/src/scss/_anchor.scss +33 -0
  266. package/src/scss/_code.scss +23 -0
  267. package/src/scss/_common.scss +407 -0
  268. package/src/scss/_cut.scss +42 -0
  269. package/src/scss/_file.scss +35 -0
  270. package/src/scss/_highlight.scss +96 -0
  271. package/src/scss/_note.scss +73 -0
  272. package/src/scss/_print.scss +20 -0
  273. package/src/scss/_term.scss +79 -0
  274. package/src/scss/_variables.scss +16 -0
  275. package/src/scss/yfm.scss +11 -0
  276. package/src/transform/getObject.ts +10 -0
  277. package/src/transform/headings.ts +88 -0
  278. package/src/transform/highlight.ts +33 -0
  279. package/src/transform/index.ts +50 -0
  280. package/src/transform/liquid/conditions.ts +259 -0
  281. package/src/transform/liquid/cycles.ts +244 -0
  282. package/src/transform/liquid/errors.ts +10 -0
  283. package/src/transform/liquid/evaluation.ts +145 -0
  284. package/src/transform/liquid/filters.ts +19 -0
  285. package/src/transform/liquid/index.ts +141 -0
  286. package/src/transform/liquid/lexical.ts +86 -0
  287. package/src/transform/liquid/services/argv.ts +23 -0
  288. package/src/transform/liquid/sourceMap.ts +72 -0
  289. package/src/transform/liquid/substitutions.ts +40 -0
  290. package/src/transform/liquid/utils.ts +30 -0
  291. package/src/transform/log.ts +60 -0
  292. package/src/transform/md.ts +123 -0
  293. package/src/transform/plugins/anchors/collect.ts +101 -0
  294. package/src/transform/plugins/anchors/constants.ts +2 -0
  295. package/src/transform/plugins/anchors/index.ts +166 -0
  296. package/src/transform/plugins/changelog/collect.ts +66 -0
  297. package/src/transform/plugins/changelog/index.ts +164 -0
  298. package/src/transform/plugins/changelog/types.ts +10 -0
  299. package/src/transform/plugins/checkbox/checkbox.ts +107 -0
  300. package/src/transform/plugins/checkbox/index.ts +15 -0
  301. package/src/transform/plugins/code.ts +79 -0
  302. package/src/transform/plugins/cut.ts +98 -0
  303. package/src/transform/plugins/deflist.ts +5 -0
  304. package/src/transform/plugins/file/README.md +34 -0
  305. package/src/transform/plugins/file/const.ts +46 -0
  306. package/src/transform/plugins/file/file.ts +82 -0
  307. package/src/transform/plugins/file/index.ts +10 -0
  308. package/src/transform/plugins/images/collect.ts +60 -0
  309. package/src/transform/plugins/images/index.ts +119 -0
  310. package/src/transform/plugins/imsize/const.ts +7 -0
  311. package/src/transform/plugins/imsize/helpers.ts +75 -0
  312. package/src/transform/plugins/imsize/index.ts +14 -0
  313. package/src/transform/plugins/imsize/plugin.ts +214 -0
  314. package/src/transform/plugins/includes/collect.ts +73 -0
  315. package/src/transform/plugins/includes/index.ts +127 -0
  316. package/src/transform/plugins/links/collect.ts +92 -0
  317. package/src/transform/plugins/links/constants.ts +1 -0
  318. package/src/transform/plugins/links/index.ts +218 -0
  319. package/src/transform/plugins/meta.ts +5 -0
  320. package/src/transform/plugins/monospace.ts +141 -0
  321. package/src/transform/plugins/notes.ts +134 -0
  322. package/src/transform/plugins/sup.ts +5 -0
  323. package/src/transform/plugins/table/index.ts +290 -0
  324. package/src/transform/plugins/tabs.ts +3 -0
  325. package/src/transform/plugins/term/constants.ts +1 -0
  326. package/src/transform/plugins/term/index.ts +139 -0
  327. package/src/transform/plugins/term/termDefinitions.ts +177 -0
  328. package/src/transform/plugins/typings.ts +14 -0
  329. package/src/transform/plugins/utils.ts +38 -0
  330. package/src/transform/plugins/video/const.ts +20 -0
  331. package/src/transform/plugins/video/index.ts +134 -0
  332. package/src/transform/plugins/video/parsers.ts +65 -0
  333. package/src/transform/plugins/video/types.ts +27 -0
  334. package/src/transform/plugins/video/utils.ts +24 -0
  335. package/src/transform/plugins.ts +35 -0
  336. package/src/transform/sanitize.ts +596 -0
  337. package/src/transform/title.ts +22 -0
  338. package/src/transform/typings.ts +64 -0
  339. package/src/transform/utils.ts +91 -0
  340. package/src/transform/utilsFS.ts +128 -0
  341. package/src/transform/yfmlint/README.md +48 -0
  342. package/src/transform/yfmlint/index.ts +124 -0
  343. package/src/transform/yfmlint/markdownlint-custom-rule/index.ts +9 -0
  344. package/src/transform/yfmlint/markdownlint-custom-rule/yfm001.ts +36 -0
  345. package/src/transform/yfmlint/markdownlint-custom-rule/yfm002.ts +33 -0
  346. package/src/transform/yfmlint/markdownlint-custom-rule/yfm003.ts +33 -0
  347. package/src/transform/yfmlint/markdownlint-custom-rule/yfm004.ts +27 -0
  348. package/src/transform/yfmlint/markdownlint-custom-rule/yfm005.ts +27 -0
  349. package/src/transform/yfmlint/markdownlint-custom-rule/yfm006.ts +26 -0
  350. package/src/transform/yfmlint/markdownlint-custom-rule/yfm007.ts +28 -0
  351. package/src/transform/yfmlint/markdownlint-custom-rule/yfm008.ts +26 -0
  352. package/src/transform/yfmlint/markdownlint-custom-rule/yfm009.ts +54 -0
  353. package/src/transform/yfmlint/typings.ts +13 -0
  354. package/src/transform/yfmlint/utils.ts +31 -0
  355. package/src/transform/yfmlint/yfmlint.ts +73 -0
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ const pluginName = 'yfm_table';
3
+ const pipeChar = 0x7c; // |
4
+ const apostropheChar = 0x60; // `
5
+ const hashChar = 0x23; // #
6
+ const backSlashChar = 0x5c; // \
7
+ const checkCharsOrder = (order, src, pos) => {
8
+ const currentOrder = [...order];
9
+ const currentSrc = src.slice(pos);
10
+ for (let i = 0; i < currentOrder.length; i++) {
11
+ const rowSymbol = currentSrc.charCodeAt(i);
12
+ const orderSymbol = currentOrder[i];
13
+ if (rowSymbol !== orderSymbol) {
14
+ return false;
15
+ }
16
+ }
17
+ return true;
18
+ };
19
+ const codeBlockOrder = [apostropheChar, apostropheChar, apostropheChar];
20
+ const isCodeBlockOrder = (src, pos) => checkCharsOrder(codeBlockOrder, src, pos);
21
+ const openTableOrder = [hashChar, pipeChar];
22
+ const isOpenTableOrder = (src, pos) => checkCharsOrder(openTableOrder, src, pos);
23
+ const notEscaped = (src, pos) => src.charCodeAt(pos - 1) !== backSlashChar;
24
+ const rowStartOrder = [pipeChar, pipeChar];
25
+ const isRowOrder = (src, pos) => checkCharsOrder(rowStartOrder, src, pos) && notEscaped(src, pos);
26
+ const cellStartOrder = [pipeChar];
27
+ const isCellOrder = (src, pos) => checkCharsOrder(cellStartOrder, src, pos) && notEscaped(src, pos) && !isRowOrder(src, pos);
28
+ const closeTableOrder = [pipeChar, hashChar];
29
+ const isCloseTableOrder = (src, pos) => checkCharsOrder(closeTableOrder, src, pos);
30
+ class StateIterator {
31
+ constructor(state, pos, line) {
32
+ this.state = state;
33
+ this.line = line;
34
+ this.pos = pos;
35
+ this.lineEnds = this.state.eMarks[this.line];
36
+ }
37
+ stats() {
38
+ return {
39
+ line: this.line,
40
+ pos: this.pos,
41
+ };
42
+ }
43
+ get symbol() {
44
+ return this.state.src[this.pos];
45
+ }
46
+ next(steps = 1) {
47
+ for (let i = 0; i < steps; i++) {
48
+ this.pos++;
49
+ if (this.pos > this.lineEnds) {
50
+ this.line++;
51
+ this.pos = this.state.bMarks[this.line] + this.state.tShift[this.line];
52
+ this.lineEnds = this.state.eMarks[this.line];
53
+ }
54
+ }
55
+ }
56
+ }
57
+ function getTableRows(state, startPosition, endPosition, startLine) {
58
+ let endOfTable = null;
59
+ let tableLevel = 0;
60
+ let currentRow = [];
61
+ let colStart = null;
62
+ let rowStart = null;
63
+ const iter = new StateIterator(state, startPosition + openTableOrder.length, startLine);
64
+ const rows = [];
65
+ let isInsideCode = false;
66
+ let isInsideTable = false;
67
+ const rowMap = new Map();
68
+ const addRow = () => {
69
+ if (colStart) {
70
+ currentRow.push([colStart, iter.stats()]);
71
+ }
72
+ if (currentRow.length && rowStart) {
73
+ rows.push([rowStart, iter.line, currentRow]);
74
+ }
75
+ currentRow = [];
76
+ colStart = null;
77
+ rowStart = null;
78
+ };
79
+ while (iter.pos <= endPosition) {
80
+ if (iter.symbol === undefined) {
81
+ break;
82
+ }
83
+ if (isCodeBlockOrder(state.src, iter.pos)) {
84
+ isInsideCode = !isInsideCode;
85
+ iter.next(codeBlockOrder.length);
86
+ }
87
+ if (isInsideCode) {
88
+ iter.next();
89
+ continue;
90
+ }
91
+ if (isOpenTableOrder(state.src, iter.pos)) {
92
+ isInsideTable = true;
93
+ tableLevel++;
94
+ iter.next(openTableOrder.length);
95
+ continue;
96
+ }
97
+ if (isCloseTableOrder(state.src, iter.pos)) {
98
+ if (tableLevel === 0) {
99
+ addRow();
100
+ iter.next(closeTableOrder.length);
101
+ endOfTable = iter.line + 2;
102
+ break;
103
+ }
104
+ else {
105
+ isInsideTable = false;
106
+ tableLevel--;
107
+ iter.next(closeTableOrder.length);
108
+ continue;
109
+ }
110
+ }
111
+ if (isInsideTable) {
112
+ iter.next();
113
+ continue;
114
+ }
115
+ if (isRowOrder(state.src, iter.pos)) {
116
+ const insideRow = rowMap.get(tableLevel);
117
+ if (insideRow) {
118
+ addRow();
119
+ iter.next(rowStartOrder.length);
120
+ }
121
+ else {
122
+ iter.next(rowStartOrder.length);
123
+ rowStart = iter.line;
124
+ colStart = iter.stats();
125
+ }
126
+ rowMap.set(tableLevel, !insideRow);
127
+ continue;
128
+ }
129
+ if (isCellOrder(state.src, iter.pos)) {
130
+ if (colStart) {
131
+ currentRow.push([colStart, iter.stats()]);
132
+ }
133
+ iter.next(cellStartOrder.length);
134
+ colStart = iter.stats();
135
+ continue;
136
+ }
137
+ iter.next();
138
+ }
139
+ return { rows, endOfTable };
140
+ }
141
+ const yfmTable = (md) => {
142
+ md.block.ruler.before('code', pluginName, (state, startLine, endLine, silent) => {
143
+ let token;
144
+ const startPosition = state.bMarks[startLine] + state.tShift[startLine];
145
+ const endPosition = state.eMarks[endLine];
146
+ // #| minimum 2 symbols
147
+ if (endPosition - startPosition < 2) {
148
+ return false;
149
+ }
150
+ if (!isOpenTableOrder(state.src, startPosition)) {
151
+ return false;
152
+ }
153
+ if (silent) {
154
+ return true;
155
+ }
156
+ const { rows, endOfTable } = getTableRows(state, startPosition, endPosition, startLine);
157
+ if (!endOfTable) {
158
+ token = state.push('__yfm_lint', '', 0);
159
+ token.hidden = true;
160
+ token.map = [startLine, endLine];
161
+ token.attrSet('YFM004', 'true');
162
+ return false;
163
+ }
164
+ const oldParentLineMax = state.lineMax;
165
+ state.lineMax = endOfTable;
166
+ state.line = startLine;
167
+ token = state.push('yfm_table_open', 'table', 1);
168
+ token.map = [startLine, endOfTable];
169
+ token = state.push('yfm_tbody_open', 'tbody', 1);
170
+ token.map = [startLine + 1, endOfTable - 1];
171
+ const maxRowLength = Math.max(...rows.map(([, , cols]) => cols.length));
172
+ for (let i = 0; i < rows.length; i++) {
173
+ const [rowLineStarts, rowLineEnds, cols] = rows[i];
174
+ const rowLength = cols.length;
175
+ token = state.push('yfm_tr_open', 'tr', 1);
176
+ token.map = [rowLineStarts, rowLineEnds];
177
+ for (let j = 0; j < cols.length; j++) {
178
+ const [begin, end] = cols[j];
179
+ token = state.push('yfm_td_open', 'td', 1);
180
+ token.map = [begin.line, end.line];
181
+ const oldTshift = state.tShift[begin.line];
182
+ const oldEMark = state.eMarks[end.line];
183
+ const oldBMark = state.bMarks[begin.line];
184
+ const oldLineMax = state.lineMax;
185
+ state.tShift[begin.line] = 0;
186
+ state.bMarks[begin.line] = begin.pos;
187
+ state.eMarks[end.line] = end.pos;
188
+ state.lineMax = end.line + 1;
189
+ state.md.block.tokenize(state, begin.line, end.line + 1);
190
+ state.lineMax = oldLineMax;
191
+ state.tShift[begin.line] = oldTshift;
192
+ state.bMarks[begin.line] = oldBMark;
193
+ state.eMarks[end.line] = oldEMark;
194
+ token = state.push('yfm_td_close', 'td', -1);
195
+ state.tokens[state.tokens.length - 1].map = [end.line, end.line + 1];
196
+ }
197
+ if (rowLength < maxRowLength) {
198
+ const emptyCellsCount = maxRowLength - rowLength;
199
+ for (let k = 0; k < emptyCellsCount; k++) {
200
+ token = state.push('yfm_td_open', 'td', 1);
201
+ token = state.push('yfm_td_close', 'td', -1);
202
+ }
203
+ }
204
+ token = state.push('yfm_tr_close', 'tr', -1);
205
+ }
206
+ token = state.push('yfm_tbody_close', 'tbody', -1);
207
+ token = state.push('yfm_table_close', 'table', -1);
208
+ state.tokens[state.tokens.length - 1].map = [endOfTable, endOfTable + 1];
209
+ state.lineMax = oldParentLineMax;
210
+ state.line = endOfTable;
211
+ return true;
212
+ });
213
+ };
214
+ module.exports = yfmTable;
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/table/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare const _default: MarkdownItPluginCb<{
2
+ output: string;
3
+ }>;
4
+ export = _default;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ const tabs_extension_1 = require("@diplodoc/tabs-extension");
3
+ module.exports = (0, tabs_extension_1.transform)({ bundle: false });
4
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/transform/plugins/tabs.ts"],"names":[],"mappings":";AAAA,6DAAmD;AAEnD,iBAAS,IAAA,0BAAS,EAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const BASIC_TERM_REGEXP = "\\[([^\\[]+)\\](\\(\\*(\\w+)\\))";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASIC_TERM_REGEXP = void 0;
4
+ exports.BASIC_TERM_REGEXP = '\\[([^\\[]+)\\](\\(\\*(\\w+)\\))';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/transform/plugins/term/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,kCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MarkdownItPluginCb } from '../typings';
2
+ declare const term: MarkdownItPluginCb;
3
+ export = term;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ const utils_1 = require("../utils");
3
+ const termDefinitions_1 = require("./termDefinitions");
4
+ const constants_1 = require("./constants");
5
+ const term = (md, options) => {
6
+ const escapeRE = md.utils.escapeRE;
7
+ const arrayReplaceAt = md.utils.arrayReplaceAt;
8
+ const { isLintRun } = options;
9
+ // Don't parse urls that starts with *
10
+ const defaultLinkValidation = md.validateLink;
11
+ md.validateLink = function (url) {
12
+ if (url.startsWith('*')) {
13
+ return false;
14
+ }
15
+ return defaultLinkValidation(url);
16
+ };
17
+ function termReplace(state) {
18
+ let i, j, l, tokens, token, text, nodes, pos, term, currentToken;
19
+ const blockTokens = state.tokens;
20
+ if (!state.env.terms) {
21
+ return;
22
+ }
23
+ const regTerms = Object.keys(state.env.terms)
24
+ .map((el) => el.substr(1))
25
+ .map(escapeRE)
26
+ .join('|');
27
+ const regText = '\\[([^\\[]+)\\](\\(\\*(' + regTerms + ')\\))';
28
+ const reg = new RegExp(regText, 'g');
29
+ for (j = 0, l = blockTokens.length; j < l; j++) {
30
+ if (blockTokens[j].type === 'heading_open') {
31
+ while (blockTokens[j].type !== 'heading_close') {
32
+ j++;
33
+ }
34
+ continue;
35
+ }
36
+ if (blockTokens[j].type !== 'inline') {
37
+ continue;
38
+ }
39
+ tokens = blockTokens[j].children;
40
+ for (i = tokens.length - 1; i >= 0; i--) {
41
+ currentToken = tokens[i];
42
+ if (currentToken.type === 'link_close') {
43
+ while (tokens[i].type !== 'link_open') {
44
+ i--;
45
+ }
46
+ continue;
47
+ }
48
+ if (!(currentToken.type === 'text')) {
49
+ continue;
50
+ }
51
+ pos = 0;
52
+ text = currentToken.content;
53
+ reg.lastIndex = 0;
54
+ nodes = [];
55
+ // Find terms without definitions
56
+ const regexAllTerms = new RegExp(constants_1.BASIC_TERM_REGEXP, 'gm');
57
+ const uniqueTerms = [
58
+ ...new Set([...text.matchAll(regexAllTerms)].map((el) => `:${el[3]}`)),
59
+ ];
60
+ const notDefinedTerms = uniqueTerms.filter((el) => !Object.keys(state.env.terms).includes(el));
61
+ if (notDefinedTerms.length && isLintRun) {
62
+ token = new state.Token('__yfm_lint', '', 0);
63
+ token.hidden = true;
64
+ token.map = blockTokens[j].map;
65
+ token.attrSet('YFM007', 'true');
66
+ nodes.push(token);
67
+ }
68
+ while ((term = reg.exec(text))) {
69
+ const termTitle = term[1];
70
+ const termKey = term[3];
71
+ if (term.index > 0 || term[1].length > 0) {
72
+ token = new state.Token('text', '', 0);
73
+ token.content = text.slice(pos, term.index);
74
+ nodes.push(token);
75
+ }
76
+ token = new state.Token('term_open', 'i', 1);
77
+ token.attrSet('class', 'yfm yfm-term_title');
78
+ token.attrSet('term-key', ':' + termKey);
79
+ token.attrSet('aria-describedby', ':' + termKey + '_element');
80
+ token.attrSet('id', (0, utils_1.generateID)());
81
+ nodes.push(token);
82
+ token = new state.Token('text', '', 0);
83
+ token.content = termTitle;
84
+ nodes.push(token);
85
+ token = new state.Token('term_close', 'i', -1);
86
+ nodes.push(token);
87
+ pos = reg.lastIndex;
88
+ }
89
+ if (!nodes.length) {
90
+ continue;
91
+ }
92
+ if (pos < text.length) {
93
+ token = new state.Token('text', '', 0);
94
+ token.content = text.slice(pos);
95
+ nodes.push(token);
96
+ }
97
+ // replace current node
98
+ blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);
99
+ }
100
+ }
101
+ }
102
+ md.block.ruler.before('reference', 'termDefinitions', (0, termDefinitions_1.termDefinitions)(md, options), {
103
+ alt: ['paragraph', 'reference'],
104
+ });
105
+ md.core.ruler.after('linkify', 'termReplace', termReplace);
106
+ };
107
+ module.exports = term;
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/term/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import StateBlock from 'markdown-it/lib/rules_block/state_block';
2
+ import { MarkdownIt } from '../../typings';
3
+ import { MarkdownItPluginOpts } from '../typings';
4
+ export declare function termDefinitions(md: MarkdownIt, options: MarkdownItPluginOpts): (state: StateBlock, startLine: number, endLine: number, silent: boolean) => boolean;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.termDefinitions = void 0;
4
+ const constants_1 = require("./constants");
5
+ function termDefinitions(md, options) {
6
+ return (state, startLine, endLine, silent) => {
7
+ let ch;
8
+ let labelEnd;
9
+ let pos = state.bMarks[startLine] + state.tShift[startLine];
10
+ let max = state.eMarks[startLine];
11
+ if (pos + 2 >= max) {
12
+ return false;
13
+ }
14
+ if (state.src.charCodeAt(pos++) !== 0x5b /* [ */) {
15
+ return false;
16
+ }
17
+ if (state.src.charCodeAt(pos++) !== 0x2a /* * */) {
18
+ return false;
19
+ }
20
+ const labelStart = pos;
21
+ for (; pos < max; pos++) {
22
+ ch = state.src.charCodeAt(pos);
23
+ if (ch === 0x5b /* [ */) {
24
+ return false;
25
+ }
26
+ else if (ch === 0x5d /* ] */) {
27
+ labelEnd = pos;
28
+ break;
29
+ }
30
+ else if (ch === 0x5c /* \ */) {
31
+ pos++;
32
+ }
33
+ }
34
+ const newLineReg = new RegExp(/^(\r\n|\r|\n)/);
35
+ const termReg = new RegExp(/^\[\*(\w+)\]:/);
36
+ let currentLine = startLine;
37
+ // Allow multiline term definition
38
+ for (; currentLine < endLine; currentLine++) {
39
+ const nextLineStart = state.bMarks[currentLine + 1];
40
+ const nextLineEnd = state.eMarks[currentLine + 1];
41
+ const nextLine = nextLineStart === nextLineEnd
42
+ ? state.src[nextLineStart]
43
+ : state.src.slice(nextLineStart, nextLineEnd);
44
+ if (newLineReg.test(nextLine) || termReg.test(nextLine)) {
45
+ break;
46
+ }
47
+ state.line = currentLine + 1;
48
+ }
49
+ max = state.eMarks[currentLine];
50
+ if (!labelEnd || labelEnd < 0 || state.src.charCodeAt(labelEnd + 1) !== 0x3a /* : */) {
51
+ return false;
52
+ }
53
+ if (silent) {
54
+ return true;
55
+ }
56
+ const label = state.src.slice(labelStart, labelEnd).replace(/\\(.)/g, '$1');
57
+ const title = state.src.slice(labelEnd + 2, max).trim();
58
+ if (label.length === 0 || title.length === 0) {
59
+ return false;
60
+ }
61
+ return processTermDefinition(md, options, state, currentLine, startLine, endLine, label, title);
62
+ };
63
+ }
64
+ exports.termDefinitions = termDefinitions;
65
+ function processTermDefinition(md, options, state, currentLine, startLine, endLine, label, title) {
66
+ var _a;
67
+ let token;
68
+ if (!state.env.terms) {
69
+ state.env.terms = {};
70
+ }
71
+ const basicTermDefinitionRegexp = new RegExp(constants_1.BASIC_TERM_REGEXP, 'gm');
72
+ // If term inside definition
73
+ const { isLintRun } = options;
74
+ if (basicTermDefinitionRegexp.test(title) && isLintRun) {
75
+ token = new state.Token('__yfm_lint', '', 0);
76
+ token.hidden = true;
77
+ token.map = [currentLine, endLine];
78
+ token.attrSet('YFM008', 'true');
79
+ state.tokens.push(token);
80
+ }
81
+ // If term definition duplicated
82
+ if (state.env.terms[':' + label] && isLintRun) {
83
+ token = new state.Token('__yfm_lint', '', 0);
84
+ token.hidden = true;
85
+ token.map = [currentLine, endLine];
86
+ token.attrSet('YFM006', 'true');
87
+ state.tokens.push(token);
88
+ state.line = currentLine + 1;
89
+ return true;
90
+ }
91
+ if (typeof state.env.terms[':' + label] === 'undefined') {
92
+ state.env.terms[':' + label] = title;
93
+ }
94
+ token = new state.Token('template_open', 'template', 1);
95
+ token.map = [startLine, currentLine + 1];
96
+ token.attrSet('id', ':' + label + '_template');
97
+ token.attrSet('label', label);
98
+ state.tokens.push(token);
99
+ token = new state.Token('dfn_open', 'dfn', 1);
100
+ token.attrSet('class', 'yfm yfm-term_dfn');
101
+ token.attrSet('id', ':' + label + '_element');
102
+ token.attrSet('role', 'tooltip');
103
+ state.tokens.push(token);
104
+ const titleTokens = md.parse(title, state.env);
105
+ for (const titleToken of titleTokens) {
106
+ if ((_a = titleToken.children) === null || _a === void 0 ? void 0 : _a.length) {
107
+ titleToken.content = '';
108
+ }
109
+ if (!titleToken.map) {
110
+ state.tokens.push(titleToken);
111
+ continue;
112
+ }
113
+ const [start, end] = titleToken.map;
114
+ titleToken.map = [start + startLine, end + startLine];
115
+ state.tokens.push(titleToken);
116
+ }
117
+ token = new state.Token('dfn_close', 'dfn', -1);
118
+ state.tokens.push(token);
119
+ token = new state.Token('template_close', 'template', -1);
120
+ state.tokens.push(token);
121
+ /** current line links to end of term definition */
122
+ state.line = currentLine + 1;
123
+ return true;
124
+ }
125
+ //# sourceMappingURL=termDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"termDefinitions.js","sourceRoot":"","sources":["../../../src/transform/plugins/term/termDefinitions.ts"],"names":[],"mappings":";;;AAGA,2CAA8C;AAE9C,SAAgB,eAAe,CAAC,EAAc,EAAE,OAA6B;IACzE,OAAO,CAAC,KAAiB,EAAE,SAAiB,EAAE,OAAe,EAAE,MAAe,EAAE,EAAE;QAC9E,IAAI,EAAE,CAAC;QACP,IAAI,QAAQ,CAAC;QACb,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE;YAChB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,UAAU,GAAG,GAAG,CAAC;QAEvB,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;YACrB,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;iBAAM,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;gBAC5B,QAAQ,GAAG,GAAG,CAAC;gBACf,MAAM;aACT;iBAAM,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;gBAC5B,GAAG,EAAE,CAAC;aACT;SACJ;QAED,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAG,SAAS,CAAC;QAE5B,kCAAkC;QAClC,OAAO,WAAW,GAAG,OAAO,EAAE,WAAW,EAAE,EAAE;YACzC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAElD,MAAM,QAAQ,GACV,aAAa,KAAK,WAAW;gBACzB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAEtD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACrD,MAAM;aACT;YAED,KAAK,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC;SAChC;QAED,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YAClF,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,MAAM,EAAE;YACR,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,qBAAqB,CACxB,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAK,EACL,KAAK,CACR,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAjFD,0CAiFC;AAED,SAAS,qBAAqB,CAC1B,EAAc,EACd,OAA6B,EAC7B,KAAiB,EACjB,WAAmB,EACnB,SAAiB,EACjB,OAAe,EACf,KAAa,EACb,KAAa;;IAEb,IAAI,KAAK,CAAC;IAEV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;KACxB;IAED,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAAC,6BAAiB,EAAE,IAAI,CAAC,CAAC;IACtE,4BAA4B;IAE5B,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC;IAE5B,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE;QACpD,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAED,gCAAgC;IAChC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,SAAS,EAAE;QAC3C,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACf;IAED,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,WAAW,EAAE;QACrD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;KACxC;IAED,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC;IAC/C,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE9B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QAClC,IAAI,MAAA,UAAU,CAAC,QAAQ,0CAAE,MAAM,EAAE;YAC7B,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YACjB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,SAAS;SACZ;QAED,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;QAEpC,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;QACtD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjC;IAED,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzB,mDAAmD;IACnD,KAAK,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC;IAE7B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Logger } from '../log';
2
+ import type { MarkdownIt } from '../typings';
3
+ export interface MarkdownItPluginOpts {
4
+ path: string;
5
+ log: Logger;
6
+ lang: 'ru' | 'en';
7
+ root: string;
8
+ isLintRun: boolean;
9
+ }
10
+ export declare type MarkdownItPluginCb<T extends {} = {}> = {
11
+ (md: MarkdownIt, opts: T & MarkdownItPluginOpts): void;
12
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=typings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typings.js","sourceRoot":"","sources":["../../src/transform/plugins/typings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { Logger } from '../log';
2
+ import Token from 'markdown-it/lib/token';
3
+ export declare type MatchTokenFunction = (tokens: Token[], idx: number) => boolean | null | RegExpMatchArray;
4
+ export declare const nestedCloseTokenIdxFactory: (tokenName: string, matchOpenToken: MatchTokenFunction, matchCloseToken: MatchTokenFunction) => (tokens: Token[], idx: number, path: string, log: Logger) => number | null;
5
+ export declare const сarriage: string;
6
+ export declare function generateID(): string;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateID = exports.сarriage = exports.nestedCloseTokenIdxFactory = void 0;
4
+ const chalk_1 = require("chalk");
5
+ const process_1 = require("process");
6
+ const nestedCloseTokenIdxFactory = (tokenName, matchOpenToken, matchCloseToken) => (tokens, idx, path, log) => {
7
+ let level = 0;
8
+ let i = idx;
9
+ while (i < tokens.length) {
10
+ if (matchOpenToken(tokens, i)) {
11
+ level++;
12
+ }
13
+ else if (matchCloseToken(tokens, i)) {
14
+ if (level === 0) {
15
+ return i;
16
+ }
17
+ level--;
18
+ }
19
+ i++;
20
+ }
21
+ log.error(`${tokenName} must be closed${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
22
+ return null;
23
+ };
24
+ exports.nestedCloseTokenIdxFactory = nestedCloseTokenIdxFactory;
25
+ exports.сarriage = process_1.platform === 'win32' ? '\r\n' : '\n';
26
+ function generateID() {
27
+ return Math.random().toString(36).substr(2, 8);
28
+ }
29
+ exports.generateID = generateID;
30
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/transform/plugins/utils.ts"],"names":[],"mappings":";;;AAAA,iCAA2B;AAE3B,qCAAiC;AAQ1B,MAAM,0BAA0B,GACnC,CAAC,SAAiB,EAAE,cAAkC,EAAE,eAAmC,EAAE,EAAE,CAC/F,CAAC,MAAe,EAAE,GAAW,EAAE,IAAY,EAAE,GAAW,EAAE,EAAE;IACxD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QACtB,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YAC3B,KAAK,EAAE,CAAC;SACX;aAAM,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YACnC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,CAAC;aACZ;YACD,KAAK,EAAE,CAAC;SACX;QAED,CAAC,EAAE,CAAC;KACP;IAED,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,kBAAkB,IAAI,CAAC,CAAC,CAAC,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3E,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AArBO,QAAA,0BAA0B,8BAqBjC;AAEO,QAAA,QAAQ,GAAG,kBAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAE7D,SAAgB,UAAU;IACtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,gCAEC"}
@@ -0,0 +1,10 @@
1
+ import type { VideoFullOptions } from './types';
2
+ /** Supported services */
3
+ export declare enum VideoService {
4
+ YouTube = "youtube",
5
+ Vimeo = "vimeo",
6
+ Vine = "vine",
7
+ Prezi = "prezi",
8
+ Osf = "osf"
9
+ }
10
+ export declare const defaults: VideoFullOptions;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaults = exports.VideoService = void 0;
4
+ const utils_1 = require("./utils");
5
+ /** Supported services */
6
+ var VideoService;
7
+ (function (VideoService) {
8
+ VideoService["YouTube"] = "youtube";
9
+ VideoService["Vimeo"] = "vimeo";
10
+ VideoService["Vine"] = "vine";
11
+ VideoService["Prezi"] = "prezi";
12
+ VideoService["Osf"] = "osf";
13
+ })(VideoService = exports.VideoService || (exports.VideoService = {}));
14
+ exports.defaults = {
15
+ url: utils_1.videoUrl,
16
+ youtube: { width: 640, height: 390 },
17
+ vimeo: { width: 500, height: 281 },
18
+ vine: { width: 600, height: 600, embed: 'simple' },
19
+ prezi: { width: 550, height: 400 },
20
+ osf: { width: '100%', height: '100%' },
21
+ };
22
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/const.ts"],"names":[],"mappings":";;;AACA,mCAAiC;AAEjC,yBAAyB;AACzB,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,2BAAW,CAAA;AACf,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB;AAEY,QAAA,QAAQ,GAAqB;IACtC,GAAG,EAAE,gBAAQ;IACb,OAAO,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAClC,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAChC,IAAI,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAC;IAChD,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAChC,GAAG,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC;CACvC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PluginWithOptions } from 'markdown-it';
2
+ import type { VideoPluginOptions } from './types';
3
+ /**
4
+ * Video plugin for markdown-it.
5
+ * Forked from https://github.com/CenterForOpenScience/markdown-it-video/tree/0.6.3
6
+ */
7
+ declare const video: PluginWithOptions<VideoPluginOptions>;
8
+ export = video;