chaffjs 0.14.0 → 0.15.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 (273) hide show
  1. package/dist/address-chain.d.ts +4 -1
  2. package/dist/address-chain.d.ts.map +1 -1
  3. package/dist/address-chain.js +5 -2
  4. package/dist/address-chain.js.map +1 -1
  5. package/dist/cli-text.d.ts +4 -1
  6. package/dist/cli-text.d.ts.map +1 -1
  7. package/dist/cli-text.js +14 -2
  8. package/dist/cli-text.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +21 -21
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/eval.d.ts +4 -0
  13. package/dist/commands/eval.d.ts.map +1 -1
  14. package/dist/commands/eval.js +20 -6
  15. package/dist/commands/eval.js.map +1 -1
  16. package/dist/commands/feedback.d.ts.map +1 -1
  17. package/dist/commands/feedback.js +2 -1
  18. package/dist/commands/feedback.js.map +1 -1
  19. package/dist/commands/test.d.ts.map +1 -1
  20. package/dist/commands/test.js +3 -2
  21. package/dist/commands/test.js.map +1 -1
  22. package/dist/commands/tree.d.ts.map +1 -1
  23. package/dist/commands/tree.js +2 -1
  24. package/dist/commands/tree.js.map +1 -1
  25. package/dist/detectors/acronym-compound.d.ts +8 -0
  26. package/dist/detectors/acronym-compound.d.ts.map +1 -0
  27. package/dist/detectors/acronym-compound.js +8 -0
  28. package/dist/detectors/acronym-compound.js.map +1 -0
  29. package/dist/detectors/acronym-context.d.ts +4 -0
  30. package/dist/detectors/acronym-context.d.ts.map +1 -1
  31. package/dist/detectors/acronym-context.js +17 -1
  32. package/dist/detectors/acronym-context.js.map +1 -1
  33. package/dist/detectors/acronym-expansion.d.ts +10 -0
  34. package/dist/detectors/acronym-expansion.d.ts.map +1 -1
  35. package/dist/detectors/acronym-expansion.js +63 -5
  36. package/dist/detectors/acronym-expansion.js.map +1 -1
  37. package/dist/detectors/char-shape.d.ts.map +1 -1
  38. package/dist/detectors/char-shape.js +36 -14
  39. package/dist/detectors/char-shape.js.map +1 -1
  40. package/dist/detectors/citation-key.d.ts +13 -0
  41. package/dist/detectors/citation-key.d.ts.map +1 -0
  42. package/dist/detectors/citation-key.js +9 -0
  43. package/dist/detectors/citation-key.js.map +1 -0
  44. package/dist/detectors/cited-name.d.ts +11 -0
  45. package/dist/detectors/cited-name.d.ts.map +1 -0
  46. package/dist/detectors/cited-name.js +15 -0
  47. package/dist/detectors/cited-name.js.map +1 -0
  48. package/dist/detectors/concrete-evidence.d.ts +7 -0
  49. package/dist/detectors/concrete-evidence.d.ts.map +1 -0
  50. package/dist/detectors/concrete-evidence.js +21 -0
  51. package/dist/detectors/concrete-evidence.js.map +1 -0
  52. package/dist/detectors/counter-edge.d.ts +8 -0
  53. package/dist/detectors/counter-edge.d.ts.map +1 -0
  54. package/dist/detectors/counter-edge.js +27 -0
  55. package/dist/detectors/counter-edge.js.map +1 -0
  56. package/dist/detectors/dotted-name.d.ts +13 -0
  57. package/dist/detectors/dotted-name.d.ts.map +1 -0
  58. package/dist/detectors/dotted-name.js +10 -0
  59. package/dist/detectors/dotted-name.js.map +1 -0
  60. package/dist/detectors/doubled-word.d.ts +6 -1
  61. package/dist/detectors/doubled-word.d.ts.map +1 -1
  62. package/dist/detectors/doubled-word.js +22 -2
  63. package/dist/detectors/doubled-word.js.map +1 -1
  64. package/dist/detectors/en-shape.d.ts +1 -1
  65. package/dist/detectors/en-shape.d.ts.map +1 -1
  66. package/dist/detectors/en-shape.js +11 -22
  67. package/dist/detectors/en-shape.js.map +1 -1
  68. package/dist/detectors/gram-place.d.ts +0 -4
  69. package/dist/detectors/gram-place.d.ts.map +1 -1
  70. package/dist/detectors/gram-place.js +6 -1
  71. package/dist/detectors/gram-place.js.map +1 -1
  72. package/dist/detectors/gram-predicate.d.ts +7 -0
  73. package/dist/detectors/gram-predicate.d.ts.map +1 -0
  74. package/dist/detectors/gram-predicate.js +44 -0
  75. package/dist/detectors/gram-predicate.js.map +1 -0
  76. package/dist/detectors/heading-case.d.ts +21 -0
  77. package/dist/detectors/heading-case.d.ts.map +1 -0
  78. package/dist/detectors/heading-case.js +38 -0
  79. package/dist/detectors/heading-case.js.map +1 -0
  80. package/dist/detectors/heading-echo.d.ts.map +1 -1
  81. package/dist/detectors/heading-echo.js +4 -1
  82. package/dist/detectors/heading-echo.js.map +1 -1
  83. package/dist/detectors/lexicon.d.ts.map +1 -1
  84. package/dist/detectors/lexicon.js +7 -4
  85. package/dist/detectors/lexicon.js.map +1 -1
  86. package/dist/detectors/name-numeral.d.ts +16 -0
  87. package/dist/detectors/name-numeral.d.ts.map +1 -0
  88. package/dist/detectors/name-numeral.js +30 -0
  89. package/dist/detectors/name-numeral.js.map +1 -0
  90. package/dist/detectors/name-part.d.ts +8 -0
  91. package/dist/detectors/name-part.d.ts.map +1 -0
  92. package/dist/detectors/name-part.js +20 -0
  93. package/dist/detectors/name-part.js.map +1 -0
  94. package/dist/detectors/name-run.d.ts +8 -0
  95. package/dist/detectors/name-run.d.ts.map +1 -0
  96. package/dist/detectors/name-run.js +13 -0
  97. package/dist/detectors/name-run.js.map +1 -0
  98. package/dist/detectors/orthography.d.ts.map +1 -1
  99. package/dist/detectors/orthography.js +15 -5
  100. package/dist/detectors/orthography.js.map +1 -1
  101. package/dist/detectors/placeholder.d.ts +14 -0
  102. package/dist/detectors/placeholder.d.ts.map +1 -0
  103. package/dist/detectors/placeholder.js +24 -0
  104. package/dist/detectors/placeholder.js.map +1 -0
  105. package/dist/detectors/quoted-variant.d.ts +7 -0
  106. package/dist/detectors/quoted-variant.d.ts.map +1 -0
  107. package/dist/detectors/quoted-variant.js +18 -0
  108. package/dist/detectors/quoted-variant.js.map +1 -0
  109. package/dist/detectors/series-label.d.ts +13 -0
  110. package/dist/detectors/series-label.d.ts.map +1 -0
  111. package/dist/detectors/series-label.js +26 -0
  112. package/dist/detectors/series-label.js.map +1 -0
  113. package/dist/detectors/signals.d.ts.map +1 -1
  114. package/dist/detectors/signals.js +29 -24
  115. package/dist/detectors/signals.js.map +1 -1
  116. package/dist/detectors/structure-tree.js +1 -1
  117. package/dist/detectors/structure-tree.js.map +1 -1
  118. package/dist/detectors/superlative-name.d.ts +9 -0
  119. package/dist/detectors/superlative-name.d.ts.map +1 -0
  120. package/dist/detectors/superlative-name.js +24 -0
  121. package/dist/detectors/superlative-name.js.map +1 -0
  122. package/dist/detectors/token-shape.d.ts.map +1 -1
  123. package/dist/detectors/token-shape.js +10 -2
  124. package/dist/detectors/token-shape.js.map +1 -1
  125. package/dist/document.d.ts.map +1 -1
  126. package/dist/document.js +10 -4
  127. package/dist/document.js.map +1 -1
  128. package/dist/genre-check.d.ts +34 -0
  129. package/dist/genre-check.d.ts.map +1 -0
  130. package/dist/genre-check.js +21 -0
  131. package/dist/genre-check.js.map +1 -0
  132. package/dist/genre.d.ts +8 -1
  133. package/dist/genre.d.ts.map +1 -1
  134. package/dist/genre.js +29 -5
  135. package/dist/genre.js.map +1 -1
  136. package/dist/init.d.ts +0 -1
  137. package/dist/init.d.ts.map +1 -1
  138. package/dist/init.js +0 -12
  139. package/dist/init.js.map +1 -1
  140. package/dist/joined-view.d.ts +25 -0
  141. package/dist/joined-view.d.ts.map +1 -0
  142. package/dist/joined-view.js +76 -0
  143. package/dist/joined-view.js.map +1 -0
  144. package/dist/line-continues.d.ts +6 -0
  145. package/dist/line-continues.d.ts.map +1 -0
  146. package/dist/line-continues.js +33 -0
  147. package/dist/line-continues.js.map +1 -0
  148. package/dist/measure.d.ts +1 -0
  149. package/dist/measure.d.ts.map +1 -1
  150. package/dist/measure.js +5 -1
  151. package/dist/measure.js.map +1 -1
  152. package/dist/number-name.d.ts +6 -3
  153. package/dist/number-name.d.ts.map +1 -1
  154. package/dist/number-name.js +31 -14
  155. package/dist/number-name.js.map +1 -1
  156. package/dist/orthography.d.ts +4 -0
  157. package/dist/orthography.d.ts.map +1 -1
  158. package/dist/orthography.js +11 -9
  159. package/dist/orthography.js.map +1 -1
  160. package/dist/plain-source.d.ts +6 -0
  161. package/dist/plain-source.d.ts.map +1 -0
  162. package/dist/plain-source.js +6 -0
  163. package/dist/plain-source.js.map +1 -0
  164. package/dist/plugin.d.ts +16 -1
  165. package/dist/plugin.d.ts.map +1 -1
  166. package/dist/quoted-span.d.ts +10 -0
  167. package/dist/quoted-span.d.ts.map +1 -0
  168. package/dist/quoted-span.js +20 -0
  169. package/dist/quoted-span.js.map +1 -0
  170. package/dist/render/eval.d.ts +2 -1
  171. package/dist/render/eval.d.ts.map +1 -1
  172. package/dist/render/eval.js +84 -43
  173. package/dist/render/eval.js.map +1 -1
  174. package/dist/resolve-genre.d.ts +11 -0
  175. package/dist/resolve-genre.d.ts.map +1 -0
  176. package/dist/resolve-genre.js +18 -0
  177. package/dist/resolve-genre.js.map +1 -0
  178. package/dist/soft-break.d.ts +19 -0
  179. package/dist/soft-break.d.ts.map +1 -0
  180. package/dist/soft-break.js +78 -0
  181. package/dist/soft-break.js.map +1 -0
  182. package/dist/structure/build.d.ts.map +1 -1
  183. package/dist/structure/build.js +19 -9
  184. package/dist/structure/build.js.map +1 -1
  185. package/dist/structure/date-order.d.ts +3 -0
  186. package/dist/structure/date-order.d.ts.map +1 -1
  187. package/dist/structure/date-order.js +9 -1
  188. package/dist/structure/date-order.js.map +1 -1
  189. package/dist/structure/issues.d.ts +1 -1
  190. package/dist/structure/issues.d.ts.map +1 -1
  191. package/dist/structure/issues.js +14 -3
  192. package/dist/structure/issues.js.map +1 -1
  193. package/dist/structure/listed-tags.d.ts +3 -0
  194. package/dist/structure/listed-tags.d.ts.map +1 -0
  195. package/dist/structure/listed-tags.js +6 -0
  196. package/dist/structure/listed-tags.js.map +1 -0
  197. package/dist/structure/number-in-sentence.d.ts +15 -0
  198. package/dist/structure/number-in-sentence.d.ts.map +1 -0
  199. package/dist/structure/number-in-sentence.js +13 -0
  200. package/dist/structure/number-in-sentence.js.map +1 -0
  201. package/dist/structure/unit-word.d.ts +8 -0
  202. package/dist/structure/unit-word.d.ts.map +1 -0
  203. package/dist/structure/unit-word.js +10 -0
  204. package/dist/structure/unit-word.js.map +1 -0
  205. package/dist/structure/wrapped-tail.d.ts +18 -0
  206. package/dist/structure/wrapped-tail.d.ts.map +1 -0
  207. package/dist/structure/wrapped-tail.js +11 -0
  208. package/dist/structure/wrapped-tail.js.map +1 -0
  209. package/package.json +3 -3
  210. package/rules/dangling-reference.yaml +2 -2
  211. package/rules/date-order.yaml +2 -2
  212. package/rules/latin-spacing.yaml +4 -2
  213. package/rules/max-kanji-continuous.yaml +1 -1
  214. package/rules/no-doubled-joshi.yaml +2 -2
  215. package/rules/title-case-consistency.yaml +2 -2
  216. package/rules/undefined-acronym.yaml +14 -1
  217. package/rules/unqualified-superlative.yaml +1 -1
  218. package/src/address-chain.ts +5 -2
  219. package/src/cli-text.ts +19 -3
  220. package/src/cli.ts +22 -19
  221. package/src/commands/eval.ts +26 -5
  222. package/src/commands/feedback.ts +2 -1
  223. package/src/commands/test.ts +3 -2
  224. package/src/commands/tree.ts +2 -1
  225. package/src/detectors/acronym-compound.ts +9 -0
  226. package/src/detectors/acronym-context.ts +22 -1
  227. package/src/detectors/acronym-expansion.ts +72 -5
  228. package/src/detectors/char-shape.ts +42 -14
  229. package/src/detectors/citation-key.ts +13 -0
  230. package/src/detectors/cited-name.ts +23 -0
  231. package/src/detectors/concrete-evidence.ts +31 -0
  232. package/src/detectors/counter-edge.ts +29 -0
  233. package/src/detectors/dotted-name.ts +14 -0
  234. package/src/detectors/doubled-word.ts +25 -2
  235. package/src/detectors/en-shape.ts +17 -30
  236. package/src/detectors/gram-place.ts +8 -1
  237. package/src/detectors/gram-predicate.ts +55 -0
  238. package/src/detectors/heading-case.ts +41 -0
  239. package/src/detectors/heading-echo.ts +5 -1
  240. package/src/detectors/lexicon.ts +8 -5
  241. package/src/detectors/name-numeral.ts +37 -0
  242. package/src/detectors/name-part.ts +24 -0
  243. package/src/detectors/name-run.ts +16 -0
  244. package/src/detectors/orthography.ts +17 -8
  245. package/src/detectors/placeholder.ts +38 -0
  246. package/src/detectors/quoted-variant.ts +20 -0
  247. package/src/detectors/series-label.ts +33 -0
  248. package/src/detectors/signals.ts +35 -30
  249. package/src/detectors/structure-tree.ts +2 -2
  250. package/src/detectors/superlative-name.ts +30 -0
  251. package/src/detectors/token-shape.ts +12 -3
  252. package/src/document.ts +12 -5
  253. package/src/genre-check.ts +46 -0
  254. package/src/genre.ts +34 -5
  255. package/src/init.ts +0 -13
  256. package/src/joined-view.ts +96 -0
  257. package/src/line-continues.ts +43 -0
  258. package/src/measure.ts +9 -1
  259. package/src/number-name.ts +35 -13
  260. package/src/orthography.ts +15 -9
  261. package/src/plain-source.ts +5 -0
  262. package/src/plugin.ts +21 -2
  263. package/src/quoted-span.ts +25 -0
  264. package/src/render/eval.ts +101 -38
  265. package/src/resolve-genre.ts +20 -0
  266. package/src/soft-break.ts +94 -0
  267. package/src/structure/build.ts +19 -10
  268. package/src/structure/date-order.ts +16 -1
  269. package/src/structure/issues.ts +18 -3
  270. package/src/structure/listed-tags.ts +7 -0
  271. package/src/structure/number-in-sentence.ts +20 -0
  272. package/src/structure/unit-word.ts +11 -0
  273. package/src/structure/wrapped-tail.ts +22 -0
