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.
- package/dist/address-chain.d.ts +4 -1
- package/dist/address-chain.d.ts.map +1 -1
- package/dist/address-chain.js +5 -2
- package/dist/address-chain.js.map +1 -1
- package/dist/cli-text.d.ts +4 -1
- package/dist/cli-text.d.ts.map +1 -1
- package/dist/cli-text.js +14 -2
- package/dist/cli-text.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -21
- package/dist/cli.js.map +1 -1
- package/dist/commands/eval.d.ts +4 -0
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +20 -6
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +2 -1
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +3 -2
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/tree.d.ts.map +1 -1
- package/dist/commands/tree.js +2 -1
- package/dist/commands/tree.js.map +1 -1
- package/dist/detectors/acronym-compound.d.ts +8 -0
- package/dist/detectors/acronym-compound.d.ts.map +1 -0
- package/dist/detectors/acronym-compound.js +8 -0
- package/dist/detectors/acronym-compound.js.map +1 -0
- package/dist/detectors/acronym-context.d.ts +4 -0
- package/dist/detectors/acronym-context.d.ts.map +1 -1
- package/dist/detectors/acronym-context.js +17 -1
- package/dist/detectors/acronym-context.js.map +1 -1
- package/dist/detectors/acronym-expansion.d.ts +10 -0
- package/dist/detectors/acronym-expansion.d.ts.map +1 -1
- package/dist/detectors/acronym-expansion.js +63 -5
- package/dist/detectors/acronym-expansion.js.map +1 -1
- package/dist/detectors/char-shape.d.ts.map +1 -1
- package/dist/detectors/char-shape.js +36 -14
- package/dist/detectors/char-shape.js.map +1 -1
- package/dist/detectors/citation-key.d.ts +13 -0
- package/dist/detectors/citation-key.d.ts.map +1 -0
- package/dist/detectors/citation-key.js +9 -0
- package/dist/detectors/citation-key.js.map +1 -0
- package/dist/detectors/cited-name.d.ts +11 -0
- package/dist/detectors/cited-name.d.ts.map +1 -0
- package/dist/detectors/cited-name.js +15 -0
- package/dist/detectors/cited-name.js.map +1 -0
- package/dist/detectors/concrete-evidence.d.ts +7 -0
- package/dist/detectors/concrete-evidence.d.ts.map +1 -0
- package/dist/detectors/concrete-evidence.js +21 -0
- package/dist/detectors/concrete-evidence.js.map +1 -0
- package/dist/detectors/counter-edge.d.ts +8 -0
- package/dist/detectors/counter-edge.d.ts.map +1 -0
- package/dist/detectors/counter-edge.js +27 -0
- package/dist/detectors/counter-edge.js.map +1 -0
- package/dist/detectors/dotted-name.d.ts +13 -0
- package/dist/detectors/dotted-name.d.ts.map +1 -0
- package/dist/detectors/dotted-name.js +10 -0
- package/dist/detectors/dotted-name.js.map +1 -0
- package/dist/detectors/doubled-word.d.ts +6 -1
- package/dist/detectors/doubled-word.d.ts.map +1 -1
- package/dist/detectors/doubled-word.js +22 -2
- package/dist/detectors/doubled-word.js.map +1 -1
- package/dist/detectors/en-shape.d.ts +1 -1
- package/dist/detectors/en-shape.d.ts.map +1 -1
- package/dist/detectors/en-shape.js +11 -22
- package/dist/detectors/en-shape.js.map +1 -1
- package/dist/detectors/gram-place.d.ts +0 -4
- package/dist/detectors/gram-place.d.ts.map +1 -1
- package/dist/detectors/gram-place.js +6 -1
- package/dist/detectors/gram-place.js.map +1 -1
- package/dist/detectors/gram-predicate.d.ts +7 -0
- package/dist/detectors/gram-predicate.d.ts.map +1 -0
- package/dist/detectors/gram-predicate.js +44 -0
- package/dist/detectors/gram-predicate.js.map +1 -0
- package/dist/detectors/heading-case.d.ts +21 -0
- package/dist/detectors/heading-case.d.ts.map +1 -0
- package/dist/detectors/heading-case.js +38 -0
- package/dist/detectors/heading-case.js.map +1 -0
- package/dist/detectors/heading-echo.d.ts.map +1 -1
- package/dist/detectors/heading-echo.js +4 -1
- package/dist/detectors/heading-echo.js.map +1 -1
- package/dist/detectors/lexicon.d.ts.map +1 -1
- package/dist/detectors/lexicon.js +7 -4
- package/dist/detectors/lexicon.js.map +1 -1
- package/dist/detectors/name-numeral.d.ts +16 -0
- package/dist/detectors/name-numeral.d.ts.map +1 -0
- package/dist/detectors/name-numeral.js +30 -0
- package/dist/detectors/name-numeral.js.map +1 -0
- package/dist/detectors/name-part.d.ts +8 -0
- package/dist/detectors/name-part.d.ts.map +1 -0
- package/dist/detectors/name-part.js +20 -0
- package/dist/detectors/name-part.js.map +1 -0
- package/dist/detectors/name-run.d.ts +8 -0
- package/dist/detectors/name-run.d.ts.map +1 -0
- package/dist/detectors/name-run.js +13 -0
- package/dist/detectors/name-run.js.map +1 -0
- package/dist/detectors/orthography.d.ts.map +1 -1
- package/dist/detectors/orthography.js +15 -5
- package/dist/detectors/orthography.js.map +1 -1
- package/dist/detectors/placeholder.d.ts +14 -0
- package/dist/detectors/placeholder.d.ts.map +1 -0
- package/dist/detectors/placeholder.js +24 -0
- package/dist/detectors/placeholder.js.map +1 -0
- package/dist/detectors/quoted-variant.d.ts +7 -0
- package/dist/detectors/quoted-variant.d.ts.map +1 -0
- package/dist/detectors/quoted-variant.js +18 -0
- package/dist/detectors/quoted-variant.js.map +1 -0
- package/dist/detectors/series-label.d.ts +13 -0
- package/dist/detectors/series-label.d.ts.map +1 -0
- package/dist/detectors/series-label.js +26 -0
- package/dist/detectors/series-label.js.map +1 -0
- package/dist/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +29 -24
- package/dist/detectors/signals.js.map +1 -1
- package/dist/detectors/structure-tree.js +1 -1
- package/dist/detectors/structure-tree.js.map +1 -1
- package/dist/detectors/superlative-name.d.ts +9 -0
- package/dist/detectors/superlative-name.d.ts.map +1 -0
- package/dist/detectors/superlative-name.js +24 -0
- package/dist/detectors/superlative-name.js.map +1 -0
- package/dist/detectors/token-shape.d.ts.map +1 -1
- package/dist/detectors/token-shape.js +10 -2
- package/dist/detectors/token-shape.js.map +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +10 -4
- package/dist/document.js.map +1 -1
- package/dist/genre-check.d.ts +34 -0
- package/dist/genre-check.d.ts.map +1 -0
- package/dist/genre-check.js +21 -0
- package/dist/genre-check.js.map +1 -0
- package/dist/genre.d.ts +8 -1
- package/dist/genre.d.ts.map +1 -1
- package/dist/genre.js +29 -5
- package/dist/genre.js.map +1 -1
- package/dist/init.d.ts +0 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +0 -12
- package/dist/init.js.map +1 -1
- package/dist/joined-view.d.ts +25 -0
- package/dist/joined-view.d.ts.map +1 -0
- package/dist/joined-view.js +76 -0
- package/dist/joined-view.js.map +1 -0
- package/dist/line-continues.d.ts +6 -0
- package/dist/line-continues.d.ts.map +1 -0
- package/dist/line-continues.js +33 -0
- package/dist/line-continues.js.map +1 -0
- package/dist/measure.d.ts +1 -0
- package/dist/measure.d.ts.map +1 -1
- package/dist/measure.js +5 -1
- package/dist/measure.js.map +1 -1
- package/dist/number-name.d.ts +6 -3
- package/dist/number-name.d.ts.map +1 -1
- package/dist/number-name.js +31 -14
- package/dist/number-name.js.map +1 -1
- package/dist/orthography.d.ts +4 -0
- package/dist/orthography.d.ts.map +1 -1
- package/dist/orthography.js +11 -9
- package/dist/orthography.js.map +1 -1
- package/dist/plain-source.d.ts +6 -0
- package/dist/plain-source.d.ts.map +1 -0
- package/dist/plain-source.js +6 -0
- package/dist/plain-source.js.map +1 -0
- package/dist/plugin.d.ts +16 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/quoted-span.d.ts +10 -0
- package/dist/quoted-span.d.ts.map +1 -0
- package/dist/quoted-span.js +20 -0
- package/dist/quoted-span.js.map +1 -0
- package/dist/render/eval.d.ts +2 -1
- package/dist/render/eval.d.ts.map +1 -1
- package/dist/render/eval.js +84 -43
- package/dist/render/eval.js.map +1 -1
- package/dist/resolve-genre.d.ts +11 -0
- package/dist/resolve-genre.d.ts.map +1 -0
- package/dist/resolve-genre.js +18 -0
- package/dist/resolve-genre.js.map +1 -0
- package/dist/soft-break.d.ts +19 -0
- package/dist/soft-break.d.ts.map +1 -0
- package/dist/soft-break.js +78 -0
- package/dist/soft-break.js.map +1 -0
- package/dist/structure/build.d.ts.map +1 -1
- package/dist/structure/build.js +19 -9
- package/dist/structure/build.js.map +1 -1
- package/dist/structure/date-order.d.ts +3 -0
- package/dist/structure/date-order.d.ts.map +1 -1
- package/dist/structure/date-order.js +9 -1
- package/dist/structure/date-order.js.map +1 -1
- package/dist/structure/issues.d.ts +1 -1
- package/dist/structure/issues.d.ts.map +1 -1
- package/dist/structure/issues.js +14 -3
- package/dist/structure/issues.js.map +1 -1
- package/dist/structure/listed-tags.d.ts +3 -0
- package/dist/structure/listed-tags.d.ts.map +1 -0
- package/dist/structure/listed-tags.js +6 -0
- package/dist/structure/listed-tags.js.map +1 -0
- package/dist/structure/number-in-sentence.d.ts +15 -0
- package/dist/structure/number-in-sentence.d.ts.map +1 -0
- package/dist/structure/number-in-sentence.js +13 -0
- package/dist/structure/number-in-sentence.js.map +1 -0
- package/dist/structure/unit-word.d.ts +8 -0
- package/dist/structure/unit-word.d.ts.map +1 -0
- package/dist/structure/unit-word.js +10 -0
- package/dist/structure/unit-word.js.map +1 -0
- package/dist/structure/wrapped-tail.d.ts +18 -0
- package/dist/structure/wrapped-tail.d.ts.map +1 -0
- package/dist/structure/wrapped-tail.js +11 -0
- package/dist/structure/wrapped-tail.js.map +1 -0
- package/package.json +3 -3
- package/rules/dangling-reference.yaml +2 -2
- package/rules/date-order.yaml +2 -2
- package/rules/latin-spacing.yaml +4 -2
- package/rules/max-kanji-continuous.yaml +1 -1
- package/rules/no-doubled-joshi.yaml +2 -2
- package/rules/title-case-consistency.yaml +2 -2
- package/rules/undefined-acronym.yaml +14 -1
- package/rules/unqualified-superlative.yaml +1 -1
- package/src/address-chain.ts +5 -2
- package/src/cli-text.ts +19 -3
- package/src/cli.ts +22 -19
- package/src/commands/eval.ts +26 -5
- package/src/commands/feedback.ts +2 -1
- package/src/commands/test.ts +3 -2
- package/src/commands/tree.ts +2 -1
- package/src/detectors/acronym-compound.ts +9 -0
- package/src/detectors/acronym-context.ts +22 -1
- package/src/detectors/acronym-expansion.ts +72 -5
- package/src/detectors/char-shape.ts +42 -14
- package/src/detectors/citation-key.ts +13 -0
- package/src/detectors/cited-name.ts +23 -0
- package/src/detectors/concrete-evidence.ts +31 -0
- package/src/detectors/counter-edge.ts +29 -0
- package/src/detectors/dotted-name.ts +14 -0
- package/src/detectors/doubled-word.ts +25 -2
- package/src/detectors/en-shape.ts +17 -30
- package/src/detectors/gram-place.ts +8 -1
- package/src/detectors/gram-predicate.ts +55 -0
- package/src/detectors/heading-case.ts +41 -0
- package/src/detectors/heading-echo.ts +5 -1
- package/src/detectors/lexicon.ts +8 -5
- package/src/detectors/name-numeral.ts +37 -0
- package/src/detectors/name-part.ts +24 -0
- package/src/detectors/name-run.ts +16 -0
- package/src/detectors/orthography.ts +17 -8
- package/src/detectors/placeholder.ts +38 -0
- package/src/detectors/quoted-variant.ts +20 -0
- package/src/detectors/series-label.ts +33 -0
- package/src/detectors/signals.ts +35 -30
- package/src/detectors/structure-tree.ts +2 -2
- package/src/detectors/superlative-name.ts +30 -0
- package/src/detectors/token-shape.ts +12 -3
- package/src/document.ts +12 -5
- package/src/genre-check.ts +46 -0
- package/src/genre.ts +34 -5
- package/src/init.ts +0 -13
- package/src/joined-view.ts +96 -0
- package/src/line-continues.ts +43 -0
- package/src/measure.ts +9 -1
- package/src/number-name.ts +35 -13
- package/src/orthography.ts +15 -9
- package/src/plain-source.ts +5 -0
- package/src/plugin.ts +21 -2
- package/src/quoted-span.ts +25 -0
- package/src/render/eval.ts +101 -38
- package/src/resolve-genre.ts +20 -0
- package/src/soft-break.ts +94 -0
- package/src/structure/build.ts +19 -10
- package/src/structure/date-order.ts +16 -1
- package/src/structure/issues.ts +18 -3
- package/src/structure/listed-tags.ts +7 -0
- package/src/structure/number-in-sentence.ts +20 -0
- package/src/structure/unit-word.ts +11 -0
- package/src/structure/wrapped-tail.ts +22 -0
package/dist/render/eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/render/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/render/eval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Config } from "./config/load.ts";
|
|
2
|
+
import type { GenreSource } from "./cli-text.ts";
|
|
3
|
+
/** unread: a genre the front matter wrote that chaff does not know, when the front matter was looked at. */
|
|
4
|
+
type ResolvedGenre = {
|
|
5
|
+
readonly genre: string;
|
|
6
|
+
readonly from: GenreSource;
|
|
7
|
+
readonly unread?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare const resolveGenre: (path: string, source: string, config: Config, cliGenre?: string) => ResolvedGenre;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=resolve-genre.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-genre.d.ts","sourceRoot":"","sources":["../src/resolve-genre.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,4GAA4G;AAC5G,KAAK,aAAa,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAElH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,aAU9F,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { applyByPath } from "./config/by-path.js";
|
|
2
|
+
import { frontMatterGenre, GENRES, guessGenre } from "./genre.js";
|
|
3
|
+
import { unknownFrontMatterGenre } from "./genre-check.js";
|
|
4
|
+
export const resolveGenre = (path, source, config, cliGenre) => {
|
|
5
|
+
// コマンドで指定したものが最優先。その実行だけの指定だから、設定より強い。
|
|
6
|
+
if (cliGenre !== undefined)
|
|
7
|
+
return { genre: cliGenre, from: "--genre" };
|
|
8
|
+
// パスごとの上書きが次。「全体はこう、ここだけは違う」を書けるようにする。
|
|
9
|
+
const override = applyByPath(config.byPath, config.baseDir, path);
|
|
10
|
+
if (override.genre !== undefined)
|
|
11
|
+
return { genre: override.genre, from: "by_path" };
|
|
12
|
+
if (config.genre !== undefined)
|
|
13
|
+
return { genre: config.genre, from: "config" };
|
|
14
|
+
const guess = guessGenre(path, source, frontMatterGenre(source));
|
|
15
|
+
const unread = unknownFrontMatterGenre(source, GENRES);
|
|
16
|
+
return guess === undefined ? { genre: "blog/tech", from: "default", unread } : { genre: guess.genre, from: guess.from, unread };
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=resolve-genre.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-genre.js","sourceRoot":"","sources":["../src/resolve-genre.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAK3D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc,EAAE,QAAiB,EAAiB,EAAE;IAC7G,uCAAuC;IACvC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxE,uCAAuC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACpF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;AAClI,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Span } from "./plugin.ts";
|
|
2
|
+
/** 改行を挟む 2 文字が、改行を消して読む組か。 */
|
|
3
|
+
export declare const joinsAcrossBreak: (before: string, after: string) => boolean;
|
|
4
|
+
/** text の中の、消える改行(前後の行頭・行末の空白ごと)。text の文字だけで決める。 */
|
|
5
|
+
export declare const softBreaks: (text: string) => Span[];
|
|
6
|
+
/**
|
|
7
|
+
* 覆った文字(コード・リンクの記号・URL)に触れない、消える改行。source と prose は同じ長さで、同じ位置に同じ文字がある。
|
|
8
|
+
*
|
|
9
|
+
* 覆った文字は空白になっているので、prose だけでは行頭のインデントとインラインコードの跡を見分けられない。
|
|
10
|
+
* 見分けずにつなぐと、行頭の `npm` の前後の語が 1 語になる。
|
|
11
|
+
*/
|
|
12
|
+
export declare const unmaskedSoftBreaks: (source: string, prose: string) => Span[];
|
|
13
|
+
/** breaks(text の中の範囲、昇順・重ならない)を取り除いた文字列。 */
|
|
14
|
+
export declare const withoutSpans: (text: string, breaks: readonly Span[]) => string;
|
|
15
|
+
/** sorted(昇順・重ならない)の中で、end が offset より後ろの最初の添字。無ければ sorted.length。 */
|
|
16
|
+
export declare const firstEndingAfter: (sorted: readonly Span[], offset: number) => number;
|
|
17
|
+
/** sorted(昇順・重ならない)のうち、outer に収まるもの。段落や文ごとに全部をなめない。 */
|
|
18
|
+
export declare const spansWithin: <T extends Span>(sorted: readonly T[], outer: Span) => T[];
|
|
19
|
+
//# sourceMappingURL=soft-break.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soft-break.d.ts","sourceRoot":"","sources":["../src/soft-break.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA+BxC,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAAgD,CAAC;AAmBlH,oDAAoD;AACpD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,IAAI,EAIf,CAAC;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,IAAI,EACuC,CAAC;AAE/G,4CAA4C;AAC5C,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,QAAQ,SAAS,IAAI,EAAE,KAAG,MAQpE,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,IAAI,EAAE,EAAE,QAAQ,MAAM,KAAG,MAO1E,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,IAAI,EAAE,QAAQ,SAAS,CAAC,EAAE,EAAE,OAAO,IAAI,KAAG,CAAC,EAIhF,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 段落の中の改行のうち、読み手には見えないもの。
|
|
3
|
+
*
|
|
4
|
+
* Markdown は段落の中の改行を空白として表示するが、全角の文字に挟まれた改行は空白にもならずに消える
|
|
5
|
+
* (CSS Text 3 の segment break transformation。ブラウザがそう描く)。日本語は語の間に空白を置かないので、
|
|
6
|
+
* PDF から写した判決や、行の途中で折り返して書いた段落をそのまま解析器に渡すと、改行が語を割る(「関」「する」)。
|
|
7
|
+
* 英字・数字・ハングルに接する改行は、読み手にも空白に見えるので残す。
|
|
8
|
+
*/
|
|
9
|
+
const WIDE = /[\p{scx=Han}\p{scx=Hiragana}\p{scx=Katakana}、-〿!-⦆¢-₩]/u;
|
|
10
|
+
const NEWLINE = /\n/gu;
|
|
11
|
+
const isHorizontalSpace = (unit) => unit === " " || unit === "\t";
|
|
12
|
+
/** 改行の前に空白が 2 つ以上あれば、Markdown の強制改行(hard line break)。読み手にも改行に見える。 */
|
|
13
|
+
const HARD_BREAK_SPACES = 2;
|
|
14
|
+
const isLowSurrogate = (unit) => unit >= 0xdc00 && unit <= 0xdfff;
|
|
15
|
+
/** index の直前の 1 文字(サロゲートペアは 2 単位で 1 文字)。 */
|
|
16
|
+
const charBefore = (text, index) => {
|
|
17
|
+
const width = index >= 2 && isLowSurrogate(text.charCodeAt(index - 1)) ? 2 : 1;
|
|
18
|
+
return text.slice(Math.max(0, index - width), index);
|
|
19
|
+
};
|
|
20
|
+
const charAt = (text, index) => {
|
|
21
|
+
const point = text.codePointAt(index);
|
|
22
|
+
return point === undefined ? "" : String.fromCodePoint(point);
|
|
23
|
+
};
|
|
24
|
+
/** 改行を挟む 2 文字が、改行を消して読む組か。 */
|
|
25
|
+
export const joinsAcrossBreak = (before, after) => WIDE.test(before) && WIDE.test(after);
|
|
26
|
+
/** from から back の向きに、空白(スペース・タブ)が続く先。 */
|
|
27
|
+
const spacesUntil = (text, from, step) => {
|
|
28
|
+
let at = from;
|
|
29
|
+
while (isHorizontalSpace(text[step === 1 ? at : at - 1]))
|
|
30
|
+
at += step;
|
|
31
|
+
return at;
|
|
32
|
+
};
|
|
33
|
+
/** 改行 1 つと、その前の行末・後ろの行頭の空白。正規表現で取ると、空白の長い並びで後戻りが増える。 */
|
|
34
|
+
const lineBreakAt = (text, newline) => {
|
|
35
|
+
const lineEnd = text[newline - 1] === "\r" ? newline - 1 : newline;
|
|
36
|
+
const start = spacesUntil(text, lineEnd, -1);
|
|
37
|
+
return { span: { start, end: spacesUntil(text, newline + 1, 1) }, trailingSpaces: lineEnd - start };
|
|
38
|
+
};
|
|
39
|
+
const isSoft = (text, found) => found.trailingSpaces < HARD_BREAK_SPACES && joinsAcrossBreak(charBefore(text, found.span.start), charAt(text, found.span.end));
|
|
40
|
+
/** text の中の、消える改行(前後の行頭・行末の空白ごと)。text の文字だけで決める。 */
|
|
41
|
+
export const softBreaks = (text) => [...text.matchAll(NEWLINE)]
|
|
42
|
+
.map((match) => lineBreakAt(text, match.index))
|
|
43
|
+
.filter((found) => isSoft(text, found))
|
|
44
|
+
.map((found) => found.span);
|
|
45
|
+
/**
|
|
46
|
+
* 覆った文字(コード・リンクの記号・URL)に触れない、消える改行。source と prose は同じ長さで、同じ位置に同じ文字がある。
|
|
47
|
+
*
|
|
48
|
+
* 覆った文字は空白になっているので、prose だけでは行頭のインデントとインラインコードの跡を見分けられない。
|
|
49
|
+
* 見分けずにつなぐと、行頭の `npm` の前後の語が 1 語になる。
|
|
50
|
+
*/
|
|
51
|
+
export const unmaskedSoftBreaks = (source, prose) => softBreaks(prose).filter((span) => source.slice(span.start, span.end) === prose.slice(span.start, span.end));
|
|
52
|
+
/** breaks(text の中の範囲、昇順・重ならない)を取り除いた文字列。 */
|
|
53
|
+
export const withoutSpans = (text, breaks) => {
|
|
54
|
+
const parts = [];
|
|
55
|
+
const cursor = breaks.reduce((from, span) => {
|
|
56
|
+
parts.push(text.slice(from, span.start));
|
|
57
|
+
return span.end;
|
|
58
|
+
}, 0);
|
|
59
|
+
parts.push(text.slice(cursor));
|
|
60
|
+
return parts.join("");
|
|
61
|
+
};
|
|
62
|
+
/** sorted(昇順・重ならない)の中で、end が offset より後ろの最初の添字。無ければ sorted.length。 */
|
|
63
|
+
export const firstEndingAfter = (sorted, offset) => {
|
|
64
|
+
const search = (low, high) => {
|
|
65
|
+
if (low >= high)
|
|
66
|
+
return low;
|
|
67
|
+
const middle = (low + high) >> 1;
|
|
68
|
+
return (sorted[middle]?.end ?? Number.POSITIVE_INFINITY) > offset ? search(low, middle) : search(middle + 1, high);
|
|
69
|
+
};
|
|
70
|
+
return search(0, sorted.length);
|
|
71
|
+
};
|
|
72
|
+
/** sorted(昇順・重ならない)のうち、outer に収まるもの。段落や文ごとに全部をなめない。 */
|
|
73
|
+
export const spansWithin = (sorted, outer) => {
|
|
74
|
+
const from = firstEndingAfter(sorted, outer.start);
|
|
75
|
+
const to = firstEndingAfter(sorted, outer.end);
|
|
76
|
+
return sorted.slice(from, to).filter((span) => span.start >= outer.start);
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=soft-break.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soft-break.js","sourceRoot":"","sources":["../src/soft-break.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,OAAO,KAAK,EAAE,eAAe,EAA2C,IAAI,EAAiB,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,OAAO,KAAK,EAAE,eAAe,EAA2C,IAAI,EAAiB,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAqOpJ,yDAAyD;AACzD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAA;CAAE,CAAC;AAElG,eAAO,MAAM,UAAU,EAAE,OAAsC,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD,CAAC;AAwEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,EAAE,UAAU,iBAAiB,KAAG,aA0B9E,CAAC"}
|
package/dist/structure/build.js
CHANGED
|
@@ -5,8 +5,10 @@ import { resolveRelative } from "./relative-resolve.js";
|
|
|
5
5
|
import { maskSpans } from "../mask.js";
|
|
6
6
|
import { lineNumberAt, linesOf } from "./lines.js";
|
|
7
7
|
import { dottedNumber } from "./universal.js";
|
|
8
|
+
import { numberInSentence } from "./number-in-sentence.js";
|
|
8
9
|
import { unnumberedUnit } from "./unnumbered.js";
|
|
9
10
|
import { readsOnHeading } from "./heading-leaves.js";
|
|
11
|
+
import { onLine, wrappedLine } from "./wrapped-tail.js";
|
|
10
12
|
/**
|
|
11
13
|
* 見出しは深さ 1〜6 を rank にする。番号のまとまりは必ず見出しの内側に入るので、
|
|
12
14
|
* それより大きい rank から数える。「## 第3条」の下の番号だけの項は、見出しに閉じられずに条の中へ入る。
|
|
@@ -89,7 +91,10 @@ const outsideAddresses = (mentions, text, profile) => {
|
|
|
89
91
|
const withoutAbsolute = (relative, absolute) => relative.filter((mention) => !absolute.some((other) => mention.start < other.end && other.start < mention.end));
|
|
90
92
|
const LEAVES = [
|
|
91
93
|
{ kind: "definition", find: (patterns, text) => patterns.definitions(text) },
|
|
92
|
-
{
|
|
94
|
+
{
|
|
95
|
+
kind: "reference",
|
|
96
|
+
find: (patterns, _text, profile, wrapped) => onLine(substitutedDocuments(patterns.references(wrapped.text), wrapped.text, profile), wrapped),
|
|
97
|
+
},
|
|
93
98
|
{
|
|
94
99
|
kind: "reference",
|
|
95
100
|
find: (patterns, text, profile) => {
|
|
@@ -101,10 +106,13 @@ const LEAVES = [
|
|
|
101
106
|
{ kind: "quantity", find: (patterns, text, profile) => outsideAddresses(patterns.quantities(text), text, profile) },
|
|
102
107
|
{ kind: "date", find: (patterns, text) => patterns.dates?.(text) ?? [] },
|
|
103
108
|
];
|
|
104
|
-
/**
|
|
109
|
+
/** 言語を問わない通し番号。後ろが単位なら数量、本文の文の続きなら文の中の数なので、番号にしない。 */
|
|
105
110
|
const universalNumber = (patterns, text, context, plainText) => {
|
|
106
111
|
const dotted = dottedNumber(text, context, plainText);
|
|
107
|
-
|
|
112
|
+
if (dotted === undefined || patterns.countedAfter?.(dotted.number, dotted.rest) === true)
|
|
113
|
+
return undefined;
|
|
114
|
+
const numbered = { number: dotted.number, rest: dotted.rest, isHeading: context.isHeading };
|
|
115
|
+
return numberInSentence(numbered, patterns.continuesSentence) ? undefined : dotted;
|
|
108
116
|
};
|
|
109
117
|
/** 行の中の定義・参照・義務・数量を、いま開いている最も内側の節点の子にする。 */
|
|
110
118
|
const enclosingArticle = (state) => [...state.stack].reverse().find((frame) => frame.draft.kind === "article")?.draft;
|
|
@@ -132,11 +140,12 @@ const scopeOf = (state, patterns, text) => {
|
|
|
132
140
|
const within = state.widerScopes.get(holder) ?? (holder.kind === "article" ? undefined : holder);
|
|
133
141
|
return within === undefined ? { scope: "local" } : { scope: "local", within: within.address };
|
|
134
142
|
};
|
|
135
|
-
const addLeaves = (state, patterns, line,
|
|
143
|
+
const addLeaves = (state, patterns, line, wrapped, offset, onHeading) => {
|
|
136
144
|
const parent = top(state).draft;
|
|
145
|
+
const text = wrapped.line;
|
|
137
146
|
const scope = scopeOf(state, patterns, text);
|
|
138
147
|
const leaves = LEAVES.filter(({ kind }) => !onHeading || readsOnHeading(kind))
|
|
139
|
-
.flatMap(({ kind, find }) => find(patterns, text, state.profile).map((mention) => ({
|
|
148
|
+
.flatMap(({ kind, find }) => find(patterns, text, state.profile, wrapped).map((mention) => ({
|
|
140
149
|
kind,
|
|
141
150
|
start: line.start + offset + mention.start,
|
|
142
151
|
end: line.start + offset + mention.end,
|
|
@@ -212,7 +221,7 @@ const withCaption = (state, line, numbered) => {
|
|
|
212
221
|
const caption = numbered?.kind === "article" && numbered.heading === "" ? state.captions.get(line.number - 1) : undefined;
|
|
213
222
|
return numbered === undefined || caption === undefined ? numbered : { ...numbered, heading: caption };
|
|
214
223
|
};
|
|
215
|
-
const readLine = (state, patterns, line, heading) => {
|
|
224
|
+
const readLine = (state, patterns, line, heading, next) => {
|
|
216
225
|
const text = heading === undefined ? line.text : headingLineText(line.text);
|
|
217
226
|
const openNumbers = state.stack.flatMap((frame) => (frame.numbered === undefined ? [] : [frame.numbered]));
|
|
218
227
|
const context = { open: openNumbers, isHeading: heading !== undefined };
|
|
@@ -232,8 +241,9 @@ const readLine = (state, patterns, line, heading) => {
|
|
|
232
241
|
// 番号付きの行は番号の後ろだけを読む。「第3条(支払)」の「第3条」を自分への参照として拾わない。
|
|
233
242
|
const scanned = numbered === undefined ? text : numbered.rest;
|
|
234
243
|
const offset = Math.max(0, line.text.lastIndexOf(scanned));
|
|
244
|
+
const onHeading = heading !== undefined;
|
|
235
245
|
if (scanned !== "")
|
|
236
|
-
addLeaves(state, patterns, line, scanned,
|
|
246
|
+
addLeaves(state, patterns, line, wrappedLine(scanned, onHeading, next), offset, onHeading);
|
|
237
247
|
};
|
|
238
248
|
/**
|
|
239
249
|
* 文書を番地の付いた木にする。番号の書き方は言語パッケージが読み、ここは入れ子と番地だけを決める。
|
|
@@ -257,9 +267,9 @@ export const buildTree = (input, patterns) => {
|
|
|
257
267
|
captions: new Map(),
|
|
258
268
|
plainText: !input.markdown,
|
|
259
269
|
};
|
|
260
|
-
lines.forEach((line) => {
|
|
270
|
+
lines.forEach((line, index) => {
|
|
261
271
|
if (line.text.trim() !== "")
|
|
262
|
-
readLine(state, patterns, line, headings.get(line.number));
|
|
272
|
+
readLine(state, patterns, line, headings.get(line.number), lines[index + 1]?.text);
|
|
263
273
|
// コードの行は覆って読まないが、開いている節の中身ではある。節の最後にコードブロックがあっても、範囲をそこまで伸ばす。
|
|
264
274
|
else if (input.source.slice(line.start, line.start + line.text.length).trim() !== "")
|
|
265
275
|
extend(state, line.start + line.text.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,13 @@ import type { StructureIssue } from "./issues.ts";
|
|
|
3
3
|
* 日程として並べた日付の順番。箇条書きの続いた項目か、表の続いた行で、日付をちょうど一つ持つものを並びとして読む。
|
|
4
4
|
* 並びの向き(古い順か新しい順か)は多いほうで決め、それに逆らう一歩だけを言う。新しい順に並べた履歴は正しい並び。
|
|
5
5
|
* 向きが決まらない並び(上がりと下がりが同じ数)は何も言わない。逆らう一歩を言えるのは、日付が 4 つ以上の並びだけになる。
|
|
6
|
+
* 向きに沿って並ぶ日付が半分以下の並びは、日付でなく別のもの(名前、版)で並べた一覧として何も言わない。
|
|
6
7
|
*/
|
|
7
8
|
export type DatedPoint = {
|
|
8
9
|
readonly offset: number;
|
|
9
10
|
readonly value: string;
|
|
10
11
|
};
|
|
12
|
+
/** 向きに沿って並べられる日付の最大の数(間を飛ばしてよい。等しい日付は向きに逆らわない)。 */
|
|
13
|
+
export declare const longestInOrder: (values: readonly string[], direction: number) => number;
|
|
11
14
|
export declare const dateOrderBreaks: (source: string, points: readonly DatedPoint[]) => StructureIssue[];
|
|
12
15
|
//# sourceMappingURL=date-order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-order.d.ts","sourceRoot":"","sources":["../../src/structure/date-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD
|
|
1
|
+
{"version":3,"file":"date-order.d.ts","sourceRoot":"","sources":["../../src/structure/date-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAiB7E,mDAAmD;AACnD,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,MAAM,EAAE,EAAE,WAAW,MAAM,KAAG,MAO3E,CAAC;AAoBJ,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,QAAQ,SAAS,UAAU,EAAE,KAAG,cAAc,EAI1F,CAAC"}
|
|
@@ -9,6 +9,13 @@ const datedLines = (run, points) => run.flatMap((line) => {
|
|
|
9
9
|
const samePrecision = (dated) => PRECISIONS.some((pattern) => dated.every((point) => pattern.test(point.value)));
|
|
10
10
|
/** 上がりが多ければ 1、下がりが多ければ -1、同じ数なら 0(向きを決めない)。 */
|
|
11
11
|
const majorityOf = (up, down) => Math.sign(up - down);
|
|
12
|
+
/** 向きに沿って並べられる日付の最大の数(間を飛ばしてよい。等しい日付は向きに逆らわない)。 */
|
|
13
|
+
export const longestInOrder = (values, direction) => Math.max(0, ...values.reduce((lengths, value, index) => {
|
|
14
|
+
const along = values.slice(0, index).map((earlier, at) => (Math.sign(value.localeCompare(earlier)) === -direction ? 0 : (lengths[at] ?? 0)));
|
|
15
|
+
return [...lengths, 1 + Math.max(0, ...along)];
|
|
16
|
+
}, []));
|
|
17
|
+
/** 日付のうち向きに沿うものが過半を占める。ひとつふたつの書き間違いなら残りが揃うが、名前順の一覧は揃わない。 */
|
|
18
|
+
const mostlyInOrder = (values, direction) => longestInOrder(values, direction) * 2 > values.length;
|
|
12
19
|
/** 多いほうの向きに逆らう一歩。後ろの項目の日付を指す。 */
|
|
13
20
|
const againstMajority = (dated) => {
|
|
14
21
|
const steps = dated
|
|
@@ -17,7 +24,8 @@ const againstMajority = (dated) => {
|
|
|
17
24
|
const up = steps.filter((step) => step.sign > 0).length;
|
|
18
25
|
const down = steps.filter((step) => step.sign < 0).length;
|
|
19
26
|
const majority = majorityOf(up, down);
|
|
20
|
-
|
|
27
|
+
const values = dated.map((point) => point.value);
|
|
28
|
+
if (majority === 0 || !mostlyInOrder(values, majority))
|
|
21
29
|
return [];
|
|
22
30
|
return steps
|
|
23
31
|
.filter((step) => step.sign === -majority)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-order.js","sourceRoot":"","sources":["../../src/structure/date-order.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAa,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"date-order.js","sourceRoot":"","sources":["../../src/structure/date-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export declare const inDocumentOrder: (tree: StructureNode) => StructureNode[];
|
|
|
9
9
|
* 参照の番地が木に無い。他の文書の名前が付いた参照(民法第709条、Section 9 of the Master Agreement)は引かない。
|
|
10
10
|
* 条を 1 つも持たない文書も見ない。他の文書を指しているだけかもしれない。
|
|
11
11
|
*/
|
|
12
|
-
export declare const danglingReferences: (tree: StructureNode) => StructureIssue[];
|
|
12
|
+
export declare const danglingReferences: (tree: StructureNode, source: string) => StructureIssue[];
|
|
13
13
|
/**
|
|
14
14
|
* 同じ語の二度目以降の定義。どちらが正しいかは決めず、両方の場所を示す。
|
|
15
15
|
* 範囲を限った定義(この条において「X」とは)は、同じ条の中でだけ比べる。別の条で定義し直すのは正しい書き方。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/structure/issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/structure/issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAOlD,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC;AAIrH,8DAA8D;AAC9D,eAAO,MAAM,eAAe,GAAI,MAAM,aAAa,KAAG,aAAa,EAUlE,CAAC;AAqCF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,aAAa,EAAE,QAAQ,MAAM,KAAG,cAAc,EAoBtF,CAAC;AAkBF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,KAAG,cAAc,EAaxE,CAAC"}
|
package/dist/structure/issues.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { listedTags } from "./listed-tags.js";
|
|
2
|
+
import { namesAbsentUnit } from "./unit-word.js";
|
|
1
3
|
const NUMBERED = ["chapter", "article", "item"];
|
|
2
4
|
/** 木を上から順に平らにする。文書の中での順番と同じになる。再帰にしないのは、深い木でスタックを使い切らないため。 */
|
|
3
5
|
export const inDocumentOrder = (tree) => {
|
|
@@ -30,24 +32,33 @@ const fallbackKey = (node) => node.attrs["fallbackLabel"] === undefined ? textOf
|
|
|
30
32
|
/** 見出しの下の章(h1/ch9)は、見出しの番地を除いた ch9 でも指せる。本文の「第9章」は見出しの番地を書かない。 */
|
|
31
33
|
const addressesOf = (node) => node.kind === "chapter" && node.address.includes("/") ? [node.address, node.address.slice(node.address.lastIndexOf("/") + 1)] : [node.address];
|
|
32
34
|
const keysOf = (node) => addressesOf(node).flatMap((address) => [address, labelled(address, textOf(node, "label"))]);
|
|
35
|
+
/**
|
|
36
|
+
* 他の文書を指す参照か。citedTag("[HTTP-CACHING]")は、書き方だけでは差し込み欄の "[BUYER-1]" と見分けられないので、
|
|
37
|
+
* 文書がその語を一覧に載せているときだけ他の文書の名とみなす。
|
|
38
|
+
*/
|
|
39
|
+
const citesOtherDocument = (listed) => (node) => node.attrs["document"] !== undefined || (node.attrs["citedTag"] !== undefined && listed.has(textOf(node, "citedTag")));
|
|
33
40
|
/**
|
|
34
41
|
* 参照の番地が木に無い。他の文書の名前が付いた参照(民法第709条、Section 9 of the Master Agreement)は引かない。
|
|
35
42
|
* 条を 1 つも持たない文書も見ない。他の文書を指しているだけかもしれない。
|
|
36
43
|
*/
|
|
37
|
-
export const danglingReferences = (tree) => {
|
|
44
|
+
export const danglingReferences = (tree, source) => {
|
|
38
45
|
const nodes = inDocumentOrder(tree);
|
|
39
46
|
// 参照は条を指す。条を一つも持たない文書(契約書に付ける承諾書のひな形など)の「契約書第6条」は、別の文書の条。
|
|
40
47
|
if (!nodes.some((node) => node.kind === "article"))
|
|
41
48
|
return [];
|
|
49
|
+
const tagged = nodes.some((node) => node.attrs["citedTag"] !== undefined);
|
|
50
|
+
const citesOther = citesOtherDocument(tagged ? listedTags(source) : new Set());
|
|
42
51
|
const addresses = new Set(nodes.filter((node) => NUMBERED.includes(node.kind)).flatMap(keysOf));
|
|
43
52
|
// Section で組んだ法令が "Articles 13 to 21 of the UK GDPR" と別の文書の Article を名指ししていれば、名の無い "Article 6(3)" もそちら。
|
|
44
53
|
// 名指しがあれば、名の無い "Article 9" が書き間違いか向こうの条かは区別できないので黙る。名指しが無い文書では報告する。
|
|
45
54
|
const numbering = (node) => node.attrs["numbering"];
|
|
46
55
|
const numberings = new Set(nodes.flatMap((node) => (node.kind === "article" && node.numbering !== undefined ? [node.numbering] : [])));
|
|
47
|
-
const citedElsewhere = new Set(nodes.filter((node) => node.kind === "reference" && node
|
|
56
|
+
const citedElsewhere = new Set(nodes.filter((node) => node.kind === "reference" && citesOther(node)).map(numbering));
|
|
48
57
|
const otherNumbering = (node) => numberings.size > 0 && typeof numbering(node) === "string" && !numberings.has(String(numbering(node))) && citedElsewhere.has(numbering(node));
|
|
58
|
+
const articleLabels = nodes.filter((node) => node.kind === "article").map((node) => textOf(node, "label"));
|
|
49
59
|
return nodes
|
|
50
|
-
.filter((node) => node.kind === "reference" && node
|
|
60
|
+
.filter((node) => node.kind === "reference" && !citesOther(node) && !otherNumbering(node))
|
|
61
|
+
.filter((node) => !namesAbsentUnit(node, articleLabels))
|
|
51
62
|
.filter((node) => !resolves(node, addresses))
|
|
52
63
|
.map((node) => ({ offset: node.span.start, values: { label: textOf(node, "label"), target: textOf(node, "target") } }));
|
|
53
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/structure/issues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/structure/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listed-tags.d.ts","sourceRoot":"","sources":["../../src/structure/listed-tags.ts"],"names":[],"mappings":"AAKA,uCAAuC;AACvC,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,WAAW,CAAC,MAAM,CAA4F,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// 角括弧の見出し語を、文書が一覧に載せているか。一覧の項目は行頭の [語] で始まり、その後ろは行末か、
|
|
2
|
+
// 2 つ以上の空白かタブで本文と離れる(ぶら下げの組み方)。行頭の [語] に空白 1 つで文が続くのは本文。
|
|
3
|
+
const LISTED = /^[ \t]*\[(?<tag>[^[\]\s]{1,60})\](?:[ \t]*\r?$|[ \t]{2,}|\t)/u;
|
|
4
|
+
/** 文書が一覧の項目として載せている角括弧の見出し語(括弧を除く)。 */
|
|
5
|
+
export const listedTags = (source) => new Set(source.split("\n").flatMap((line) => LISTED.exec(line)?.groups?.["tag"] ?? []));
|
|
6
|
+
//# sourceMappingURL=listed-tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listed-tags.js","sourceRoot":"","sources":["../../src/structure/listed-tags.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,yDAAyD;AAEzD,MAAM,MAAM,GAAG,+DAA+D,CAAC;AAE/E,uCAAuC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAuB,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** 行頭の通し番号の行。rest は番号の後ろ。 */
|
|
2
|
+
export type NumberedText = {
|
|
3
|
+
readonly number: string;
|
|
4
|
+
readonly rest: string;
|
|
5
|
+
readonly isHeading: boolean;
|
|
6
|
+
};
|
|
7
|
+
type ContinuesSentence = (number: string, rest: string) => boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 本文の行の「3.11.0 was released on 2024-10-17.」「3.11.0 を公開しました。」の番号は、文の主語や目的語で、節の番号ではない。
|
|
10
|
+
* 続きが文として終わり、しかも小文字の語で始まるか、言語パッケージが文の続き(日本語なら助詞)と読んだとき。
|
|
11
|
+
* 小文字の題(「3.1 overview」「4.2.1. about:blank」)と見出しの行は章番号。
|
|
12
|
+
*/
|
|
13
|
+
export declare const numberInSentence: (numbered: NumberedText, continuesSentence?: ContinuesSentence) => boolean;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=number-in-sentence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-in-sentence.d.ts","sourceRoot":"","sources":["../../src/structure/number-in-sentence.ts"],"names":[],"mappings":"AAMA,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3G,KAAK,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,YAAY,EAAE,oBAAoB,iBAAiB,KAAG,OAGK,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** 大文字と小文字のある文字で、小文字の語。節の題(「3.1 Scope」「4.2 The Supplier shall」)は小文字で始まらない。 */
|
|
2
|
+
const LOWERCASE_WORD = /^\p{Ll}/u;
|
|
3
|
+
/** 文の終わり。ピリオドは後ろが空白か行末のとき(「3.x」「e-Tax.nta」の点は文を終えない)。題は文として終わらない。 */
|
|
4
|
+
const SENTENCE_END = /[.!?](?=\s|$)|[。!?]/u;
|
|
5
|
+
/**
|
|
6
|
+
* 本文の行の「3.11.0 was released on 2024-10-17.」「3.11.0 を公開しました。」の番号は、文の主語や目的語で、節の番号ではない。
|
|
7
|
+
* 続きが文として終わり、しかも小文字の語で始まるか、言語パッケージが文の続き(日本語なら助詞)と読んだとき。
|
|
8
|
+
* 小文字の題(「3.1 overview」「4.2.1. about:blank」)と見出しの行は章番号。
|
|
9
|
+
*/
|
|
10
|
+
export const numberInSentence = (numbered, continuesSentence) => !numbered.isHeading &&
|
|
11
|
+
SENTENCE_END.test(numbered.rest) &&
|
|
12
|
+
(LOWERCASE_WORD.test(numbered.rest) || continuesSentence?.(numbered.number, numbered.rest) === true);
|
|
13
|
+
//# sourceMappingURL=number-in-sentence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-in-sentence.js","sourceRoot":"","sources":["../../src/structure/number-in-sentence.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,qEAAqE;AACrE,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAO5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAsB,EAAE,iBAAqC,EAAW,EAAE,CACzG,CAAC,QAAQ,CAAC,SAAS;IACnB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChC,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StructureNode } from "../plugin.ts";
|
|
2
|
+
/**
|
|
3
|
+
* 参照が単位の語(attrs.unitWord、日本語の「条」)で番号を名指していて、文書のどの条の番号にもその語が無い。
|
|
4
|
+
* 見出しに「1 目的」と番号を振った指針の「法第2条」は、指針の 2 ではなく、その語で条を数える別の文書(法律)の条。
|
|
5
|
+
* 単位の語を付けない言語・参照(英語の Section)は、ここでは決めない。
|
|
6
|
+
*/
|
|
7
|
+
export declare const namesAbsentUnit: (reference: StructureNode, articleLabels: readonly string[]) => boolean;
|
|
8
|
+
//# sourceMappingURL=unit-word.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-word.d.ts","sourceRoot":"","sources":["../../src/structure/unit-word.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,aAAa,EAAE,eAAe,SAAS,MAAM,EAAE,KAAG,OAG5F,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 参照が単位の語(attrs.unitWord、日本語の「条」)で番号を名指していて、文書のどの条の番号にもその語が無い。
|
|
3
|
+
* 見出しに「1 目的」と番号を振った指針の「法第2条」は、指針の 2 ではなく、その語で条を数える別の文書(法律)の条。
|
|
4
|
+
* 単位の語を付けない言語・参照(英語の Section)は、ここでは決めない。
|
|
5
|
+
*/
|
|
6
|
+
export const namesAbsentUnit = (reference, articleLabels) => {
|
|
7
|
+
const unitWord = reference.attrs["unitWord"];
|
|
8
|
+
return typeof unitWord === "string" && unitWord !== "" && !articleLabels.some((label) => label.includes(unitWord));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=unit-word.js.map
|