postext 1.8.5 → 1.9.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 (565) hide show
  1. package/dist/__bench__/cjkChapter.bench.test.d.ts +2 -0
  2. package/dist/__bench__/cjkChapter.bench.test.d.ts.map +1 -0
  3. package/dist/__bench__/cjkChapter.bench.test.js +71 -0
  4. package/dist/__bench__/cjkChapter.bench.test.js.map +1 -0
  5. package/dist/__tests__/bundle.test.js +16 -0
  6. package/dist/__tests__/bundle.test.js.map +1 -1
  7. package/dist/__tests__/canvasDirection.test.d.ts +2 -0
  8. package/dist/__tests__/canvasDirection.test.d.ts.map +1 -0
  9. package/dist/__tests__/canvasDirection.test.js +45 -0
  10. package/dist/__tests__/canvasDirection.test.js.map +1 -0
  11. package/dist/__tests__/chineseLocale.test.d.ts +2 -0
  12. package/dist/__tests__/chineseLocale.test.d.ts.map +1 -0
  13. package/dist/__tests__/chineseLocale.test.js +253 -0
  14. package/dist/__tests__/chineseLocale.test.js.map +1 -0
  15. package/dist/__tests__/chineseNumbering.test.d.ts +2 -0
  16. package/dist/__tests__/chineseNumbering.test.d.ts.map +1 -0
  17. package/dist/__tests__/chineseNumbering.test.js +376 -0
  18. package/dist/__tests__/chineseNumbering.test.js.map +1 -0
  19. package/dist/__tests__/cjk/annotations.test.d.ts +2 -0
  20. package/dist/__tests__/cjk/annotations.test.d.ts.map +1 -0
  21. package/dist/__tests__/cjk/annotations.test.js +483 -0
  22. package/dist/__tests__/cjk/annotations.test.js.map +1 -0
  23. package/dist/__tests__/cjk/annotationsRender.test.d.ts +2 -0
  24. package/dist/__tests__/cjk/annotationsRender.test.d.ts.map +1 -0
  25. package/dist/__tests__/cjk/annotationsRender.test.js +263 -0
  26. package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -0
  27. package/dist/__tests__/cjk/composer.test.d.ts +2 -0
  28. package/dist/__tests__/cjk/composer.test.d.ts.map +1 -0
  29. package/dist/__tests__/cjk/composer.test.js +237 -0
  30. package/dist/__tests__/cjk/composer.test.js.map +1 -0
  31. package/dist/__tests__/cjk/composerEdges.test.d.ts +2 -0
  32. package/dist/__tests__/cjk/composerEdges.test.d.ts.map +1 -0
  33. package/dist/__tests__/cjk/composerEdges.test.js +352 -0
  34. package/dist/__tests__/cjk/composerEdges.test.js.map +1 -0
  35. package/dist/__tests__/cjk/dashRule.test.d.ts +2 -0
  36. package/dist/__tests__/cjk/dashRule.test.d.ts.map +1 -0
  37. package/dist/__tests__/cjk/dashRule.test.js +261 -0
  38. package/dist/__tests__/cjk/dashRule.test.js.map +1 -0
  39. package/dist/__tests__/cjk/fuzz.test.d.ts +2 -0
  40. package/dist/__tests__/cjk/fuzz.test.d.ts.map +1 -0
  41. package/dist/__tests__/cjk/fuzz.test.js +102 -0
  42. package/dist/__tests__/cjk/fuzz.test.js.map +1 -0
  43. package/dist/__tests__/cjk/grid.test.d.ts +2 -0
  44. package/dist/__tests__/cjk/grid.test.d.ts.map +1 -0
  45. package/dist/__tests__/cjk/grid.test.js +261 -0
  46. package/dist/__tests__/cjk/grid.test.js.map +1 -0
  47. package/dist/__tests__/cjk/justifyRender.test.d.ts +2 -0
  48. package/dist/__tests__/cjk/justifyRender.test.d.ts.map +1 -0
  49. package/dist/__tests__/cjk/justifyRender.test.js +139 -0
  50. package/dist/__tests__/cjk/justifyRender.test.js.map +1 -0
  51. package/dist/__tests__/cjk/latinFastPath.test.d.ts +2 -0
  52. package/dist/__tests__/cjk/latinFastPath.test.d.ts.map +1 -0
  53. package/dist/__tests__/cjk/latinFastPath.test.js +208 -0
  54. package/dist/__tests__/cjk/latinFastPath.test.js.map +1 -0
  55. package/dist/__tests__/cjk/markCutsLatin.test.d.ts +2 -0
  56. package/dist/__tests__/cjk/markCutsLatin.test.d.ts.map +1 -0
  57. package/dist/__tests__/cjk/markCutsLatin.test.js +69 -0
  58. package/dist/__tests__/cjk/markCutsLatin.test.js.map +1 -0
  59. package/dist/__tests__/cjk/markRuns.test.d.ts +2 -0
  60. package/dist/__tests__/cjk/markRuns.test.d.ts.map +1 -0
  61. package/dist/__tests__/cjk/markRuns.test.js +347 -0
  62. package/dist/__tests__/cjk/markRuns.test.js.map +1 -0
  63. package/dist/__tests__/cjk/punctuation.test.d.ts +2 -0
  64. package/dist/__tests__/cjk/punctuation.test.d.ts.map +1 -0
  65. package/dist/__tests__/cjk/punctuation.test.js +440 -0
  66. package/dist/__tests__/cjk/punctuation.test.js.map +1 -0
  67. package/dist/__tests__/cjk/punctuationRender.test.d.ts +2 -0
  68. package/dist/__tests__/cjk/punctuationRender.test.d.ts.map +1 -0
  69. package/dist/__tests__/cjk/punctuationRender.test.js +135 -0
  70. package/dist/__tests__/cjk/punctuationRender.test.js.map +1 -0
  71. package/dist/__tests__/cjk/rubyDescenders.test.d.ts +2 -0
  72. package/dist/__tests__/cjk/rubyDescenders.test.d.ts.map +1 -0
  73. package/dist/__tests__/cjk/rubyDescenders.test.js +77 -0
  74. package/dist/__tests__/cjk/rubyDescenders.test.js.map +1 -0
  75. package/dist/__tests__/cjk/runt.test.d.ts +2 -0
  76. package/dist/__tests__/cjk/runt.test.d.ts.map +1 -0
  77. package/dist/__tests__/cjk/runt.test.js +103 -0
  78. package/dist/__tests__/cjk/runt.test.js.map +1 -0
  79. package/dist/__tests__/cjk/sharedMarks.test.d.ts +2 -0
  80. package/dist/__tests__/cjk/sharedMarks.test.d.ts.map +1 -0
  81. package/dist/__tests__/cjk/sharedMarks.test.js +347 -0
  82. package/dist/__tests__/cjk/sharedMarks.test.js.map +1 -0
  83. package/dist/__tests__/cjk/uprightDots.test.d.ts +2 -0
  84. package/dist/__tests__/cjk/uprightDots.test.d.ts.map +1 -0
  85. package/dist/__tests__/cjk/uprightDots.test.js +47 -0
  86. package/dist/__tests__/cjk/uprightDots.test.js.map +1 -0
  87. package/dist/__tests__/cjk/wordJoiner.test.d.ts +2 -0
  88. package/dist/__tests__/cjk/wordJoiner.test.d.ts.map +1 -0
  89. package/dist/__tests__/cjk/wordJoiner.test.js +47 -0
  90. package/dist/__tests__/cjk/wordJoiner.test.js.map +1 -0
  91. package/dist/__tests__/cjk/zhuyinTones.test.d.ts +2 -0
  92. package/dist/__tests__/cjk/zhuyinTones.test.d.ts.map +1 -0
  93. package/dist/__tests__/cjk/zhuyinTones.test.js +72 -0
  94. package/dist/__tests__/cjk/zhuyinTones.test.js.map +1 -0
  95. package/dist/__tests__/contentLocale.test.d.ts +2 -0
  96. package/dist/__tests__/contentLocale.test.d.ts.map +1 -0
  97. package/dist/__tests__/contentLocale.test.js +167 -0
  98. package/dist/__tests__/contentLocale.test.js.map +1 -0
  99. package/dist/__tests__/defaults/cjk.test.d.ts +2 -0
  100. package/dist/__tests__/defaults/cjk.test.d.ts.map +1 -0
  101. package/dist/__tests__/defaults/cjk.test.js +70 -0
  102. package/dist/__tests__/defaults/cjk.test.js.map +1 -0
  103. package/dist/__tests__/design/designTextRender.test.js +31 -0
  104. package/dist/__tests__/design/designTextRender.test.js.map +1 -1
  105. package/dist/__tests__/design/imageAltText.test.d.ts +2 -0
  106. package/dist/__tests__/design/imageAltText.test.d.ts.map +1 -0
  107. package/dist/__tests__/design/imageAltText.test.js +126 -0
  108. package/dist/__tests__/design/imageAltText.test.js.map +1 -0
  109. package/dist/__tests__/exports.test.js +61 -0
  110. package/dist/__tests__/exports.test.js.map +1 -1
  111. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  112. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  113. package/dist/__tests__/indexChinese.test.d.ts +2 -0
  114. package/dist/__tests__/indexChinese.test.d.ts.map +1 -0
  115. package/dist/__tests__/indexChinese.test.js +190 -0
  116. package/dist/__tests__/indexChinese.test.js.map +1 -0
  117. package/dist/__tests__/parse/annotations.test.d.ts +2 -0
  118. package/dist/__tests__/parse/annotations.test.d.ts.map +1 -0
  119. package/dist/__tests__/parse/annotations.test.js +175 -0
  120. package/dist/__tests__/parse/annotations.test.js.map +1 -0
  121. package/dist/__tests__/parse/attrQuoting.test.js +10 -8
  122. package/dist/__tests__/parse/attrQuoting.test.js.map +1 -1
  123. package/dist/__tests__/parse/chineseText.test.d.ts +2 -0
  124. package/dist/__tests__/parse/chineseText.test.d.ts.map +1 -0
  125. package/dist/__tests__/parse/chineseText.test.js +352 -0
  126. package/dist/__tests__/parse/chineseText.test.js.map +1 -0
  127. package/dist/__tests__/parts.test.js +25 -0
  128. package/dist/__tests__/parts.test.js.map +1 -1
  129. package/dist/__tests__/pipeline/colonListRoom.test.js +20 -0
  130. package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
  131. package/dist/__tests__/presets/hongloumeng.test.d.ts +2 -0
  132. package/dist/__tests__/presets/hongloumeng.test.d.ts.map +1 -0
  133. package/dist/__tests__/presets/hongloumeng.test.js +484 -0
  134. package/dist/__tests__/presets/hongloumeng.test.js.map +1 -0
  135. package/dist/__tests__/vertical/canvasPaint.test.d.ts +2 -0
  136. package/dist/__tests__/vertical/canvasPaint.test.d.ts.map +1 -0
  137. package/dist/__tests__/vertical/canvasPaint.test.js +229 -0
  138. package/dist/__tests__/vertical/canvasPaint.test.js.map +1 -0
  139. package/dist/__tests__/vertical/compositionPaint.test.d.ts +2 -0
  140. package/dist/__tests__/vertical/compositionPaint.test.d.ts.map +1 -0
  141. package/dist/__tests__/vertical/compositionPaint.test.js +538 -0
  142. package/dist/__tests__/vertical/compositionPaint.test.js.map +1 -0
  143. package/dist/__tests__/vertical/geometry.test.d.ts +2 -0
  144. package/dist/__tests__/vertical/geometry.test.d.ts.map +1 -0
  145. package/dist/__tests__/vertical/geometry.test.js +276 -0
  146. package/dist/__tests__/vertical/geometry.test.js.map +1 -0
  147. package/dist/__tests__/vertical/htmlSmoke.test.d.ts +2 -0
  148. package/dist/__tests__/vertical/htmlSmoke.test.d.ts.map +1 -0
  149. package/dist/__tests__/vertical/htmlSmoke.test.js +25 -0
  150. package/dist/__tests__/vertical/htmlSmoke.test.js.map +1 -0
  151. package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts +2 -0
  152. package/dist/__tests__/vertical/htmlTurnedCells.test.d.ts.map +1 -0
  153. package/dist/__tests__/vertical/htmlTurnedCells.test.js +99 -0
  154. package/dist/__tests__/vertical/htmlTurnedCells.test.js.map +1 -0
  155. package/dist/__tests__/vertical/htmlVertical.test.d.ts +2 -0
  156. package/dist/__tests__/vertical/htmlVertical.test.d.ts.map +1 -0
  157. package/dist/__tests__/vertical/htmlVertical.test.js +145 -0
  158. package/dist/__tests__/vertical/htmlVertical.test.js.map +1 -0
  159. package/dist/__tests__/vertical/lineAxis.test.d.ts +2 -0
  160. package/dist/__tests__/vertical/lineAxis.test.d.ts.map +1 -0
  161. package/dist/__tests__/vertical/lineAxis.test.js +128 -0
  162. package/dist/__tests__/vertical/lineAxis.test.js.map +1 -0
  163. package/dist/__tests__/vertical/measurePaint.test.d.ts +2 -0
  164. package/dist/__tests__/vertical/measurePaint.test.d.ts.map +1 -0
  165. package/dist/__tests__/vertical/measurePaint.test.js +259 -0
  166. package/dist/__tests__/vertical/measurePaint.test.js.map +1 -0
  167. package/dist/__tests__/vertical/orientation.test.d.ts +2 -0
  168. package/dist/__tests__/vertical/orientation.test.d.ts.map +1 -0
  169. package/dist/__tests__/vertical/orientation.test.js +153 -0
  170. package/dist/__tests__/vertical/orientation.test.js.map +1 -0
  171. package/dist/__tests__/vertical/stub.d.ts +8 -0
  172. package/dist/__tests__/vertical/stub.d.ts.map +1 -0
  173. package/dist/__tests__/vertical/stub.js +37 -0
  174. package/dist/__tests__/vertical/stub.js.map +1 -0
  175. package/dist/__tests__/vertical/tateChuYoko.test.d.ts +2 -0
  176. package/dist/__tests__/vertical/tateChuYoko.test.d.ts.map +1 -0
  177. package/dist/__tests__/vertical/tateChuYoko.test.js +270 -0
  178. package/dist/__tests__/vertical/tateChuYoko.test.js.map +1 -0
  179. package/dist/__tests__/vertical/uprightResources.test.d.ts +2 -0
  180. package/dist/__tests__/vertical/uprightResources.test.d.ts.map +1 -0
  181. package/dist/__tests__/vertical/uprightResources.test.js +182 -0
  182. package/dist/__tests__/vertical/uprightResources.test.js.map +1 -0
  183. package/dist/__tests__/vertical/verticalDesignText.test.d.ts +2 -0
  184. package/dist/__tests__/vertical/verticalDesignText.test.d.ts.map +1 -0
  185. package/dist/__tests__/vertical/verticalDesignText.test.js +190 -0
  186. package/dist/__tests__/vertical/verticalDesignText.test.js.map +1 -0
  187. package/dist/__tests__/vertical/verticalSpans.d.ts +25 -0
  188. package/dist/__tests__/vertical/verticalSpans.d.ts.map +1 -0
  189. package/dist/__tests__/vertical/verticalSpans.js +39 -0
  190. package/dist/__tests__/vertical/verticalSpans.js.map +1 -0
  191. package/dist/__tests__/vertical/verticalTwins.test.d.ts +2 -0
  192. package/dist/__tests__/vertical/verticalTwins.test.d.ts.map +1 -0
  193. package/dist/__tests__/vertical/verticalTwins.test.js +71 -0
  194. package/dist/__tests__/vertical/verticalTwins.test.js.map +1 -0
  195. package/dist/bundle/adapters.d.ts +14 -5
  196. package/dist/bundle/adapters.d.ts.map +1 -1
  197. package/dist/bundle/adapters.js +4 -3
  198. package/dist/bundle/adapters.js.map +1 -1
  199. package/dist/bundle/codec.d.ts.map +1 -1
  200. package/dist/bundle/codec.js +27 -4
  201. package/dist/bundle/codec.js.map +1 -1
  202. package/dist/bundle/index.d.ts +1 -1
  203. package/dist/bundle/index.d.ts.map +1 -1
  204. package/dist/bundle/manifest.d.ts +6 -4
  205. package/dist/bundle/manifest.d.ts.map +1 -1
  206. package/dist/bundle/manifest.js +31 -32
  207. package/dist/bundle/manifest.js.map +1 -1
  208. package/dist/bundle/types.d.ts +7 -2
  209. package/dist/bundle/types.d.ts.map +1 -1
  210. package/dist/canvas-backend/annotations.d.ts +31 -0
  211. package/dist/canvas-backend/annotations.d.ts.map +1 -0
  212. package/dist/canvas-backend/annotations.js +120 -0
  213. package/dist/canvas-backend/annotations.js.map +1 -0
  214. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  215. package/dist/canvas-backend/blockRender.js +195 -15
  216. package/dist/canvas-backend/blockRender.js.map +1 -1
  217. package/dist/canvas-backend/decorations.d.ts +5 -0
  218. package/dist/canvas-backend/decorations.d.ts.map +1 -1
  219. package/dist/canvas-backend/decorations.js +27 -0
  220. package/dist/canvas-backend/decorations.js.map +1 -1
  221. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  222. package/dist/canvas-backend/headerFooter.js +32 -16
  223. package/dist/canvas-backend/headerFooter.js.map +1 -1
  224. package/dist/canvas-backend/index.d.ts +2 -0
  225. package/dist/canvas-backend/index.d.ts.map +1 -1
  226. package/dist/canvas-backend/index.js +62 -2
  227. package/dist/canvas-backend/index.js.map +1 -1
  228. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  229. package/dist/canvas-backend/renderResourceBlock.js +42 -5
  230. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  231. package/dist/canvas-backend/segmentText.d.ts +23 -0
  232. package/dist/canvas-backend/segmentText.d.ts.map +1 -0
  233. package/dist/canvas-backend/segmentText.js +41 -0
  234. package/dist/canvas-backend/segmentText.js.map +1 -0
  235. package/dist/canvas-backend/verticalText.d.ts +113 -0
  236. package/dist/canvas-backend/verticalText.d.ts.map +1 -0
  237. package/dist/canvas-backend/verticalText.js +437 -0
  238. package/dist/canvas-backend/verticalText.js.map +1 -0
  239. package/dist/chineseNumerals.d.ts +39 -0
  240. package/dist/chineseNumerals.d.ts.map +1 -0
  241. package/dist/chineseNumerals.js +192 -0
  242. package/dist/chineseNumerals.js.map +1 -0
  243. package/dist/cjkMarks.d.ts +61 -0
  244. package/dist/cjkMarks.d.ts.map +1 -0
  245. package/dist/cjkMarks.js +441 -0
  246. package/dist/cjkMarks.js.map +1 -0
  247. package/dist/columnClip.d.ts +13 -4
  248. package/dist/columnClip.d.ts.map +1 -1
  249. package/dist/columnClip.js +33 -5
  250. package/dist/columnClip.js.map +1 -1
  251. package/dist/configWarnings.d.ts.map +1 -1
  252. package/dist/configWarnings.js +18 -3
  253. package/dist/configWarnings.js.map +1 -1
  254. package/dist/defaults/bodyText.d.ts +4 -1
  255. package/dist/defaults/bodyText.d.ts.map +1 -1
  256. package/dist/defaults/bodyText.js +27 -5
  257. package/dist/defaults/bodyText.js.map +1 -1
  258. package/dist/defaults/calloutStyles.js +1 -1
  259. package/dist/defaults/calloutStyles.js.map +1 -1
  260. package/dist/defaults/captionStyle.d.ts.map +1 -1
  261. package/dist/defaults/captionStyle.js +14 -0
  262. package/dist/defaults/captionStyle.js.map +1 -1
  263. package/dist/defaults/cjk.d.ts +33 -0
  264. package/dist/defaults/cjk.d.ts.map +1 -0
  265. package/dist/defaults/cjk.js +234 -0
  266. package/dist/defaults/cjk.js.map +1 -0
  267. package/dist/defaults/headerFooter.d.ts.map +1 -1
  268. package/dist/defaults/headerFooter.js +2 -0
  269. package/dist/defaults/headerFooter.js.map +1 -1
  270. package/dist/defaults/headingStyles.d.ts.map +1 -1
  271. package/dist/defaults/headingStyles.js +4 -0
  272. package/dist/defaults/headingStyles.js.map +1 -1
  273. package/dist/defaults/headings.d.ts.map +1 -1
  274. package/dist/defaults/headings.js +13 -6
  275. package/dist/defaults/headings.js.map +1 -1
  276. package/dist/defaults/index.d.ts +1 -0
  277. package/dist/defaults/index.d.ts.map +1 -1
  278. package/dist/defaults/index.js +10 -1
  279. package/dist/defaults/index.js.map +1 -1
  280. package/dist/defaults/indexConfig.d.ts +2 -1
  281. package/dist/defaults/indexConfig.d.ts.map +1 -1
  282. package/dist/defaults/indexConfig.js +5 -0
  283. package/dist/defaults/indexConfig.js.map +1 -1
  284. package/dist/defaults/layout.d.ts.map +1 -1
  285. package/dist/defaults/layout.js +7 -0
  286. package/dist/defaults/layout.js.map +1 -1
  287. package/dist/defaults/orderedLists.d.ts +5 -2
  288. package/dist/defaults/orderedLists.d.ts.map +1 -1
  289. package/dist/defaults/orderedLists.js +20 -5
  290. package/dist/defaults/orderedLists.js.map +1 -1
  291. package/dist/defaults/page.d.ts +8 -2
  292. package/dist/defaults/page.d.ts.map +1 -1
  293. package/dist/defaults/page.js +24 -7
  294. package/dist/defaults/page.js.map +1 -1
  295. package/dist/defaults/resourceTypes.d.ts +3 -3
  296. package/dist/defaults/resourceTypes.d.ts.map +1 -1
  297. package/dist/defaults/resourceTypes.js +23 -9
  298. package/dist/defaults/resourceTypes.js.map +1 -1
  299. package/dist/defaults/tableStyle.d.ts.map +1 -1
  300. package/dist/defaults/tableStyle.js +8 -5
  301. package/dist/defaults/tableStyle.js.map +1 -1
  302. package/dist/design/layout.d.ts +33 -0
  303. package/dist/design/layout.d.ts.map +1 -1
  304. package/dist/design/layout.js +124 -18
  305. package/dist/design/layout.js.map +1 -1
  306. package/dist/design/placeholders.d.ts.map +1 -1
  307. package/dist/design/placeholders.js +5 -1
  308. package/dist/design/placeholders.js.map +1 -1
  309. package/dist/design/richText.d.ts +24 -4
  310. package/dist/design/richText.d.ts.map +1 -1
  311. package/dist/design/richText.js +77 -16
  312. package/dist/design/richText.js.map +1 -1
  313. package/dist/html-backend.d.ts.map +1 -1
  314. package/dist/html-backend.js +635 -25
  315. package/dist/html-backend.js.map +1 -1
  316. package/dist/htmlAnnotations.d.ts +29 -0
  317. package/dist/htmlAnnotations.d.ts.map +1 -0
  318. package/dist/htmlAnnotations.js +86 -0
  319. package/dist/htmlAnnotations.js.map +1 -0
  320. package/dist/hyphenate.js +2 -1
  321. package/dist/hyphenate.js.map +1 -1
  322. package/dist/index.d.ts +28 -14
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +16 -8
  325. package/dist/index.js.map +1 -1
  326. package/dist/knuthPlass/pretextAdapter.d.ts +4 -1
  327. package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
  328. package/dist/knuthPlass/pretextAdapter.js +9 -5
  329. package/dist/knuthPlass/pretextAdapter.js.map +1 -1
  330. package/dist/knuthPlass/richAdapter.d.ts +15 -2
  331. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  332. package/dist/knuthPlass/richAdapter.js +16 -6
  333. package/dist/knuthPlass/richAdapter.js.map +1 -1
  334. package/dist/knuthPlass/tracking.d.ts +1 -1
  335. package/dist/knuthPlass/tracking.d.ts.map +1 -1
  336. package/dist/knuthPlass/tracking.js +4 -3
  337. package/dist/knuthPlass/tracking.js.map +1 -1
  338. package/dist/knuthPlass/types.d.ts +3 -0
  339. package/dist/knuthPlass/types.d.ts.map +1 -1
  340. package/dist/lineInk.d.ts +13 -0
  341. package/dist/lineInk.d.ts.map +1 -1
  342. package/dist/lineInk.js +28 -1
  343. package/dist/lineInk.js.map +1 -1
  344. package/dist/locale.d.ts +91 -3
  345. package/dist/locale.d.ts.map +1 -1
  346. package/dist/locale.js +245 -1
  347. package/dist/locale.js.map +1 -1
  348. package/dist/looseLines.d.ts +11 -1
  349. package/dist/looseLines.d.ts.map +1 -1
  350. package/dist/looseLines.js +26 -1
  351. package/dist/looseLines.js.map +1 -1
  352. package/dist/measure/cache.d.ts.map +1 -1
  353. package/dist/measure/cache.js +51 -3
  354. package/dist/measure/cache.js.map +1 -1
  355. package/dist/measure/canvas.d.ts +25 -0
  356. package/dist/measure/canvas.d.ts.map +1 -1
  357. package/dist/measure/canvas.js +90 -1
  358. package/dist/measure/canvas.js.map +1 -1
  359. package/dist/measure/cjk.d.ts +8 -13
  360. package/dist/measure/cjk.d.ts.map +1 -1
  361. package/dist/measure/cjk.js +29 -53
  362. package/dist/measure/cjk.js.map +1 -1
  363. package/dist/measure/cjkAnnotate.d.ts +96 -0
  364. package/dist/measure/cjkAnnotate.d.ts.map +1 -0
  365. package/dist/measure/cjkAnnotate.js +237 -0
  366. package/dist/measure/cjkAnnotate.js.map +1 -0
  367. package/dist/measure/cjkClasses.d.ts +133 -0
  368. package/dist/measure/cjkClasses.d.ts.map +1 -0
  369. package/dist/measure/cjkClasses.js +273 -0
  370. package/dist/measure/cjkClasses.js.map +1 -0
  371. package/dist/measure/cjkCompose.d.ts +86 -0
  372. package/dist/measure/cjkCompose.d.ts.map +1 -0
  373. package/dist/measure/cjkCompose.js +2022 -0
  374. package/dist/measure/cjkCompose.js.map +1 -0
  375. package/dist/measure/cjkPunctuation.d.ts +248 -0
  376. package/dist/measure/cjkPunctuation.d.ts.map +1 -0
  377. package/dist/measure/cjkPunctuation.js +492 -0
  378. package/dist/measure/cjkPunctuation.js.map +1 -0
  379. package/dist/measure/graphemes.d.ts +13 -0
  380. package/dist/measure/graphemes.d.ts.map +1 -0
  381. package/dist/measure/graphemes.js +38 -0
  382. package/dist/measure/graphemes.js.map +1 -0
  383. package/dist/measure/index.d.ts +3 -0
  384. package/dist/measure/index.d.ts.map +1 -1
  385. package/dist/measure/index.js +2 -0
  386. package/dist/measure/index.js.map +1 -1
  387. package/dist/measure/links.d.ts +6 -2
  388. package/dist/measure/links.d.ts.map +1 -1
  389. package/dist/measure/links.js +15 -5
  390. package/dist/measure/links.js.map +1 -1
  391. package/dist/measure/markCuts.d.ts +37 -0
  392. package/dist/measure/markCuts.d.ts.map +1 -0
  393. package/dist/measure/markCuts.js +77 -0
  394. package/dist/measure/markCuts.js.map +1 -0
  395. package/dist/measure/plain.d.ts.map +1 -1
  396. package/dist/measure/plain.js +33 -11
  397. package/dist/measure/plain.js.map +1 -1
  398. package/dist/measure/rich.d.ts +88 -1
  399. package/dist/measure/rich.d.ts.map +1 -1
  400. package/dist/measure/rich.js +233 -111
  401. package/dist/measure/rich.js.map +1 -1
  402. package/dist/measure/rubyLift.d.ts +11 -0
  403. package/dist/measure/rubyLift.d.ts.map +1 -0
  404. package/dist/measure/rubyLift.js +57 -0
  405. package/dist/measure/rubyLift.js.map +1 -0
  406. package/dist/measure/spaces.d.ts +12 -2
  407. package/dist/measure/spaces.d.ts.map +1 -1
  408. package/dist/measure/spaces.js +21 -7
  409. package/dist/measure/spaces.js.map +1 -1
  410. package/dist/measure/types.d.ts +20 -1
  411. package/dist/measure/types.d.ts.map +1 -1
  412. package/dist/measure/types.js.map +1 -1
  413. package/dist/measure/vertical.d.ts +104 -0
  414. package/dist/measure/vertical.d.ts.map +1 -0
  415. package/dist/measure/vertical.js +184 -0
  416. package/dist/measure/vertical.js.map +1 -0
  417. package/dist/numberWords.d.ts +3 -10
  418. package/dist/numberWords.d.ts.map +1 -1
  419. package/dist/numberWords.js +21 -9
  420. package/dist/numberWords.js.map +1 -1
  421. package/dist/numbering.d.ts +23 -5
  422. package/dist/numbering.d.ts.map +1 -1
  423. package/dist/numbering.js +99 -14
  424. package/dist/numbering.js.map +1 -1
  425. package/dist/parse/annotations.d.ts +101 -0
  426. package/dist/parse/annotations.d.ts.map +1 -0
  427. package/dist/parse/annotations.js +556 -0
  428. package/dist/parse/annotations.js.map +1 -0
  429. package/dist/parse/attrs.d.ts +48 -1
  430. package/dist/parse/attrs.d.ts.map +1 -1
  431. package/dist/parse/attrs.js +121 -8
  432. package/dist/parse/attrs.js.map +1 -1
  433. package/dist/parse/blockParser.d.ts.map +1 -1
  434. package/dist/parse/blockParser.js +50 -24
  435. package/dist/parse/blockParser.js.map +1 -1
  436. package/dist/parse/index.d.ts +3 -1
  437. package/dist/parse/index.d.ts.map +1 -1
  438. package/dist/parse/index.js +1 -0
  439. package/dist/parse/index.js.map +1 -1
  440. package/dist/parse/injectSpans.d.ts +3 -1
  441. package/dist/parse/injectSpans.d.ts.map +1 -1
  442. package/dist/parse/injectSpans.js +29 -8
  443. package/dist/parse/injectSpans.js.map +1 -1
  444. package/dist/parse/inlineFormatting.d.ts +38 -6
  445. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  446. package/dist/parse/inlineFormatting.js +139 -26
  447. package/dist/parse/inlineFormatting.js.map +1 -1
  448. package/dist/parse/inlineSnippet.d.ts +2 -1
  449. package/dist/parse/inlineSnippet.d.ts.map +1 -1
  450. package/dist/parse/inlineSnippet.js +6 -2
  451. package/dist/parse/inlineSnippet.js.map +1 -1
  452. package/dist/parse/orientationMarks.d.ts +49 -0
  453. package/dist/parse/orientationMarks.d.ts.map +1 -0
  454. package/dist/parse/orientationMarks.js +138 -0
  455. package/dist/parse/orientationMarks.js.map +1 -0
  456. package/dist/parse/softBreaks.d.ts +56 -0
  457. package/dist/parse/softBreaks.d.ts.map +1 -0
  458. package/dist/parse/softBreaks.js +271 -0
  459. package/dist/parse/softBreaks.js.map +1 -0
  460. package/dist/parse/sourceMapping.d.ts.map +1 -1
  461. package/dist/parse/sourceMapping.js +41 -0
  462. package/dist/parse/sourceMapping.js.map +1 -1
  463. package/dist/parse/types.d.ts +84 -0
  464. package/dist/parse/types.d.ts.map +1 -1
  465. package/dist/pipeline/annotations.d.ts +56 -0
  466. package/dist/pipeline/annotations.d.ts.map +1 -0
  467. package/dist/pipeline/annotations.js +181 -0
  468. package/dist/pipeline/annotations.js.map +1 -0
  469. package/dist/pipeline/build.d.ts.map +1 -1
  470. package/dist/pipeline/build.js +158 -47
  471. package/dist/pipeline/build.js.map +1 -1
  472. package/dist/pipeline/buildBlockKind.d.ts +3 -0
  473. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  474. package/dist/pipeline/buildBlockKind.js +5 -3
  475. package/dist/pipeline/buildBlockKind.js.map +1 -1
  476. package/dist/pipeline/buildHelpers.d.ts +36 -6
  477. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  478. package/dist/pipeline/buildHelpers.js +55 -8
  479. package/dist/pipeline/buildHelpers.js.map +1 -1
  480. package/dist/pipeline/buildMeasurement.d.ts +4 -0
  481. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  482. package/dist/pipeline/buildMeasurement.js +3 -1
  483. package/dist/pipeline/buildMeasurement.js.map +1 -1
  484. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  485. package/dist/pipeline/calloutLayout.js +25 -11
  486. package/dist/pipeline/calloutLayout.js.map +1 -1
  487. package/dist/pipeline/cjkGrid.d.ts +133 -0
  488. package/dist/pipeline/cjkGrid.d.ts.map +1 -0
  489. package/dist/pipeline/cjkGrid.js +191 -0
  490. package/dist/pipeline/cjkGrid.js.map +1 -0
  491. package/dist/pipeline/config.d.ts +13 -9
  492. package/dist/pipeline/config.d.ts.map +1 -1
  493. package/dist/pipeline/config.js +43 -18
  494. package/dist/pipeline/config.js.map +1 -1
  495. package/dist/pipeline/contentWarnings.d.ts +10 -0
  496. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  497. package/dist/pipeline/contentWarnings.js +174 -2
  498. package/dist/pipeline/contentWarnings.js.map +1 -1
  499. package/dist/pipeline/floatPlacement.d.ts +9 -3
  500. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  501. package/dist/pipeline/floatPlacement.js +17 -6
  502. package/dist/pipeline/floatPlacement.js.map +1 -1
  503. package/dist/pipeline/headerFooter.d.ts +5 -2
  504. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  505. package/dist/pipeline/headerFooter.js +123 -28
  506. package/dist/pipeline/headerFooter.js.map +1 -1
  507. package/dist/pipeline/headingDesignCuts.d.ts.map +1 -1
  508. package/dist/pipeline/headingDesignCuts.js +3 -1
  509. package/dist/pipeline/headingDesignCuts.js.map +1 -1
  510. package/dist/pipeline/headingStyles.d.ts +9 -3
  511. package/dist/pipeline/headingStyles.d.ts.map +1 -1
  512. package/dist/pipeline/headingStyles.js +23 -5
  513. package/dist/pipeline/headingStyles.js.map +1 -1
  514. package/dist/pipeline/indexDirective.d.ts.map +1 -1
  515. package/dist/pipeline/indexDirective.js +64 -20
  516. package/dist/pipeline/indexDirective.js.map +1 -1
  517. package/dist/pipeline/indexGroups.d.ts +55 -0
  518. package/dist/pipeline/indexGroups.d.ts.map +1 -0
  519. package/dist/pipeline/indexGroups.js +151 -0
  520. package/dist/pipeline/indexGroups.js.map +1 -0
  521. package/dist/pipeline/lists.d.ts +17 -0
  522. package/dist/pipeline/lists.d.ts.map +1 -1
  523. package/dist/pipeline/lists.js +43 -51
  524. package/dist/pipeline/lists.js.map +1 -1
  525. package/dist/pipeline/measureContentBlock.d.ts +3 -0
  526. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  527. package/dist/pipeline/measureContentBlock.js +31 -4
  528. package/dist/pipeline/measureContentBlock.js.map +1 -1
  529. package/dist/pipeline/outline.d.ts.map +1 -1
  530. package/dist/pipeline/outline.js +13 -8
  531. package/dist/pipeline/outline.js.map +1 -1
  532. package/dist/pipeline/parts.d.ts +6 -3
  533. package/dist/pipeline/parts.d.ts.map +1 -1
  534. package/dist/pipeline/parts.js +28 -5
  535. package/dist/pipeline/parts.js.map +1 -1
  536. package/dist/pipeline/placeholders.d.ts +11 -0
  537. package/dist/pipeline/placeholders.d.ts.map +1 -1
  538. package/dist/pipeline/placeholders.js +48 -18
  539. package/dist/pipeline/placeholders.js.map +1 -1
  540. package/dist/pipeline/placement.d.ts +10 -6
  541. package/dist/pipeline/placement.d.ts.map +1 -1
  542. package/dist/pipeline/placement.js +33 -16
  543. package/dist/pipeline/placement.js.map +1 -1
  544. package/dist/pipeline/resourceLayout.d.ts +18 -1
  545. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  546. package/dist/pipeline/resourceLayout.js +109 -21
  547. package/dist/pipeline/resourceLayout.js.map +1 -1
  548. package/dist/pipeline/toc.d.ts.map +1 -1
  549. package/dist/pipeline/toc.js +6 -5
  550. package/dist/pipeline/toc.js.map +1 -1
  551. package/dist/pipeline/verticalMetrics.d.ts +14 -0
  552. package/dist/pipeline/verticalMetrics.d.ts.map +1 -0
  553. package/dist/pipeline/verticalMetrics.js +154 -0
  554. package/dist/pipeline/verticalMetrics.js.map +1 -0
  555. package/dist/types.d.ts +344 -13
  556. package/dist/types.d.ts.map +1 -1
  557. package/dist/vdt.d.ts +396 -6
  558. package/dist/vdt.d.ts.map +1 -1
  559. package/dist/vdt.js +49 -0
  560. package/dist/vdt.js.map +1 -1
  561. package/dist/writingMode.d.ts +156 -0
  562. package/dist/writingMode.d.ts.map +1 -0
  563. package/dist/writingMode.js +291 -0
  564. package/dist/writingMode.js.map +1 -0
  565. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Orientation marks for vertical text (#190): `:tcy[12]` sets its text
3
+ * side by side in one upright cell (tate-chu-yoko), `:upright[GDP]` stands
4
+ * each character upright in a cell of its own, `:sideways[12]` turns the
5
+ * whole run with the line. They keep their text in the plain text (like
6
+ * `:smallcaps[…]`) and only change how it stands in vertical text
7
+ * (`layout.writingMode: 'vertical-rl'`); in horizontal text they change
8
+ * nothing.
9
+ *
10
+ * The parser replaces each mark by its text between two private-use marks
11
+ * before the emphasis scanners run ({@link markOrientation}) and turns the
12
+ * marks into span fields once the spans exist ({@link applyOrientationMarks}).
13
+ */
14
+ /** The openers of `:tcy[…]`, `:upright[…]` and `:sideways[…]` (one line,
15
+ * not empty, other inline marks allowed inside, `\]` for a literal
16
+ * bracket; see {@link orientationMarkAt}). */
17
+ export const ORIENTATION_OPENERS = [':tcy[', ':upright[', ':sideways['];
18
+ const MARKS = ['tcy', 'upright', 'sideways'];
19
+ /** An orientation mark opened at `at`: its kind, the start of its text
20
+ * and the index of its closing `]` (before `end`, on the same line), or
21
+ * undefined when `at` opens none. The closing bracket is the one that
22
+ * balances the opener, so a mark may hold another mark or a link
23
+ * (`:tcy[:upright[AB]]`, `:sideways[[iPhone](…)]`); when the brackets
24
+ * inside never balance on the line, the first `]` closes it. `\]` is a
25
+ * literal bracket. The text is never empty. */
26
+ export function orientationMarkAt(text, at, end = text.length) {
27
+ if (text[at] !== ':')
28
+ return undefined;
29
+ for (const kind of MARKS) {
30
+ if (!text.startsWith(`:${kind}[`, at))
31
+ continue;
32
+ const start = at + kind.length + 2;
33
+ let depth = 0;
34
+ let first = -1;
35
+ for (let j = start; j < end; j++) {
36
+ const c = text[j];
37
+ if (c === '\n')
38
+ break;
39
+ if (c === '\\') {
40
+ j++;
41
+ continue;
42
+ }
43
+ if (c === '[')
44
+ depth++;
45
+ else if (c === ']') {
46
+ if (first < 0)
47
+ first = j;
48
+ if (depth === 0)
49
+ return j > start ? { kind, start, close: j } : undefined;
50
+ depth--;
51
+ }
52
+ }
53
+ return first > start ? { kind, start, close: first } : undefined;
54
+ }
55
+ return undefined;
56
+ }
57
+ /** `text` with every orientation mark replaced by `wrap(kind, inner)`,
58
+ * the marks inside a mark's text replaced first. */
59
+ function replaceOrientationMarks(text, wrap) {
60
+ if (!ORIENTATION_OPENERS.some((o) => text.includes(o)))
61
+ return text;
62
+ let out = '';
63
+ let last = 0;
64
+ for (let i = text.indexOf(':'); i >= 0 && i < text.length; i = text.indexOf(':', i + 1)) {
65
+ const mark = orientationMarkAt(text, i);
66
+ if (!mark)
67
+ continue;
68
+ out += text.slice(last, i) + wrap(mark.kind, replaceOrientationMarks(text.slice(mark.start, mark.close), wrap));
69
+ last = mark.close + 1;
70
+ i = mark.close;
71
+ }
72
+ return out + text.slice(last);
73
+ }
74
+ /** Private-use marks bracketing each kind while the emphasis regexes run
75
+ * (outside the escape range and the other marks of `inlineFormatting.ts`). */
76
+ const OPEN = { tcy: '\uE1C0', upright: '\uE1C2', sideways: '\uE1C4' };
77
+ const CLOSE = { tcy: '\uE1C1', upright: '\uE1C3', sideways: '\uE1C5' };
78
+ const MARK_OF = new Map([
79
+ ...Object.keys(OPEN).map((m) => [OPEN[m], { mark: m, open: true }]),
80
+ ...Object.keys(CLOSE).map((m) => [CLOSE[m], { mark: m, open: false }]),
81
+ ]);
82
+ const ANY_MARK_RE = /[\uE1C0-\uE1C5]/;
83
+ const unescapeBrackets = (inner) => inner.replace(/\\([[\]])/g, '$1');
84
+ /** Replace every orientation mark by its text between its private-use
85
+ * marks (a mark inside another one too). */
86
+ export function markOrientation(text) {
87
+ return replaceOrientationMarks(text, (kind, inner) => `${OPEN[kind]}${unescapeBrackets(inner)}${CLOSE[kind]}`);
88
+ }
89
+ /** The text of every orientation mark without its markup, each wrapped in
90
+ * `boundary` (the plain text `stripInlineFormatting` gives). */
91
+ export function stripOrientationMarks(text, boundary) {
92
+ return replaceOrientationMarks(text, (_kind, inner) => boundary + unescapeBrackets(inner) + boundary);
93
+ }
94
+ /** Split the spans at the orientation marks, setting `combineUpright` or
95
+ * `orientation` on the text between them and dropping the marks (and any
96
+ * piece left empty). The innermost mark wins. */
97
+ export function applyOrientationMarks(spans) {
98
+ if (!spans.some((s) => ANY_MARK_RE.test(s.text)))
99
+ return spans;
100
+ const out = [];
101
+ const open = [];
102
+ for (const span of spans) {
103
+ let piece = '';
104
+ const flush = () => {
105
+ if (piece.length === 0)
106
+ return;
107
+ const mark = open[open.length - 1];
108
+ const fields = mark === 'tcy' ? { combineUpright: true } : mark ? { orientation: mark } : {};
109
+ out.push({ ...span, text: piece, ...fields });
110
+ piece = '';
111
+ };
112
+ for (const ch of span.text) {
113
+ const m = MARK_OF.get(ch);
114
+ if (!m) {
115
+ piece += ch;
116
+ continue;
117
+ }
118
+ flush();
119
+ if (m.open)
120
+ open.push(m.mark);
121
+ else {
122
+ const at = open.lastIndexOf(m.mark);
123
+ if (at >= 0)
124
+ open.splice(at, 1);
125
+ }
126
+ }
127
+ flush();
128
+ }
129
+ return out;
130
+ }
131
+ /** An orientation mark's opener at `r` that the parser took as markup: its
132
+ * closing `]` comes later on the same line (see {@link orientationMarkAt}).
133
+ * The length of the opener, or 0. */
134
+ export function orientationOpenerAt(markdown, r, end) {
135
+ const mark = orientationMarkAt(markdown, r, end);
136
+ return mark ? mark.start - r : 0;
137
+ }
138
+ //# sourceMappingURL=orientationMarks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orientationMarks.js","sourceRoot":"","sources":["../../src/parse/orientationMarks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Line ends inside a paragraph between East Asian characters (#181).
3
+ *
4
+ * The lines of a paragraph or a blockquote are joined with a space, and a
5
+ * resource snippet (a caption, a note, a table cell) keeps its line ends as
6
+ * whitespace. Chinese and Japanese are written without spaces, so a line end
7
+ * between two ideographs must vanish instead: CSS Text 3 §4.1.3 ("segment
8
+ * break transformation") removes a segment break when the characters on both
9
+ * sides are East Asian Wide, Fullwidth or Halfwidth and neither is Hangul,
10
+ * and when either side is a zero-width space. Its second rule, for Chinese
11
+ * and Japanese text, also lets either side be an ambiguous-width punctuation
12
+ * mark or symbol (`“`, `”`, `…`, `—`); the parser does not know the
13
+ * document's language, so a run of such marks is looked through to the
14
+ * characters around it (see {@link removesLineEndAt}). Korean keeps its
15
+ * spaces.
16
+ */
17
+ import type { InlineSpan } from './types';
18
+ /** A character of the East Asian scripts whose East Asian Width is Wide,
19
+ * Fullwidth or Halfwidth (UAX #11), Hangul left out: ideographs and their
20
+ * radicals and strokes, kana, bopomofo, Yi, CJK punctuation and symbols,
21
+ * the fullwidth and halfwidth forms, the vertical and small form variants.
22
+ * Emoji (also Wide) are left out: a line end between two of them in Latin
23
+ * prose keeps its space. */
24
+ export declare function isEastAsianWide(cp: number): boolean;
25
+ /** Whether a line end between the code points `before` and `after` is
26
+ * removed rather than set as a space (CSS Text 3 §4.1.3). */
27
+ export declare function removesSegmentBreak(before: number | undefined, after: number | undefined): boolean;
28
+ /**
29
+ * Whether a line end between `text[…before)` and `text[after…]` is removed.
30
+ * Beside the rules of {@link removesSegmentBreak}, a line end between two
31
+ * ambiguous marks (`”⏎“`, `……⏎“`, `”⏎——`) goes when the nearest character
32
+ * past the marks on either side is East Asian wide and neither is Hangul:
33
+ * `“你好”⏎“再见”` joins, `“hello”⏎“bye”` and `“안녕”⏎“잘 가”` keep their space.
34
+ * `skip` (a placeholder such as a footnote marker's) is looked through too.
35
+ */
36
+ export declare function removesLineEndAt(text: string, before: number, after: number, skip?: string): boolean;
37
+ /**
38
+ * Take out of a paragraph's or blockquote's mapped text the spaces that
39
+ * joined two source lines between East Asian characters. A joining space is
40
+ * one whose source, up to the next character's, holds the line end.
41
+ * Returns `undefined` when nothing changes, so a block without Chinese text
42
+ * keeps its arrays as they are.
43
+ */
44
+ export declare function joinEastAsianLines(markdown: string, text: string, spans: InlineSpan[], sourceMap: number[]): {
45
+ text: string;
46
+ spans: InlineSpan[];
47
+ sourceMap: number[];
48
+ } | undefined;
49
+ /**
50
+ * Take out of a resource snippet's spans (a caption, a note, a table cell)
51
+ * the line ends that fall between East Asian characters, with the spaces
52
+ * and tabs around them. The snippet's own text is the source, so the map
53
+ * built afterwards (`computeSourceMap`) skips them.
54
+ */
55
+ export declare function joinEastAsianSnippetLines(spans: InlineSpan[]): InlineSpan[];
56
+ //# sourceMappingURL=softBreaks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"softBreaks.d.ts","sourceRoot":"","sources":["../../src/parse/softBreaks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAa1C;;;;;6BAK6B;AAC7B,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAiBnD;AA0BD;8DAC8D;AAC9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CASlG;AAoBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAUpG;AAwDD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAkCxE;AAMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAe3E"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Line ends inside a paragraph between East Asian characters (#181).
3
+ *
4
+ * The lines of a paragraph or a blockquote are joined with a space, and a
5
+ * resource snippet (a caption, a note, a table cell) keeps its line ends as
6
+ * whitespace. Chinese and Japanese are written without spaces, so a line end
7
+ * between two ideographs must vanish instead: CSS Text 3 §4.1.3 ("segment
8
+ * break transformation") removes a segment break when the characters on both
9
+ * sides are East Asian Wide, Fullwidth or Halfwidth and neither is Hangul,
10
+ * and when either side is a zero-width space. Its second rule, for Chinese
11
+ * and Japanese text, also lets either side be an ambiguous-width punctuation
12
+ * mark or symbol (`“`, `”`, `…`, `—`); the parser does not know the
13
+ * document's language, so a run of such marks is looked through to the
14
+ * characters around it (see {@link removesLineEndAt}). Korean keeps its
15
+ * spaces.
16
+ */
17
+ import { sliceLinks } from './links';
18
+ import { FOOTNOTE_PLACEHOLDER } from './inlineFormatting';
19
+ /** Hangul syllables and jamo, in every width. */
20
+ function isHangul(cp) {
21
+ return (cp >= 0x1100 && cp <= 0x11ff)
22
+ || (cp >= 0x3130 && cp <= 0x318f)
23
+ || (cp >= 0xa960 && cp <= 0xa97f)
24
+ || (cp >= 0xac00 && cp <= 0xd7ff)
25
+ || (cp >= 0xffa0 && cp <= 0xffdc);
26
+ }
27
+ /** A character of the East Asian scripts whose East Asian Width is Wide,
28
+ * Fullwidth or Halfwidth (UAX #11), Hangul left out: ideographs and their
29
+ * radicals and strokes, kana, bopomofo, Yi, CJK punctuation and symbols,
30
+ * the fullwidth and halfwidth forms, the vertical and small form variants.
31
+ * Emoji (also Wide) are left out: a line end between two of them in Latin
32
+ * prose keeps its space. */
33
+ export function isEastAsianWide(cp) {
34
+ if (cp < 0x2e80)
35
+ return false;
36
+ if (isHangul(cp))
37
+ return false;
38
+ return (cp >= 0x2e80 && cp <= 0x2fdf) // CJK radicals, Kangxi radicals
39
+ || (cp >= 0x2ff0 && cp <= 0x303e) // ideographic description, CJK symbols and punctuation
40
+ || (cp >= 0x3041 && cp <= 0x33ff) // kana, bopomofo, kanbun, strokes, enclosed CJK, compatibility
41
+ || (cp >= 0x3400 && cp <= 0x4dbf) // extension A
42
+ || (cp >= 0x4e00 && cp <= 0x9fff) // unified ideographs
43
+ || (cp >= 0xa000 && cp <= 0xa4cf) // Yi
44
+ || (cp >= 0xf900 && cp <= 0xfaff) // compatibility ideographs
45
+ || (cp >= 0xfe10 && cp <= 0xfe19) // vertical forms
46
+ || (cp >= 0xfe30 && cp <= 0xfe6f) // compatibility and small forms
47
+ || (cp >= 0xff01 && cp <= 0xffee) // fullwidth and halfwidth forms (halfwidth Hangul excluded above)
48
+ || (cp >= 0x16fe0 && cp <= 0x18aff) // ideographic symbols, Tangut
49
+ || (cp >= 0x1b000 && cp <= 0x1b16f) // kana supplement and extensions
50
+ || (cp >= 0x1f200 && cp <= 0x1f2ff) // enclosed ideographic supplement
51
+ || (cp >= 0x20000 && cp <= 0x3fffd); // extensions B and later
52
+ }
53
+ /** Ambiguous-width punctuation and symbols that Chinese text uses between
54
+ * its ideographs: curly quotes, dashes, ellipsis, middle dots, reference
55
+ * marks, degree and section signs, circles, squares and stars. */
56
+ const AMBIGUOUS_PUNCTUATION = new Set([
57
+ 0x00a7, 0x00b0, 0x00b7, 0x00d7, 0x00f7,
58
+ 0x2010, 0x2013, 0x2014, 0x2015, 0x2016, 0x2018, 0x2019, 0x201c, 0x201d,
59
+ 0x2020, 0x2021, 0x2022, 0x2025, 0x2026, 0x2027, 0x2030, 0x2032, 0x2033, 0x203b,
60
+ 0x2103, 0x2116, 0x2160, 0x2190, 0x2191, 0x2192, 0x2193,
61
+ 0x25a0, 0x25a1, 0x25b2, 0x25b3, 0x25c6, 0x25c7, 0x25cb, 0x25ce, 0x25cf, 0x2605, 0x2606,
62
+ 0x2e3a, 0x2e3b, // two- and three-em dashes
63
+ ]);
64
+ /** The code point that ends `text` before `index` (a surrogate pair read
65
+ * whole). */
66
+ function codePointBefore(text, index) {
67
+ if (index <= 0)
68
+ return undefined;
69
+ const low = text.charCodeAt(index - 1);
70
+ if (low >= 0xdc00 && low <= 0xdfff && index >= 2) {
71
+ const high = text.charCodeAt(index - 2);
72
+ if (high >= 0xd800 && high <= 0xdbff)
73
+ return text.codePointAt(index - 2);
74
+ }
75
+ return low;
76
+ }
77
+ /** Whether a line end between the code points `before` and `after` is
78
+ * removed rather than set as a space (CSS Text 3 §4.1.3). */
79
+ export function removesSegmentBreak(before, after) {
80
+ if (before === undefined || after === undefined)
81
+ return false;
82
+ if (before === 0x200b || after === 0x200b)
83
+ return true;
84
+ const a = isEastAsianWide(before);
85
+ const b = isEastAsianWide(after);
86
+ if (a && b)
87
+ return true;
88
+ if (a)
89
+ return AMBIGUOUS_PUNCTUATION.has(after);
90
+ if (b)
91
+ return AMBIGUOUS_PUNCTUATION.has(before);
92
+ return false;
93
+ }
94
+ /** How far a run of ambiguous marks is looked through (a longer run is
95
+ * read as having nothing beyond it). */
96
+ const AMBIGUOUS_RUN_LIMIT = 32;
97
+ /** The first code point of `text` walking from `index` in `step` (-1 back,
98
+ * +1 on) that is neither an ambiguous mark nor `skip`; `undefined` at the
99
+ * edge of the text or past {@link AMBIGUOUS_RUN_LIMIT} marks. */
100
+ function pastAmbiguousRun(text, index, step, skip) {
101
+ let at = index;
102
+ for (let n = 0; n < AMBIGUOUS_RUN_LIMIT; n++) {
103
+ const cp = step < 0 ? codePointBefore(text, at) : text.codePointAt(at);
104
+ if (cp === undefined)
105
+ return undefined;
106
+ if (!AMBIGUOUS_PUNCTUATION.has(cp) && (skip === undefined || cp !== skip.charCodeAt(0)))
107
+ return cp;
108
+ at += step * (cp > 0xffff ? 2 : 1);
109
+ }
110
+ return undefined;
111
+ }
112
+ /**
113
+ * Whether a line end between `text[…before)` and `text[after…]` is removed.
114
+ * Beside the rules of {@link removesSegmentBreak}, a line end between two
115
+ * ambiguous marks (`”⏎“`, `……⏎“`, `”⏎——`) goes when the nearest character
116
+ * past the marks on either side is East Asian wide and neither is Hangul:
117
+ * `“你好”⏎“再见”` joins, `“hello”⏎“bye”` and `“안녕”⏎“잘 가”` keep their space.
118
+ * `skip` (a placeholder such as a footnote marker's) is looked through too.
119
+ */
120
+ export function removesLineEndAt(text, before, after, skip) {
121
+ const a = codePointBefore(text, before);
122
+ const b = text.codePointAt(after);
123
+ if (removesSegmentBreak(a, b))
124
+ return true;
125
+ if (a === undefined || b === undefined)
126
+ return false;
127
+ if (!AMBIGUOUS_PUNCTUATION.has(a) || !AMBIGUOUS_PUNCTUATION.has(b))
128
+ return false;
129
+ const left = pastAmbiguousRun(text, before, -1, skip);
130
+ const right = pastAmbiguousRun(text, after, 1, skip);
131
+ if ((left !== undefined && isHangul(left)) || (right !== undefined && isHangul(right)))
132
+ return false;
133
+ return (left !== undefined && isEastAsianWide(left)) || (right !== undefined && isEastAsianWide(right));
134
+ }
135
+ /** `spans` with the characters at the sorted offsets `drop` (into their
136
+ * joined text) taken out; link ranges follow their text and spans left
137
+ * empty are dropped. */
138
+ function dropCharacters(spans, drop) {
139
+ const out = [];
140
+ let offset = 0;
141
+ let d = 0;
142
+ for (const span of spans) {
143
+ const end = offset + span.text.length;
144
+ const local = [];
145
+ while (d < drop.length && drop[d] < end) {
146
+ if (drop[d] >= offset)
147
+ local.push(drop[d] - offset);
148
+ d++;
149
+ }
150
+ offset = end;
151
+ if (local.length === 0) {
152
+ out.push(span);
153
+ continue;
154
+ }
155
+ let text = '';
156
+ let from = 0;
157
+ for (const at of local) {
158
+ text += span.text.slice(from, at);
159
+ from = at + 1;
160
+ }
161
+ text += span.text.slice(from);
162
+ if (text.length === 0)
163
+ continue;
164
+ const { links, ...rest } = span;
165
+ // `i` less the dropped offsets before it (binary search: a span may
166
+ // hold thousands of links and joined lines).
167
+ const shift = (i) => {
168
+ let lo = 0;
169
+ let hi = local.length;
170
+ while (lo < hi) {
171
+ const mid = (lo + hi) >> 1;
172
+ if (local[mid] < i)
173
+ lo = mid + 1;
174
+ else
175
+ hi = mid;
176
+ }
177
+ return i - lo;
178
+ };
179
+ const moved = (links ?? [])
180
+ .map((l) => ({ start: shift(l.start), end: shift(l.end), href: l.href }))
181
+ .filter((l) => l.end > l.start);
182
+ out.push(moved.length > 0 ? { ...rest, text, ...sliceLinks(moved, 0, text.length) } : { ...rest, text });
183
+ }
184
+ return out;
185
+ }
186
+ /** A code unit only a text that may lose a line end holds: U+200B, or one
187
+ * at or past U+2E80, where every East Asian wide character sits
188
+ * ({@link isEastAsianWide}; a supplementary one's surrogates too). Each
189
+ * rule of {@link removesLineEndAt} needs one of them. */
190
+ const MAY_JOIN_RE = /[\u200B\u2E80-\uFFFF]/;
191
+ /**
192
+ * Take out of a paragraph's or blockquote's mapped text the spaces that
193
+ * joined two source lines between East Asian characters. A joining space is
194
+ * one whose source, up to the next character's, holds the line end.
195
+ * Returns `undefined` when nothing changes, so a block without Chinese text
196
+ * keeps its arrays as they are.
197
+ */
198
+ export function joinEastAsianLines(markdown, text, spans, sourceMap) {
199
+ // Text with no East Asian wide character (a Latin paragraph) keeps every
200
+ // space: one look at it, not one at each space.
201
+ if (!MAY_JOIN_RE.test(text))
202
+ return undefined;
203
+ let drop;
204
+ for (let k = 1; k < text.length - 1; k++) {
205
+ if (text.charCodeAt(k) !== 0x20)
206
+ continue;
207
+ // A footnote marker ending the line belongs to the text before it:
208
+ // `他说[^1]⏎然后` joins like `他说⏎然后`.
209
+ let b = k;
210
+ while (b > 1 && text[b - 1] === FOOTNOTE_PLACEHOLDER)
211
+ b--;
212
+ if (!removesLineEndAt(text, b, k + 1, FOOTNOTE_PLACEHOLDER))
213
+ continue;
214
+ const from = sourceMap[k];
215
+ const to = sourceMap[k + 1];
216
+ if (from === undefined || to === undefined)
217
+ continue;
218
+ let lineEnd = false;
219
+ for (let r = from; r < to && r < markdown.length; r++) {
220
+ if (markdown.charCodeAt(r) === 0x0a) {
221
+ lineEnd = true;
222
+ break;
223
+ }
224
+ }
225
+ if (lineEnd)
226
+ (drop ??= []).push(k);
227
+ }
228
+ if (!drop)
229
+ return undefined;
230
+ let joined = '';
231
+ const map = [];
232
+ let from = 0;
233
+ for (const at of [...drop, text.length]) {
234
+ joined += text.slice(from, at);
235
+ for (let k = from; k < at; k++)
236
+ map.push(sourceMap[k]);
237
+ from = at + 1;
238
+ }
239
+ return { text: joined, spans: dropCharacters(spans, drop), sourceMap: map };
240
+ }
241
+ /** A line end inside a snippet with the spaces and tabs around it (a blank
242
+ * line is left alone). */
243
+ const SNIPPET_LINE_END_RE = /[ \t\r]*\n[ \t]*/g;
244
+ /**
245
+ * Take out of a resource snippet's spans (a caption, a note, a table cell)
246
+ * the line ends that fall between East Asian characters, with the spaces
247
+ * and tabs around them. The snippet's own text is the source, so the map
248
+ * built afterwards (`computeSourceMap`) skips them.
249
+ */
250
+ export function joinEastAsianSnippetLines(spans) {
251
+ if (!spans.some((s) => s.text.includes('\n')))
252
+ return spans;
253
+ const text = spans.map((s) => s.text).join('');
254
+ if (!MAY_JOIN_RE.test(text))
255
+ return spans;
256
+ let drop;
257
+ SNIPPET_LINE_END_RE.lastIndex = 0;
258
+ let m;
259
+ while ((m = SNIPPET_LINE_END_RE.exec(text)) !== null) {
260
+ const start = m.index;
261
+ const end = start + m[0].length;
262
+ if (text[end] === '\n' || text[start - 1] === '\n')
263
+ continue;
264
+ if (!removesLineEndAt(text, start, end))
265
+ continue;
266
+ for (let k = start; k < end; k++)
267
+ (drop ??= []).push(k);
268
+ }
269
+ return drop ? dropCharacters(spans, drop) : spans;
270
+ }
271
+ //# sourceMappingURL=softBreaks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"softBreaks.js","sourceRoot":"","sources":["../../src/parse/softBreaks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMapping.d.ts","sourceRoot":"","sources":["../../src/parse/sourceMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkB1C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAoJV;AAyDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,UAAU,EAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B5D"}
1
+ {"version":3,"file":"sourceMapping.d.ts","sourceRoot":"","sources":["../../src/parse/sourceMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoB1C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CA2KV;AAsED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,UAAU,EAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B5D"}
@@ -1,6 +1,8 @@
1
1
  import { MATH_PLACEHOLDER } from './inlineMath';
2
2
  import { BREAK_PLACEHOLDER, CHIP_PLACEHOLDER, FOOTNOTE_PLACEHOLDER, REF_PLACEHOLDER, SMALLCAPS_OPENER, SWATCH_PLACEHOLDER } from './inlineFormatting';
3
3
  import { sliceSpan } from './links';
4
+ import { orientationOpenerAt } from './orientationMarks';
5
+ import { annotationSourceSkips } from './annotations';
4
6
  /** A `:smallcaps[` at `r` that the parser took as markup: its closing `]`
5
7
  * comes later on the same line (an unclosed one stays literal text). */
6
8
  function isSmallCapsOpenerAt(markdown, r, end) {
@@ -29,6 +31,15 @@ function isSmallCapsOpenerAt(markdown, r, end) {
29
31
  export function computeSourceMap(markdown, blockSrcStart, blockSrcEnd, plainText) {
30
32
  const map = new Array(plainText.length);
31
33
  let r = blockSrcStart;
34
+ // The markup of Chinese annotations (`:ruby[`, `]{rt="…"}`, a compact
35
+ // ruby's `|hóng|lóu}`) prints nothing: plain characters never match
36
+ // inside it (#193–#195).
37
+ const skips = annotationSourceSkips(markdown, blockSrcStart, blockSrcEnd);
38
+ let si = 0;
39
+ // Inline code spans, which the parser protects: an orientation mark
40
+ // written inside one (`` `:tcy[…]` ``) is text, its opener printed.
41
+ const code = orientationCodeSpans(markdown, blockSrcStart, blockSrcEnd);
42
+ let ci = 0;
32
43
  for (let p = 0; p < plainText.length; p++) {
33
44
  const ch = plainText[p];
34
45
  // Math placeholder: the plain char represents `$...$` in the markdown.
@@ -179,6 +190,12 @@ export function computeSourceMap(markdown, blockSrcStart, blockSrcEnd, plainText
179
190
  }
180
191
  const isSpace = ch === ' ';
181
192
  while (r < blockSrcEnd) {
193
+ while (si < skips.length && skips[si][1] <= r)
194
+ si++;
195
+ if (si < skips.length && r >= skips[si][0]) {
196
+ r = skips[si][1];
197
+ continue;
198
+ }
182
199
  const rc = markdown[r];
183
200
  // The opener of a `:smallcaps[…]` run has no plain character: skip
184
201
  // it whole, so its letters never match the text inside.
@@ -186,6 +203,16 @@ export function computeSourceMap(markdown, blockSrcStart, blockSrcEnd, plainText
186
203
  r += SMALLCAPS_OPENER.length;
187
204
  continue;
188
205
  }
206
+ // So has the opener of `:tcy[…]`, `:upright[…]`, `:sideways[…]`,
207
+ // outside inline code.
208
+ while (ci < code.length && code[ci][1] <= r)
209
+ ci++;
210
+ const inCode = ci < code.length && r >= code[ci][0];
211
+ const orientationOpener = rc === ':' && !inCode ? orientationOpenerAt(markdown, r, blockSrcEnd) : 0;
212
+ if (orientationOpener > 0) {
213
+ r += orientationOpener;
214
+ continue;
215
+ }
189
216
  if (rc === ch)
190
217
  break;
191
218
  if (isSpace && (rc === '\n' || rc === '\t'))
@@ -202,6 +229,20 @@ export function computeSourceMap(markdown, blockSrcStart, blockSrcEnd, plainText
202
229
  }
203
230
  return map;
204
231
  }
232
+ /** The inline code spans (`` `…` ``) of `[from, end)` that may hold an
233
+ * orientation mark, as `[start, end)` source offsets in order; none when
234
+ * the block has no such mark. */
235
+ function orientationCodeSpans(markdown, from, end) {
236
+ const slice = markdown.slice(from, end);
237
+ if (!slice.includes('`') || !/:(?:tcy|upright|sideways)\[/.test(slice))
238
+ return [];
239
+ const out = [];
240
+ const re = /(?<!\\)`[^`\n]+?`/g;
241
+ let m;
242
+ while ((m = re.exec(slice)) !== null)
243
+ out.push([from + m.index, from + m.index + m[0].length]);
244
+ return out;
245
+ }
205
246
  /** Whitespace collapsed by pretext's `normalizeWhitespaceNormal`. A Set
206
247
  * lookup is cheaper than a per-character regex test in these loops. */
207
248
  const COLLAPSIBLE_WS = new Set([' ', '\t', '\n', '\r', '\f']);
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMapping.js","sourceRoot":"","sources":["../../src/parse/sourceMapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceMapping.js","sourceRoot":"","sources":["../../src/parse/sourceMapping.ts"],"names":[],"mappings":"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"}