chaffjs 0.34.0 → 0.36.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/capitals-passage.d.ts +3 -0
- package/dist/capitals-passage.d.ts.map +1 -0
- package/dist/capitals-passage.js +26 -0
- package/dist/capitals-passage.js.map +1 -0
- 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/coined-hyphen-name.d.ts +13 -0
- package/dist/coined-hyphen-name.d.ts.map +1 -0
- package/dist/coined-hyphen-name.js +21 -0
- package/dist/coined-hyphen-name.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/company-names.d.ts +6 -1
- package/dist/company-names.d.ts.map +1 -1
- package/dist/company-names.js +22 -3
- package/dist/company-names.js.map +1 -1
- 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 +5 -1
- package/dist/detectors/acronym-context.d.ts.map +1 -1
- package/dist/detectors/acronym-context.js +32 -4
- package/dist/detectors/acronym-context.js.map +1 -1
- package/dist/detectors/acronym-definition.d.ts +13 -0
- package/dist/detectors/acronym-definition.d.ts.map +1 -0
- package/dist/detectors/acronym-definition.js +90 -0
- package/dist/detectors/acronym-definition.js.map +1 -0
- 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 +35 -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 +14 -0
- package/dist/detectors/acronym-link.d.ts.map +1 -0
- package/dist/detectors/acronym-link.js +32 -0
- package/dist/detectors/acronym-link.js.map +1 -0
- package/dist/detectors/acronym-lone.d.ts +13 -0
- package/dist/detectors/acronym-lone.d.ts.map +1 -0
- package/dist/detectors/acronym-lone.js +22 -0
- package/dist/detectors/acronym-lone.js.map +1 -0
- package/dist/detectors/acronym-name.d.ts +62 -0
- package/dist/detectors/acronym-name.d.ts.map +1 -0
- package/dist/detectors/acronym-name.js +94 -0
- package/dist/detectors/acronym-name.js.map +1 -0
- 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/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 +14 -2
- package/dist/detectors/capitalised-term.d.ts.map +1 -1
- package/dist/detectors/capitalised-term.js +115 -4
- package/dist/detectors/capitalised-term.js.map +1 -1
- package/dist/detectors/caps-caption.d.ts +12 -0
- package/dist/detectors/caps-caption.d.ts.map +1 -0
- package/dist/detectors/caps-caption.js +89 -0
- package/dist/detectors/caps-caption.js.map +1 -0
- 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 +72 -30
- package/dist/detectors/char-shape.js.map +1 -1
- 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/clause-shape.d.ts +1 -1
- package/dist/detectors/clause-shape.d.ts.map +1 -1
- package/dist/detectors/clause-shape.js +9 -4
- package/dist/detectors/clause-shape.js.map +1 -1
- package/dist/detectors/concrete-evidence.d.ts +13 -1
- package/dist/detectors/concrete-evidence.d.ts.map +1 -1
- package/dist/detectors/concrete-evidence.js +59 -0
- package/dist/detectors/concrete-evidence.js.map +1 -1
- package/dist/detectors/contraction-minority.d.ts +11 -0
- package/dist/detectors/contraction-minority.d.ts.map +1 -0
- package/dist/detectors/contraction-minority.js +10 -0
- package/dist/detectors/contraction-minority.js.map +1 -0
- package/dist/detectors/counter-edge.d.ts +7 -1
- package/dist/detectors/counter-edge.d.ts.map +1 -1
- package/dist/detectors/counter-edge.js +40 -2
- package/dist/detectors/counter-edge.js.map +1 -1
- package/dist/detectors/date-any-year.d.ts +12 -5
- package/dist/detectors/date-any-year.d.ts.map +1 -1
- package/dist/detectors/date-any-year.js +69 -12
- 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-heading-year.d.ts +18 -0
- package/dist/detectors/date-heading-year.d.ts.map +1 -0
- package/dist/detectors/date-heading-year.js +38 -0
- package/dist/detectors/date-heading-year.js.map +1 -0
- package/dist/detectors/date-year.d.ts +19 -3
- package/dist/detectors/date-year.d.ts.map +1 -1
- package/dist/detectors/date-year.js +69 -8
- 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 +59 -12
- 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 +6 -3
- 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/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/due-date.d.ts.map +1 -1
- package/dist/detectors/due-date.js +6 -0
- package/dist/detectors/due-date.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 +31 -1
- package/dist/detectors/email-letter.d.ts.map +1 -1
- package/dist/detectors/email-letter.js +76 -14
- package/dist/detectors/email-letter.js.map +1 -1
- package/dist/detectors/en-shape.d.ts.map +1 -1
- package/dist/detectors/en-shape.js +5 -1
- package/dist/detectors/en-shape.js.map +1 -1
- package/dist/detectors/fact-consistency.d.ts.map +1 -1
- package/dist/detectors/fact-consistency.js +3 -2
- package/dist/detectors/fact-consistency.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/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 +8 -0
- package/dist/detectors/gram-openers.d.ts.map +1 -0
- package/dist/detectors/gram-openers.js +16 -0
- package/dist/detectors/gram-openers.js.map +1 -0
- package/dist/detectors/gram-passages.d.ts +11 -0
- package/dist/detectors/gram-passages.d.ts.map +1 -0
- package/dist/detectors/gram-passages.js +26 -0
- package/dist/detectors/gram-passages.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-end-mark.d.ts +8 -3
- package/dist/detectors/heading-end-mark.d.ts.map +1 -1
- package/dist/detectors/heading-end-mark.js +18 -8
- package/dist/detectors/heading-end-mark.js.map +1 -1
- package/dist/detectors/heading-names.d.ts +7 -0
- package/dist/detectors/heading-names.d.ts.map +1 -0
- package/dist/detectors/heading-names.js +24 -0
- package/dist/detectors/heading-names.js.map +1 -0
- package/dist/detectors/heading-numbering.d.ts.map +1 -1
- package/dist/detectors/heading-numbering.js +7 -2
- package/dist/detectors/heading-numbering.js.map +1 -1
- 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/inch-mark.d.ts +10 -0
- package/dist/detectors/inch-mark.d.ts.map +1 -0
- package/dist/detectors/inch-mark.js +48 -0
- package/dist/detectors/inch-mark.js.map +1 -0
- 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 +76 -12
- package/dist/detectors/kutoten-consistency.js.map +1 -1
- package/dist/detectors/lexicon.d.ts +0 -1
- package/dist/detectors/lexicon.d.ts.map +1 -1
- package/dist/detectors/lexicon.js +37 -25
- 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 +15 -5
- package/dist/detectors/mark-shape.d.ts.map +1 -1
- package/dist/detectors/mark-shape.js +64 -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-apart.d.ts +27 -0
- package/dist/detectors/name-variant-apart.d.ts.map +1 -0
- package/dist/detectors/name-variant-apart.js +51 -0
- package/dist/detectors/name-variant-apart.js.map +1 -0
- package/dist/detectors/name-variant.d.ts.map +1 -1
- package/dist/detectors/name-variant.js +18 -11
- 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/numeral-word.d.ts +15 -0
- package/dist/detectors/numeral-word.d.ts.map +1 -0
- package/dist/detectors/numeral-word.js +26 -0
- package/dist/detectors/numeral-word.js.map +1 -0
- 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 +18 -0
- package/dist/detectors/organisation-run.d.ts.map +1 -0
- package/dist/detectors/organisation-run.js +80 -0
- package/dist/detectors/organisation-run.js.map +1 -0
- package/dist/detectors/orthographic-variant.d.ts.map +1 -1
- package/dist/detectors/orthographic-variant.js +65 -21
- package/dist/detectors/orthographic-variant.js.map +1 -1
- package/dist/detectors/orthography.d.ts.map +1 -1
- package/dist/detectors/orthography.js +6 -1
- package/dist/detectors/orthography.js.map +1 -1
- package/dist/detectors/outline-label.d.ts +14 -0
- package/dist/detectors/outline-label.d.ts.map +1 -0
- package/dist/detectors/outline-label.js +32 -0
- package/dist/detectors/outline-label.js.map +1 -0
- package/dist/detectors/oxford-comma.d.ts.map +1 -1
- package/dist/detectors/oxford-comma.js +38 -1
- package/dist/detectors/oxford-comma.js.map +1 -1
- package/dist/detectors/page-marker.d.ts +6 -0
- package/dist/detectors/page-marker.d.ts.map +1 -0
- package/dist/detectors/page-marker.js +19 -0
- package/dist/detectors/page-marker.js.map +1 -0
- package/dist/detectors/parallel-definition.d.ts +16 -0
- package/dist/detectors/parallel-definition.d.ts.map +1 -0
- package/dist/detectors/parallel-definition.js +51 -0
- package/dist/detectors/parallel-definition.js.map +1 -0
- 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/reference-text.d.ts.map +1 -1
- package/dist/detectors/reference-text.js +1 -0
- package/dist/detectors/reference-text.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/registry/unfilled-placeholder.d.ts.map +1 -1
- package/dist/detectors/registry/unfilled-placeholder.js +2 -2
- package/dist/detectors/registry/unfilled-placeholder.js.map +1 -1
- package/dist/detectors/registry/vague-density.js +1 -1
- package/dist/detectors/registry/vague-density.js.map +1 -1
- package/dist/detectors/request-owner.d.ts +6 -2
- package/dist/detectors/request-owner.d.ts.map +1 -1
- package/dist/detectors/request-owner.js +57 -7
- package/dist/detectors/request-owner.js.map +1 -1
- package/dist/detectors/requirement-smell.d.ts.map +1 -1
- package/dist/detectors/requirement-smell.js +39 -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 +2 -0
- package/dist/detectors/sentence-counts.d.ts.map +1 -1
- package/dist/detectors/sentence-counts.js +18 -7
- 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 +24 -16
- 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/sentence-rhythm.d.ts.map +1 -1
- package/dist/detectors/sentence-rhythm.js +6 -3
- package/dist/detectors/sentence-rhythm.js.map +1 -1
- package/dist/detectors/series-label.d.ts +2 -1
- package/dist/detectors/series-label.d.ts.map +1 -1
- package/dist/detectors/series-label.js +10 -4
- package/dist/detectors/series-label.js.map +1 -1
- package/dist/detectors/signals.d.ts +4 -0
- package/dist/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +91 -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 +21 -19
- 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/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/template-sections.d.ts +14 -0
- package/dist/detectors/template-sections.d.ts.map +1 -0
- package/dist/detectors/template-sections.js +25 -0
- package/dist/detectors/template-sections.js.map +1 -0
- 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 +23 -0
- package/dist/detectors/titled-run.d.ts.map +1 -0
- package/dist/detectors/titled-run.js +39 -0
- package/dist/detectors/titled-run.js.map +1 -0
- package/dist/detectors/token-shape.d.ts.map +1 -1
- package/dist/detectors/token-shape.js +13 -5
- package/dist/detectors/token-shape.js.map +1 -1
- package/dist/detectors/unbalanced-bracket.d.ts.map +1 -1
- package/dist/detectors/unbalanced-bracket.js +4 -0
- package/dist/detectors/unbalanced-bracket.js.map +1 -1
- package/dist/detectors/undefined-term.d.ts.map +1 -1
- package/dist/detectors/undefined-term.js +8 -0
- package/dist/detectors/undefined-term.js.map +1 -1
- package/dist/detectors/unfilled-placeholder.d.ts +4 -0
- package/dist/detectors/unfilled-placeholder.d.ts.map +1 -0
- package/dist/detectors/unfilled-placeholder.js +9 -0
- package/dist/detectors/unfilled-placeholder.js.map +1 -0
- package/dist/detectors/vague-density.d.ts +8 -0
- package/dist/detectors/vague-density.d.ts.map +1 -0
- package/dist/detectors/vague-density.js +65 -0
- package/dist/detectors/vague-density.js.map +1 -0
- 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/facts/fact-scope.d.ts +10 -1
- package/dist/facts/fact-scope.d.ts.map +1 -1
- package/dist/facts/fact-scope.js +34 -3
- package/dist/facts/fact-scope.js.map +1 -1
- package/dist/facts/table-facts.d.ts +12 -2
- package/dist/facts/table-facts.d.ts.map +1 -1
- package/dist/facts/table-facts.js +22 -4
- package/dist/facts/table-facts.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/grade-api.d.ts +9 -2
- package/dist/grade-api.d.ts.map +1 -1
- package/dist/grade-api.js +31 -15
- package/dist/grade-api.js.map +1 -1
- package/dist/heading-numbering.d.ts +5 -2
- package/dist/heading-numbering.d.ts.map +1 -1
- package/dist/heading-numbering.js +27 -6
- package/dist/heading-numbering.js.map +1 -1
- 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 +33 -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 +15 -0
- package/dist/latin-word-boundary.d.ts.map +1 -0
- package/dist/latin-word-boundary.js +40 -0
- package/dist/latin-word-boundary.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 +5 -0
- package/dist/link-shape.d.ts.map +1 -1
- package/dist/link-shape.js +18 -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-end-letter.d.ts +5 -0
- package/dist/name-end-letter.d.ts.map +1 -1
- package/dist/name-end-letter.js +8 -0
- package/dist/name-end-letter.js.map +1 -1
- package/dist/name-given-before.d.ts +15 -0
- package/dist/name-given-before.d.ts.map +1 -0
- package/dist/name-given-before.js +30 -0
- package/dist/name-given-before.js.map +1 -0
- package/dist/name-separator.d.ts +2 -2
- package/dist/name-separator.d.ts.map +1 -1
- package/dist/name-separator.js +79 -5
- package/dist/name-separator.js.map +1 -1
- package/dist/name-variants.d.ts +3 -1
- package/dist/name-variants.d.ts.map +1 -1
- package/dist/name-variants.js +8 -7
- package/dist/name-variants.js.map +1 -1
- package/dist/name-word-order.d.ts +9 -5
- package/dist/name-word-order.d.ts.map +1 -1
- package/dist/name-word-order.js +47 -15
- package/dist/name-word-order.js.map +1 -1
- package/dist/nominal-stem.d.ts +26 -0
- package/dist/nominal-stem.d.ts.map +1 -0
- package/dist/nominal-stem.js +70 -0
- package/dist/nominal-stem.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 +6 -2
- 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 +11 -0
- package/dist/structure/attached-parts.d.ts.map +1 -0
- package/dist/structure/attached-parts.js +31 -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/cited-document-section.d.ts +7 -0
- package/dist/structure/cited-document-section.d.ts.map +1 -0
- package/dist/structure/cited-document-section.js +33 -0
- package/dist/structure/cited-document-section.js.map +1 -0
- 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 +3 -2
- package/dist/structure/definition-use.d.ts.map +1 -1
- package/dist/structure/definition-use.js +99 -31
- package/dist/structure/definition-use.js.map +1 -1
- package/dist/structure/html-text-blocks.d.ts +8 -0
- package/dist/structure/html-text-blocks.d.ts.map +1 -0
- package/dist/structure/html-text-blocks.js +47 -0
- package/dist/structure/html-text-blocks.js.map +1 -0
- package/dist/structure/issues.d.ts +5 -2
- package/dist/structure/issues.d.ts.map +1 -1
- package/dist/structure/issues.js +24 -6
- package/dist/structure/issues.js.map +1 -1
- package/dist/structure/labelled-date-order.d.ts +4 -1
- package/dist/structure/labelled-date-order.d.ts.map +1 -1
- package/dist/structure/labelled-date-order.js +2 -2
- package/dist/structure/labelled-date-order.js.map +1 -1
- package/dist/structure/labelled-order.d.ts +3 -0
- package/dist/structure/labelled-order.d.ts.map +1 -1
- package/dist/structure/labelled-order.js +8 -3
- package/dist/structure/labelled-order.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/list-numbering.d.ts +20 -4
- package/dist/structure/list-numbering.d.ts.map +1 -1
- package/dist/structure/list-numbering.js +65 -9
- package/dist/structure/list-numbering.js.map +1 -1
- package/dist/structure/listed-paragraph.d.ts +16 -0
- package/dist/structure/listed-paragraph.d.ts.map +1 -0
- package/dist/structure/listed-paragraph.js +37 -0
- package/dist/structure/listed-paragraph.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 +5 -2
- package/dist/structure/numbering.d.ts.map +1 -1
- package/dist/structure/numbering.js +49 -12
- 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/reference-text.d.ts +9 -1
- package/dist/structure/reference-text.d.ts.map +1 -1
- package/dist/structure/reference-text.js +21 -3
- package/dist/structure/reference-text.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/section-names.d.ts +12 -0
- package/dist/structure/section-names.d.ts.map +1 -0
- package/dist/structure/section-names.js +26 -0
- package/dist/structure/section-names.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 +3 -1
- package/dist/structure/universal.d.ts.map +1 -1
- package/dist/structure/universal.js +9 -2
- 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/versioned-label.d.ts +16 -0
- package/dist/structure/versioned-label.d.ts.map +1 -0
- package/dist/structure/versioned-label.js +48 -0
- package/dist/structure/versioned-label.js.map +1 -0
- package/dist/structure/written-headings.d.ts +31 -0
- package/dist/structure/written-headings.d.ts.map +1 -0
- package/dist/structure/written-headings.js +119 -0
- package/dist/structure/written-headings.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 +12 -0
- package/dist/structure/written-resolve.d.ts.map +1 -0
- package/dist/structure/written-resolve.js +55 -0
- package/dist/structure/written-resolve.js.map +1 -0
- package/dist/title-line.d.ts +21 -0
- package/dist/title-line.d.ts.map +1 -0
- package/dist/title-line.js +27 -0
- package/dist/title-line.js.map +1 -0
- package/package.json +3 -3
- 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 +2 -2
- package/rules/contraction-consistency.yaml +13 -13
- package/rules/dangling-figure-reference.yaml +2 -2
- package/rules/dangling-reference.yaml +2 -2
- package/rules/date-without-year.yaml +10 -2
- package/rules/defined-name-repeated.yaml +2 -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/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/fact-conflict.yaml +2 -2
- package/rules/footnote-mismatch.yaml +2 -2
- package/rules/heading-echo.yaml +2 -2
- package/rules/heading-end-punctuation-mix.yaml +2 -2
- package/rules/heading-numbering-mix.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 +4 -4
- package/rules/list-item-form-mix.yaml +2 -2
- package/rules/max-kanji-continuous.yaml +7 -3
- package/rules/max-sentence-length.yaml +3 -2
- package/rules/modal-conflict.yaml +1 -0
- package/rules/nado-closed-list.yaml +2 -2
- package/rules/name-variant.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 +2 -2
- package/rules/reference-title-mismatch.yaml +2 -2
- package/rules/repeated-sentence-ending.yaml +3 -2
- package/rules/request-without-deadline.yaml +2 -2
- package/rules/requirement-smell.yaml +3 -3
- package/rules/sentence-rhythm.yaml +2 -2
- package/rules/table-header-variant.yaml +2 -2
- package/rules/teki-overuse.yaml +3 -2
- package/rules/title-case-consistency.yaml +2 -2
- package/rules/total-mismatch.yaml +2 -2
- package/rules/translationese-density.yaml +2 -2
- package/rules/unbalanced-bracket.yaml +2 -2
- package/rules/undefined-acronym.yaml +15 -4
- package/rules/undefined-term.yaml +2 -2
- package/rules/unfilled-placeholder.yaml +4 -4
- 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/capitals-passage.ts +31 -0
- package/src/chronology-rows.ts +86 -0
- package/src/coined-hyphen-name.ts +27 -0
- package/src/company-name-run.ts +37 -0
- package/src/company-names.ts +24 -3
- 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 +34 -6
- package/src/detectors/acronym-definition.ts +123 -0
- package/src/detectors/acronym-expansion.ts +47 -6
- package/src/detectors/acronym-known.ts +40 -0
- package/src/detectors/acronym-link.ts +37 -0
- package/src/detectors/acronym-lone.ts +26 -0
- package/src/detectors/acronym-name.ts +140 -0
- package/src/detectors/addressee-edge.ts +16 -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 +154 -4
- package/src/detectors/caps-caption.ts +103 -0
- package/src/detectors/caps-phrase.ts +17 -0
- package/src/detectors/char-shape.ts +99 -26
- package/src/detectors/cited-title.ts +15 -3
- package/src/detectors/clause-shape.ts +14 -4
- package/src/detectors/concrete-evidence.ts +77 -1
- package/src/detectors/contraction-minority.ts +11 -0
- package/src/detectors/counter-edge.ts +40 -2
- package/src/detectors/date-any-year.ts +79 -12
- package/src/detectors/date-format.ts +2 -1
- package/src/detectors/date-heading-year.ts +55 -0
- package/src/detectors/date-year.ts +107 -14
- package/src/detectors/deadline-unit.ts +40 -0
- package/src/detectors/defined-term-form.ts +58 -17
- package/src/detectors/definition-use.ts +7 -3
- package/src/detectors/derived-numbers.ts +19 -4
- 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/due-date.ts +10 -1
- package/src/detectors/ellipsis.ts +16 -1
- package/src/detectors/email-letter.ts +97 -21
- package/src/detectors/en-shape.ts +5 -1
- package/src/detectors/fact-consistency.ts +3 -2
- package/src/detectors/field-label.ts +25 -0
- package/src/detectors/footnote-mismatch.ts +39 -7
- package/src/detectors/graded-step.ts +52 -0
- package/src/detectors/gram-openers.ts +21 -0
- package/src/detectors/gram-passages.ts +36 -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-end-mark.ts +23 -10
- package/src/detectors/heading-names.ts +31 -0
- package/src/detectors/heading-numbering.ts +7 -2
- package/src/detectors/ime-residue.ts +4 -3
- package/src/detectors/inch-mark.ts +49 -0
- package/src/detectors/kanji-compound-slip.ts +61 -0
- package/src/detectors/kutoten-consistency.ts +93 -14
- package/src/detectors/lexicon.ts +44 -24
- 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 +70 -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-apart.ts +63 -0
- package/src/detectors/name-variant.ts +30 -12
- 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/numeral-word.ts +33 -0
- 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 +97 -0
- package/src/detectors/orthographic-variant.ts +103 -27
- package/src/detectors/orthography.ts +10 -1
- package/src/detectors/outline-label.ts +48 -0
- package/src/detectors/oxford-comma.ts +40 -1
- package/src/detectors/page-marker.ts +26 -0
- package/src/detectors/parallel-definition.ts +64 -0
- 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/reference-text.ts +1 -0
- package/src/detectors/registry/kanji-compound-slip.ts +4 -0
- package/src/detectors/registry/phrase-in-use.ts +4 -0
- package/src/detectors/registry/unfilled-placeholder.ts +2 -2
- package/src/detectors/registry/vague-density.ts +1 -1
- package/src/detectors/request-owner.ts +71 -8
- package/src/detectors/requirement-smell.ts +53 -7
- package/src/detectors/scaled-figure-unit.ts +103 -0
- package/src/detectors/sentence-counts.ts +24 -8
- package/src/detectors/sentence-ending.ts +12 -3
- package/src/detectors/sentence-length.ts +14 -6
- package/src/detectors/sentence-load.ts +9 -2
- package/src/detectors/sentence-rhythm.ts +8 -4
- package/src/detectors/series-label.ts +13 -4
- package/src/detectors/signals.ts +105 -55
- package/src/detectors/structure-tree.ts +22 -20
- package/src/detectors/structure.ts +2 -1
- package/src/detectors/subject-name-line.ts +66 -0
- package/src/detectors/table-header.ts +15 -1
- package/src/detectors/technical-docs.ts +5 -1
- package/src/detectors/template-sections.ts +37 -0
- package/src/detectors/term-mention-sentence.ts +31 -0
- package/src/detectors/titled-run.ts +48 -0
- package/src/detectors/token-shape.ts +14 -5
- package/src/detectors/unbalanced-bracket.ts +3 -0
- package/src/detectors/undefined-term.ts +8 -0
- package/src/detectors/unfilled-placeholder.ts +10 -0
- package/src/detectors/vague-density.ts +84 -0
- package/src/document-paragraphs.ts +27 -0
- package/src/document.ts +3 -23
- package/src/facts/fact-scope.ts +53 -4
- package/src/facts/table-facts.ts +43 -6
- package/src/figure-references.ts +7 -2
- package/src/format-template.ts +15 -0
- package/src/formula-brackets.ts +36 -0
- package/src/grade-api.ts +38 -16
- package/src/heading-numbering.ts +35 -8
- package/src/html/html-markdown.ts +2 -1
- package/src/html/html-site-chrome.ts +47 -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 +46 -0
- package/src/lexicon-genres.ts +1 -1
- package/src/link-shape.ts +19 -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-end-letter.ts +9 -0
- package/src/name-given-before.ts +40 -0
- package/src/name-separator.ts +91 -5
- package/src/name-variants.ts +21 -11
- package/src/name-word-order.ts +62 -17
- package/src/nominal-stem.ts +93 -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 +7 -2
- package/src/spacing-code.ts +5 -1
- package/src/split-noun.ts +63 -0
- package/src/structure/attached-parts.ts +32 -0
- package/src/structure/build.ts +7 -4
- package/src/structure/cited-document-section.ts +42 -0
- package/src/structure/contents-lines.ts +63 -0
- package/src/structure/defining-names.ts +155 -0
- package/src/structure/definition-use.ts +116 -25
- package/src/structure/html-text-blocks.ts +45 -0
- package/src/structure/issues.ts +26 -7
- package/src/structure/labelled-date-order.ts +5 -2
- package/src/structure/labelled-order.ts +12 -3
- package/src/structure/list-lead-in.ts +94 -0
- package/src/structure/list-numbering.ts +100 -11
- package/src/structure/listed-paragraph.ts +45 -0
- package/src/structure/modal-conflict.ts +42 -7
- package/src/structure/negated-act.ts +49 -0
- package/src/structure/numbering.ts +70 -26
- package/src/structure/prose-total.ts +20 -6
- package/src/structure/reference-text.ts +25 -3
- package/src/structure/repeated-number.ts +110 -0
- package/src/structure/rounded-amount.ts +55 -0
- package/src/structure/section-names.ts +32 -0
- package/src/structure/side-step.ts +21 -0
- package/src/structure/spanned-label-blank.ts +39 -0
- package/src/structure/universal.ts +11 -2
- package/src/structure/unspaced-heading.ts +27 -0
- package/src/structure/versioned-label.ts +52 -0
- package/src/structure/written-headings.ts +137 -0
- package/src/structure/written-list-path.ts +46 -0
- package/src/structure/written-resolve.ts +64 -0
- package/src/title-line.ts +52 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// 平文の契約の見出し。Markdown の見出しを使わない契約(.txt)は、行の頭や文の切れ目に「9. Indemnification.」
|
|
2
|
+
// 「Section 2.3 Appraisal Shares.」と番号と題を書く。木は本文の番号と見分けられないのでこれを番地にしないが、
|
|
3
|
+
// 参照の行き先としては読める。目次の行(「Section 2.3 Appraisal Shares 4」)は題が点で閉じないので見出しにしない。
|
|
4
|
+
/** 題の語の数の上限。見出しの題は短い。 */
|
|
5
|
+
const MAX_TITLE_WORDS = 15;
|
|
6
|
+
/** 題の語: 文字で始まり、文字・アポストロフィ・アンパサンド・ハイフンが続き、読点やセミコロンで終わってもよい。数字は入らない。 */
|
|
7
|
+
const TITLE_WORD = /^\p{L}[\p{L}’'&-]*[,;]?$/u;
|
|
8
|
+
const CAPITAL = /^\p{Lu}/u;
|
|
9
|
+
/**
|
|
10
|
+
* Title Case の題か(「Effect on Capital Stock of the Company and Merger Sub」)。最初の語が大文字で始まり、語の半分より多くが
|
|
11
|
+
* 大文字で始まり、数字を含まない。文(「The Company shall comply」)は小文字の語が多いので当たらない。Pure.
|
|
12
|
+
*/
|
|
13
|
+
export const isTitle = (title) => {
|
|
14
|
+
const words = title.trim().split(/\s+/u);
|
|
15
|
+
const [first] = words;
|
|
16
|
+
if (first === undefined || first === "" || words.length > MAX_TITLE_WORDS || !words.every((word) => TITLE_WORD.test(word)))
|
|
17
|
+
return false;
|
|
18
|
+
return CAPITAL.test(first) && words.filter((word) => CAPITAL.test(word)).length * 2 > words.length;
|
|
19
|
+
};
|
|
20
|
+
/** 点で閉じた題(「Appraisal Shares. As used」の「Appraisal Shares」)。点の後ろは空白か行末。無ければ undefined。 */
|
|
21
|
+
const MAX_TITLE_LENGTH = 120;
|
|
22
|
+
const titleClosedByDot = (text) => {
|
|
23
|
+
const dot = text.slice(0, MAX_TITLE_LENGTH).search(/\.(?:\s|$)/u);
|
|
24
|
+
return dot <= 0 ? undefined : text.slice(0, dot);
|
|
25
|
+
};
|
|
26
|
+
/** 前の語が番号(「Section 8.07. Section 16 Matters」の 8.07.)なら、後ろはその見出しの題で、見出しではない。 */
|
|
27
|
+
const NUMBER_BEFORE = /\d[.:]?$/u;
|
|
28
|
+
const SENTENCE_END = /[.;:]$/u;
|
|
29
|
+
const isSpace = (char) => char === " " || char === "\t";
|
|
30
|
+
/** 見出しが始まれる位置: 行の頭、文の終わり(. ; :)の後ろの空白、2 つ以上の空白の後ろ。前が番号なら始まらない。 */
|
|
31
|
+
const startsHeading = (source, at) => {
|
|
32
|
+
const before = source.slice(Math.max(source.lastIndexOf("\n", at - 1) + 1, at - MAX_TITLE_LENGTH), at);
|
|
33
|
+
let spaces = 0;
|
|
34
|
+
while (isSpace(before[before.length - 1 - spaces]))
|
|
35
|
+
spaces += 1;
|
|
36
|
+
if (spaces === before.length)
|
|
37
|
+
return true;
|
|
38
|
+
const word = before
|
|
39
|
+
.slice(0, before.length - spaces)
|
|
40
|
+
.split(/[ \t]/u)
|
|
41
|
+
.at(-1) ?? "";
|
|
42
|
+
if (NUMBER_BEFORE.test(word))
|
|
43
|
+
return false;
|
|
44
|
+
return spaces >= 2 || (spaces >= 1 && SENTENCE_END.test(word));
|
|
45
|
+
};
|
|
46
|
+
/** 参照のすぐ後ろが題か(「Section 4.12. Compliance with Laws.」「Section 1.1 Closing. The Parties」)。 */
|
|
47
|
+
const NUMBER_CLOSE = /^\.?[ \t]+/u;
|
|
48
|
+
/** 番号と題のあいだの空白の長さの上限(データセットの契約は十数個の空白を置く)。 */
|
|
49
|
+
const MAX_NUMBER_CLOSE = 24;
|
|
50
|
+
const titledAfter = (source, end) => {
|
|
51
|
+
const rest = source.slice(end, end + MAX_TITLE_LENGTH + MAX_NUMBER_CLOSE);
|
|
52
|
+
const close = NUMBER_CLOSE.exec(rest)?.[0];
|
|
53
|
+
const title = close === undefined ? undefined : titleClosedByDot(rest.slice(close.length));
|
|
54
|
+
return title !== undefined && isTitle(title);
|
|
55
|
+
};
|
|
56
|
+
/** 参照の形で書かれた見出し(「… Effect. Section 4.12. Compliance with Laws.」)。 */
|
|
57
|
+
const headingsAtReferences = (references, source) => references
|
|
58
|
+
.filter((reference) => startsHeading(source, reference.start) && titledAfter(source, reference.end))
|
|
59
|
+
.map((reference) => ({ address: reference.target, start: reference.start }));
|
|
60
|
+
/** 行の頭の番号(「9. Indemnification.」「4 Intellectual Property. 4.1 Each」「6.1 eGain warrants」「2 Quality and Food Safety」)。 */
|
|
61
|
+
const LINE_NUMBER = /^[ \t]{0,3}(?<number>\d{1,3}(?:\.\d{1,3}){0,5})\.?[ \t]+(?<rest>\S.*)$/u;
|
|
62
|
+
/** 語のどこかに大文字があるか(「eGain」も名前)。 */
|
|
63
|
+
const HAS_CAPITAL = /\p{Lu}/u;
|
|
64
|
+
/**
|
|
65
|
+
* 行の頭の番号が見出しか。題が点で閉じ、同じ行に本文が続けば見出し(「9. Indemnification. Each party …」)。題だけの行
|
|
66
|
+
* (「1. Introduction」)は箇条書きと見分けられないので読まない。点を含む番号(6.1)は、最初の語に大文字があり、題より長い
|
|
67
|
+
* 段落が続けば段落の番号(「6.1 eGain warrants …」)。本文の折り返しの「2.5 percent」は小文字、目次の「3.17 Reserves 33」は短いので当たらない。
|
|
68
|
+
*/
|
|
69
|
+
const isLineHeading = (number, rest) => {
|
|
70
|
+
const title = titleClosedByDot(rest);
|
|
71
|
+
if (title !== undefined && rest.slice(title.length + 1).trim() !== "" && isTitle(title))
|
|
72
|
+
return true;
|
|
73
|
+
const words = rest.split(/\s+/u);
|
|
74
|
+
return number.includes(".") && words.length > MAX_TITLE_WORDS && HAS_CAPITAL.test(words[0] ?? "");
|
|
75
|
+
};
|
|
76
|
+
const headingsAtLineStarts = (source) => {
|
|
77
|
+
const found = [];
|
|
78
|
+
let start = 0;
|
|
79
|
+
source.split("\n").forEach((line) => {
|
|
80
|
+
const groups = LINE_NUMBER.exec(line)?.groups;
|
|
81
|
+
const number = groups?.["number"];
|
|
82
|
+
if (number !== undefined && isLineHeading(number, groups?.["rest"] ?? ""))
|
|
83
|
+
found.push({ address: number, start });
|
|
84
|
+
start += line.length + 1;
|
|
85
|
+
});
|
|
86
|
+
return found;
|
|
87
|
+
};
|
|
88
|
+
/** 文書に平文で書かれた見出しを、文書の順に。Pure. */
|
|
89
|
+
export const writtenHeadings = (references, source) => [...headingsAtReferences(references, source), ...headingsAtLineStarts(source)].toSorted((left, right) => left.start - right.start);
|
|
90
|
+
/** 括弧の小見出し(「(i)」「(b)」「(3)」)。参照の一部(「Section 2.02(b)」「(a)(i)」)は、前が文字・数字・括弧なので読まない。 */
|
|
91
|
+
const SUBDIVISION_LABEL = /(?<![\p{L}\p{N})\]])\((?<label>[a-zA-Z]{1,4}|\d{1,3})\)/gu;
|
|
92
|
+
/** 本文に書かれた括弧の小見出しの札。Pure. */
|
|
93
|
+
export const writtenSubdivisions = (body) => new Set([...body.matchAll(SUBDIVISION_LABEL)].flatMap((match) => (match.groups?.["label"] === undefined ? [] : [match.groups["label"]])));
|
|
94
|
+
/** 参照の札(「Section 2.1(a)(i)」の a と i)。 */
|
|
95
|
+
const LABEL_IN_REFERENCE = /\((?<label>[a-zA-Z]{1,4}|\d{1,3})\)/gu;
|
|
96
|
+
/**
|
|
97
|
+
* 参照の番地「2.1.a.i」を、親「2.1」と、参照が括弧で書いた札「a」「i」に分ける。札を括弧で書いていない参照(Section 2.1)や、
|
|
98
|
+
* 番地の末尾が書いた札と合わなければ undefined。Pure.
|
|
99
|
+
*/
|
|
100
|
+
export const parentAndLabels = (target, written) => {
|
|
101
|
+
const labels = [...written.matchAll(LABEL_IN_REFERENCE)].flatMap((match) => (match.groups?.["label"] === undefined ? [] : [match.groups["label"]]));
|
|
102
|
+
const parts = target.split(".");
|
|
103
|
+
const cut = parts.length - labels.length;
|
|
104
|
+
if (labels.length === 0 || cut <= 0 || parts.slice(cut).join(".") !== labels.join("."))
|
|
105
|
+
return undefined;
|
|
106
|
+
return { parent: parts.slice(0, cut).join("."), labels };
|
|
107
|
+
};
|
|
108
|
+
/** 書かれた見出しごとの範囲(次の書かれた見出しまで)。同じ番地が二度あれば、どちらの範囲もその番地のもの。Pure. */
|
|
109
|
+
export const headingRegions = (headings, length) => {
|
|
110
|
+
const regions = new Map();
|
|
111
|
+
headings.forEach((heading, index) => {
|
|
112
|
+
const end = headings[index + 1]?.start ?? length;
|
|
113
|
+
const found = regions.get(heading.address) ?? [];
|
|
114
|
+
found.push([heading.start, end]);
|
|
115
|
+
regions.set(heading.address, found);
|
|
116
|
+
});
|
|
117
|
+
return regions;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=written-headings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"written-headings.js","sourceRoot":"","sources":["../../src/structure/written-headings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 行の頭の札。indent は札の前の字下げの幅(タブは 4)。 */
|
|
2
|
+
export type ListLabel = {
|
|
3
|
+
readonly label: string;
|
|
4
|
+
readonly indent: number;
|
|
5
|
+
};
|
|
6
|
+
/** 本文の行の頭に書かれた札を、文書の順に。Pure. */
|
|
7
|
+
export declare const listLabels: (body: string) => ListLabel[];
|
|
8
|
+
/** 札「b」「iv」が、行の頭の札として「(b)」の下に「iv.」と入れ子で書かれているか。札が無ければ false。Pure. */
|
|
9
|
+
export declare const hasListPath: (items: readonly ListLabel[], labels: readonly string[]) => boolean;
|
|
10
|
+
//# sourceMappingURL=written-list-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"written-list-path.d.ts","sourceRoot":"","sources":["../../src/structure/written-list-path.ts"],"names":[],"mappings":"AAGA,sCAAsC;AACtC,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgB5E,gCAAgC;AAChC,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,EAK/C,CAAC;AAkBL,qEAAqE;AACrE,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,QAAQ,SAAS,MAAM,EAAE,KAAG,OAAwE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// 箇条書きで書いた小見出し。「- (b) Composition: …」の下に字下げして「- i. one representative …」と書いた文書は、
|
|
2
|
+
// 「Section 8(b)(i)」の (b) と i を本文の括弧ではなく行の頭の札で書く。札の入れ子は字下げで読む。
|
|
3
|
+
/** 字下げ、箇条書きの記号(-、*、+)、札、空白、本文。 */
|
|
4
|
+
const LIST_LINE = /^(?<indent>[ \t]*)(?:[-*+][ \t]+)?(?<mark>\S+)[ \t]+\S/u;
|
|
5
|
+
/** 札「(b)」「i.」「2)」。 */
|
|
6
|
+
const MARK = /^\(?(?<label>[a-zA-Z]{1,4}|\d{1,3})[.)]$/u;
|
|
7
|
+
/** 札の中身。開き括弧で始まる札は閉じ括弧で終わる(「(b.」は札ではない)。 */
|
|
8
|
+
const labelOf = (mark) => {
|
|
9
|
+
const label = MARK.exec(mark)?.groups?.["label"];
|
|
10
|
+
return mark.startsWith("(") && !mark.endsWith(")") ? undefined : label;
|
|
11
|
+
};
|
|
12
|
+
const TAB_WIDTH = 4;
|
|
13
|
+
const widthOf = (indent) => [...indent].reduce((width, char) => width + (char === "\t" ? TAB_WIDTH : 1), 0);
|
|
14
|
+
/** 本文の行の頭に書かれた札を、文書の順に。Pure. */
|
|
15
|
+
export const listLabels = (body) => body.split("\n").flatMap((line) => {
|
|
16
|
+
const groups = LIST_LINE.exec(line)?.groups;
|
|
17
|
+
const label = labelOf(groups?.["mark"] ?? "");
|
|
18
|
+
return label === undefined ? [] : [{ label, indent: widthOf(groups?.["indent"] ?? "") }];
|
|
19
|
+
});
|
|
20
|
+
/** 札 index の下(次に同じか浅い字下げの札が来るまで)の終わり。 */
|
|
21
|
+
const scopeEnd = (items, index, end) => {
|
|
22
|
+
const depth = items[index]?.indent ?? 0;
|
|
23
|
+
const next = items.findIndex((item, at) => at > index && at < end && item.indent <= depth);
|
|
24
|
+
return next === -1 ? end : next;
|
|
25
|
+
};
|
|
26
|
+
/** items[from, end) の一番浅い字下げの札(直下の札)から、labels を入れ子の順にたどれるか。深い札を飛ばして親にしない。 */
|
|
27
|
+
const pathFrom = (items, labels, from, end) => {
|
|
28
|
+
const [first, ...rest] = labels;
|
|
29
|
+
if (first === undefined)
|
|
30
|
+
return true;
|
|
31
|
+
const scope = items.slice(from, end);
|
|
32
|
+
const top = Math.min(...scope.map((item) => item.indent));
|
|
33
|
+
return scope.some((item, at) => item.indent === top && item.label === first && pathFrom(items, rest, from + at + 1, scopeEnd(items, from + at, end)));
|
|
34
|
+
};
|
|
35
|
+
/** 札「b」「iv」が、行の頭の札として「(b)」の下に「iv.」と入れ子で書かれているか。札が無ければ false。Pure. */
|
|
36
|
+
export const hasListPath = (items, labels) => labels.length > 0 && pathFrom(items, labels, 0, items.length);
|
|
37
|
+
//# sourceMappingURL=written-list-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"written-list-path.js","sourceRoot":"","sources":["../../src/structure/written-list-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StructureNode } from "../plugin.ts";
|
|
2
|
+
/** addresses: 平文で書かれた見出しの番地。subdivision: 参照の札が、親の範囲の本文に書かれているか。 */
|
|
3
|
+
export type WrittenReading = {
|
|
4
|
+
readonly addresses: readonly string[];
|
|
5
|
+
readonly subdivision: (reference: StructureNode) => boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* 平文の見出しの番地と、参照(Section 6.1(i))の親(6.1)が木の条か平文の見出しとしてあり、その範囲の本文に札「(i)」が
|
|
9
|
+
* 書かれているか(札を行の頭に入れ子で書いた箇条書きも読む)を引く関数。Pure.
|
|
10
|
+
*/
|
|
11
|
+
export declare const writtenReading: (nodes: readonly StructureNode[], source: string) => WrittenReading;
|
|
12
|
+
//# sourceMappingURL=written-resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"written-resolve.d.ts","sourceRoot":"","sources":["../../src/structure/written-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,OAAO,CAAA;CAAE,CAAC;AAoCpI;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,aAAa,EAAE,EAAE,QAAQ,MAAM,KAAG,cAchF,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { headingRegions, parentAndLabels, writtenHeadings, writtenSubdivisions } from "./written-headings.js";
|
|
2
|
+
import { hasListPath, listLabels } from "./written-list-path.js";
|
|
3
|
+
const targetOf = (node) => String(node.attrs["target"] ?? "");
|
|
4
|
+
/**
|
|
5
|
+
* 括弧の小見出しを読む範囲。木の条は、項や号を一つも読まなかったときだけ、その条の始まりから次の平文の見出しまで。
|
|
6
|
+
* 項や号を読んでいれば、無い札は本当に無い。
|
|
7
|
+
*/
|
|
8
|
+
const treeRegions = (nodes, headings) => {
|
|
9
|
+
const regions = new Map();
|
|
10
|
+
// 条も見出しも文書の順なので、次の見出しは前へ進めるだけで見つかる。
|
|
11
|
+
let next = 0;
|
|
12
|
+
nodes
|
|
13
|
+
.filter((node) => node.kind === "article" && !node.children.some((child) => child.kind === "item"))
|
|
14
|
+
.toSorted((left, right) => left.span.start - right.span.start)
|
|
15
|
+
.forEach((node) => {
|
|
16
|
+
while ((headings[next]?.start ?? Infinity) <= node.span.start)
|
|
17
|
+
next += 1;
|
|
18
|
+
const end = Math.min(headings[next]?.start ?? node.span.end, node.span.end);
|
|
19
|
+
const found = regions.get(node.address) ?? [];
|
|
20
|
+
found.push([node.span.start, end]);
|
|
21
|
+
regions.set(node.address, found);
|
|
22
|
+
});
|
|
23
|
+
return regions;
|
|
24
|
+
};
|
|
25
|
+
/** 範囲の本文を read で読んだ結果。範囲ごとに、要るときに一度だけ読む。 */
|
|
26
|
+
const perRegion = (source, read) => {
|
|
27
|
+
const cache = new Map();
|
|
28
|
+
return ([start, end]) => {
|
|
29
|
+
const key = `${String(start)}:${String(end)}`;
|
|
30
|
+
const found = cache.get(key) ?? read(source.slice(start, end));
|
|
31
|
+
cache.set(key, found);
|
|
32
|
+
return found;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* 平文の見出しの番地と、参照(Section 6.1(i))の親(6.1)が木の条か平文の見出しとしてあり、その範囲の本文に札「(i)」が
|
|
37
|
+
* 書かれているか(札を行の頭に入れ子で書いた箇条書きも読む)を引く関数。Pure.
|
|
38
|
+
*/
|
|
39
|
+
export const writtenReading = (nodes, source) => {
|
|
40
|
+
const references = nodes.filter((node) => node.kind === "reference").map((node) => ({ start: node.span.start, end: node.span.end, target: targetOf(node) }));
|
|
41
|
+
const headings = writtenHeadings(references, source);
|
|
42
|
+
const written = headingRegions(headings, source.length);
|
|
43
|
+
const tree = treeRegions(nodes, headings);
|
|
44
|
+
const labelsIn = perRegion(source, writtenSubdivisions);
|
|
45
|
+
const listIn = perRegion(source, listLabels);
|
|
46
|
+
const regionsOf = (address) => [...(tree.get(address) ?? []), ...(written.get(address) ?? [])];
|
|
47
|
+
const subdivision = (reference) => {
|
|
48
|
+
const wanted = parentAndLabels(targetOf(reference), String(reference.attrs["label"] ?? ""));
|
|
49
|
+
if (wanted === undefined)
|
|
50
|
+
return false;
|
|
51
|
+
return regionsOf(wanted.parent).some((region) => wanted.labels.every((label) => labelsIn(region).has(label)) || hasListPath(listIn(region), wanted.labels));
|
|
52
|
+
};
|
|
53
|
+
return { addresses: headings.map((heading) => heading.address), subdivision };
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=written-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"written-resolve.js","sourceRoot":"","sources":["../../src/structure/written-resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AACnI,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AASjE,MAAM,QAAQ,GAAG,CAAC,IAAmB,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,KAA+B,EAAE,QAAmC,EAAyB,EAAE;IAClH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,oCAAoC;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;SAClG,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC7D,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,IAAI,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,SAAS,GAAG,CAAI,MAAc,EAAE,IAAyB,EAA2B,EAAE;IAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IACnC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA+B,EAAE,MAAc,EAAkB,EAAE;IAChG,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7J,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,OAAe,EAAY,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjH,MAAM,WAAW,GAAG,CAAC,SAAwB,EAAW,EAAE;QACxD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9J,CAAC,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;AAChF,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a reader tells a title from a sentence. dangling-figure-reference reads a caption of any labelled thing; duplicate-
|
|
3
|
+
* definition reads where an attached instrument starts. Their notions differ, so each says how.
|
|
4
|
+
*/
|
|
5
|
+
export type TitleNotion = {
|
|
6
|
+
/** A title ending in one of these is a sentence or runs on. duplicate-definition also refuses a trailing `: ; ,`. */
|
|
7
|
+
readonly sentenceEnd: RegExp;
|
|
8
|
+
/** Every word longer than three letters starts with a capital. dangling-figure-reference only: Figure 3 shows the trend. */
|
|
9
|
+
readonly capitalised: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* "any-whitespace": the document's edge may be reached across any whitespace (a line of U+3000 or NBSP before the
|
|
12
|
+
* first line). "blank-line": only lines of spaces and tabs count. dangling-figure-reference takes the first.
|
|
13
|
+
*/
|
|
14
|
+
readonly edge: "any-whitespace" | "blank-line";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The line from lineStart to lineEnd (-1: the last line) is a title: rest, the words after its label and number, are a
|
|
18
|
+
* short title, and a blank line or the document's edge is on both sides.
|
|
19
|
+
*/
|
|
20
|
+
export declare const isTitleLine: (source: string, lineStart: number, lineEnd: number, rest: string, notion: TitleNotion) => boolean;
|
|
21
|
+
//# sourceMappingURL=title-line.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-line.d.ts","sourceRoot":"","sources":["../src/title-line.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,qHAAqH;IACrH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4HAA4H;IAC5H,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC;CAChD,CAAC;AA2BF;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,WAAW,KAAG,OAG7B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// A title written on a line of its own, as a plain-text heading (Exhibit A to Merger Agreement, ANNEX 1): a few words with
|
|
2
|
+
// no full stop, and a blank line or the document's edge on both sides. Pure.
|
|
3
|
+
/** A title runs at most this many words after its label and number. */
|
|
4
|
+
const TITLE_MAX_WORDS = 6;
|
|
5
|
+
/** A word this long or shorter may stay in lower case in a title (to, of, the, and). */
|
|
6
|
+
const TITLE_SMALL_WORD = 3;
|
|
7
|
+
const BLANK_LINE = /\n[ \t\r]*\n[ \t\r]*$/u;
|
|
8
|
+
const ENDS_LINE = /^[ \t\r]*\n/u;
|
|
9
|
+
const BLANK = /^[ \t\r]*$/u;
|
|
10
|
+
const LOWER_START = /^\p{Ll}/u;
|
|
11
|
+
const isShortTitle = (rest, notion) => {
|
|
12
|
+
const title = rest.trim();
|
|
13
|
+
const words = title.split(/\s+/u).filter((word) => word !== "");
|
|
14
|
+
return (words.length <= TITLE_MAX_WORDS &&
|
|
15
|
+
!notion.sentenceEnd.test(title) &&
|
|
16
|
+
(!notion.capitalised || words.every((word) => word.length <= TITLE_SMALL_WORD || !LOWER_START.test(word))));
|
|
17
|
+
};
|
|
18
|
+
const isAloneBefore = (before, notion) => before === "" || BLANK_LINE.test(`\n${before}`) || (notion.edge === "any-whitespace" && before.trim() === "");
|
|
19
|
+
const isAloneAfter = (after, isLastLine, notion) => isLastLine || ENDS_LINE.test(after) || BLANK.test(after) || (notion.edge === "any-whitespace" && after.trim() === "");
|
|
20
|
+
/**
|
|
21
|
+
* The line from lineStart to lineEnd (-1: the last line) is a title: rest, the words after its label and number, are a
|
|
22
|
+
* short title, and a blank line or the document's edge is on both sides.
|
|
23
|
+
*/
|
|
24
|
+
export const isTitleLine = (source, lineStart, lineEnd, rest, notion) => isShortTitle(rest, notion) &&
|
|
25
|
+
isAloneBefore(source.slice(0, lineStart), notion) &&
|
|
26
|
+
isAloneAfter(lineEnd === -1 ? "" : source.slice(lineEnd + 1), lineEnd === -1, notion);
|
|
27
|
+
//# sourceMappingURL=title-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title-line.js","sourceRoot":"","sources":["../src/title-line.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,6EAA6E;AAkB7E,uEAAuE;AACvE,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,KAAK,GAAG,aAAa,CAAC;AAC5B,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAmB,EAAW,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,CACL,KAAK,CAAC,MAAM,IAAI,eAAe;QAC/B,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3G,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,MAAmB,EAAW,EAAE,CACrE,MAAM,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,UAAmB,EAAE,MAAmB,EAAW,EAAE,CACxF,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAExH;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAe,EAAE,IAAY,EAAE,MAAmB,EAAW,EAAE,CAC5H,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IACjD,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chaffjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"description": "Prose validation harness. Finds what is hard to read, and never rewrites it for you.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chaff",
|
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
},
|
|
89
89
|
"dependencies": {
|
|
90
90
|
"@anthropic-ai/sdk": "^0.125.0",
|
|
91
|
-
"@chaffjs/lang-en": "0.
|
|
92
|
-
"@chaffjs/lang-ja": "0.
|
|
91
|
+
"@chaffjs/lang-en": "0.33.0",
|
|
92
|
+
"@chaffjs/lang-ja": "0.35.0",
|
|
93
93
|
"character-entities": "^2.0.2",
|
|
94
94
|
"mdast-util-from-markdown": "^2.0.3",
|
|
95
95
|
"mdast-util-frontmatter": "^2.0.1",
|
|
@@ -41,8 +41,8 @@ example:
|
|
|
41
41
|
Do not delete the log. Do not delete this file before the audit.
|
|
42
42
|
|
|
43
43
|
not_flagged:
|
|
44
|
-
ja: 三語以上の連なりだけを見ます。略語の並び(文書のほかの所で小文字で書かれない語)とコードは見ません。仕様書の MUST や SHALL
|
|
45
|
-
en: Only runs of three or more words. Runs of acronyms (words never written in lower case elsewhere) and code are not reported, and MUST or SHALL in a specification count as conventional capitals. The legal and literature presets turn it off, since contracts set disclaimers in capitals by rule and older texts set titles that way.
|
|
44
|
+
ja: 三語以上の連なりだけを見ます。略語の並び(文書のほかの所で小文字で書かれない語)とコードは見ません。仕様書の MUST や SHALL は慣習の大文字として数えません。段落の頭に置いた大文字の見出し語(「AGENCY:」「WORKING GROUP MEMBERS」のように、コロンで終わるか一行で段落になるもの)と、本文でその見出し語を挙げた所も見ません。文書の頭で最初の文より前にある、全部の行が大文字で文で終わらない段落(「BOARD OF GOVERNORS」で始まるレターヘッドや宛名)も見ません。法令と文学の文書では既定で止めています(大文字で目立たせる決まりや、題を大文字で組む慣習があるため)。
|
|
45
|
+
en: Only runs of three or more words. Runs of acronyms (words never written in lower case elsewhere) and code are not reported, and MUST or SHALL in a specification count as conventional capitals. A caption in capitals that opens a paragraph and ends in a colon or stands alone ("AGENCY:", "WORKING GROUP MEMBERS"), and prose naming such a caption, are not reported either. Nor is a paragraph at the head of the document, before its first sentence, whose lines are all in capitals and end no sentence, such as a letterhead or an addressee block ("BOARD OF GOVERNORS"). The legal and literature presets turn it off, since contracts set disclaimers in capitals by rule and older texts set titles that way.
|
|
46
46
|
level_meaning:
|
|
47
47
|
ja: "{limit} 箇所あれば指摘"
|
|
48
48
|
en: reported once there are {limit}
|
|
@@ -9,8 +9,8 @@ name:
|
|
|
9
9
|
en: A list that does not have the number of items announced
|
|
10
10
|
|
|
11
11
|
why:
|
|
12
|
-
ja: 「以下の3点」と書いたのに、すぐ下の箇条書きが2つや4つだと、読み手は抜けた項目があるのか、数え間違いなのかを確かめることになります。項目を足したり消したりしたあとに、予告の数を直し忘れると起きます。箇条書きのすぐ前の文が、「以下の」「次の」のような先を指す語か、終わりのコロン(:)と一緒に数(3点、2つ、4
|
|
13
|
-
en: 'When a sentence says "the following three steps" and the list right below it has two or four, the reader has to check whether an item is missing or the count is wrong. It happens when an item is added or removed and the count is not updated. The number is compared with the items at the top level of the list only when the sentence right before the list announces it, with a word pointing ahead ("following", "below") or a colon at its end, and the number names what the list holds ("three steps", "two reasons"). A line with a count in brackets after a label and names after the colon, split at commas ("Attendees (6): Tanaka, Suzuki, ..."), is checked the same way: the count against the names listed.'
|
|
12
|
+
ja: 「以下の3点」と書いたのに、すぐ下の箇条書きが2つや4つだと、読み手は抜けた項目があるのか、数え間違いなのかを確かめることになります。項目を足したり消したりしたあとに、予告の数を直し忘れると起きます。箇条書きのすぐ前の文が、「以下の」「次の」のような先を指す語か、終わりのコロン(:)と一緒に数(3点、2つ、4項目)を書いているときだけ、その数を箇条書きのいちばん外側の項目の数と比べます。箇条書きのすぐ上が「3行要約」のように数と見出しの語だけの一行なら、その数も比べます。「出席者(6名):田中、鈴木、…」のように、ラベルの後ろの括弧に数を書き、コロンの後ろに読点やコンマで区切って名前を並べた行も、括弧の数と並べた名前の数を比べます。
|
|
13
|
+
en: 'When a sentence says "the following three steps" and the list right below it has two or four, the reader has to check whether an item is missing or the count is wrong. It happens when an item is added or removed and the count is not updated. The number is compared with the items at the top level of the list only when the sentence right before the list announces it, with a word pointing ahead ("following", "below") or a colon at its end, and the number names what the list holds ("three steps", "two reasons"). A line right above the list that holds only a number and a heading word ("Three-line summary") is compared too. A line with a count in brackets after a label and names after the colon, split at commas ("Attendees (6): Tanaka, Suzuki, ..."), is checked the same way: the count against the names listed.'
|
|
14
14
|
|
|
15
15
|
message:
|
|
16
16
|
ja: 「{phrase}」と予告していますが、すぐ下の箇条書きは{listed}項目です
|
package/rules/bare-url-mix.yaml
CHANGED
|
@@ -51,8 +51,8 @@ example:
|
|
|
51
51
|
Prices are on [the pricing page](https://example.com/pricing). Send questions through [the contact form](https://example.com/contact) today.
|
|
52
52
|
|
|
53
53
|
not_flagged:
|
|
54
|
-
ja: 山括弧で囲んだ URL(<https://…>)、言葉が URL のリンク、コードと引用の中の URL
|
|
55
|
-
en: A URL in angle brackets ("<https://…>"), a link whose text is the URL,
|
|
54
|
+
ja: 山括弧で囲んだ URL(<https://…>)、言葉が URL のリンク、コードと引用の中の URL、項目の値として行に一つだけ書いた URL(**ライセンス本文** https://…)は指しません。参照の形のリンク([言葉][1])は言葉のリンクに数えません。言葉のリンクが指摘に要る数に届かない文書と、URL をそのまま書くほうが多い文書も指しません。
|
|
55
|
+
en: A URL in angle brackets ("<https://…>"), a link whose text is the URL, URLs in code or quotations, and a URL that is a field's value alone on its line ("**Licence text** https://…") are not reported; reference-style links ("[text][1]") are not counted as worded links; nor is a document with fewer worded links than the level needs, or one where bare URLs are not the few.
|
|
56
56
|
level_meaning:
|
|
57
57
|
ja: 言葉のリンクが {limit} 個以上ある文書で指摘
|
|
58
58
|
en: reported in a document with {limit} or more worded links
|
|
@@ -41,8 +41,8 @@ example:
|
|
|
41
41
|
The fee is waived on request for members, including student members under 25.
|
|
42
42
|
|
|
43
43
|
not_flagged:
|
|
44
|
-
ja: 二重までの括弧、開きの無い閉じ括弧(「1)
|
|
45
|
-
en: Two levels of brackets, a closing bracket with no opener ("1)"), brackets in code or in a formula ($…$), and curly braces are not counted.
|
|
44
|
+
ja: 二重までの括弧、開きの無い閉じ括弧(「1)」)、コードと数式($…$)の中の括弧、波括弧は数えません。そのとおりに打ち込む文字列の引用(件名に「応募(総務課)」と記載、「【様式】(氏名)」とファイル名を変更)は、中の括弧が文字列の一部で外せないので、一つの括弧として数えます。
|
|
45
|
+
en: Two levels of brackets, a closing bracket with no opener ("1)"), brackets in code or in a formula ($…$), and curly braces are not counted. A quotation of a string to type as it stands (an e-mail subject, a file name, as in with the subject line “Entry (Training)”) counts as one bracket, since its own brackets cannot be taken out.
|
|
46
46
|
level_meaning:
|
|
47
47
|
ja: 括弧の重なり {limit} 重まで
|
|
48
48
|
en: brackets nested up to {limit} deep
|
|
@@ -44,8 +44,8 @@ example:
|
|
|
44
44
|
会議(定例)は月曜です。報告(月次)は金曜です。資料(最新版)を配ります。
|
|
45
45
|
|
|
46
46
|
not_flagged:
|
|
47
|
-
ja: 日本語の字に接する括弧だけを数えます。英語の中の括弧(f(x)、API(s)
|
|
48
|
-
en: Only brackets touching Japanese text. Brackets in English text (f(x)), code,
|
|
47
|
+
ja: 日本語の字に接する括弧だけを数えます。英語の中の括弧(f(x)、API(s))、式の括弧(賃金 × (1 - 時間 ÷ 月平均))、コード、鉤括弧で引いたものの中、行の頭のリンクで引いた外のページの題名(- [題名 (版)](https://…))は数えません。
|
|
48
|
+
en: Only brackets touching Japanese text. Brackets in English text (f(x)), brackets in a formula (賃金 × (1 - 時間 ÷ 月平均)), code, 「」 quotations, and the title of an outside page quoted by a link at a line's head (- [Title (draft)](https://…)) are not counted.
|
|
49
49
|
level_meaning:
|
|
50
50
|
ja: 少ないほうの書き方が {limit} 箇所あれば指摘
|
|
51
51
|
en: reported once the less common way appears {limit} times
|
package/rules/broken-link.yaml
CHANGED
|
@@ -61,5 +61,5 @@ example:
|
|
|
61
61
|
Gather the tools. See [Setup](#setup) for more.
|
|
62
62
|
|
|
63
63
|
not_flagged:
|
|
64
|
-
ja: 見出しの名前は字と数字だけで比べ、大文字小文字や記号の違いは問いません。「[1][2]」のような文献の番号、「A[i][j]
|
|
65
|
-
en: Heading anchors are compared on letters and digits only, ignoring case and punctuation. Citation numbers ("[1][2]"), subscripts ("A[i][j]")
|
|
64
|
+
ja: 見出しの名前は字と数字だけで比べ、大文字小文字や記号の違いは問いません。「[1][2]」のような文献の番号、「A[i][j]」のような添字、使われていない定義、サイトが定義を足す名前を省いた画像の参照(「![完了][]」の印)も指しません。
|
|
65
|
+
en: Heading anchors are compared on letters and digits only, ignoring case and punctuation. Citation numbers ("[1][2]"), subscripts ("A[i][j]"), definitions no link uses and an image reference with its label left out ("![Complete][]", a status icon the site defines) are not reported.
|
package/rules/cliche.yaml
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
id: cliche
|
|
2
2
|
layer: L2
|
|
3
3
|
status: stable
|
|
4
|
-
how_to_find: phrase-
|
|
4
|
+
how_to_find: phrase-in-use
|
|
5
5
|
word_list: cliche
|
|
6
|
+
extra_word_lists: [mention-cue]
|
|
6
7
|
requires: [pos]
|
|
7
8
|
languages: [ja, en]
|
|
8
9
|
severity: info
|
|
@@ -47,8 +48,8 @@ example:
|
|
|
47
48
|
The new cache cuts load time from 2 seconds to 0.5.
|
|
48
49
|
|
|
49
50
|
not_flagged:
|
|
50
|
-
ja: 一覧にある言い回しだけを見ます。見出しの中は見ず、本文の文だけを見ます。ほかの規則が見る言い回し(closing-cliche の「いかがでしたか」、ai-tell の「深く掘り下げる」「game-changer」、empty-intensifier の「needless to say
|
|
51
|
-
en: Only the phrases on chaff's list are checked, in body sentences; headings are not read. Phrases another rule reads (いかがでしたか in closing-cliche, "game-changer" in ai-tell, "needless to say" in empty-intensifier) are not on it. In Japanese, 結論から言うと is left out because human articles use it as often, and 〜まとめ and 〜な件 because ordinary sentences share them (まとめました, 重要な件). Literature and speech transcripts are not checked.
|
|
51
|
+
ja: 一覧にある言い回しだけを見ます。見出しの中は見ず、本文の文だけを見ます。ほかの規則が見る言い回し(closing-cliche の「いかがでしたか」、ai-tell の「深く掘り下げる」「game-changer」、empty-intensifier の「needless to say」)は入れていません。「結論から言うと」は人の記事にも同じくらいあるので、「〜まとめ」「〜な件」は普通の文(まとめました、重要な件)と分けられないので見ません。文学と講演の書き起こしは対象にしません。言い回しを言葉として名指しているだけのもの(「徹底解説」という言い方、the phrase "low-hanging fruit")も指しません。
|
|
52
|
+
en: Only the phrases on chaff's list are checked, in body sentences; headings are not read. Phrases another rule reads (いかがでしたか in closing-cliche, "game-changer" in ai-tell, "needless to say" in empty-intensifier) are not on it. In Japanese, 結論から言うと is left out because human articles use it as often, and 〜まとめ and 〜な件 because ordinary sentences share them (まとめました, 重要な件). Literature and speech transcripts are not checked. A phrase that is only named as a term ("when saying raising the bar", the phrase "low-hanging fruit", 「徹底解説」という言い方) is not reported.
|
|
52
53
|
level_meaning:
|
|
53
54
|
ja: 当てはまる言い回しが {limit} 箇所あれば指摘
|
|
54
55
|
en: reported once there are {limit}
|
|
@@ -121,8 +121,8 @@ example:
|
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
not_flagged:
|
|
124
|
-
ja:
|
|
125
|
-
en: Indented code blocks
|
|
124
|
+
ja: 字下げだけのコードブロック、引用の中のブロック、書式の型だけを書いたブロック(<MAJOR>.<MINOR>.<PATCH>)は見ません。言語名の無いブロックが {limit} 個を超えるとき、または言語名のあるブロックより多いときは、使い分けとみなして指しません。
|
|
125
|
+
en: Indented code blocks, blocks inside a quotation, and blocks that hold only a format template (<MAJOR>.<MINOR>.<PATCH>) are not read. When more than {limit} blocks lack a language, or they are as many as those with one, it is taken as a choice and not reported.
|
|
126
126
|
level_meaning:
|
|
127
127
|
ja: 言語名の無いブロックが {limit} 個以下で、ある方より少ないとき指摘
|
|
128
128
|
en: reported when {limit} or fewer blocks lack a language and they are fewer than those with one
|
|
@@ -42,8 +42,8 @@ example:
|
|
|
42
42
|
after: We rewrote the parser. The new engine is twice as fast as version 2.
|
|
43
43
|
|
|
44
44
|
not_flagged:
|
|
45
|
-
ja:
|
|
46
|
-
en: 'A comparison whose sentence or the one before names a baseline ("than", "previous", "before", "compared"), a comparative before a noun ("better results", read only in Japanese), a comparative that does not close its clause ("runs faster on large files"),
|
|
45
|
+
ja: 同じ文か直前の文に比べる相手(従来、以前、前回、昨年、「〜より」「〜に比べて」「〜一方」)がある比較、「より多くの」「より詳しく」のような決まった言い方、程度を言う語が続かない「さらに」(さらに、〜します)、条件の下の比較(入れるとより良くなる)、今より良くする目当て(より良い社会、より良いものにする、より簡単にする)は指しません。
|
|
46
|
+
en: 'A comparison whose sentence or the one before names a baseline ("than", "previous", "before", "compared", "whereas"), one that goes past what was just named ("even better", "still faster"), a comparative before a noun ("better results", read only in Japanese), a comparative that does not close its clause ("runs faster on large files"), one under a condition or a hypothesis ("if it looks better", "would be easier"), and an aim to make something better than it is now (より良い社会, より良いものにする, より簡単にする in Japanese) are not reported.'
|
|
47
47
|
|
|
48
48
|
rewrite:
|
|
49
49
|
depth: light
|
|
@@ -67,8 +67,8 @@ example:
|
|
|
67
67
|
Replies to help desk tickets now take 1 day on average, down from 3. Customer satisfaction rose from 72% to 85%. Overtime fell by 10 hours a month.
|
|
68
68
|
|
|
69
69
|
not_flagged:
|
|
70
|
-
ja: 3
|
|
71
|
-
en: Sections shorter than three sentences,
|
|
70
|
+
ja: 3 文より短い節、索引のように項目を並べた節、文の半分以上が問いか指示(〜してください)の節は見ません。
|
|
71
|
+
en: Sections shorter than three sentences, index-like sections of entries, and sections where at least half the sentences are questions or instructions are not checked.
|
|
72
72
|
level_meaning:
|
|
73
73
|
ja: 具体物のない節が {limit} 個あれば指摘
|
|
74
74
|
en: reported once {limit} sections have nothing concrete
|
|
@@ -15,14 +15,14 @@ why:
|
|
|
15
15
|
en: Whether to use contractions is a choice of register, and neither is wrong. Mixed within one document, the reader re-measures the distance sentence by sentence.
|
|
16
16
|
|
|
17
17
|
message:
|
|
18
|
-
ja: 「{matched}
|
|
19
|
-
en: '"{matched}" is written
|
|
18
|
+
ja: 「{matched}」は、この文書のほかの所では「{majority}」と書かれています
|
|
19
|
+
en: '"{matched}" is written "{majority}" elsewhere in the document'
|
|
20
20
|
|
|
21
21
|
how_to_fix:
|
|
22
|
-
ja:
|
|
23
|
-
en:
|
|
22
|
+
ja: 同じ語は、多いほうの書きかたに揃えてください。
|
|
23
|
+
en: Write the same word the way the document mostly writes it.
|
|
24
24
|
|
|
25
|
-
#
|
|
25
|
+
# 1 つの対で、少ないほうの書きかたが何回までなら「混在」と見るか。これを超えたら混在ではなく、書き分け。
|
|
26
26
|
levels: { strict: 4, normal: 2, relaxed: 1 }
|
|
27
27
|
|
|
28
28
|
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
@@ -32,18 +32,18 @@ off_for:
|
|
|
32
32
|
|
|
33
33
|
group: consistency
|
|
34
34
|
summary:
|
|
35
|
-
ja:
|
|
36
|
-
en:
|
|
35
|
+
ja: 英語で、同じ語を「don't」と「do not」のように両方の形で書いている所
|
|
36
|
+
en: The same word written both contracted ("don't") and in full ("do not")
|
|
37
37
|
example:
|
|
38
38
|
en:
|
|
39
39
|
before: |
|
|
40
|
-
We don't store your password. We
|
|
40
|
+
We don't store your password. We don't read your messages. We don't share your data. We do not sell your address.
|
|
41
41
|
after: |
|
|
42
|
-
We don't store your password. We
|
|
42
|
+
We don't store your password. We don't read your messages. We don't share your data. We don't sell your address.
|
|
43
43
|
|
|
44
44
|
not_flagged:
|
|
45
|
-
ja:
|
|
46
|
-
en: Whether to use contractions is not decided
|
|
45
|
+
ja: 短縮形を使うかどうかは決めません。比べるのは同じ語の 2 つの形(「you're」と「you are」)だけで、別の語どうしは比べません。「you're」と書き、否定は「do not」と書く文書は揃っています。同じ語の 2 つの形が同じ回数なら、少ないほうが無いので指しません。
|
|
46
|
+
en: Whether to use contractions is not decided. Only the two forms of the same word are compared ("you're" with "you are"), never different words, so a document that writes "you're" but keeps "do not" in full is consistent. When both forms of a word appear as often, there is no minority and nothing is pointed at.
|
|
47
47
|
level_meaning:
|
|
48
|
-
ja:
|
|
49
|
-
en: reported when the minority form appears {limit} times or fewer
|
|
48
|
+
ja: 同じ語の少ないほうの書き方が {limit} 箇所以下のとき指摘
|
|
49
|
+
en: reported when the minority form of a word appears {limit} times or fewer
|
|
@@ -59,5 +59,5 @@ example:
|
|
|
59
59
|
Figure 2: Costs by month
|
|
60
60
|
|
|
61
61
|
not_flagged:
|
|
62
|
-
ja: 図や表を行の頭に一つも書いていない文書、長い語の一部(地図3、一覧表2)、別の法令の別表(法別表第二)、図の数(図3
|
|
63
|
-
en: 'A document that labels no figure or table at the start of a line, a figure of another document ("Figure 5 of the 2024 report"), and code are not checked.'
|
|
62
|
+
ja: 図や表を行の頭に一つも書いていない文書、長い語の一部(地図3、一覧表2)、別の法令の別表(法別表第二)、図の数(図3枚)、コードの中は見ません。前後を空行に挟まれた、題だけの短い行(Exhibit A to Merger Agreement)も見出しとして、そこにあるとみなします。
|
|
63
|
+
en: 'A document that labels no figure or table at the start of a line, a figure of another document ("Figure 5 of the 2024 report"), and code are not checked. A short title on a line of its own between blank lines ("Exhibit A to Merger Agreement") is read as a heading, so that exhibit is there.'
|
|
@@ -78,5 +78,5 @@ example:
|
|
|
78
78
|
Holidays follow the rota that the company publishes each month.
|
|
79
79
|
|
|
80
80
|
not_flagged:
|
|
81
|
-
ja: 「法第2
|
|
82
|
-
en: References into another document ("Article 2 of the Act") are not looked up. A document that numbers none of its provisions as articles is not checked for article references.
|
|
81
|
+
ja: 「法第2条」「就業規則 第25条」のように、ほかの文書の条を指す参照は探しません。ほかの文書の名前を見出しにして引き写した条の中の参照も、その文書の条です。条の下に「1. 」「2.」の箇条書きで書いた項は、項として引きます。条で番号を振っていない文書では、条で数える参照を見ません。平文の契約が「9. Indemnification.」と本文の形で書いた見出しや、本文の中に書いた「(i)」も、参照の行き先として引きます。「section 21 notice」のように番号を手続きの名前にした書き方は、ほかの法律の番号として探しません。
|
|
82
|
+
en: References into another document ("Article 2 of the Act") are not looked up, nor are references inside a section whose heading is the name of a document cited elsewhere in the text, which quotes that document. A paragraph written as a list ("1. ", "2. ") under an article counts as that article's paragraph. A document that numbers none of its provisions as articles is not checked for article references. A plain-text contract's headings written as text ("9. Indemnification.", "Section 2.3 Appraisal Shares.") and the labels written inside a section's text ("(i)") count as addresses. A section number used as a name ("a section 21 notice") points into another Act and is not looked up.
|