chaffjs 0.35.0 → 0.37.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/README.ja.md +12 -0
- package/README.md +15 -0
- package/dist/announced-count.d.ts +2 -0
- package/dist/announced-count.d.ts.map +1 -1
- package/dist/announced-count.js +29 -7
- package/dist/announced-count.js.map +1 -1
- package/dist/chronology-rows.d.ts +9 -0
- package/dist/chronology-rows.d.ts.map +1 -0
- package/dist/chronology-rows.js +79 -0
- package/dist/chronology-rows.js.map +1 -0
- package/dist/company-name-run.d.ts +8 -0
- package/dist/company-name-run.d.ts.map +1 -0
- package/dist/company-name-run.js +30 -0
- package/dist/company-name-run.js.map +1 -0
- package/dist/compound-head.d.ts +7 -0
- package/dist/compound-head.d.ts.map +1 -0
- package/dist/compound-head.js +19 -0
- package/dist/compound-head.js.map +1 -0
- package/dist/date-format.d.ts +8 -3
- package/dist/date-format.d.ts.map +1 -1
- package/dist/date-format.js +36 -3
- package/dist/date-format.js.map +1 -1
- package/dist/derived/count-per-period.d.ts +23 -0
- package/dist/derived/count-per-period.d.ts.map +1 -0
- package/dist/derived/count-per-period.js +14 -0
- package/dist/derived/count-per-period.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 +29 -1
- package/dist/detectors/acronym-context.js.map +1 -1
- package/dist/detectors/acronym-expansion.d.ts +5 -1
- package/dist/detectors/acronym-expansion.d.ts.map +1 -1
- package/dist/detectors/acronym-expansion.js +42 -3
- package/dist/detectors/acronym-expansion.js.map +1 -1
- package/dist/detectors/acronym-known.d.ts +19 -0
- package/dist/detectors/acronym-known.d.ts.map +1 -0
- package/dist/detectors/acronym-known.js +32 -0
- package/dist/detectors/acronym-known.js.map +1 -0
- package/dist/detectors/acronym-link.d.ts +19 -0
- package/dist/detectors/acronym-link.d.ts.map +1 -0
- package/dist/detectors/acronym-link.js +65 -0
- package/dist/detectors/acronym-link.js.map +1 -0
- package/dist/detectors/acronym-mention.d.ts +5 -0
- package/dist/detectors/acronym-mention.d.ts.map +1 -0
- package/dist/detectors/acronym-mention.js +34 -0
- package/dist/detectors/acronym-mention.js.map +1 -0
- package/dist/detectors/acronym-name.d.ts +8 -1
- package/dist/detectors/acronym-name.d.ts.map +1 -1
- package/dist/detectors/acronym-name.js +25 -6
- package/dist/detectors/acronym-name.js.map +1 -1
- package/dist/detectors/addressee-edge.d.ts +13 -0
- package/dist/detectors/addressee-edge.d.ts.map +1 -0
- package/dist/detectors/addressee-edge.js +13 -0
- package/dist/detectors/addressee-edge.js.map +1 -0
- package/dist/detectors/addressee-title-edge.d.ts +21 -0
- package/dist/detectors/addressee-title-edge.d.ts.map +1 -0
- package/dist/detectors/addressee-title-edge.js +22 -0
- package/dist/detectors/addressee-title-edge.js.map +1 -0
- package/dist/detectors/announced-count.d.ts.map +1 -1
- package/dist/detectors/announced-count.js +1 -0
- package/dist/detectors/announced-count.js.map +1 -1
- package/dist/detectors/bare-comparative.d.ts +4 -0
- package/dist/detectors/bare-comparative.d.ts.map +1 -1
- package/dist/detectors/bare-comparative.js +28 -3
- package/dist/detectors/bare-comparative.js.map +1 -1
- package/dist/detectors/blank-structure.d.ts +7 -1
- package/dist/detectors/blank-structure.d.ts.map +1 -1
- package/dist/detectors/blank-structure.js +13 -8
- package/dist/detectors/blank-structure.js.map +1 -1
- package/dist/detectors/bracket-specified.d.ts +6 -0
- package/dist/detectors/bracket-specified.d.ts.map +1 -0
- package/dist/detectors/bracket-specified.js +23 -0
- package/dist/detectors/bracket-specified.js.map +1 -0
- package/dist/detectors/broken-link.d.ts +6 -0
- package/dist/detectors/broken-link.d.ts.map +1 -1
- package/dist/detectors/broken-link.js +23 -2
- package/dist/detectors/broken-link.js.map +1 -1
- package/dist/detectors/capitalised-term.d.ts +4 -0
- package/dist/detectors/capitalised-term.d.ts.map +1 -1
- package/dist/detectors/capitalised-term.js +18 -1
- package/dist/detectors/capitalised-term.js.map +1 -1
- package/dist/detectors/caps-caption.d.ts +17 -6
- package/dist/detectors/caps-caption.d.ts.map +1 -1
- package/dist/detectors/caps-caption.js +65 -0
- package/dist/detectors/caps-caption.js.map +1 -1
- package/dist/detectors/caps-phrase.d.ts +6 -0
- package/dist/detectors/caps-phrase.d.ts.map +1 -0
- package/dist/detectors/caps-phrase.js +16 -0
- package/dist/detectors/caps-phrase.js.map +1 -0
- package/dist/detectors/char-shape.d.ts +1 -0
- package/dist/detectors/char-shape.d.ts.map +1 -1
- package/dist/detectors/char-shape.js +56 -20
- package/dist/detectors/char-shape.js.map +1 -1
- package/dist/detectors/citation-sentence.d.ts +8 -0
- package/dist/detectors/citation-sentence.d.ts.map +1 -0
- package/dist/detectors/citation-sentence.js +40 -0
- package/dist/detectors/citation-sentence.js.map +1 -0
- package/dist/detectors/cited-title.d.ts +3 -2
- package/dist/detectors/cited-title.d.ts.map +1 -1
- package/dist/detectors/cited-title.js +14 -3
- package/dist/detectors/cited-title.js.map +1 -1
- package/dist/detectors/contraction-mention.d.ts +3 -0
- package/dist/detectors/contraction-mention.d.ts.map +1 -0
- package/dist/detectors/contraction-mention.js +22 -0
- package/dist/detectors/contraction-mention.js.map +1 -0
- package/dist/detectors/counter-edge.d.ts +2 -1
- package/dist/detectors/counter-edge.d.ts.map +1 -1
- package/dist/detectors/counter-edge.js +17 -2
- package/dist/detectors/counter-edge.js.map +1 -1
- package/dist/detectors/dash-break.d.ts +7 -0
- package/dist/detectors/dash-break.d.ts.map +1 -0
- package/dist/detectors/dash-break.js +30 -0
- package/dist/detectors/dash-break.js.map +1 -0
- package/dist/detectors/date-any-year.d.ts +7 -3
- package/dist/detectors/date-any-year.d.ts.map +1 -1
- package/dist/detectors/date-any-year.js +30 -8
- package/dist/detectors/date-any-year.js.map +1 -1
- package/dist/detectors/date-format.d.ts.map +1 -1
- package/dist/detectors/date-format.js +2 -1
- package/dist/detectors/date-format.js.map +1 -1
- package/dist/detectors/date-year.d.ts +9 -3
- package/dist/detectors/date-year.d.ts.map +1 -1
- package/dist/detectors/date-year.js +45 -9
- package/dist/detectors/date-year.js.map +1 -1
- package/dist/detectors/deadline-unit.d.ts +20 -0
- package/dist/detectors/deadline-unit.d.ts.map +1 -0
- package/dist/detectors/deadline-unit.js +19 -0
- package/dist/detectors/deadline-unit.js.map +1 -0
- package/dist/detectors/defined-term-form.d.ts.map +1 -1
- package/dist/detectors/defined-term-form.js +33 -7
- package/dist/detectors/defined-term-form.js.map +1 -1
- package/dist/detectors/definition-use.d.ts.map +1 -1
- package/dist/detectors/definition-use.js +14 -6
- package/dist/detectors/definition-use.js.map +1 -1
- package/dist/detectors/derived-numbers.d.ts.map +1 -1
- package/dist/detectors/derived-numbers.js +17 -4
- package/dist/detectors/derived-numbers.js.map +1 -1
- package/dist/detectors/document-shape.d.ts +5 -0
- package/dist/detectors/document-shape.d.ts.map +1 -1
- package/dist/detectors/document-shape.js +15 -1
- package/dist/detectors/document-shape.js.map +1 -1
- package/dist/detectors/doubled-across-aside.d.ts +9 -0
- package/dist/detectors/doubled-across-aside.d.ts.map +1 -0
- package/dist/detectors/doubled-across-aside.js +27 -0
- package/dist/detectors/doubled-across-aside.js.map +1 -0
- package/dist/detectors/doubled-punctuation.d.ts +3 -3
- package/dist/detectors/doubled-punctuation.d.ts.map +1 -1
- package/dist/detectors/doubled-punctuation.js +23 -4
- package/dist/detectors/doubled-punctuation.js.map +1 -1
- package/dist/detectors/doubled-word.d.ts.map +1 -1
- package/dist/detectors/doubled-word.js +2 -1
- package/dist/detectors/doubled-word.js.map +1 -1
- package/dist/detectors/duplicate-heading.d.ts +1 -0
- package/dist/detectors/duplicate-heading.d.ts.map +1 -1
- package/dist/detectors/duplicate-heading.js +25 -3
- package/dist/detectors/duplicate-heading.js.map +1 -1
- package/dist/detectors/ellipsis.d.ts.map +1 -1
- package/dist/detectors/ellipsis.js +13 -1
- package/dist/detectors/ellipsis.js.map +1 -1
- package/dist/detectors/email-letter.d.ts +40 -3
- package/dist/detectors/email-letter.d.ts.map +1 -1
- package/dist/detectors/email-letter.js +110 -17
- package/dist/detectors/email-letter.js.map +1 -1
- package/dist/detectors/field-label.d.ts +7 -0
- package/dist/detectors/field-label.d.ts.map +1 -0
- package/dist/detectors/field-label.js +23 -0
- package/dist/detectors/field-label.js.map +1 -0
- package/dist/detectors/footnote-mismatch.d.ts +6 -1
- package/dist/detectors/footnote-mismatch.d.ts.map +1 -1
- package/dist/detectors/footnote-mismatch.js +28 -7
- package/dist/detectors/footnote-mismatch.js.map +1 -1
- package/dist/detectors/fullwidth-alnum.d.ts.map +1 -1
- package/dist/detectors/fullwidth-alnum.js +7 -1
- package/dist/detectors/fullwidth-alnum.js.map +1 -1
- package/dist/detectors/graded-step.d.ts +20 -0
- package/dist/detectors/graded-step.d.ts.map +1 -0
- package/dist/detectors/graded-step.js +33 -0
- package/dist/detectors/graded-step.js.map +1 -0
- package/dist/detectors/gram-openers.d.ts +9 -0
- package/dist/detectors/gram-openers.d.ts.map +1 -0
- package/dist/detectors/gram-openers.js +40 -0
- package/dist/detectors/gram-openers.js.map +1 -0
- package/dist/detectors/gram-place.d.ts +3 -1
- package/dist/detectors/gram-place.d.ts.map +1 -1
- package/dist/detectors/gram-place.js +8 -0
- package/dist/detectors/gram-place.js.map +1 -1
- package/dist/detectors/gram-predicate.d.ts.map +1 -1
- package/dist/detectors/gram-predicate.js +37 -3
- package/dist/detectors/gram-predicate.js.map +1 -1
- package/dist/detectors/heading-echo.d.ts.map +1 -1
- package/dist/detectors/heading-echo.js +28 -2
- package/dist/detectors/heading-echo.js.map +1 -1
- package/dist/detectors/heading-record-rhythm.d.ts +9 -0
- package/dist/detectors/heading-record-rhythm.d.ts.map +1 -0
- package/dist/detectors/heading-record-rhythm.js +57 -0
- package/dist/detectors/heading-record-rhythm.js.map +1 -0
- package/dist/detectors/ime-residue.d.ts +1 -1
- package/dist/detectors/ime-residue.d.ts.map +1 -1
- package/dist/detectors/ime-residue.js +4 -3
- package/dist/detectors/ime-residue.js.map +1 -1
- package/dist/detectors/kanji-compound-slip.d.ts +3 -0
- package/dist/detectors/kanji-compound-slip.d.ts.map +1 -0
- package/dist/detectors/kanji-compound-slip.js +50 -0
- package/dist/detectors/kanji-compound-slip.js.map +1 -0
- package/dist/detectors/kutoten-consistency.d.ts +10 -2
- package/dist/detectors/kutoten-consistency.d.ts.map +1 -1
- package/dist/detectors/kutoten-consistency.js +83 -12
- package/dist/detectors/kutoten-consistency.js.map +1 -1
- package/dist/detectors/lexicon.d.ts.map +1 -1
- package/dist/detectors/lexicon.js +13 -4
- package/dist/detectors/lexicon.js.map +1 -1
- package/dist/detectors/link-shape.d.ts.map +1 -1
- package/dist/detectors/link-shape.js +9 -3
- package/dist/detectors/link-shape.js.map +1 -1
- package/dist/detectors/list-item-ending.d.ts +18 -0
- package/dist/detectors/list-item-ending.d.ts.map +1 -0
- package/dist/detectors/list-item-ending.js +35 -0
- package/dist/detectors/list-item-ending.js.map +1 -0
- package/dist/detectors/list-parallel.d.ts +18 -5
- package/dist/detectors/list-parallel.d.ts.map +1 -1
- package/dist/detectors/list-parallel.js +116 -36
- package/dist/detectors/list-parallel.js.map +1 -1
- package/dist/detectors/list-sentence.d.ts +4 -0
- package/dist/detectors/list-sentence.d.ts.map +1 -1
- package/dist/detectors/list-sentence.js +1 -1
- package/dist/detectors/list-sentence.js.map +1 -1
- package/dist/detectors/mark-shape.d.ts +13 -4
- package/dist/detectors/mark-shape.d.ts.map +1 -1
- package/dist/detectors/mark-shape.js +73 -10
- package/dist/detectors/mark-shape.js.map +1 -1
- package/dist/detectors/mentioned-phrase.d.ts +9 -0
- package/dist/detectors/mentioned-phrase.d.ts.map +1 -0
- package/dist/detectors/mentioned-phrase.js +25 -0
- package/dist/detectors/mentioned-phrase.js.map +1 -0
- package/dist/detectors/middle-dot.d.ts +2 -2
- package/dist/detectors/middle-dot.d.ts.map +1 -1
- package/dist/detectors/middle-dot.js +4 -2
- package/dist/detectors/middle-dot.js.map +1 -1
- package/dist/detectors/modal-conflict.d.ts.map +1 -1
- package/dist/detectors/modal-conflict.js +5 -2
- package/dist/detectors/modal-conflict.js.map +1 -1
- package/dist/detectors/name-variant.d.ts.map +1 -1
- package/dist/detectors/name-variant.js +6 -0
- package/dist/detectors/name-variant.js.map +1 -1
- package/dist/detectors/notice-paragraph.d.ts +9 -0
- package/dist/detectors/notice-paragraph.d.ts.map +1 -0
- package/dist/detectors/notice-paragraph.js +21 -0
- package/dist/detectors/notice-paragraph.js.map +1 -0
- package/dist/detectors/number-style.d.ts.map +1 -1
- package/dist/detectors/number-style.js +15 -2
- package/dist/detectors/number-style.js.map +1 -1
- package/dist/detectors/number-unit.d.ts.map +1 -1
- package/dist/detectors/number-unit.js +24 -1
- package/dist/detectors/number-unit.js.map +1 -1
- package/dist/detectors/numeral-opener.d.ts +6 -0
- package/dist/detectors/numeral-opener.d.ts.map +1 -1
- package/dist/detectors/numeral-opener.js +24 -1
- package/dist/detectors/numeral-opener.js.map +1 -1
- package/dist/detectors/obligation-without-deadline.d.ts +5 -1
- package/dist/detectors/obligation-without-deadline.d.ts.map +1 -1
- package/dist/detectors/obligation-without-deadline.js +44 -23
- package/dist/detectors/obligation-without-deadline.js.map +1 -1
- package/dist/detectors/open-end-class.d.ts +16 -0
- package/dist/detectors/open-end-class.d.ts.map +1 -0
- package/dist/detectors/open-end-class.js +65 -0
- package/dist/detectors/open-end-class.js.map +1 -0
- package/dist/detectors/open-end-condition.d.ts +7 -0
- package/dist/detectors/open-end-condition.d.ts.map +1 -0
- package/dist/detectors/open-end-condition.js +35 -0
- package/dist/detectors/open-end-condition.js.map +1 -0
- package/dist/detectors/open-end-names.d.ts +9 -3
- package/dist/detectors/open-end-names.d.ts.map +1 -1
- package/dist/detectors/open-end-names.js +5 -2
- package/dist/detectors/open-end-names.js.map +1 -1
- package/dist/detectors/open-end-question.d.ts +15 -0
- package/dist/detectors/open-end-question.d.ts.map +1 -0
- package/dist/detectors/open-end-question.js +37 -0
- package/dist/detectors/open-end-question.js.map +1 -0
- package/dist/detectors/open-end-scope.d.ts +16 -0
- package/dist/detectors/open-end-scope.d.ts.map +1 -0
- package/dist/detectors/open-end-scope.js +47 -0
- package/dist/detectors/open-end-scope.js.map +1 -0
- package/dist/detectors/opening-date.d.ts +10 -0
- package/dist/detectors/opening-date.d.ts.map +1 -0
- package/dist/detectors/opening-date.js +33 -0
- package/dist/detectors/opening-date.js.map +1 -0
- package/dist/detectors/ordinary-phrase.d.ts +20 -0
- package/dist/detectors/ordinary-phrase.d.ts.map +1 -0
- package/dist/detectors/ordinary-phrase.js +54 -0
- package/dist/detectors/ordinary-phrase.js.map +1 -0
- package/dist/detectors/organisation-run.d.ts +5 -7
- package/dist/detectors/organisation-run.d.ts.map +1 -1
- package/dist/detectors/organisation-run.js +10 -0
- package/dist/detectors/organisation-run.js.map +1 -1
- package/dist/detectors/orthographic-variant.d.ts.map +1 -1
- package/dist/detectors/orthographic-variant.js +85 -20
- package/dist/detectors/orthographic-variant.js.map +1 -1
- package/dist/detectors/orthography.d.ts.map +1 -1
- package/dist/detectors/orthography.js +9 -2
- package/dist/detectors/orthography.js.map +1 -1
- package/dist/detectors/oxford-comma.d.ts.map +1 -1
- package/dist/detectors/oxford-comma.js +70 -3
- package/dist/detectors/oxford-comma.js.map +1 -1
- package/dist/detectors/person-consistency.d.ts +2 -1
- package/dist/detectors/person-consistency.d.ts.map +1 -1
- package/dist/detectors/person-consistency.js +5 -3
- package/dist/detectors/person-consistency.js.map +1 -1
- package/dist/detectors/phrase-match.d.ts +2 -0
- package/dist/detectors/phrase-match.d.ts.map +1 -1
- package/dist/detectors/phrase-match.js +11 -4
- package/dist/detectors/phrase-match.js.map +1 -1
- package/dist/detectors/placeholder-text.d.ts.map +1 -1
- package/dist/detectors/placeholder-text.js +18 -3
- package/dist/detectors/placeholder-text.js.map +1 -1
- package/dist/detectors/placeholder.d.ts +3 -1
- package/dist/detectors/placeholder.d.ts.map +1 -1
- package/dist/detectors/placeholder.js +8 -3
- package/dist/detectors/placeholder.js.map +1 -1
- package/dist/detectors/postcode-end.d.ts +3 -0
- package/dist/detectors/postcode-end.d.ts.map +1 -0
- package/dist/detectors/postcode-end.js +15 -0
- package/dist/detectors/postcode-end.js.map +1 -0
- package/dist/detectors/prose-total-words.d.ts +5 -0
- package/dist/detectors/prose-total-words.d.ts.map +1 -0
- package/dist/detectors/prose-total-words.js +14 -0
- package/dist/detectors/prose-total-words.js.map +1 -0
- package/dist/detectors/range-notation.d.ts +2 -2
- package/dist/detectors/range-notation.d.ts.map +1 -1
- package/dist/detectors/range-notation.js +18 -7
- package/dist/detectors/range-notation.js.map +1 -1
- package/dist/detectors/registry/kanji-compound-slip.d.ts +3 -0
- package/dist/detectors/registry/kanji-compound-slip.d.ts.map +1 -0
- package/dist/detectors/registry/kanji-compound-slip.js +3 -0
- package/dist/detectors/registry/kanji-compound-slip.js.map +1 -0
- package/dist/detectors/registry/phrase-in-use.d.ts +3 -0
- package/dist/detectors/registry/phrase-in-use.d.ts.map +1 -0
- package/dist/detectors/registry/phrase-in-use.js +3 -0
- package/dist/detectors/registry/phrase-in-use.js.map +1 -0
- package/dist/detectors/requirement-smell.d.ts.map +1 -1
- package/dist/detectors/requirement-smell.js +35 -7
- package/dist/detectors/requirement-smell.js.map +1 -1
- package/dist/detectors/scaled-figure-unit.d.ts +28 -0
- package/dist/detectors/scaled-figure-unit.d.ts.map +1 -0
- package/dist/detectors/scaled-figure-unit.js +78 -0
- package/dist/detectors/scaled-figure-unit.js.map +1 -0
- package/dist/detectors/sentence-counts.d.ts +12 -2
- package/dist/detectors/sentence-counts.d.ts.map +1 -1
- package/dist/detectors/sentence-counts.js +52 -11
- package/dist/detectors/sentence-counts.js.map +1 -1
- package/dist/detectors/sentence-ending.d.ts +2 -0
- package/dist/detectors/sentence-ending.d.ts.map +1 -1
- package/dist/detectors/sentence-ending.js +10 -3
- package/dist/detectors/sentence-ending.js.map +1 -1
- package/dist/detectors/sentence-length.d.ts.map +1 -1
- package/dist/detectors/sentence-length.js +13 -4
- package/dist/detectors/sentence-length.js.map +1 -1
- package/dist/detectors/sentence-load.d.ts +4 -1
- package/dist/detectors/sentence-load.d.ts.map +1 -1
- package/dist/detectors/sentence-load.js +9 -2
- package/dist/detectors/sentence-load.js.map +1 -1
- package/dist/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +44 -52
- package/dist/detectors/signals.js.map +1 -1
- package/dist/detectors/structure-tree.d.ts.map +1 -1
- package/dist/detectors/structure-tree.js +14 -13
- package/dist/detectors/structure-tree.js.map +1 -1
- package/dist/detectors/structure.d.ts.map +1 -1
- package/dist/detectors/structure.js +2 -1
- package/dist/detectors/structure.js.map +1 -1
- package/dist/detectors/subject-name-line.d.ts +8 -0
- package/dist/detectors/subject-name-line.d.ts.map +1 -0
- package/dist/detectors/subject-name-line.js +53 -0
- package/dist/detectors/subject-name-line.js.map +1 -0
- package/dist/detectors/superlative-name.d.ts +5 -0
- package/dist/detectors/superlative-name.d.ts.map +1 -1
- package/dist/detectors/superlative-name.js +9 -0
- package/dist/detectors/superlative-name.js.map +1 -1
- package/dist/detectors/table-header.d.ts.map +1 -1
- package/dist/detectors/table-header.js +13 -1
- package/dist/detectors/table-header.js.map +1 -1
- package/dist/detectors/technical-docs.d.ts.map +1 -1
- package/dist/detectors/technical-docs.js +4 -1
- package/dist/detectors/technical-docs.js.map +1 -1
- package/dist/detectors/term-mention-sentence.d.ts +4 -0
- package/dist/detectors/term-mention-sentence.d.ts.map +1 -0
- package/dist/detectors/term-mention-sentence.js +28 -0
- package/dist/detectors/term-mention-sentence.js.map +1 -0
- package/dist/detectors/titled-run.d.ts +2 -1
- package/dist/detectors/titled-run.d.ts.map +1 -1
- package/dist/detectors/titled-run.js +9 -4
- package/dist/detectors/titled-run.js.map +1 -1
- package/dist/detectors/token-shape.d.ts.map +1 -1
- package/dist/detectors/token-shape.js +15 -5
- package/dist/detectors/token-shape.js.map +1 -1
- package/dist/detectors/undefined-term.d.ts.map +1 -1
- package/dist/detectors/undefined-term.js +5 -0
- package/dist/detectors/undefined-term.js.map +1 -1
- package/dist/detectors/unknown-word.d.ts +4 -1
- package/dist/detectors/unknown-word.d.ts.map +1 -1
- package/dist/detectors/unknown-word.js +1 -1
- package/dist/detectors/unknown-word.js.map +1 -1
- package/dist/detectors/vague-density.d.ts +5 -2
- package/dist/detectors/vague-density.d.ts.map +1 -1
- package/dist/detectors/vague-density.js +17 -4
- package/dist/detectors/vague-density.js.map +1 -1
- package/dist/document-paragraphs.d.ts +4 -0
- package/dist/document-paragraphs.d.ts.map +1 -0
- package/dist/document-paragraphs.js +24 -0
- package/dist/document-paragraphs.js.map +1 -0
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +2 -19
- package/dist/document.js.map +1 -1
- package/dist/figure-references.d.ts +3 -0
- package/dist/figure-references.d.ts.map +1 -1
- package/dist/figure-references.js +6 -2
- package/dist/figure-references.js.map +1 -1
- package/dist/format-template.d.ts +3 -0
- package/dist/format-template.d.ts.map +1 -0
- package/dist/format-template.js +13 -0
- package/dist/format-template.js.map +1 -0
- package/dist/formula-brackets.d.ts +7 -0
- package/dist/formula-brackets.d.ts.map +1 -0
- package/dist/formula-brackets.js +29 -0
- package/dist/formula-brackets.js.map +1 -0
- package/dist/html/html-markdown.d.ts.map +1 -1
- package/dist/html/html-markdown.js +2 -1
- package/dist/html/html-markdown.js.map +1 -1
- package/dist/html/html-site-chrome.d.ts +5 -0
- package/dist/html/html-site-chrome.d.ts.map +1 -0
- package/dist/html/html-site-chrome.js +56 -0
- package/dist/html/html-site-chrome.js.map +1 -0
- package/dist/joined-view.d.ts.map +1 -1
- package/dist/joined-view.js +1 -0
- package/dist/joined-view.js.map +1 -1
- package/dist/kanji-compound-slip.d.ts +32 -0
- package/dist/kanji-compound-slip.d.ts.map +1 -0
- package/dist/kanji-compound-slip.js +63 -0
- package/dist/kanji-compound-slip.js.map +1 -0
- package/dist/latin-company-form.d.ts +6 -0
- package/dist/latin-company-form.d.ts.map +1 -0
- package/dist/latin-company-form.js +32 -0
- package/dist/latin-company-form.js.map +1 -0
- package/dist/latin-word-boundary.d.ts +20 -0
- package/dist/latin-word-boundary.d.ts.map +1 -0
- package/dist/latin-word-boundary.js +57 -0
- package/dist/latin-word-boundary.js.map +1 -0
- package/dist/leading-label.d.ts +4 -0
- package/dist/leading-label.d.ts.map +1 -0
- package/dist/leading-label.js +14 -0
- package/dist/leading-label.js.map +1 -0
- package/dist/lexicon-genres.d.ts +2 -0
- package/dist/lexicon-genres.d.ts.map +1 -1
- package/dist/lexicon-genres.js +1 -1
- package/dist/lexicon-genres.js.map +1 -1
- package/dist/link-shape.d.ts +6 -0
- package/dist/link-shape.d.ts.map +1 -1
- package/dist/link-shape.js +27 -0
- package/dist/link-shape.js.map +1 -1
- package/dist/link-title.d.ts +4 -0
- package/dist/link-title.d.ts.map +1 -0
- package/dist/link-title.js +33 -0
- package/dist/link-title.js.map +1 -0
- package/dist/list-item-paragraphs.d.ts +15 -0
- package/dist/list-item-paragraphs.d.ts.map +1 -0
- package/dist/list-item-paragraphs.js +19 -0
- package/dist/list-item-paragraphs.js.map +1 -0
- package/dist/literal-quote.d.ts +12 -0
- package/dist/literal-quote.d.ts.map +1 -0
- package/dist/literal-quote.js +43 -0
- package/dist/literal-quote.js.map +1 -0
- package/dist/nado-closed-list.d.ts.map +1 -1
- package/dist/nado-closed-list.js +39 -5
- package/dist/nado-closed-list.js.map +1 -1
- package/dist/name-misspelt-usual.d.ts +5 -0
- package/dist/name-misspelt-usual.d.ts.map +1 -0
- package/dist/name-misspelt-usual.js +19 -0
- package/dist/name-misspelt-usual.js.map +1 -0
- package/dist/name-separator.d.ts.map +1 -1
- package/dist/name-separator.js +25 -2
- package/dist/name-separator.js.map +1 -1
- package/dist/nominal-stem.d.ts +14 -1
- package/dist/nominal-stem.d.ts.map +1 -1
- package/dist/nominal-stem.js +42 -4
- package/dist/nominal-stem.js.map +1 -1
- package/dist/notice-header.d.ts +19 -0
- package/dist/notice-header.d.ts.map +1 -0
- package/dist/notice-header.js +31 -0
- package/dist/notice-header.js.map +1 -0
- package/dist/person-forms.d.ts +8 -0
- package/dist/person-forms.d.ts.map +1 -1
- package/dist/person-forms.js +12 -0
- package/dist/person-forms.js.map +1 -1
- package/dist/plugin.d.ts +5 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/preamble-paragraphs.d.ts +3 -2
- package/dist/preamble-paragraphs.d.ts.map +1 -1
- package/dist/preamble-paragraphs.js +8 -2
- package/dist/preamble-paragraphs.js.map +1 -1
- package/dist/sentence-load.d.ts +2 -1
- package/dist/sentence-load.d.ts.map +1 -1
- package/dist/sentence-load.js +11 -3
- package/dist/sentence-load.js.map +1 -1
- package/dist/spacing-code.d.ts +1 -0
- package/dist/spacing-code.d.ts.map +1 -1
- package/dist/spacing-code.js +4 -1
- package/dist/spacing-code.js.map +1 -1
- package/dist/split-noun.d.ts +10 -0
- package/dist/split-noun.d.ts.map +1 -0
- package/dist/split-noun.js +50 -0
- package/dist/split-noun.js.map +1 -0
- package/dist/structure/attached-parts.d.ts +12 -0
- package/dist/structure/attached-parts.d.ts.map +1 -0
- package/dist/structure/attached-parts.js +44 -0
- package/dist/structure/attached-parts.js.map +1 -0
- package/dist/structure/build.d.ts.map +1 -1
- package/dist/structure/build.js +7 -4
- package/dist/structure/build.js.map +1 -1
- package/dist/structure/contents-lines.d.ts +7 -0
- package/dist/structure/contents-lines.d.ts.map +1 -0
- package/dist/structure/contents-lines.js +51 -0
- package/dist/structure/contents-lines.js.map +1 -0
- package/dist/structure/defining-names.d.ts +37 -0
- package/dist/structure/defining-names.d.ts.map +1 -0
- package/dist/structure/defining-names.js +122 -0
- package/dist/structure/defining-names.js.map +1 -0
- package/dist/structure/definition-use.d.ts +8 -4
- package/dist/structure/definition-use.d.ts.map +1 -1
- package/dist/structure/definition-use.js +123 -38
- package/dist/structure/definition-use.js.map +1 -1
- package/dist/structure/gerund-phrase.d.ts +8 -0
- package/dist/structure/gerund-phrase.d.ts.map +1 -0
- package/dist/structure/gerund-phrase.js +30 -0
- package/dist/structure/gerund-phrase.js.map +1 -0
- package/dist/structure/issues.d.ts +4 -1
- package/dist/structure/issues.d.ts.map +1 -1
- package/dist/structure/issues.js +5 -2
- package/dist/structure/issues.js.map +1 -1
- package/dist/structure/list-lead-in.d.ts +19 -0
- package/dist/structure/list-lead-in.d.ts.map +1 -0
- package/dist/structure/list-lead-in.js +85 -0
- package/dist/structure/list-lead-in.js.map +1 -0
- package/dist/structure/modal-conflict.d.ts +7 -2
- package/dist/structure/modal-conflict.d.ts.map +1 -1
- package/dist/structure/modal-conflict.js +36 -7
- package/dist/structure/modal-conflict.js.map +1 -1
- package/dist/structure/negated-act.d.ts +17 -0
- package/dist/structure/negated-act.d.ts.map +1 -0
- package/dist/structure/negated-act.js +32 -0
- package/dist/structure/negated-act.js.map +1 -0
- package/dist/structure/numbering.d.ts +3 -1
- package/dist/structure/numbering.d.ts.map +1 -1
- package/dist/structure/numbering.js +20 -8
- package/dist/structure/numbering.js.map +1 -1
- package/dist/structure/prose-total.d.ts +4 -0
- package/dist/structure/prose-total.d.ts.map +1 -1
- package/dist/structure/prose-total.js +16 -6
- package/dist/structure/prose-total.js.map +1 -1
- package/dist/structure/repeated-number.d.ts +24 -0
- package/dist/structure/repeated-number.d.ts.map +1 -0
- package/dist/structure/repeated-number.js +89 -0
- package/dist/structure/repeated-number.js.map +1 -0
- package/dist/structure/rounded-amount.d.ts +8 -0
- package/dist/structure/rounded-amount.d.ts.map +1 -0
- package/dist/structure/rounded-amount.js +48 -0
- package/dist/structure/rounded-amount.js.map +1 -0
- package/dist/structure/side-step.d.ts +8 -0
- package/dist/structure/side-step.d.ts.map +1 -0
- package/dist/structure/side-step.js +21 -0
- package/dist/structure/side-step.js.map +1 -0
- package/dist/structure/spanned-label-blank.d.ts +8 -0
- package/dist/structure/spanned-label-blank.d.ts.map +1 -0
- package/dist/structure/spanned-label-blank.js +37 -0
- package/dist/structure/spanned-label-blank.js.map +1 -0
- package/dist/structure/universal.d.ts +10 -4
- package/dist/structure/universal.d.ts.map +1 -1
- package/dist/structure/universal.js +26 -7
- package/dist/structure/universal.js.map +1 -1
- package/dist/structure/unspaced-heading.d.ts +10 -0
- package/dist/structure/unspaced-heading.d.ts.map +1 -0
- package/dist/structure/unspaced-heading.js +24 -0
- package/dist/structure/unspaced-heading.js.map +1 -0
- package/dist/structure/written-list-path.d.ts +10 -0
- package/dist/structure/written-list-path.d.ts.map +1 -0
- package/dist/structure/written-list-path.js +37 -0
- package/dist/structure/written-list-path.js.map +1 -0
- package/dist/structure/written-resolve.d.ts +1 -1
- package/dist/structure/written-resolve.d.ts.map +1 -1
- package/dist/structure/written-resolve.js +15 -9
- package/dist/structure/written-resolve.js.map +1 -1
- package/dist/title-line.d.ts +23 -0
- package/dist/title-line.d.ts.map +1 -0
- package/dist/title-line.js +28 -0
- package/dist/title-line.js.map +1 -0
- package/dist/topic-clause.d.ts +7 -0
- package/dist/topic-clause.d.ts.map +1 -0
- package/dist/topic-clause.js +87 -0
- package/dist/topic-clause.js.map +1 -0
- package/dist/uncounted-particles.d.ts +18 -0
- package/dist/uncounted-particles.d.ts.map +1 -0
- package/dist/uncounted-particles.js +47 -0
- package/dist/uncounted-particles.js.map +1 -0
- package/package.json +3 -3
- package/rules/adversative-ga-repeat.yaml +1 -0
- package/rules/all-caps-shouting.yaml +2 -2
- package/rules/announced-count-mismatch.yaml +2 -2
- package/rules/bare-url-mix.yaml +2 -2
- package/rules/bracket-nesting.yaml +2 -2
- package/rules/bracket-width-consistency.yaml +2 -2
- package/rules/broken-link.yaml +2 -2
- package/rules/cliche.yaml +4 -3
- package/rules/code-fence-language-mix.yaml +2 -2
- package/rules/comparative-without-baseline.yaml +2 -2
- package/rules/concrete-evidence-density.yaml +1 -0
- package/rules/contraction-consistency.yaml +2 -2
- package/rules/dangling-figure-reference.yaml +2 -2
- package/rules/date-without-year.yaml +10 -2
- package/rules/defined-term-form.yaml +2 -2
- package/rules/doubled-punctuation.yaml +4 -4
- package/rules/doubled-word.yaml +2 -2
- package/rules/duplicate-definition.yaml +2 -2
- package/rules/duplicate-heading.yaml +2 -2
- package/rules/duration-mismatch.yaml +2 -2
- package/rules/email-greeting-closing.yaml +2 -2
- package/rules/email-subject-length.yaml +2 -2
- package/rules/empty-table-cell.yaml +2 -2
- package/rules/footnote-mismatch.yaml +2 -2
- package/rules/fullwidth-alnum-consistency.yaml +2 -2
- package/rules/heading-echo.yaml +2 -2
- package/rules/ime-residue.yaml +2 -2
- package/rules/kanji-compound-slip.yaml +67 -0
- package/rules/kutoten-consistency.yaml +4 -4
- package/rules/latin-spacing.yaml +2 -2
- package/rules/list-item-form-mix.yaml +2 -2
- package/rules/max-kanji-continuous.yaml +6 -4
- package/rules/max-sentence-length.yaml +2 -2
- package/rules/modal-conflict.yaml +1 -0
- package/rules/nado-closed-list.yaml +2 -2
- package/rules/ngram-repetition.yaml +2 -2
- package/rules/no-doubled-joshi.yaml +2 -2
- package/rules/no-mixed-desumasu.yaml +3 -3
- package/rules/no-nakaguro-parallel.yaml +2 -0
- package/rules/number-without-unit.yaml +9 -4
- package/rules/numbering-gap.yaml +7 -2
- package/rules/numeral-sentence-start.yaml +2 -2
- package/rules/obligation-without-deadline.yaml +2 -2
- package/rules/orthographic-variant.yaml +2 -2
- package/rules/oxford-comma-consistency.yaml +3 -3
- package/rules/preamble-length.yaml +3 -2
- package/rules/range-notation-consistency.yaml +2 -2
- package/rules/requirement-smell.yaml +3 -3
- package/rules/table-header-variant.yaml +2 -2
- package/rules/teki-overuse.yaml +3 -2
- package/rules/title-length.yaml +2 -2
- package/rules/topic-predicate-distance.yaml +2 -2
- package/rules/total-mismatch.yaml +2 -2
- package/rules/translationese-density.yaml +2 -2
- package/rules/undefined-acronym.yaml +5 -2
- package/rules/undefined-term.yaml +2 -2
- package/rules/unfilled-placeholder.yaml +4 -4
- package/rules/unqualified-superlative.yaml +1 -1
- package/rules/unused-definition.yaml +2 -2
- package/rules/use-before-definition.yaml +2 -2
- package/rules/vague-word-density.yaml +2 -2
- package/skills/chaff/SKILL.md +7 -1
- package/src/announced-count.ts +35 -8
- package/src/chronology-rows.ts +86 -0
- package/src/company-name-run.ts +37 -0
- package/src/compound-head.ts +25 -0
- package/src/date-format.ts +43 -4
- package/src/derived/count-per-period.ts +28 -0
- package/src/detectors/acronym-context.ts +30 -1
- package/src/detectors/acronym-expansion.ts +54 -6
- package/src/detectors/acronym-known.ts +40 -0
- package/src/detectors/acronym-link.ts +75 -0
- package/src/detectors/acronym-mention.ts +44 -0
- package/src/detectors/acronym-name.ts +29 -6
- package/src/detectors/addressee-edge.ts +16 -0
- package/src/detectors/addressee-title-edge.ts +39 -0
- package/src/detectors/announced-count.ts +1 -0
- package/src/detectors/bare-comparative.ts +44 -3
- package/src/detectors/blank-structure.ts +21 -10
- package/src/detectors/bracket-specified.ts +25 -0
- package/src/detectors/broken-link.ts +26 -2
- package/src/detectors/capitalised-term.ts +26 -2
- package/src/detectors/caps-caption.ts +76 -0
- package/src/detectors/caps-phrase.ts +17 -0
- package/src/detectors/char-shape.ts +73 -14
- package/src/detectors/citation-sentence.ts +44 -0
- package/src/detectors/cited-title.ts +15 -3
- package/src/detectors/contraction-mention.ts +24 -0
- package/src/detectors/counter-edge.ts +17 -2
- package/src/detectors/dash-break.ts +45 -0
- package/src/detectors/date-any-year.ts +34 -9
- package/src/detectors/date-format.ts +2 -1
- package/src/detectors/date-year.ts +64 -16
- package/src/detectors/deadline-unit.ts +40 -0
- package/src/detectors/defined-term-form.ts +32 -12
- package/src/detectors/definition-use.ts +17 -9
- package/src/detectors/derived-numbers.ts +19 -4
- package/src/detectors/document-shape.ts +20 -1
- package/src/detectors/doubled-across-aside.ts +36 -0
- package/src/detectors/doubled-punctuation.ts +28 -7
- package/src/detectors/doubled-word.ts +2 -1
- package/src/detectors/duplicate-heading.ts +26 -3
- package/src/detectors/ellipsis.ts +16 -1
- package/src/detectors/email-letter.ts +142 -23
- package/src/detectors/field-label.ts +25 -0
- package/src/detectors/footnote-mismatch.ts +39 -7
- package/src/detectors/fullwidth-alnum.ts +9 -1
- package/src/detectors/graded-step.ts +52 -0
- package/src/detectors/gram-openers.ts +50 -0
- package/src/detectors/gram-place.ts +10 -1
- package/src/detectors/gram-predicate.ts +43 -3
- package/src/detectors/heading-echo.ts +31 -3
- package/src/detectors/heading-record-rhythm.ts +57 -0
- package/src/detectors/ime-residue.ts +4 -3
- package/src/detectors/kanji-compound-slip.ts +61 -0
- package/src/detectors/kutoten-consistency.ts +102 -14
- package/src/detectors/lexicon.ts +18 -5
- package/src/detectors/link-shape.ts +10 -3
- package/src/detectors/list-item-ending.ts +51 -0
- package/src/detectors/list-parallel.ts +158 -33
- package/src/detectors/list-sentence.ts +5 -1
- package/src/detectors/mark-shape.ts +89 -10
- package/src/detectors/mentioned-phrase.ts +38 -0
- package/src/detectors/middle-dot.ts +7 -2
- package/src/detectors/modal-conflict.ts +5 -2
- package/src/detectors/name-variant.ts +6 -0
- package/src/detectors/notice-paragraph.ts +33 -0
- package/src/detectors/number-style.ts +14 -2
- package/src/detectors/number-unit.ts +28 -1
- package/src/detectors/numeral-opener.ts +27 -1
- package/src/detectors/obligation-without-deadline.ts +29 -4
- package/src/detectors/open-end-class.ts +78 -0
- package/src/detectors/open-end-condition.ts +40 -0
- package/src/detectors/open-end-names.ts +9 -3
- package/src/detectors/open-end-question.ts +50 -0
- package/src/detectors/open-end-scope.ts +62 -0
- package/src/detectors/opening-date.ts +47 -0
- package/src/detectors/ordinary-phrase.ts +62 -0
- package/src/detectors/organisation-run.ts +18 -2
- package/src/detectors/orthographic-variant.ts +124 -25
- package/src/detectors/orthography.ts +15 -2
- package/src/detectors/oxford-comma.ts +74 -3
- package/src/detectors/person-consistency.ts +5 -3
- package/src/detectors/phrase-match.ts +16 -5
- package/src/detectors/placeholder-text.ts +18 -3
- package/src/detectors/placeholder.ts +10 -3
- package/src/detectors/postcode-end.ts +16 -0
- package/src/detectors/prose-total-words.ts +18 -0
- package/src/detectors/range-notation.ts +26 -6
- package/src/detectors/registry/kanji-compound-slip.ts +4 -0
- package/src/detectors/registry/phrase-in-use.ts +4 -0
- package/src/detectors/requirement-smell.ts +45 -8
- package/src/detectors/scaled-figure-unit.ts +103 -0
- package/src/detectors/sentence-counts.ts +64 -12
- package/src/detectors/sentence-ending.ts +12 -3
- package/src/detectors/sentence-length.ts +17 -4
- package/src/detectors/sentence-load.ts +9 -2
- package/src/detectors/signals.ts +50 -53
- package/src/detectors/structure-tree.ts +14 -14
- package/src/detectors/structure.ts +2 -1
- package/src/detectors/subject-name-line.ts +66 -0
- package/src/detectors/superlative-name.ts +10 -0
- package/src/detectors/table-header.ts +15 -1
- package/src/detectors/technical-docs.ts +5 -1
- package/src/detectors/term-mention-sentence.ts +31 -0
- package/src/detectors/titled-run.ts +9 -4
- package/src/detectors/token-shape.ts +16 -5
- package/src/detectors/undefined-term.ts +8 -0
- package/src/detectors/unknown-word.ts +1 -1
- package/src/detectors/vague-density.ts +20 -4
- package/src/document-paragraphs.ts +27 -0
- package/src/document.ts +3 -23
- package/src/figure-references.ts +7 -2
- package/src/format-template.ts +15 -0
- package/src/formula-brackets.ts +36 -0
- package/src/html/html-markdown.ts +2 -1
- package/src/html/html-site-chrome.ts +104 -0
- package/src/joined-view.ts +1 -0
- package/src/kanji-compound-slip.ts +98 -0
- package/src/latin-company-form.ts +38 -0
- package/src/latin-word-boundary.ts +64 -0
- package/src/leading-label.ts +15 -0
- package/src/lexicon-genres.ts +1 -1
- package/src/link-shape.ts +31 -0
- package/src/link-title.ts +38 -0
- package/src/list-item-paragraphs.ts +22 -0
- package/src/literal-quote.ts +55 -0
- package/src/nado-closed-list.ts +48 -5
- package/src/name-misspelt-usual.ts +25 -0
- package/src/name-separator.ts +27 -2
- package/src/nominal-stem.ts +62 -5
- package/src/notice-header.ts +57 -0
- package/src/person-forms.ts +15 -0
- package/src/plugin.ts +5 -0
- package/src/preamble-paragraphs.ts +13 -3
- package/src/sentence-load.ts +14 -3
- package/src/spacing-code.ts +5 -1
- package/src/split-noun.ts +63 -0
- package/src/structure/attached-parts.ts +47 -0
- package/src/structure/build.ts +7 -4
- package/src/structure/contents-lines.ts +63 -0
- package/src/structure/defining-names.ts +155 -0
- package/src/structure/definition-use.ts +149 -32
- package/src/structure/gerund-phrase.ts +31 -0
- package/src/structure/issues.ts +7 -3
- package/src/structure/list-lead-in.ts +94 -0
- package/src/structure/modal-conflict.ts +42 -7
- package/src/structure/negated-act.ts +49 -0
- package/src/structure/numbering.ts +24 -9
- package/src/structure/prose-total.ts +20 -6
- package/src/structure/repeated-number.ts +110 -0
- package/src/structure/rounded-amount.ts +55 -0
- package/src/structure/side-step.ts +21 -0
- package/src/structure/spanned-label-blank.ts +39 -0
- package/src/structure/universal.ts +33 -9
- package/src/structure/unspaced-heading.ts +27 -0
- package/src/structure/written-list-path.ts +46 -0
- package/src/structure/written-resolve.ts +16 -9
- package/src/title-line.ts +53 -0
- package/src/topic-clause.ts +109 -0
- package/src/uncounted-particles.ts +72 -0
|
@@ -3,13 +3,26 @@ import type { Detector, ProseDocument, Sentence, Span } from "../plugin.ts";
|
|
|
3
3
|
export type Axis = "ending" | "head";
|
|
4
4
|
/** For each axis, the two forms. The first is the side minorityWithin calls true. */
|
|
5
5
|
export declare const FORMS: Readonly<Record<Axis, readonly [string, string]>>;
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
/** What the axes read besides the item's own words: the adapter's word lists, and the nouns of the item's list. */
|
|
7
|
+
export type HeadContext = {
|
|
8
|
+
/** Verbs the tagger does not know as verbs (click), from the adapter's instruction-verb word list. */
|
|
9
|
+
readonly instructionVerbs: ReadonlySet<string>;
|
|
10
|
+
/** Words that open an instruction or an adjective phrase (Secure the server, Secure configuration), from verb-or-adjective. */
|
|
11
|
+
readonly verbOrAdjective: ReadonlySet<string>;
|
|
12
|
+
/** The lemmas the tagger read as nouns anywhere in the item's list. */
|
|
13
|
+
readonly nounsInList: ReadonlySet<string>;
|
|
14
|
+
/** Words that end a Japanese item as a headline does after a noun (翻訳あり), from headline-ending. */
|
|
15
|
+
readonly headlineEndings: ReadonlySet<string>;
|
|
16
|
+
};
|
|
17
|
+
export declare const NO_HEAD_CONTEXT: HeadContext;
|
|
18
|
+
export declare const formOf: (axis: Axis, sentences: readonly Sentence[], language: string, context?: HeadContext) => string | undefined;
|
|
11
19
|
/** The item's own sentences: those in its span, less those of a list nested inside it. */
|
|
12
20
|
export declare const itemSentences: (doc: ProseDocument, item: Span) => Sentence[];
|
|
21
|
+
/**
|
|
22
|
+
* Where an item's own words end: before a line in it that opens, unindented, with a note lead (※応募書類は返却できません。,
|
|
23
|
+
* "Note: …"). Markdown reads such a line as the last item's, but the note is about the whole list.
|
|
24
|
+
*/
|
|
25
|
+
export declare const itemOwnEnd: (source: string, item: Span, noteLeads: readonly string[]) => number;
|
|
13
26
|
/** Each list item whose form is the minority in its list, on each axis. A quoted list is someone else's words. */
|
|
14
27
|
export declare const listItemFormMix: Detector;
|
|
15
28
|
//# sourceMappingURL=list-parallel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-parallel.d.ts","sourceRoot":"","sources":["../../src/detectors/list-parallel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-parallel.d.ts","sourceRoot":"","sources":["../../src/detectors/list-parallel.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAc,QAAQ,EAAW,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAS,MAAM,cAAc,CAAC;AAExG,iHAAiH;AACjH,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErC,qFAAqF;AACrF,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAA8D,CAAC;AAgGnI,mHAAmH;AACnH,MAAM,MAAM,WAAW,GAAG;IACxB,sGAAsG;IACtG,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,+HAA+H;IAC/H,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,mGAAmG;IACnG,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAA6H,CAAC;AA0E5J,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,EAAE,WAAW,SAAS,QAAQ,EAAE,EAAE,UAAU,MAAM,EAAE,UAAS,WAA6B,KAAG,MAAM,GAAG,SAItI,CAAC;AAIF,0FAA0F;AAC1F,eAAO,MAAM,aAAa,GAAI,KAAK,aAAa,EAAE,MAAM,IAAI,KAAG,QAAQ,EAGtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,MAIrF,CAAC;AA2FF,kHAAkH;AAClH,eAAO,MAAM,eAAe,EAAE,QAU7B,CAAC"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
// one list is reported. です/ます against plain endings inside a list is no-mixed-desumasu's, not this.
|
|
4
4
|
import { minorityWithin } from "../orthography.js";
|
|
5
5
|
import { isQuotedAt } from "./bold-label.js";
|
|
6
|
+
import { endsAsHeadline, markOrSkipped, withoutFootnoteReference, withoutTrailingMarks } from "./list-item-ending.js";
|
|
6
7
|
/** For each axis, the two forms. The first is the side minorityWithin calls true. */
|
|
7
8
|
export const FORMS = { ending: ["phrase", "sentence"], head: ["verb", "noun"] };
|
|
8
9
|
const SKIPPED_AT_END = new Set(["PUNCT", "SYM", "X"]);
|
|
10
|
+
const isMark = markOrSkipped(SKIPPED_AT_END);
|
|
9
11
|
const NOMINAL = new Set(["NOUN", "PROPN", "NUM", "PRON"]);
|
|
10
12
|
const PREDICATE = new Set(["VERB", "AUX", "ADJ"]);
|
|
11
13
|
const NOUN_HEAD = new Set(["NOUN", "ADJ", "DET", "NUM", "PRON", "PROPN"]);
|
|
@@ -24,14 +26,18 @@ const withoutClosingAside = (tokens) => {
|
|
|
24
26
|
const open = tokens.findLastIndex((token, index) => index < last && OPENING_BRACKETS.has(token.surface));
|
|
25
27
|
return open <= 0 ? tokens : tokens.slice(0, open);
|
|
26
28
|
};
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Japanese: a predicate at the end (出します, 済ませる, 早い) is a sentence; a noun (月末, 確認すること) or a headline's
|
|
31
|
+
* あり / なし after a noun (翻訳あり) is a phrase. Marks after the last word (!!, a footnote reference) are not words.
|
|
32
|
+
*/
|
|
33
|
+
const japaneseEnding = (sentences, headlineEndings) => {
|
|
29
34
|
if (sentences.length > 1)
|
|
30
35
|
return "sentence";
|
|
31
|
-
const
|
|
36
|
+
const words = withoutTrailingMarks(withoutClosingAside(withoutFootnoteReference(sentences[0]?.tokens ?? [], isMark)), isMark);
|
|
37
|
+
const last = words.at(-1);
|
|
32
38
|
if (last === undefined)
|
|
33
39
|
return undefined;
|
|
34
|
-
if (NOMINAL.has(last.pos))
|
|
40
|
+
if (NOMINAL.has(last.pos) || endsAsHeadline(words, headlineEndings))
|
|
35
41
|
return "phrase";
|
|
36
42
|
return PREDICATE.has(last.pos) ? "sentence" : undefined;
|
|
37
43
|
};
|
|
@@ -59,52 +65,95 @@ const opensObject = (token) => token?.features?.["PronType"] === "Art" || token?
|
|
|
59
65
|
const AFTER_ADJECTIVE = new Set(["ADP", "PART"]);
|
|
60
66
|
/** A noun or adjective, or an ordinary word the tagger took for a name because it is capitalised (Toggle). */
|
|
61
67
|
const isNounOrAdjective = (token) => token.pos === "NOUN" || token.pos === "ADJ" || (token.pos === "PROPN" && token.features?.["OrdinaryWord"] === "Yes");
|
|
68
|
+
/** A verb in the base form an instruction takes (describe), not a past or third-person form (described, describes). */
|
|
69
|
+
const isBaseVerb = (token) => token?.pos === "VERB" && token.features?.["VerbForm"] === undefined && token.lemma === token.surface.toLowerCase();
|
|
70
|
+
/**
|
|
71
|
+
* An -ed word the tagger left without VerbForm (decreased, agreed, unauthorized): like a participle, it may modify the noun
|
|
72
|
+
* after it. Proceed and need end in -ed too but are their own base forms.
|
|
73
|
+
*/
|
|
74
|
+
const isPastForm = (token) => token.pos === "VERB" &&
|
|
75
|
+
token.features?.["VerbForm"] === undefined &&
|
|
76
|
+
/ed$/iu.test(token.surface) &&
|
|
77
|
+
(token.lemma !== token.surface.toLowerCase() || !/eed$/iu.test(token.surface));
|
|
78
|
+
/** An -s word read as a verb that the tagger could not take back to a base form (Revisions): a plural noun, misread. Discuss and Focus are verbs. */
|
|
79
|
+
const isMisreadPlural = (token) => token.pos === "VERB" && token.features?.["VerbForm"] === undefined && /[^su]s$/iu.test(token.surface) && token.lemma === token.surface.toLowerCase();
|
|
80
|
+
/** Participles (Generated files) and gerunds (Recovering from illness) open noun phrases and duties alike, so neither form. */
|
|
81
|
+
const NEITHER_FORM_VERB = new Set(["Part", "Ger"]);
|
|
82
|
+
/** The head as the first word's tag gives it. */
|
|
83
|
+
const headFromTag = (first) => {
|
|
84
|
+
if (isUnsure(first) || isPastForm(first) || isMisreadPlural(first))
|
|
85
|
+
return undefined;
|
|
86
|
+
if (first.pos === "VERB")
|
|
87
|
+
return NEITHER_FORM_VERB.has(first.features?.["VerbForm"] ?? "") ? undefined : "verb";
|
|
88
|
+
return NOUN_HEAD.has(first.pos) ? "noun" : undefined;
|
|
89
|
+
};
|
|
90
|
+
export const NO_HEAD_CONTEXT = { instructionVerbs: new Set(), verbOrAdjective: new Set(), nounsInList: new Set(), headlineEndings: new Set() };
|
|
91
|
+
/** A subject and its verb in one word (you're, we've): the item opens with its subject, as "you love …" does. */
|
|
92
|
+
const SUBJECT_CONTRACTION = /^(?:i|you|we|they|he|she|it)['’]\p{L}+$/iu;
|
|
93
|
+
const subjectContraction = (tokens, at) => (SUBJECT_CONTRACTION.test(tokens[at]?.surface ?? "") ? "noun" : undefined);
|
|
94
|
+
/** Secure, Open: a verb before "the", "a" or "your" (Secure the server), else maybe an adjective (Secure configuration). */
|
|
95
|
+
const verbOrAdjective = (tokens, at, context) => {
|
|
96
|
+
if (!context.verbOrAdjective.has(tokens[at]?.surface.toLowerCase() ?? ""))
|
|
97
|
+
return undefined;
|
|
98
|
+
return opensObject(tokens[at + 1]) ? "verb" : "unjudged";
|
|
99
|
+
};
|
|
100
|
+
/** A verb the tagger does not know. Before a common noun the word may head a compound (Click fraud, Scroll bar), so its tag decides. */
|
|
101
|
+
const instructionVerb = (tokens, at, context) => context.instructionVerbs.has(tokens[at]?.surface.toLowerCase() ?? "") && tokens[at + 1]?.pos !== "NOUN" ? "verb" : undefined;
|
|
102
|
+
const isSeriesJoint = (token) => token.surface === "," || token.pos === "CCONJ";
|
|
103
|
+
/** The single words of a series the item opens with: "Scope, estimate and describe tasks" gives Scope, estimate, describe. */
|
|
104
|
+
const openingSeries = (tokens, at) => {
|
|
105
|
+
const word = tokens[at];
|
|
106
|
+
if (word === undefined)
|
|
107
|
+
return [];
|
|
108
|
+
const after = tokens.findIndex((token, index) => index > at && !isSeriesJoint(token));
|
|
109
|
+
return after === -1 || after === at + 1 ? [word] : [word, ...openingSeries(tokens, after)];
|
|
110
|
+
};
|
|
111
|
+
/** A series one of whose later words is a verb in its base form (Instrument, monitor and profile): it is a series of verbs. */
|
|
112
|
+
const seriesOfVerbs = (tokens, at) => (openingSeries(tokens, at).slice(1).some(isBaseVerb) ? "verb" : undefined);
|
|
62
113
|
/**
|
|
63
|
-
* The
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* (Washing dishes): neither is judged.
|
|
114
|
+
* The first two words overrule the first word's tag. "Open the console" and "Press the button" open with a verb. "Clean up
|
|
115
|
+
* after closing" and "Bake in the oven" may open with a verb or an adjective phrase (Close to the station), and "Washing
|
|
116
|
+
* machine space" with a compound noun or a gerund and its object (Washing dishes): neither is judged.
|
|
67
117
|
*/
|
|
68
|
-
const
|
|
118
|
+
const nextWord = (tokens, at) => {
|
|
119
|
+
const first = tokens[at];
|
|
120
|
+
// The word right after, punctuation included: in "Next, the candidate" the comma ends the opener.
|
|
121
|
+
const next = tokens[at + 1];
|
|
122
|
+
if (first === undefined)
|
|
123
|
+
return undefined;
|
|
69
124
|
if (isNounOrAdjective(first) && opensObject(next))
|
|
70
125
|
return "verb";
|
|
71
126
|
if (first.pos === "ADJ" && AFTER_ADJECTIVE.has(next?.pos ?? ""))
|
|
72
127
|
return "unjudged";
|
|
73
128
|
return first.features?.["VerbForm"] === "Ger" && next?.pos === "NOUN" ? "unjudged" : undefined;
|
|
74
129
|
};
|
|
75
|
-
/**
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// A participle (Generated files, Nested lists) modifies the noun after it; the item is a noun phrase, but the tag does not say so.
|
|
80
|
-
if (first.pos === "VERB")
|
|
81
|
-
return first.features?.["VerbForm"] === "Part" ? undefined : "verb";
|
|
82
|
-
return NOUN_HEAD.has(first.pos) ? "noun" : undefined;
|
|
130
|
+
/** A verb that the same list uses as a noun (holiday pay … pay during your notice), with no object after it: either reading. */
|
|
131
|
+
const nounElsewhereInList = (tokens, at, context) => {
|
|
132
|
+
const first = tokens[at];
|
|
133
|
+
return first?.pos === "VERB" && context.nounsInList.has(first.lemma ?? "") && !opensObject(tokens[at + 1]) ? "unjudged" : undefined;
|
|
83
134
|
};
|
|
84
|
-
const
|
|
135
|
+
const HEAD_READERS = [subjectContraction, verbOrAdjective, instructionVerb, seriesOfVerbs, nextWord, nounElsewhereInList];
|
|
136
|
+
const englishHead = (sentences, context) => {
|
|
85
137
|
const tokens = sentences[0]?.tokens ?? [];
|
|
86
138
|
const at = tokens.findIndex((token) => !SKIPPED_AT_END.has(token.pos));
|
|
87
139
|
const first = tokens[at];
|
|
88
140
|
if (at === -1 || first === undefined || isTitleCase(sentences[0]?.text ?? ""))
|
|
89
141
|
return undefined;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// Before a common noun the word may head a compound (Click fraud, Scroll bar), so its tag decides.
|
|
93
|
-
if (instructionVerbs.has(first.surface.toLowerCase()) && next?.pos !== "NOUN")
|
|
94
|
-
return "verb";
|
|
95
|
-
const overruled = headFromNextWord(first, next);
|
|
96
|
-
if (overruled === undefined)
|
|
142
|
+
const reading = HEAD_READERS.reduce((found, reader) => found ?? reader(tokens, at, context), undefined);
|
|
143
|
+
if (reading === undefined)
|
|
97
144
|
return headFromTag(first);
|
|
98
|
-
return
|
|
145
|
+
return reading === "unjudged" ? undefined : reading;
|
|
99
146
|
};
|
|
100
|
-
/**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
export const formOf = (axis, sentences, language,
|
|
147
|
+
/** An item's form on an axis, or undefined when its words do not tell. Japanese items have no head axis (the verb comes last). */
|
|
148
|
+
/** An item that ends in a colon (Other kinds of decisions:) leads into what follows it: its ending is not its own, its opening still is. */
|
|
149
|
+
const LEAD_IN = /[::]$/u;
|
|
150
|
+
const leadsIn = (sentences) => LEAD_IN.test(sentences.at(-1)?.text.trim() ?? "");
|
|
151
|
+
export const formOf = (axis, sentences, language, context = NO_HEAD_CONTEXT) => {
|
|
152
|
+
if (axis === "ending" && leadsIn(sentences))
|
|
153
|
+
return undefined;
|
|
105
154
|
if (language === "ja")
|
|
106
|
-
return axis === "ending" ? japaneseEnding(sentences) : undefined;
|
|
107
|
-
return axis === "ending" ? englishEnding(sentences) : englishHead(sentences,
|
|
155
|
+
return axis === "ending" ? japaneseEnding(sentences, context.headlineEndings) : undefined;
|
|
156
|
+
return axis === "ending" ? englishEnding(sentences) : englishHead(sentences, context);
|
|
108
157
|
};
|
|
109
158
|
const within = (inner, outer) => inner.start >= outer.start && inner.end <= outer.end;
|
|
110
159
|
/** The item's own sentences: those in its span, less those of a list nested inside it. */
|
|
@@ -112,6 +161,29 @@ export const itemSentences = (doc, item) => {
|
|
|
112
161
|
const nested = doc.lists.map((list) => list.span).filter((span) => span.start > item.start && within(span, item));
|
|
113
162
|
return doc.sentences.filter((sentence) => within(sentence.span, item) && !nested.some((span) => within(sentence.span, span)));
|
|
114
163
|
};
|
|
164
|
+
/**
|
|
165
|
+
* Where an item's own words end: before a line in it that opens, unindented, with a note lead (※応募書類は返却できません。,
|
|
166
|
+
* "Note: …"). Markdown reads such a line as the last item's, but the note is about the whole list.
|
|
167
|
+
*/
|
|
168
|
+
export const itemOwnEnd = (source, item, noteLeads) => {
|
|
169
|
+
const lineStarts = [...source.slice(item.start, item.end).matchAll(/\n/gu)].map((match) => item.start + match.index + 1);
|
|
170
|
+
const noteLine = lineStarts.find((start) => noteLeads.some((lead) => lead !== "" && source.startsWith(lead, start)));
|
|
171
|
+
return noteLine === undefined ? item.end : noteLine - 1;
|
|
172
|
+
};
|
|
173
|
+
/** The sentence up to `end`: a note line under the item is not part of the item's last sentence. */
|
|
174
|
+
const cutAt = (sentence, end, source) => sentence.span.end <= end
|
|
175
|
+
? sentence
|
|
176
|
+
: {
|
|
177
|
+
...sentence,
|
|
178
|
+
span: { start: sentence.span.start, end },
|
|
179
|
+
text: source.slice(sentence.span.start, end),
|
|
180
|
+
...(sentence.tokens === undefined ? {} : { tokens: sentence.tokens.filter((token) => token.span.end <= end) }),
|
|
181
|
+
};
|
|
182
|
+
/** The item's own sentences, up to a note line under it. */
|
|
183
|
+
const ownSentences = (doc, item, noteLeads) => {
|
|
184
|
+
const end = itemOwnEnd(doc.source, item, noteLeads);
|
|
185
|
+
return itemSentences(doc, item).flatMap((sentence) => (sentence.span.start < end ? [cutAt(sentence, end, doc.source)] : []));
|
|
186
|
+
};
|
|
115
187
|
const findingOf = (axis, item, count, of, limit) => {
|
|
116
188
|
const first = item.sentences[0];
|
|
117
189
|
return {
|
|
@@ -139,18 +211,26 @@ const isJudged = (written, sentences) => {
|
|
|
139
211
|
return wordCount(sentences) >= MIN_WORDS && !LABELLED.test(text.trim()) && !CODE_OR_LINK.test(written);
|
|
140
212
|
};
|
|
141
213
|
const runsOn = (sentences) => RUNNING_ON.test(sentences.at(-1)?.text.trim() ?? "");
|
|
214
|
+
const wordsOf = (doc, lexicon) => new Set((doc.lexicons[lexicon] ?? []).map((entry) => entry.pattern.toLowerCase()));
|
|
215
|
+
const headContext = (doc, items) => ({
|
|
216
|
+
instructionVerbs: wordsOf(doc, "instruction-verb"),
|
|
217
|
+
verbOrAdjective: wordsOf(doc, "verb-or-adjective"),
|
|
218
|
+
headlineEndings: wordsOf(doc, "headline-ending"),
|
|
219
|
+
nounsInList: new Set(items.flatMap((sentences) => sentences.flatMap((sentence) => (sentence.tokens ?? []).flatMap((token) => (token.pos === "NOUN" && token.lemma !== undefined ? [token.lemma] : []))))),
|
|
220
|
+
});
|
|
142
221
|
const listFindings = (doc, list, limit) => {
|
|
143
|
-
const
|
|
222
|
+
const noteLeads = (doc.lexicons["list-note-lead"] ?? []).map((entry) => entry.pattern);
|
|
223
|
+
const sentencesOf = list.itemSpans.map((span) => ownSentences(doc, span, noteLeads));
|
|
144
224
|
if (sentencesOf.some(runsOn))
|
|
145
225
|
return [];
|
|
146
226
|
const judged = sentencesOf.filter((sentences, index) => {
|
|
147
227
|
const span = list.itemSpans[index];
|
|
148
228
|
return span !== undefined && isJudged(doc.source.slice(span.start, sentences.at(-1)?.span.end ?? span.end), sentences);
|
|
149
229
|
});
|
|
150
|
-
const
|
|
230
|
+
const context = headContext(doc, judged);
|
|
151
231
|
return AXES.flatMap((axis) => {
|
|
152
232
|
const items = judged.flatMap((sentences) => {
|
|
153
|
-
const form = formOf(axis, sentences, doc.language,
|
|
233
|
+
const form = formOf(axis, sentences, doc.language, context);
|
|
154
234
|
return form === undefined ? [] : [{ sentences, form }];
|
|
155
235
|
});
|
|
156
236
|
const odd = minorityWithin(items, (item) => item.form === FORMS[axis][0], limit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-parallel.js","sourceRoot":"","sources":["../../src/detectors/list-parallel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list-parallel.js","sourceRoot":"","sources":["../../src/detectors/list-parallel.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,10 @@ export type ListWords = {
|
|
|
10
10
|
readonly example: Lexicon;
|
|
11
11
|
readonly pair: ReadonlySet<string>;
|
|
12
12
|
readonly region: Lexicon;
|
|
13
|
+
/** 題名を導く語(whose full title is、entitled)。すぐ後ろの Title Case の語の続きは題名で、その中の読点は題名を付けた人のもの。 */
|
|
14
|
+
readonly titleCue?: readonly string[];
|
|
15
|
+
/** 文頭で順番を言う一語(First, Next, Finally)。解析器が形容詞と読んでも、並びの項目ではなく導入の語。 */
|
|
16
|
+
readonly sequence?: ReadonlySet<string>;
|
|
13
17
|
};
|
|
14
18
|
export declare const isListConjunction: (token: Token | undefined) => boolean;
|
|
15
19
|
export declare const depthsOf: (tokens: readonly Token[]) => number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-sentence.d.ts","sourceRoot":"","sources":["../../src/detectors/list-sentence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"list-sentence.d.ts","sourceRoot":"","sources":["../../src/detectors/list-sentence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAIF,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,GAAG,SAAS,KAAG,OAAmE,CAAC;AAWjI,eAAO,MAAM,QAAQ,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,MAAM,EAOzD,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,aAAmD,CAAC;AACxE,eAAO,MAAM,MAAM,aAA2B,CAAC;AAE/C,eAAO,MAAM,iBAAiB,aAA6B,CAAC;AAE5D,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,OAA4E,CAAC;AAOtH,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,KAAG,MAAM,GAAG,SAGlD,CAAC;AAgDF,qEAAqE;AACrE,QAAA,MAAM,SAAS,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,QAAQ,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;CAoBrE,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnD,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IACrD,uBAAuB;IACvB,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAClF,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;CAChD,CAAC;AAgCF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,OAAO,GAAI,UAAU,YAAY,EAAE,OAAO,MAAM,KAAG,SAAkC,CAAC;AAEnG,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,OAAO,SAAS,EAAE,QAAQ,MAAM,KAAG,YAgB3F,CAAC"}
|
|
@@ -124,7 +124,7 @@ export const listSentenceOf = (tokens, words, source) => {
|
|
|
124
124
|
exampleStarts: byDepth(depths, (index) => (exampleEnds[index]?.length ?? 0) > 0),
|
|
125
125
|
pairOpeners: pairOpenersOf(tokens, depths, words.pair),
|
|
126
126
|
commas: byDepth(depths, (index) => tokens[index]?.surface === "," && !regionCommas.has(index)),
|
|
127
|
-
inCitedTitle: citedTitles(tokens, source),
|
|
127
|
+
inCitedTitle: citedTitles(tokens, source, words.titleCue),
|
|
128
128
|
};
|
|
129
129
|
};
|
|
130
130
|
//# sourceMappingURL=list-sentence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-sentence.js","sourceRoot":"","sources":["../../src/detectors/list-sentence.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-sentence.js","sourceRoot":"","sources":["../../src/detectors/list-sentence.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ export type Mark = {
|
|
|
18
18
|
readonly spaced: boolean;
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
|
-
* The marks in a sentence that touch a letter of the document's script, outside 「」『』 quotations
|
|
21
|
+
* The marks in a sentence that touch a letter of the document's script, outside 「」『』 quotations and outside the brackets
|
|
22
|
+
* of a formula (× (1 - 時間 ÷ 月平均)), which follow the formula's notation. spaced is the lexicon's pattern side.
|
|
22
23
|
* The letters beside a mark are read in the source, so a mark that opens a sentence (。(2)当社) counts wherever the sentence starts.
|
|
23
24
|
*/
|
|
24
25
|
export declare const marksIn: (source: string, sentence: Sentence, forms: ReadonlyMap<string, Form>, script: RegExp) => Mark[];
|
|
@@ -28,10 +29,14 @@ type Sided = {
|
|
|
28
29
|
readonly offset: number;
|
|
29
30
|
readonly spaced: boolean;
|
|
30
31
|
};
|
|
32
|
+
/** The offsets in `source` of each line's item number's opening and closing bracket. */
|
|
33
|
+
export declare const enumeratorBracketOffsets: (source: string) => ReadonlySet<number>;
|
|
34
|
+
/** The offsets in `source` of every character of a doubled parenthesis. */
|
|
35
|
+
export declare const doubledParenOffsets: (source: string) => ReadonlySet<number>;
|
|
31
36
|
/**
|
|
32
37
|
* A mark written two ways in one document (( and (, “ and "), the less common way reported. The two ways come from the
|
|
33
38
|
* lexicon; neither is called right. Only marks next to a letter of the document's script count, so a bracket in code-like
|
|
34
|
-
* text (f(x)) or an English aside in a Japanese document does not.
|
|
39
|
+
* text (f(x)) or an English aside in a Japanese document does not. A line enumerator's brackets ((1)) are compared apart.
|
|
35
40
|
*/
|
|
36
41
|
export declare const markConsistency: Detector;
|
|
37
42
|
/** The space between two sentences on one line, when the first ends with a period, question or exclamation mark. spaced is two spaces. */
|
|
@@ -47,10 +52,14 @@ export declare const latinAbbreviation: Detector;
|
|
|
47
52
|
export declare const lowerCaseWords: (source: string) => ReadonlySet<string>;
|
|
48
53
|
/**
|
|
49
54
|
* Whether more than half the words of a capital run are also written elsewhere in lower case. Words the lexicon lists as
|
|
50
|
-
* written in capitals by convention (MUST NOT in a specification) count like acronyms
|
|
55
|
+
* written in capitals by convention (MUST NOT in a specification) count like acronyms, and a run made of its phrases
|
|
56
|
+
* (NOW, THEREFORE, BE IT RESOLVED) is not shouting.
|
|
51
57
|
*/
|
|
52
58
|
export declare const isShouting: (run: string, known: ReadonlySet<string>, conventional: ReadonlySet<string>) => boolean;
|
|
53
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Runs of three or more all-capital words that are ordinary words, not acronyms ("DO NOT DELETE THIS"), and not a
|
|
61
|
+
* caption, a mention of one, a paragraph of capital lines that ends no sentence (a letterhead, a heading), or a roster name.
|
|
62
|
+
*/
|
|
54
63
|
export declare const capsShouting: Detector;
|
|
55
64
|
export {};
|
|
56
65
|
//# sourceMappingURL=mark-shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/mark-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAW,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mark-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/mark-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAW,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAgBxF,gHAAgH;AAChH,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,KAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAUlE,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAalJ;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,UAAU,QAAQ,EAAE,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,MAAM,KAAG,IAAI,EASlH,CAAC;AAEF,qFAAqF;AACrF,KAAK,KAAK,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAiDhG,wFAAwF;AACxF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,WAAW,CAAC,MAAM,CAG3E,CAAC;AAgBF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,WAAW,CAAC,MAAM,CAMpE,CAAC;AAQJ;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,QAmB7B,CAAC;AAYF,0IAA0I;AAC1I,eAAO,MAAM,YAAY,GAAI,KAAK,aAAa,KAAG,KAAK,EAOnD,CAAC;AAEL,+FAA+F;AAC/F,eAAO,MAAM,eAAe,EAAE,QAIzB,CAAC;AAiCN,eAAO,MAAM,UAAU,EAAE,QAOxB,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,KAAG,MAAM,EAMzD,CAAC;AAMF,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,QAK/B,CAAC;AAUF,mHAAmH;AACnH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,WAAW,CAAC,MAAM,CACyD,CAAC;AAE5H;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,WAAW,CAAC,MAAM,CAAC,KAAG,OAMvG,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,QAW1B,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { escapeRegExp } from "../orthography.js";
|
|
2
|
+
import { isConventionalPhrase } from "./caps-phrase.js";
|
|
2
3
|
import { minorityReport } from "../spacing-minority.js";
|
|
4
|
+
import { externalLinkTitleSpans } from "../link-title.js";
|
|
5
|
+
import { formulaBracketSpans } from "../formula-brackets.js";
|
|
3
6
|
import { isWithinAny, quotedSpans } from "../quoted-span.js";
|
|
4
|
-
import { captionsOf, isCaptionAt } from "./caps-caption.js";
|
|
7
|
+
import { capitalLineSpans, captionsOf, isCaptionAt, isWithinSorted } from "./caps-caption.js";
|
|
8
|
+
import { lineStarts } from "../position.js";
|
|
5
9
|
/** The letters a mark must touch to count as part of the document's text, by language. */
|
|
6
10
|
const SCRIPT = {
|
|
7
11
|
ja: /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}ー々]/u,
|
|
@@ -31,16 +35,18 @@ const besideLetter = (text, at, step, script) => {
|
|
|
31
35
|
};
|
|
32
36
|
const touchesScript = (text, at, script) => besideLetter(text, at, -1, script) || besideLetter(text, at, 1, script);
|
|
33
37
|
/**
|
|
34
|
-
* The marks in a sentence that touch a letter of the document's script, outside 「」『』 quotations
|
|
38
|
+
* The marks in a sentence that touch a letter of the document's script, outside 「」『』 quotations and outside the brackets
|
|
39
|
+
* of a formula (× (1 - 時間 ÷ 月平均)), which follow the formula's notation. spaced is the lexicon's pattern side.
|
|
35
40
|
* The letters beside a mark are read in the source, so a mark that opens a sentence (。(2)当社) counts wherever the sentence starts.
|
|
36
41
|
*/
|
|
37
42
|
export const marksIn = (source, sentence, forms, script) => {
|
|
38
43
|
const quoted = quotedSpans(sentence.text);
|
|
44
|
+
const formulas = formulaBracketSpans(sentence.text);
|
|
39
45
|
return sentence.text.split("").flatMap((char, at) => {
|
|
40
46
|
const form = forms.get(char);
|
|
41
47
|
if (form === undefined || !touchesScript(source, sentence.span.start + at, script))
|
|
42
48
|
return [];
|
|
43
|
-
if (isWithinAny(quoted, { start: at, end: at }))
|
|
49
|
+
if (isWithinAny(quoted, { start: at, end: at }) || isWithinAny(formulas, { start: at, end: at + 1 }))
|
|
44
50
|
return [];
|
|
45
51
|
return [{ sentence, char, form, offset: sentence.span.start + at, spaced: form.side }];
|
|
46
52
|
});
|
|
@@ -67,19 +73,67 @@ const minorityFindings = (items, limit, valuesOf) => {
|
|
|
67
73
|
};
|
|
68
74
|
/** Sentences written in the document's own language; a quoted sentence in another language follows its own marks. */
|
|
69
75
|
const ownSentences = (doc) => doc.sentences.filter((sentence) => sentence.embeddedLanguage === undefined);
|
|
76
|
+
/**
|
|
77
|
+
* A bracketed item number opening a line ((1)開催趣旨, (ア), (iv), a list bullet before it), both brackets of one width.
|
|
78
|
+
* It numbers the line, a style of its own: the brackets of the prose around it may be written the other width. A
|
|
79
|
+
* bracketed word at a line's head ((背景), (注)) is not a number, and an item number the prose refers to (次の(1)及び(2))
|
|
80
|
+
* is written in the prose; both stay with the prose's brackets.
|
|
81
|
+
*/
|
|
82
|
+
const LINE_HEAD = /^\s*(?:[-*+] +)?/u;
|
|
83
|
+
const BRACKETED = /^([(([[])([^))\]]]{1,4})([))\]]])/u;
|
|
84
|
+
const NUMBERING = /^(?:[0-90-9]{1,3}|[一二三四五六七八九十]{1,3}|[A-Za-zA-Za-zァ-ヶぁ-んヲ-ン])$/u;
|
|
85
|
+
/** Roman numerals i to x, either case. */
|
|
86
|
+
const ROMAN = /^(?:i{2,3}|iv|vi{1,3}|ix|I{2,3}|IV|VI{1,3}|IX)$/u;
|
|
87
|
+
const CLOSER_OF = { "(": ")", "(": ")", "[": "]", "[": "]" };
|
|
88
|
+
const isItemNumber = (text) => NUMBERING.test(text) || ROMAN.test(text);
|
|
89
|
+
/** The offsets in a line of its item number's opening and closing bracket, or none. */
|
|
90
|
+
const enumeratorIn = (line) => {
|
|
91
|
+
const head = LINE_HEAD.exec(line)?.[0].length ?? 0;
|
|
92
|
+
const found = BRACKETED.exec(line.slice(head));
|
|
93
|
+
if (found === null || CLOSER_OF[found[1] ?? ""] !== found[3] || !isItemNumber(found[2] ?? ""))
|
|
94
|
+
return [];
|
|
95
|
+
return [head, head + found[0].length - 1];
|
|
96
|
+
};
|
|
97
|
+
/** The offsets in `source` of each line's item number's opening and closing bracket. */
|
|
98
|
+
export const enumeratorBracketOffsets = (source) => {
|
|
99
|
+
const starts = lineStarts(source);
|
|
100
|
+
return new Set(source.split("\n").flatMap((line, index) => enumeratorIn(line).map((at) => (starts[index] ?? 0) + at)));
|
|
101
|
+
};
|
|
102
|
+
/** Appended to a mark's kind for an item number's bracket. A lexicon's group, a word from YAML, never holds a NUL. */
|
|
103
|
+
const ENUMERATOR_KIND = "\u0000enumerator";
|
|
104
|
+
/** A line's item number's bracket is a kind of its own, compared only with the other item numbers' brackets. */
|
|
105
|
+
const withEnumeratorKind = (mark, enumerators) => enumerators.has(mark.offset) ? { ...mark, form: { ...mark.form, kind: `${mark.form.kind}${ENUMERATOR_KIND}` } } : mark;
|
|
106
|
+
/**
|
|
107
|
+
* A doubled parenthesis around text with no parenthesis inside, such as ((居住の用に供したとき等)) or ((注)): one mark written
|
|
108
|
+
* with two characters, as a directive sets an article's caption. Its width is that notation's, not the prose's.
|
|
109
|
+
*/
|
|
110
|
+
const DOUBLED_PAREN = /\(\([^()()\n]*\)\)|(([^()()\n]*))/gu;
|
|
111
|
+
const PAIR_LENGTH = 2;
|
|
112
|
+
/** The offsets in `source` of every character of a doubled parenthesis. */
|
|
113
|
+
export const doubledParenOffsets = (source) => new Set([...source.matchAll(DOUBLED_PAREN)].flatMap((match) => {
|
|
114
|
+
const end = match.index + match[0].length;
|
|
115
|
+
return [match.index, match.index + 1, end - PAIR_LENGTH, end - 1];
|
|
116
|
+
}));
|
|
117
|
+
const DOUBLED_KIND = "\u0000doubled";
|
|
118
|
+
/** A doubled parenthesis is a kind of its own, compared only with the other doubled parentheses. */
|
|
119
|
+
const withDoubledKind = (mark, doubled) => doubled.has(mark.offset) ? { ...mark, form: { ...mark.form, kind: `${mark.form.kind}${DOUBLED_KIND}` } } : mark;
|
|
70
120
|
/**
|
|
71
121
|
* A mark written two ways in one document (( and (, “ and "), the less common way reported. The two ways come from the
|
|
72
122
|
* lexicon; neither is called right. Only marks next to a letter of the document's script count, so a bracket in code-like
|
|
73
|
-
* text (f(x)) or an English aside in a Japanese document does not.
|
|
123
|
+
* text (f(x)) or an English aside in a Japanese document does not. A line enumerator's brackets ((1)) are compared apart.
|
|
74
124
|
*/
|
|
75
125
|
export const markConsistency = (doc, options) => {
|
|
76
126
|
const script = SCRIPT[doc.language];
|
|
77
127
|
if (script === undefined)
|
|
78
128
|
return [];
|
|
129
|
+
// A link that quotes an outside page's title keeps that page's marks ((コンテキスト内) in a WCAG title).
|
|
130
|
+
const titles = externalLinkTitleSpans(doc.source, doc.links);
|
|
79
131
|
const forms = formsOf(options.lexicon ?? []);
|
|
80
|
-
const
|
|
132
|
+
const enumerators = enumeratorBracketOffsets(doc.source);
|
|
133
|
+
const doubled = doubledParenOffsets(doc.source);
|
|
134
|
+
const marks = ownSentences(doc).flatMap((sentence) => marksIn(doc.source, sentence, forms, script).map((mark) => withDoubledKind(withEnumeratorKind(mark, enumerators), doubled)));
|
|
81
135
|
const kinds = [...new Set(marks.map((mark) => mark.form.kind))];
|
|
82
|
-
return kinds.flatMap((kind) => minorityFindings(marks.filter((mark) => mark.form.kind === kind), options.limit, (mark) => ({ mark: mark.char, usual: mark.form.other })));
|
|
136
|
+
return kinds.flatMap((kind) => minorityFindings(marks.filter((mark) => mark.form.kind === kind && !isWithinAny(titles, { start: mark.offset, end: mark.offset + 1 })), options.limit, (mark) => ({ mark: mark.char, usual: mark.form.other })));
|
|
83
137
|
};
|
|
84
138
|
/**
|
|
85
139
|
* A sentence that surely ends: a lower-case word of two letters or more, then the mark. A number ("11.1."), an abbreviation
|
|
@@ -158,21 +212,30 @@ const LATIN_WORD = /[A-Za-z][A-Za-z']*/gu;
|
|
|
158
212
|
export const lowerCaseWords = (source) => new Set((source.match(LATIN_WORD) ?? []).filter((word) => word !== word.toUpperCase()).map((word) => word.toLowerCase()));
|
|
159
213
|
/**
|
|
160
214
|
* Whether more than half the words of a capital run are also written elsewhere in lower case. Words the lexicon lists as
|
|
161
|
-
* written in capitals by convention (MUST NOT in a specification) count like acronyms
|
|
215
|
+
* written in capitals by convention (MUST NOT in a specification) count like acronyms, and a run made of its phrases
|
|
216
|
+
* (NOW, THEREFORE, BE IT RESOLVED) is not shouting.
|
|
162
217
|
*/
|
|
163
218
|
export const isShouting = (run, known, conventional) => {
|
|
219
|
+
if (isConventionalPhrase(run, conventional))
|
|
220
|
+
return false;
|
|
164
221
|
const words = run.split(/,? /u);
|
|
165
222
|
const ordinary = words.filter((word) => !conventional.has(word) && known.has(word.toLowerCase()));
|
|
166
223
|
const long = words.filter((word) => word.length > 1);
|
|
167
224
|
return long.length >= MIN_LONG_WORDS && ordinary.length * 2 > words.length;
|
|
168
225
|
};
|
|
169
|
-
/**
|
|
226
|
+
/**
|
|
227
|
+
* Runs of three or more all-capital words that are ordinary words, not acronyms ("DO NOT DELETE THIS"), and not a
|
|
228
|
+
* caption, a mention of one, a paragraph of capital lines that ends no sentence (a letterhead, a heading), or a roster name.
|
|
229
|
+
*/
|
|
170
230
|
export const capsShouting = (doc, options) => {
|
|
171
231
|
const known = lowerCaseWords(doc.prose ?? doc.source);
|
|
172
232
|
const conventional = new Set((options.lexicon ?? []).map((entry) => entry.pattern));
|
|
173
233
|
const captions = captionsOf(doc.source);
|
|
174
|
-
const
|
|
175
|
-
const
|
|
234
|
+
const capitalLines = capitalLineSpans(doc.source);
|
|
235
|
+
const isCaptionOrLetterhead = (hit) => captions.has(hit.matched) ||
|
|
236
|
+
isCaptionAt(doc.source, hit.offset, hit.offset + hit.matched.length) ||
|
|
237
|
+
isWithinSorted(capitalLines, { start: hit.offset, end: hit.offset + hit.matched.length });
|
|
238
|
+
const hits = hitsOf(ownSentences(doc), CAPS_RUN).filter((hit) => isShouting(hit.matched, known, conventional) && !isCaptionOrLetterhead(hit));
|
|
176
239
|
return reportFrom(hits, options.limit);
|
|
177
240
|
};
|
|
178
241
|
//# sourceMappingURL=mark-shape.js.map
|