@@ -0,0 +1,24 @@
1
+ /** 記号(最高!)は名詞と付いても語を作らない。 */
2
+ const LETTER = /\p{L}/u;
3
+ const joinsAsNoun = (previous, token) => token !== undefined && token.pos === "NOUN" && LETTER.test(token.surface) && previous.span.end === token.span.start;
4
+ /** 空白も助詞も挟まずに続く名詞の連なり(最大|瞬間|風速)の最後の語。連なりが無ければ undefined。 */
5
+ const lastJoined = (tokens, at) => {
6
+ const previous = tokens[at - 1];
7
+ const token = tokens[at];
8
+ if (previous === undefined || !joinsAsNoun(previous, token))
9
+ return undefined;
10
+ return lastJoined(tokens, at + 1) ?? token;
11
+ };
12
+ const measures = (noun, quantities) => quantities.some((entry) => entry.pattern === noun.surface);
13
+ /**
14
+ * 最上級の名詞がそのまま名詞と 1 語になり、その連なりが測る量の名詞で終わるか(最大風速・最高気温・最大値・最大駐車台数)。
15
+ * これは量の名前で、何かが一番だという主張ではない。「最大の効果」「最も速い」は助詞や用言を挟むので当たらない。
16
+ * ほかの名詞で終わる語(最高品質・最高精度・最大効果)は一番だという主張のまま。量の名詞は言語パッケージの語彙表が持つ。
17
+ */
18
+ export const namesQuantity = (tokens, range, quantities) => {
19
+ const superlative = tokens[range.start];
20
+ const single = range.end - range.start === 1 && superlative?.pos === "NOUN";
21
+ const last = single ? lastJoined(tokens, range.end) : undefined;
22
+ return last !== undefined && measures(last, quantities);
23
+ };
24
+ //# sourceMappingURL=superlative-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superlative-name.js","sourceRoot":"","sources":["../../src/detectors/superlative-name.ts"],"names":[],"mappings":"AAGA,6BAA6B;AAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,QAAe,EAAE,KAAwB,EAAkB,EAAE,CAChF,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtH,4DAA4D;AAC5D,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAU,EAAqB,EAAE;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAW,EAAE,UAAmB,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;AAE3H;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAwB,EAAE,KAAiB,EAAE,UAAmB,EAAW,EAAE;IACzG,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,WAAW,EAAE,GAAG,KAAK,MAAM,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,OAAO,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/token-shape.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,cAAc,CAAC;AAanE,eAAO,MAAM,UAAU,EAAE,QAmBxB,CAAC;AAiCF,eAAO,MAAM,eAAe,EAAE,QAc7B,CAAC"}
1
+ {"version":3,"file":"token-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/token-shape.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,cAAc,CAAC;AAa7E,eAAO,MAAM,UAAU,EAAE,QAmBxB,CAAC;AAyCF,eAAO,MAAM,eAAe,EAAE,QAc7B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { hasParticle, isClosed, lastContent } from "../sentence-shape.js";
2
+ import { isWithinAny, quotedSpans } from "../quoted-span.js";
2
3
  /**
3
4
  * 文末が名詞で終わる(体言止め)。箇条書きでは普通だが、本文では文が途中で切れて読める。
4
5
  * 実文書で測ったら、指摘の 9 割が箇条書きの項目だった。箇条書きは除く。
@@ -40,15 +41,22 @@ const BREAK = { surface: "", tokens: [] };
40
41
  /**
41
42
  * 名詞は連なりの中身なので飛ばす。読点と、語彙表に無い助詞は連なりを切る。
42
43
  * 「弊社のAはBの」を 2 回続いたと数えないため。「は」でいちど句が閉じている。
44
+ *
45
+ * 鉤括弧で引いたもの(括弧ごと)は、名詞と同じく連なりの中身として飛ばす。引いた題名(「食品中のウイルスの制御のための…ガイドライン」)や
46
+ * 発言は書き手が言い換えられないので、中の助詞は数えない。題名も名前なので、外の連なり(弊社の「新製品」の販売の計画)は続けて数える。
43
47
  */
44
- const runsOf = (tokens, nesting) => tokens.reduce((acc, token) => {
48
+ const runsOf = (tokens, nesting, quoted) => tokens.reduce((acc, token) => {
49
+ if (isWithinAny(quoted, token.span))
50
+ return acc;
45
51
  if (nesting.includes(token.surface))
46
52
  return extend(acc, token);
47
53
  return token.pos === "PUNCT" || PARTICLE.has(token.pos) ? [...acc, BREAK] : acc;
48
54
  }, []);
55
+ /** 文の中の、鉤括弧で引いたものを括弧ごと、文書全体の座標で。 */
56
+ const quotedIn = (sentence) => quotedSpans(sentence.text).map((span) => ({ start: sentence.span.start + span.start - 1, end: sentence.span.start + span.end + 1 }));
49
57
  export const doubledParticle = (doc, options) => {
50
58
  const nesting = (options.lexicon ?? []).map((entry) => entry.pattern);
51
- return doc.sentences.flatMap((sentence) => runsOf(sentence.tokens ?? [], nesting)
59
+ return doc.sentences.flatMap((sentence) => runsOf(sentence.tokens ?? [], nesting, quotedIn(sentence))
52
60
  .filter((run) => run.tokens.length > options.limit)
53
61
  .map((run) => ({
54
62
  rule: "no-doubled-joshi",
@@ -1 +1 @@
1
- {"version":3,"file":"token-shape.js","sourceRoot":"","sources":["../../src/detectors/token-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-shape.js","sourceRoot":"","sources":["../../src/detectors/token-shape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAQA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAc,eAAe,EAAa,aAAa,EAA0C,eAAe,EAAE,MAAM,aAAa,CAAC;AAuHlJ,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AA8GtH,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,CAAC;AAIF,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,KAAG,SAIF,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,SAAS,eAAe,EACxB,OAAM,SAAsB,EAC5B,UAAS,eAAe,GAAG,SAAqB,KAC/C,aA0DF,CAAC;AAUF,6CAA6C;AAC7C,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAA2C,CAAC"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAc,eAAe,EAAa,aAAa,EAA0C,eAAe,EAAE,MAAM,aAAa,CAAC;AAuHlJ,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAgHtH,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,CAAC;AAIF,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD,KAAG,SAIF,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,SAAS,eAAe,EACxB,OAAM,SAAsB,EAC5B,UAAS,eAAe,GAAG,SAAqB,KAC/C,aA6DF,CAAC;AAUF,6CAA6C;AAC7C,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAA2C,CAAC"}
package/dist/document.js CHANGED
@@ -6,6 +6,8 @@ import { frontmatterFromMarkdown } from "mdast-util-frontmatter";
6
6
  import { atxHeadingText, headingText } from "./heading-text.js";
7
7
  import { hasTitle } from "./heading-title.js";
8
8
  import { maskSpans } from "./mask.js";
9
+ import { spansWithin, unmaskedSoftBreaks } from "./soft-break.js";
10
+ import { segmentJoined } from "./joined-view.js";
9
11
  import { buildTree } from "./structure/build.js";
10
12
  import { isMarkdownPath } from "./structure/markdown-path.js";
11
13
  import { pageFurniture, textOutline } from "./page-furniture.js";
@@ -165,13 +167,14 @@ const spansOfType = (root, type, keep = () => true) => {
165
167
  * ここで切れば構造的に起きない。
166
168
  */
167
169
  const shift = (span, by) => ({ start: by + span.start, end: by + span.end });
168
- const sentencesOf = (prose, paragraphs, adapter) => paragraphs.flatMap((paragraph) => adapter
169
- .segment(prose.slice(paragraph.start, paragraph.end))
170
- .sentences.filter((sentence) => sentence.text.trim().length > 0)
170
+ const breaksWithin = (breaks, paragraph) => spansWithin(breaks, paragraph).map((span) => shift(span, -paragraph.start));
171
+ const sentencesOf = (prose, paragraphs, adapter, softBreaks) => paragraphs.flatMap((paragraph) => segmentJoined(prose.slice(paragraph.start, paragraph.end), breaksWithin(softBreaks, paragraph), (text) => adapter.segment(text))
172
+ .filter((sentence) => sentence.text.trim().length > 0)
171
173
  .map((sentence) => ({
172
174
  span: shift(sentence.span, paragraph.start),
173
175
  text: sentence.text,
174
176
  ...(sentence.tokens === undefined ? {} : { tokens: sentence.tokens.map((token) => ({ ...token, span: shift(token.span, paragraph.start) })) }),
177
+ ...(sentence.wrapBreaks === undefined ? {} : { wrapBreaks: sentence.wrapBreaks.map((span) => shift(span, paragraph.start)) }),
175
178
  })));
176
179
  const sectionsOf = (headings, sentences, strongs, length) => {
177
180
  const bounds = headings.map((heading, index) => ({ heading, from: heading.end, to: headings[index + 1]?.start ?? length }));
@@ -232,7 +235,9 @@ export const buildDocument = (path, source, adapter, team = EMPTY_TEAM, profile
232
235
  // ページの案内は段落としても数えない。数えると、目次の行が「本題までの段落」に入る。
233
236
  const paragraphSpans = spansOfType(root, "paragraph", (node) => !isInPageNavigation(node, anchors));
234
237
  const listItems = spansOfType(root, "listItem");
235
- const sentences = sentencesOf(prose, paragraphSpans, adapter);
238
+ // Markdown は段落を流し込んで表示するので、段落の中の改行は読み手に見えない。テキストの文書は行をそのまま見せる(法令は 1 行 1 号)。
239
+ const softBreaks = isMarkdownPath(path) ? unmaskedSoftBreaks(source, prose) : [];
240
+ const sentences = sentencesOf(prose, paragraphSpans, adapter, softBreaks);
236
241
  const lexicons = {
237
242
  ...adapter.lexicons,
238
243
  "internal-jargon": team.jargon.map((pattern) => ({ pattern })),
@@ -254,6 +259,7 @@ export const buildDocument = (path, source, adapter, team = EMPTY_TEAM, profile
254
259
  listSpans: listItems,
255
260
  paragraphs: paragraphsOf(paragraphSpans, sentences, listItems),
256
261
  lists: listsOf(root, source, anchors),
262
+ links: [...spansOfType(root, "link"), ...spansOfType(root, "linkReference")],
257
263
  lexicons: tagged ? tokenizedLexicons(lexicons, adapter) : lexicons,
258
264
  requiredSections: team.requiredSections,
259
265
  // 構造の rule(参照先が無い・番号の抜け)が読む木。どの rule も読まなければ作らない。何万行の契約書で、他の rule の lint に代金を払わせない。
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** Where a genre was set: the command line, chaff.yaml's genre, or one of its by_path entries. */
2
+ export type GenreSetting = "--genre" | "config" | "by_path";
3
+ type UnknownGenre = {
4
+ readonly where: GenreSetting;
5
+ readonly genre: string;
6
+ /** The by_path entry's files, so the message can say which entry; empty elsewhere. */
7
+ readonly files: readonly string[];
8
+ };
9
+ type PathGenre = {
10
+ readonly files: readonly string[];
11
+ readonly genre: string | undefined;
12
+ };
13
+ type WrittenGenres = {
14
+ readonly flag: string | undefined;
15
+ readonly config: string | undefined;
16
+ readonly byPath: readonly PathGenre[];
17
+ };
18
+ /** The genres a command would read: --genre always (every command refuses a wrong one), chaff.yaml's only where the command reads a genre. */
19
+ export declare const writtenGenres: (command: string, flag: string | undefined, config: {
20
+ readonly genre: string | undefined;
21
+ readonly byPath: readonly PathGenre[];
22
+ }) => WrittenGenres;
23
+ /**
24
+ * Every genre a setting names that chaff does not know: no rule's use_for matches one, so nothing would run and nothing be listed as not run.
25
+ * All of them, not only the one a file would use, because a wrong setting is wrong for every file.
26
+ */
27
+ export declare const unknownGenres: (written: WrittenGenres, known: readonly string[]) => UnknownGenre[];
28
+ /**
29
+ * The front matter's genre that was not read. Front matter is the document's and often another tool's, so this warns and does not stop:
30
+ * the file falls back to the path, the content or the default. type is not looked at (Zenn's tech / idea mean something else).
31
+ */
32
+ export declare const unknownFrontMatterGenre: (source: string, known: readonly string[]) => string | undefined;
33
+ export {};
34
+ //# sourceMappingURL=genre-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genre-check.d.ts","sourceRoot":"","sources":["../src/genre-check.ts"],"names":[],"mappings":"AAEA,kGAAkG;AAClG,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5D,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,KAAK,SAAS,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE3F,KAAK,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,CAAC;AAKvI,8IAA8I;AAC9I,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,MAAM,MAAM,GAAG,SAAS,EACxB,QAAQ;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,KACpF,aAA4I,CAAC;AAKhJ;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,aAAa,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,YAAY,EAK1C,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SACA,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { frontMatterValues } from "./genre.js";
2
+ /** Commands that never read a genre from chaff.yaml. A wrong one there must not stop them: genres is how to find the right name. */
3
+ const GENRE_FREE = new Set(["init", "genres", "skill", "relax", "strict", "off", "tree", "cite"]);
4
+ /** The genres a command would read: --genre always (every command refuses a wrong one), chaff.yaml's only where the command reads a genre. */
5
+ export const writtenGenres = (command, flag, config) => (GENRE_FREE.has(command) ? { flag, config: undefined, byPath: [] } : { flag, config: config.genre, byPath: config.byPath });
6
+ const setting = (where, genre, files = []) => genre === undefined ? [] : [{ where, genre, files }];
7
+ /**
8
+ * Every genre a setting names that chaff does not know: no rule's use_for matches one, so nothing would run and nothing be listed as not run.
9
+ * All of them, not only the one a file would use, because a wrong setting is wrong for every file.
10
+ */
11
+ export const unknownGenres = (written, known) => [
12
+ ...setting("--genre", written.flag),
13
+ ...setting("config", written.config),
14
+ ...written.byPath.flatMap((entry) => setting("by_path", entry.genre, entry.files)),
15
+ ].filter((entry) => !known.includes(entry.genre));
16
+ /**
17
+ * The front matter's genre that was not read. Front matter is the document's and often another tool's, so this warns and does not stop:
18
+ * the file falls back to the path, the content or the default. type is not looked at (Zenn's tech / idea mean something else).
19
+ */
20
+ export const unknownFrontMatterGenre = (source, known) => frontMatterValues(source, "genre").find((value) => value !== "" && !known.includes(value));
21
+ //# sourceMappingURL=genre-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genre-check.js","sourceRoot":"","sources":["../src/genre-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgB/C,oIAAoI;AACpI,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvH,8IAA8I;AAC9I,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAe,EACf,IAAwB,EACxB,MAAqF,EACtE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAEhJ,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,KAAyB,EAAE,QAA2B,EAAE,EAAkB,EAAE,CAChH,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,KAAwB,EAAkB,EAAE,CAChG;IACE,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;IACnC,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;IACpC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACnF,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,KAAwB,EAAsB,EAAE,CACtG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC"}
package/dist/genre.d.ts CHANGED
@@ -1,8 +1,15 @@
1
+ /** chaff が知っているジャンル。rule の use_for はこの頭の部分で当てる。 */
2
+ export declare const GENRES: readonly string[];
1
3
  export type GenreGuess = {
2
4
  readonly genre: string;
3
5
  readonly from: "front-matter" | "path" | "content";
4
6
  };
5
7
  export declare const guessGenre: (path: string, source: string, front: string | undefined) => GenreGuess | undefined;
6
- /** front matter の genre / type を拾う。失敗しても落とさない。 */
8
+ /** front matter の 1 つの欄に書かれた値。front matter が無ければ空。 */
9
+ export declare const frontMatterValues: (source: string, key: string) => string[];
10
+ /**
11
+ * front matter の genre / type を拾う。失敗しても落とさない。genre が type より先。
12
+ * 知っているジャンルだけを返す。Zenn の type(tech / idea)のような別の意味の値をジャンルにすると、どの rule も当てはまらず「指摘なし」になる。
13
+ */
7
14
  export declare const frontMatterGenre: (source: string) => string | undefined;
8
15
  //# sourceMappingURL=genre.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genre.d.ts","sourceRoot":"","sources":["../src/genre.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AA4BxG,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,GAAG,SAAS,KAAG,UAAU,GAAG,SAOjG,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAI1D,CAAC"}
1
+ {"version":3,"file":"genre.d.ts","sourceRoot":"","sources":["../src/genre.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,eAAO,MAAM,MAAM,EAAE,SAAS,MAAM,EAWnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AA4BxG,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,GAAG,SAAS,KAAG,UAAU,GAAG,SAOjG,CAAC;AAWF,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAGrE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAC4D,CAAC"}
package/dist/genre.js CHANGED
@@ -1,3 +1,16 @@
1
+ /** chaff が知っているジャンル。rule の use_for はこの頭の部分で当てる。 */
2
+ export const GENRES = [
3
+ "technical/spec",
4
+ "technical/readme",
5
+ "blog/tech",
6
+ "blog/essay",
7
+ "blog/owned-media",
8
+ "business/proposal",
9
+ "business/report",
10
+ "business/email",
11
+ "business/press-release",
12
+ "business/meeting-notes",
13
+ ];
1
14
  /**
2
15
  * 仕様書・README は「読ませる文章」ではなく「間違えさせない文章」。
3
16
  * 書き出しのつかみもリズムも要らない。技術文書として別に見る。
@@ -33,10 +46,21 @@ export const guessGenre = (path, source, front) => {
33
46
  return { genre: byContent[1], from: "content" };
34
47
  return undefined;
35
48
  };
36
- /** front matter の genre / type を拾う。失敗しても落とさない。 */
37
- export const frontMatterGenre = (source) => {
38
- const match = /^---\n([\s\S]*?)\n---/u.exec(source);
39
- const line = match?.[1] === undefined ? undefined : /^(?:genre|type):\s*(\S+)\s*$/mu.exec(match[1]);
40
- return line?.[1];
49
+ /** YAML の 1 行の値。行末のコメントと、値を囲む引用符を外す。 */
50
+ const scalarOf = (raw) => {
51
+ const comment = raw.search(/\s#/u);
52
+ const value = (comment === -1 ? raw : raw.slice(0, comment)).trim();
53
+ return /^(["'])(.*)\1$/u.exec(value)?.[2] ?? value;
54
+ };
55
+ const valuesOf = (block, key) => [...block.matchAll(new RegExp(`^${key}:(.*)$`, "gmu"))].map((line) => scalarOf(line[1] ?? ""));
56
+ /** front matter の 1 つの欄に書かれた値。front matter が無ければ空。 */
57
+ export const frontMatterValues = (source, key) => {
58
+ const block = /^---\n([\s\S]*?)\n---/u.exec(source)?.[1];
59
+ return block === undefined ? [] : valuesOf(block, key);
41
60
  };
61
+ /**
62
+ * front matter の genre / type を拾う。失敗しても落とさない。genre が type より先。
63
+ * 知っているジャンルだけを返す。Zenn の type(tech / idea)のような別の意味の値をジャンルにすると、どの rule も当てはまらず「指摘なし」になる。
64
+ */
65
+ export const frontMatterGenre = (source) => [...frontMatterValues(source, "genre"), ...frontMatterValues(source, "type")].find((value) => GENRES.includes(value));
42
66
  //# sourceMappingURL=genre.js.map
package/dist/genre.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"genre.js","sourceRoot":"","sources":["../src/genre.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,GAA2C;IACtD,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;IAC3C,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACtC,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;IAC5C,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;IACrD,CAAC,8BAA8B,EAAE,wBAAwB,CAAC;IAC1D,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;IAC3C,CAAC,mCAAmC,EAAE,WAAW,CAAC;IAClD,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAA2C;IACzD,CAAC,gDAAgD,EAAE,wBAAwB,CAAC;IAC5E,CAAC,4CAA4C,EAAE,wBAAwB,CAAC;IACxE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,KAAyB,EAA0B,EAAE;IAC5G,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpE,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7E,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAsB,EAAE;IACrE,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"genre.js","sourceRoot":"","sources":["../src/genre.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  import type { UiLanguage } from "./ui.ts";
2
2
  export declare const runInit: (dir: string, genre: string, ui?: UiLanguage) => string[];
3
- export declare const GENRES: readonly string[];
4
3
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AA4GjD,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,KAAI,UAAiB,KAAG,MAAM,EAgBjF,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,SAAS,MAAM,EAWnC,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AA4GjD,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,KAAI,UAAiB,KAAG,MAAM,EAgBjF,CAAC"}
package/dist/init.js CHANGED
@@ -110,16 +110,4 @@ export const runInit = (dir, genre, ui = "ja") => {
110
110
  "",
111
111
  ];
112
112
  };
113
- export const GENRES = [
114
- "technical/spec",
115
- "technical/readme",
116
- "blog/tech",
117
- "blog/essay",
118
- "blog/owned-media",
119
- "business/proposal",
120
- "business/report",
121
- "business/email",
122
- "business/press-release",
123
- "business/meeting-notes",
124
- ];
125
113
  //# sourceMappingURL=init.js.map
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Segmentation, Sentence, Span } from "./plugin.ts";
2
+ /**
3
+ * 消える改行を取り除いた文字列と、その上の範囲を元の文字列の範囲に戻す写像。
4
+ *
5
+ * 解析はつないだ文字列で行い、指摘の位置は元の文字列で出す。行・列も、引用して見せる範囲も、元の文書のまま。
6
+ */
7
+ export type JoinedView = {
8
+ readonly text: string;
9
+ readonly toSource: (span: Span) => Span;
10
+ };
11
+ /**
12
+ * 始まりは、そこで取り除いた改行の後ろ(次の文字)へ。終わりは、そこで取り除いた改行の手前へ。
13
+ * 改行をまたぐ語(「関\nする」)は、改行ごと覆う範囲になる。
14
+ */
15
+ export declare const joinedView: (text: string, breaks: readonly Span[]) => JoinedView;
16
+ type Segment = (text: string) => Segmentation;
17
+ /**
18
+ * 消える改行を、行が続いていると言えるものだけ除いて segment する。
19
+ * 一度すべて除いて解析し、その語で決めて、残す改行があれば読み直す。
20
+ * 語が無ければ(品詞を読まない adapter)決められないので、前と同じく改行ごと渡す。
21
+ * 除く改行が無ければ segment の結果をそのまま返す。つながない段落の文は、前と同じものになる。
22
+ */
23
+ export declare const segmentJoined: (text: string, breaks: readonly Span[], segment: Segment) => readonly Sentence[];
24
+ export {};
25
+ //# sourceMappingURL=joined-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joined-view.d.ts","sourceRoot":"","sources":["../src/joined-view.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAS,MAAM,aAAa,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CAAE,CAAC;AA4B5F;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,SAAS,IAAI,EAAE,KAAG,UAQlE,CAAC;AAiBF,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;AAe9C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,QAAQ,SAAS,IAAI,EAAE,EAAE,SAAS,OAAO,KAAG,SAAS,QAAQ,EAQxG,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { spansWithin, withoutSpans } from "./soft-break.js";
2
+ import { continuedBreaks, wrapBreaks } from "./line-continues.js";
3
+ /** 取り除いた各範囲が、つないだ文字列のどこにあったか。removedBefore はそこまでに取り除いた長さ(その範囲を含む)。 */
4
+ const removedPlaces = (breaks) => {
5
+ const places = [];
6
+ breaks.reduce((before, span) => {
7
+ const removedBefore = before + span.end - span.start;
8
+ places.push({ at: span.start - before, removedBefore });
9
+ return removedBefore;
10
+ }, 0);
11
+ return places;
12
+ };
13
+ /** at が offset 以下(inclusive)または未満の、最後の範囲までに取り除いた長さ。places は at の昇順。 */
14
+ const removedUpTo = (places, offset, inclusive) => {
15
+ const search = (low, high, found) => {
16
+ if (low > high)
17
+ return found;
18
+ const middle = (low + high) >> 1;
19
+ const place = places[middle];
20
+ if (place === undefined)
21
+ return found;
22
+ const reached = inclusive ? place.at <= offset : place.at < offset;
23
+ return reached ? search(middle + 1, high, place.removedBefore) : search(low, middle - 1, found);
24
+ };
25
+ return search(0, places.length - 1, 0);
26
+ };
27
+ /**
28
+ * 始まりは、そこで取り除いた改行の後ろ(次の文字)へ。終わりは、そこで取り除いた改行の手前へ。
29
+ * 改行をまたぐ語(「関\nする」)は、改行ごと覆う範囲になる。
30
+ */
31
+ export const joinedView = (text, breaks) => {
32
+ const places = removedPlaces(breaks);
33
+ const toSource = (span) => {
34
+ const start = span.start + removedUpTo(places, span.start, true);
35
+ const end = span.end + removedUpTo(places, span.end, false);
36
+ return { start, end: Math.max(start, end) };
37
+ };
38
+ return { text: withoutSpans(text, breaks), toSource };
39
+ };
40
+ const tokenInSource = (view) => (token) => ({ ...token, span: view.toSource(token.span) });
41
+ const sentenceInSource = (text, view) => (sentence) => {
42
+ const span = view.toSource(sentence.span);
43
+ return {
44
+ span,
45
+ text: text.slice(span.start, span.end),
46
+ ...(sentence.tokens === undefined ? {} : { tokens: sentence.tokens.map(tokenInSource(view)) }),
47
+ };
48
+ };
49
+ /** breaks を除いて segment し、文と語の範囲を text の上に戻す。文の text は元の文字列の切り出しのまま。 */
50
+ const segmentWithout = (text, breaks, segment) => {
51
+ const view = joinedView(text, breaks);
52
+ return segment(view.text).sentences.map(sentenceInSource(text, view));
53
+ };
54
+ const withWrapBreaks = (sentence, wrapped) => {
55
+ const inside = spansWithin(wrapped, sentence.span);
56
+ return inside.length === 0 ? sentence : { ...sentence, wrapBreaks: inside };
57
+ };
58
+ const tokensOf = (sentences) => sentences.flatMap((sentence) => sentence.tokens ?? []);
59
+ /**
60
+ * 消える改行を、行が続いていると言えるものだけ除いて segment する。
61
+ * 一度すべて除いて解析し、その語で決めて、残す改行があれば読み直す。
62
+ * 語が無ければ(品詞を読まない adapter)決められないので、前と同じく改行ごと渡す。
63
+ * 除く改行が無ければ segment の結果をそのまま返す。つながない段落の文は、前と同じものになる。
64
+ */
65
+ export const segmentJoined = (text, breaks, segment) => {
66
+ if (breaks.length === 0)
67
+ return segment(text).sentences;
68
+ const joined = segmentWithout(text, breaks, segment);
69
+ const kept = continuedBreaks(breaks, tokensOf(joined));
70
+ if (kept.length === 0)
71
+ return segment(text).sentences;
72
+ const sentences = kept.length === breaks.length ? joined : segmentWithout(text, kept, segment);
73
+ const wrapped = wrapBreaks(kept, tokensOf(sentences));
74
+ return sentences.map((sentence) => withWrapBreaks(sentence, wrapped));
75
+ };
76
+ //# sourceMappingURL=joined-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joined-view.js","sourceRoot":"","sources":["../src/joined-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Span, Token } from "./plugin.ts";
2
+ /** 解析器が語の途中に置いた改行。語をまたぐなら、行を折り返しただけ。 */
3
+ export declare const wrapBreaks: (breaks: readonly Span[], tokens: readonly Token[]) => Span[];
4
+ /** 行が続いている改行: 語をまたぐものと、句を閉じない語の直後にあるもの。 */
5
+ export declare const continuedBreaks: (breaks: readonly Span[], tokens: readonly Token[]) => Span[];
6
+ //# sourceMappingURL=line-continues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-continues.d.ts","sourceRoot":"","sources":["../src/line-continues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAuB/C,wCAAwC;AACxC,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,IAAI,EAAE,EAAE,QAAQ,SAAS,KAAK,EAAE,KAAG,IAAI,EAGlF,CAAC;AAUF,2CAA2C;AAC3C,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,IAAI,EAAE,EAAE,QAAQ,SAAS,KAAK,EAAE,KAAG,IAAI,EAGvF,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { firstEndingAfter } from "./soft-break.js";
2
+ /**
3
+ * 消える改行のうち、どれを消して読むか。決めるのは解析器が読んだ語(全部の改行を消して読んだもの)。
4
+ *
5
+ * Markdown の段落は改行を消して表示されるが、書いた人は改行で区切ったつもりのことがある。
6
+ * 番号だけの見出しの行(「2.1 注文の登録\n登録は」)、宛先や署名を 1 行に 1 つ書いた並び。
7
+ * そこを消して読むと「登録登録」が語の重なりになる。行が続いていると語で言えるときだけ消す。
8
+ */
9
+ const inside = (token, part) => token !== undefined && token.span.start < part.start && token.span.end > part.end;
10
+ /** 各改行の位置で、改行をまたぐ語(あれば)と、改行の直前で終わる語。tokens は並び順(重ならない)。 */
11
+ const aroundEach = (breaks, tokens) => {
12
+ const spans = tokens.map((token) => token.span);
13
+ return breaks.map((part) => {
14
+ const at = firstEndingAfter(spans, part.start);
15
+ return { across: tokens[at], before: tokens[at - 1] };
16
+ });
17
+ };
18
+ /** 解析器が語の途中に置いた改行。語をまたぐなら、行を折り返しただけ。 */
19
+ export const wrapBreaks = (breaks, tokens) => {
20
+ const around = aroundEach(breaks, tokens);
21
+ return breaks.filter((part, index) => inside(around[index]?.across, part));
22
+ };
23
+ /** 句を閉じない語。助詞・接続助詞・接続詞で終わる行は、次の行へ続く。 */
24
+ const CONTINUING_POS = new Set(["ADP", "SCONJ", "CCONJ"]);
25
+ /** 読点で終わる行も続く。句点・括弧・名詞で終わる行は、見出しや 1 行 1 項目の終わりと見分けられない。 */
26
+ const COMMAS = new Set(["、", ","]);
27
+ const continuesPast = (token, part) => token !== undefined && token.span.end === part.start && (CONTINUING_POS.has(token.pos) || COMMAS.has(token.surface));
28
+ /** 行が続いている改行: 語をまたぐものと、句を閉じない語の直後にあるもの。 */
29
+ export const continuedBreaks = (breaks, tokens) => {
30
+ const around = aroundEach(breaks, tokens);
31
+ return breaks.filter((part, index) => inside(around[index]?.across, part) || continuesPast(around[index]?.before, part));
32
+ };
33
+ //# sourceMappingURL=line-continues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-continues.js","sourceRoot":"","sources":["../src/line-continues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;;;;;GAMG;AAEH,MAAM,MAAM,GAAG,CAAC,KAAwB,EAAE,IAAU,EAAW,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAIpJ,2DAA2D;AAC3D,MAAM,UAAU,GAAG,CAAC,MAAuB,EAAE,MAAwB,EAAY,EAAE;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAuB,EAAE,MAAwB,EAAU,EAAE;IACtF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,wCAAwC;AACxC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,2DAA2D;AAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnC,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,IAAU,EAAW,EAAE,CACtE,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAuB,EAAE,MAAwB,EAAU,EAAE;IAC3F,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3H,CAAC,CAAC"}
package/dist/measure.d.ts CHANGED
@@ -8,6 +8,7 @@ import type { Sentence } from "./plugin.ts";
8
8
  *
9
9
  * 日本語は文字数、英語は語数。単位は adapter が宣言する。
10
10
  */
11
+ /** 語の途中で折り返した改行(wrapBreaks)は空白にせず除く。「関\nする」を「関 する」と読まない。 */
11
12
  export declare const proseText: (sentence: Sentence) => string;
12
13
  export declare const charLength: (sentence: Sentence) => number;
13
14
  export declare const lengthOf: (sentence: Sentence, unit: "char" | "word") => number;
@@ -1 +1 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,QAAQ,KAAG,MAAoD,CAAC;AAEpG,eAAO,MAAM,UAAU,GAAI,UAAU,QAAQ,KAAG,MAAmD,CAAC;AAOpG,eAAO,MAAM,QAAQ,GAAI,UAAU,QAAQ,EAAE,MAAM,MAAM,GAAG,MAAM,KAAG,MAAyE,CAAC"}
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;GAQG;AACH,4DAA4D;AAC5D,eAAO,MAAM,SAAS,GAAI,UAAU,QAAQ,KAAG,MAMpC,CAAC;AAEZ,eAAO,MAAM,UAAU,GAAI,UAAU,QAAQ,KAAG,MAAmD,CAAC;AAOpG,eAAO,MAAM,QAAQ,GAAI,UAAU,QAAQ,EAAE,MAAM,MAAM,GAAG,MAAM,KAAG,MAAyE,CAAC"}