chaffjs 0.21.0 → 0.23.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.md +9 -2
- package/dist/api.d.ts +14 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cli-args.d.ts +2 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +2 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-text.d.ts.map +1 -1
- package/dist/cli-text.js +6 -0
- package/dist/cli-text.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -30
- package/dist/cli.js.map +1 -1
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/fix-plan.d.ts.map +1 -1
- package/dist/commands/fix-plan.js +5 -0
- package/dist/commands/fix-plan.js.map +1 -1
- package/dist/commands/init-command.d.ts +4 -0
- package/dist/commands/init-command.d.ts.map +1 -0
- package/dist/commands/init-command.js +15 -0
- package/dist/commands/init-command.js.map +1 -0
- package/dist/commands/plugin-init.d.ts +20 -0
- package/dist/commands/plugin-init.d.ts.map +1 -0
- package/dist/commands/plugin-init.js +129 -0
- package/dist/commands/plugin-init.js.map +1 -0
- package/dist/commands/plugin-test.d.ts +11 -0
- package/dist/commands/plugin-test.d.ts.map +1 -0
- package/dist/commands/plugin-test.js +81 -0
- package/dist/commands/plugin-test.js.map +1 -0
- package/dist/commands/rules.d.ts +9 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +26 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/config/load.d.ts +6 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +1 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/style.js +1 -1
- package/dist/config/style.js.map +1 -1
- package/dist/config/warnings.d.ts +1 -1
- package/dist/config/warnings.d.ts.map +1 -1
- package/dist/config/warnings.js +3 -1
- package/dist/config/warnings.js.map +1 -1
- package/dist/custom/problems.d.ts.map +1 -1
- package/dist/custom/problems.js +1 -2
- package/dist/custom/problems.js.map +1 -1
- package/dist/detectors/amount-for-count.d.ts +21 -0
- package/dist/detectors/amount-for-count.d.ts.map +1 -0
- package/dist/detectors/amount-for-count.js +55 -0
- package/dist/detectors/amount-for-count.js.map +1 -0
- package/dist/detectors/currency-notation.d.ts +29 -0
- package/dist/detectors/currency-notation.d.ts.map +1 -0
- package/dist/detectors/currency-notation.js +58 -0
- package/dist/detectors/currency-notation.js.map +1 -0
- package/dist/detectors/dangling-opener.d.ts +14 -0
- package/dist/detectors/dangling-opener.d.ts.map +1 -0
- package/dist/detectors/dangling-opener.js +55 -0
- package/dist/detectors/dangling-opener.js.map +1 -0
- package/dist/detectors/ellipsis.d.ts +10 -0
- package/dist/detectors/ellipsis.d.ts.map +1 -0
- package/dist/detectors/ellipsis.js +56 -0
- package/dist/detectors/ellipsis.js.map +1 -0
- package/dist/detectors/footnote-mismatch.d.ts +11 -0
- package/dist/detectors/footnote-mismatch.d.ts.map +1 -0
- package/dist/detectors/footnote-mismatch.js +55 -0
- package/dist/detectors/footnote-mismatch.js.map +1 -0
- package/dist/detectors/form-minority.d.ts +13 -0
- package/dist/detectors/form-minority.d.ts.map +1 -0
- package/dist/detectors/form-minority.js +19 -0
- package/dist/detectors/form-minority.js.map +1 -0
- package/dist/detectors/heading-end-mark.d.ts +10 -0
- package/dist/detectors/heading-end-mark.d.ts.map +1 -0
- package/dist/detectors/heading-end-mark.js +59 -0
- package/dist/detectors/heading-end-mark.js.map +1 -0
- package/dist/detectors/list-marker.d.ts +7 -0
- package/dist/detectors/list-marker.d.ts.map +1 -0
- package/dist/detectors/list-marker.js +50 -0
- package/dist/detectors/list-marker.js.map +1 -0
- package/dist/detectors/markdown-slip.d.ts +19 -0
- package/dist/detectors/markdown-slip.d.ts.map +1 -0
- package/dist/detectors/markdown-slip.js +122 -0
- package/dist/detectors/markdown-slip.js.map +1 -0
- package/dist/detectors/numeral-opener.d.ts +10 -0
- package/dist/detectors/numeral-opener.d.ts.map +1 -0
- package/dist/detectors/numeral-opener.js +65 -0
- package/dist/detectors/numeral-opener.js.map +1 -0
- package/dist/detectors/ordinal-suffix.d.ts +12 -0
- package/dist/detectors/ordinal-suffix.d.ts.map +1 -0
- package/dist/detectors/ordinal-suffix.js +33 -0
- package/dist/detectors/ordinal-suffix.js.map +1 -0
- package/dist/detectors/range-notation.d.ts +15 -0
- package/dist/detectors/range-notation.d.ts.map +1 -0
- package/dist/detectors/range-notation.js +58 -0
- package/dist/detectors/range-notation.js.map +1 -0
- package/dist/detectors/registry/amount-for-count.d.ts +3 -0
- package/dist/detectors/registry/amount-for-count.d.ts.map +1 -0
- package/dist/detectors/registry/amount-for-count.js +3 -0
- package/dist/detectors/registry/amount-for-count.js.map +1 -0
- package/dist/detectors/registry/currency-notation.d.ts +3 -0
- package/dist/detectors/registry/currency-notation.d.ts.map +1 -0
- package/dist/detectors/registry/currency-notation.js +3 -0
- package/dist/detectors/registry/currency-notation.js.map +1 -0
- package/dist/detectors/registry/dangling-opener.d.ts +3 -0
- package/dist/detectors/registry/dangling-opener.d.ts.map +1 -0
- package/dist/detectors/registry/dangling-opener.js +3 -0
- package/dist/detectors/registry/dangling-opener.js.map +1 -0
- package/dist/detectors/registry/ellipsis-consistency.d.ts +3 -0
- package/dist/detectors/registry/ellipsis-consistency.d.ts.map +1 -0
- package/dist/detectors/registry/ellipsis-consistency.js +3 -0
- package/dist/detectors/registry/ellipsis-consistency.js.map +1 -0
- package/dist/detectors/registry/footnote-mismatch.d.ts +3 -0
- package/dist/detectors/registry/footnote-mismatch.d.ts.map +1 -0
- package/dist/detectors/registry/footnote-mismatch.js +3 -0
- package/dist/detectors/registry/footnote-mismatch.js.map +1 -0
- package/dist/detectors/registry/heading-end-punctuation.d.ts +3 -0
- package/dist/detectors/registry/heading-end-punctuation.d.ts.map +1 -0
- package/dist/detectors/registry/heading-end-punctuation.js +3 -0
- package/dist/detectors/registry/heading-end-punctuation.js.map +1 -0
- package/dist/detectors/registry/list-marker.d.ts +3 -0
- package/dist/detectors/registry/list-marker.d.ts.map +1 -0
- package/dist/detectors/registry/list-marker.js +3 -0
- package/dist/detectors/registry/list-marker.js.map +1 -0
- package/dist/detectors/registry/numeral-opener.d.ts +3 -0
- package/dist/detectors/registry/numeral-opener.d.ts.map +1 -0
- package/dist/detectors/registry/numeral-opener.js +3 -0
- package/dist/detectors/registry/numeral-opener.js.map +1 -0
- package/dist/detectors/registry/ordinal-suffix.d.ts +3 -0
- package/dist/detectors/registry/ordinal-suffix.d.ts.map +1 -0
- package/dist/detectors/registry/ordinal-suffix.js +3 -0
- package/dist/detectors/registry/ordinal-suffix.js.map +1 -0
- package/dist/detectors/registry/range-notation.d.ts +3 -0
- package/dist/detectors/registry/range-notation.d.ts.map +1 -0
- package/dist/detectors/registry/range-notation.js +3 -0
- package/dist/detectors/registry/range-notation.js.map +1 -0
- package/dist/detectors/registry/relative-pronoun-mix.d.ts +3 -0
- package/dist/detectors/registry/relative-pronoun-mix.d.ts.map +1 -0
- package/dist/detectors/registry/relative-pronoun-mix.js +3 -0
- package/dist/detectors/registry/relative-pronoun-mix.js.map +1 -0
- package/dist/detectors/registry/share-over-hundred.d.ts +3 -0
- package/dist/detectors/registry/share-over-hundred.d.ts.map +1 -0
- package/dist/detectors/registry/share-over-hundred.js +3 -0
- package/dist/detectors/registry/share-over-hundred.js.map +1 -0
- package/dist/detectors/registry/step-reference.d.ts +3 -0
- package/dist/detectors/registry/step-reference.d.ts.map +1 -0
- package/dist/detectors/registry/step-reference.js +3 -0
- package/dist/detectors/registry/step-reference.js.map +1 -0
- package/dist/detectors/registry/table-row-overflow.d.ts +3 -0
- package/dist/detectors/registry/table-row-overflow.d.ts.map +1 -0
- package/dist/detectors/registry/table-row-overflow.js +3 -0
- package/dist/detectors/registry/table-row-overflow.js.map +1 -0
- package/dist/detectors/registry/toc-heading.d.ts +3 -0
- package/dist/detectors/registry/toc-heading.d.ts.map +1 -0
- package/dist/detectors/registry/toc-heading.js +3 -0
- package/dist/detectors/registry/toc-heading.js.map +1 -0
- package/dist/detectors/registry/unclosed-code-fence.d.ts +3 -0
- package/dist/detectors/registry/unclosed-code-fence.d.ts.map +1 -0
- package/dist/detectors/registry/unclosed-code-fence.js +3 -0
- package/dist/detectors/registry/unclosed-code-fence.js.map +1 -0
- package/dist/detectors/registry/unrendered-emphasis.d.ts +3 -0
- package/dist/detectors/registry/unrendered-emphasis.d.ts.map +1 -0
- package/dist/detectors/registry/unrendered-emphasis.js +3 -0
- package/dist/detectors/registry/unrendered-emphasis.js.map +1 -0
- package/dist/detectors/relative-pronoun-mix.d.ts +19 -0
- package/dist/detectors/relative-pronoun-mix.d.ts.map +1 -0
- package/dist/detectors/relative-pronoun-mix.js +60 -0
- package/dist/detectors/relative-pronoun-mix.js.map +1 -0
- package/dist/detectors/share-over-hundred.d.ts +20 -0
- package/dist/detectors/share-over-hundred.d.ts.map +1 -0
- package/dist/detectors/share-over-hundred.js +55 -0
- package/dist/detectors/share-over-hundred.js.map +1 -0
- package/dist/detectors/step-reference.d.ts +20 -0
- package/dist/detectors/step-reference.d.ts.map +1 -0
- package/dist/detectors/step-reference.js +57 -0
- package/dist/detectors/step-reference.js.map +1 -0
- package/dist/detectors/toc-heading.d.ts +10 -0
- package/dist/detectors/toc-heading.d.ts.map +1 -0
- package/dist/detectors/toc-heading.js +99 -0
- package/dist/detectors/toc-heading.js.map +1 -0
- package/dist/extension/load.d.ts +3 -0
- package/dist/extension/load.d.ts.map +1 -1
- package/dist/extension/load.js +1 -0
- package/dist/extension/load.js.map +1 -1
- package/dist/extension/pack-read.d.ts.map +1 -1
- package/dist/extension/pack-read.js +1 -0
- package/dist/extension/pack-read.js.map +1 -1
- package/dist/extension/plugin-load.js.map +1 -1
- package/dist/extension/plugin-parse.d.ts +7 -0
- package/dist/extension/plugin-parse.d.ts.map +1 -1
- package/dist/extension/plugin-parse.js +18 -2
- package/dist/extension/plugin-parse.js.map +1 -1
- package/dist/extension/problem-text.d.ts.map +1 -1
- package/dist/extension/problem-text.js +5 -0
- package/dist/extension/problem-text.js.map +1 -1
- package/dist/fix-plan/plan.d.ts +4 -0
- package/dist/fix-plan/plan.d.ts.map +1 -1
- package/dist/fix-plan/plan.js +1 -0
- package/dist/fix-plan/plan.js.map +1 -1
- package/dist/fix-plan/render.d.ts.map +1 -1
- package/dist/fix-plan/render.js +9 -0
- package/dist/fix-plan/render.js.map +1 -1
- package/dist/fix-plan/text.d.ts +4 -0
- package/dist/fix-plan/text.d.ts.map +1 -1
- package/dist/fix-plan/text.js +8 -2
- package/dist/fix-plan/text.js.map +1 -1
- package/dist/genre-guide/key-rules.d.ts +10 -0
- package/dist/genre-guide/key-rules.d.ts.map +1 -0
- package/dist/genre-guide/key-rules.js +23 -0
- package/dist/genre-guide/key-rules.js.map +1 -0
- package/dist/genre-guide/layer.d.ts +44 -0
- package/dist/genre-guide/layer.d.ts.map +1 -0
- package/dist/genre-guide/layer.js +43 -0
- package/dist/genre-guide/layer.js.map +1 -0
- package/dist/genre-guide/lines.d.ts +15 -0
- package/dist/genre-guide/lines.d.ts.map +1 -0
- package/dist/genre-guide/lines.js +39 -0
- package/dist/genre-guide/lines.js.map +1 -0
- package/dist/genre-guide/of-config.d.ts +13 -0
- package/dist/genre-guide/of-config.d.ts.map +1 -0
- package/dist/genre-guide/of-config.js +18 -0
- package/dist/genre-guide/of-config.js.map +1 -0
- package/dist/genre-guide/problem-text.d.ts +5 -0
- package/dist/genre-guide/problem-text.d.ts.map +1 -0
- package/dist/genre-guide/problem-text.js +29 -0
- package/dist/genre-guide/problem-text.js.map +1 -0
- package/dist/genre-guide/render.d.ts +5 -0
- package/dist/genre-guide/render.d.ts.map +1 -0
- package/dist/genre-guide/render.js +38 -0
- package/dist/genre-guide/render.js.map +1 -0
- package/dist/genre-guide/report.d.ts +32 -0
- package/dist/genre-guide/report.d.ts.map +1 -0
- package/dist/genre-guide/report.js +42 -0
- package/dist/genre-guide/report.js.map +1 -0
- package/dist/genre-guide/resolve.d.ts +16 -0
- package/dist/genre-guide/resolve.d.ts.map +1 -0
- package/dist/genre-guide/resolve.js +31 -0
- package/dist/genre-guide/resolve.js.map +1 -0
- package/dist/genre-parse.d.ts +5 -1
- package/dist/genre-parse.d.ts.map +1 -1
- package/dist/genre-parse.js +8 -1
- package/dist/genre-parse.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +14 -0
- package/dist/init.js.map +1 -1
- package/dist/list-marks.d.ts +21 -0
- package/dist/list-marks.d.ts.map +1 -0
- package/dist/list-marks.js +82 -0
- package/dist/list-marks.js.map +1 -0
- package/dist/render/rules-json.d.ts +2 -1
- package/dist/render/rules-json.d.ts.map +1 -1
- package/dist/render/rules-json.js +3 -1
- package/dist/render/rules-json.js.map +1 -1
- package/dist/render/sarif.d.ts +3 -1
- package/dist/render/sarif.d.ts.map +1 -1
- package/dist/render/sarif.js +3 -1
- package/dist/render/sarif.js.map +1 -1
- package/dist/rule-fields.d.ts +5 -0
- package/dist/rule-fields.d.ts.map +1 -1
- package/dist/rule-fields.js +21 -0
- package/dist/rule-fields.js.map +1 -1
- package/dist/style-parse.d.ts +3 -0
- package/dist/style-parse.d.ts.map +1 -1
- package/dist/style-parse.js +18 -2
- package/dist/style-parse.js.map +1 -1
- package/genres.yaml +329 -0
- package/package.json +3 -3
- package/rules/cliche.yaml +67 -0
- package/rules/currency-notation-consistency.yaml +77 -0
- package/rules/dangling-participle.yaml +58 -0
- package/rules/ellipsis-consistency.yaml +73 -0
- package/rules/figurative-density.yaml +84 -0
- package/rules/footnote-mismatch.yaml +91 -0
- package/rules/heading-end-punctuation-mix.yaml +158 -0
- package/rules/less-for-fewer.yaml +59 -0
- package/rules/list-marker-mix.yaml +111 -0
- package/rules/nonstandard-word.yaml +80 -0
- package/rules/numeral-sentence-start.yaml +56 -0
- package/rules/ordinal-suffix-mismatch.yaml +65 -0
- package/rules/range-notation-consistency.yaml +73 -0
- package/rules/share-over-hundred.yaml +65 -0
- package/rules/step-reference-missing.yaml +85 -0
- package/rules/table-row-overflow.yaml +90 -0
- package/rules/toc-heading-mismatch.yaml +136 -0
- package/rules/unclosed-code-fence.yaml +107 -0
- package/rules/uncomparable-graded.yaml +65 -0
- package/rules/unrendered-emphasis.yaml +73 -0
- package/rules/which-that-consistency.yaml +64 -0
- package/skills/chaff/SKILL.md +13 -7
- package/src/api.ts +13 -0
- package/src/cli-args.ts +3 -0
- package/src/cli-text.ts +6 -0
- package/src/cli.ts +21 -29
- package/src/commands/feedback.ts +3 -0
- package/src/commands/fix-plan.ts +8 -0
- package/src/commands/init-command.ts +13 -0
- package/src/commands/plugin-init.ts +150 -0
- package/src/commands/plugin-test.ts +111 -0
- package/src/commands/rules.ts +34 -0
- package/src/config/load.ts +7 -1
- package/src/config/style.ts +1 -1
- package/src/config/warnings.ts +3 -1
- package/src/custom/problems.ts +1 -3
- package/src/detectors/amount-for-count.ts +90 -0
- package/src/detectors/currency-notation.ts +90 -0
- package/src/detectors/dangling-opener.ts +74 -0
- package/src/detectors/ellipsis.ts +74 -0
- package/src/detectors/footnote-mismatch.ts +72 -0
- package/src/detectors/form-minority.ts +21 -0
- package/src/detectors/heading-end-mark.ts +82 -0
- package/src/detectors/list-marker.ts +60 -0
- package/src/detectors/markdown-slip.ts +140 -0
- package/src/detectors/numeral-opener.ts +72 -0
- package/src/detectors/ordinal-suffix.ts +40 -0
- package/src/detectors/range-notation.ts +76 -0
- package/src/detectors/registry/amount-for-count.ts +4 -0
- package/src/detectors/registry/currency-notation.ts +4 -0
- package/src/detectors/registry/dangling-opener.ts +4 -0
- package/src/detectors/registry/ellipsis-consistency.ts +4 -0
- package/src/detectors/registry/footnote-mismatch.ts +4 -0
- package/src/detectors/registry/heading-end-punctuation.ts +4 -0
- package/src/detectors/registry/list-marker.ts +4 -0
- package/src/detectors/registry/numeral-opener.ts +4 -0
- package/src/detectors/registry/ordinal-suffix.ts +4 -0
- package/src/detectors/registry/range-notation.ts +4 -0
- package/src/detectors/registry/relative-pronoun-mix.ts +4 -0
- package/src/detectors/registry/share-over-hundred.ts +4 -0
- package/src/detectors/registry/step-reference.ts +4 -0
- package/src/detectors/registry/table-row-overflow.ts +4 -0
- package/src/detectors/registry/toc-heading.ts +4 -0
- package/src/detectors/registry/unclosed-code-fence.ts +4 -0
- package/src/detectors/registry/unrendered-emphasis.ts +4 -0
- package/src/detectors/relative-pronoun-mix.ts +79 -0
- package/src/detectors/share-over-hundred.ts +75 -0
- package/src/detectors/step-reference.ts +83 -0
- package/src/detectors/toc-heading.ts +125 -0
- package/src/extension/load.ts +4 -0
- package/src/extension/pack-read.ts +1 -0
- package/src/extension/plugin-load.ts +1 -1
- package/src/extension/plugin-parse.ts +27 -4
- package/src/extension/problem-text.ts +7 -1
- package/src/fix-plan/plan.ts +5 -0
- package/src/fix-plan/render.ts +9 -0
- package/src/fix-plan/text.ts +12 -2
- package/src/genre-guide/key-rules.ts +37 -0
- package/src/genre-guide/layer.ts +77 -0
- package/src/genre-guide/lines.ts +41 -0
- package/src/genre-guide/of-config.ts +26 -0
- package/src/genre-guide/problem-text.ts +34 -0
- package/src/genre-guide/render.ts +50 -0
- package/src/genre-guide/report.ts +63 -0
- package/src/genre-guide/resolve.ts +36 -0
- package/src/genre-parse.ts +13 -3
- package/src/init.ts +14 -0
- package/src/list-marks.ts +106 -0
- package/src/render/rules-json.ts +4 -0
- package/src/render/sarif.ts +4 -1
- package/src/rule-fields.ts +28 -0
- package/src/style-parse.ts +19 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
id: currency-notation-consistency
|
|
2
|
+
layer: L2
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: currency-notation
|
|
5
|
+
severity: info
|
|
6
|
+
|
|
7
|
+
name:
|
|
8
|
+
ja: 通貨の書き方が混ざっている
|
|
9
|
+
en: A currency written two ways
|
|
10
|
+
|
|
11
|
+
why:
|
|
12
|
+
ja: 同じ通貨の金額を「1,000円」と「¥1,000」、「$20」と「USD 20」のように二通りに書くと、読み手は別の通貨か、別の扱いの金額かと迷います。見積もりや資料を寄せ集めたときに起きます。どの書き方が正しいかは決めず、通貨ごとに文書の中で少ないほうを指します。
|
|
13
|
+
en: When one currency is written two ways in one document ("$20" and "USD 20", "1,000円" and "¥1,000"), the reader wonders whether a different currency or a different kind of amount is meant. It happens when quotes and notes are pasted together. chaff does not decide which way is right; for each currency it points at the way the document uses less.
|
|
14
|
+
|
|
15
|
+
message:
|
|
16
|
+
ja: 「{written}」と書いています(この文書はこの通貨をふつう「{usual}」のように書きます。{of} 箇所のうち {count} 箇所が違う)
|
|
17
|
+
en: '"{written}" here, where the document usually writes this currency like "{usual}" ({count} of {of})'
|
|
18
|
+
|
|
19
|
+
how_to_fix:
|
|
20
|
+
ja: 文書の多いほうの書き方に合わせてください。チームで決めているなら、STYLE.md に書いておくと迷いません。
|
|
21
|
+
en: Match the way the rest of the document writes the currency. If the team has decided, write it in the style guide.
|
|
22
|
+
|
|
23
|
+
# 少ないほうが、その通貨の金額の何パーセントまでなら「混ざっている」と見るか。これを超えたら、文書が使い分けている。
|
|
24
|
+
levels: { strict: 49, normal: 34, relaxed: 20 }
|
|
25
|
+
|
|
26
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
27
|
+
|
|
28
|
+
group: consistency
|
|
29
|
+
summary:
|
|
30
|
+
ja: 「1,000円」と「¥1,000」、「$20」と「USD 20」のように、一つの文書で同じ通貨の金額を二通りに書いている所
|
|
31
|
+
en: One currency written two ways in one document, such as "$20" and "USD 20", or "1,000円" and "¥1,000"
|
|
32
|
+
example:
|
|
33
|
+
ja:
|
|
34
|
+
before: |
|
|
35
|
+
基本料金は 3,000円、追加料金は 500円、送料は 800円 です。割引は ¥200 です。
|
|
36
|
+
after: |
|
|
37
|
+
基本料金は 3,000円、追加料金は 500円、送料は 800円 です。割引は 200円 です。
|
|
38
|
+
en:
|
|
39
|
+
before: |
|
|
40
|
+
The base fee is $300, the add-on is $50 and shipping is $20. The discount is USD 10.
|
|
41
|
+
after: |
|
|
42
|
+
The base fee is $300, the add-on is $50 and shipping is $20. The discount is $10.
|
|
43
|
+
|
|
44
|
+
not_flagged:
|
|
45
|
+
ja: 通貨ごとに比べるので、円とドルが並ぶのは混ざりではありません。少ないほうがその通貨の金額の三分の一を超える文書は、使い分けている(表は USD、本文は $)と読んで言いません。二つの書き方が同じ数のときも言いません。コードの中は読みません。
|
|
46
|
+
en: Each currency is compared with itself, so dollars beside yen is not a mix. When the less common way is over a third of that currency's amounts, the document is read as using both on purpose (USD in tables, $ in prose) and nothing is reported; nor when the two ways are equally common. Code is not read.
|
|
47
|
+
level_meaning:
|
|
48
|
+
ja: 少ないほうの書き方が、その通貨の金額の {limit}% 以下のとき指摘
|
|
49
|
+
en: reported when the less common way is {limit}% of that currency's amounts or less
|
|
50
|
+
|
|
51
|
+
rewrite:
|
|
52
|
+
ja:
|
|
53
|
+
direction: その通貨の金額を、文書で多いほうの書き方にそろえてください。数と桁はそのまま残します。
|
|
54
|
+
pairs:
|
|
55
|
+
- before: 送料は 800円 です。割引は ¥200 です。
|
|
56
|
+
after: 送料は 800円 です。割引は 200円 です。
|
|
57
|
+
- before: 月額 $20、年額 USD 200 です。
|
|
58
|
+
after: 月額 $20、年額 $200 です。
|
|
59
|
+
keep:
|
|
60
|
+
- 金額の数と桁
|
|
61
|
+
- どの通貨か
|
|
62
|
+
avoid:
|
|
63
|
+
- 別の通貨に換算してしまう
|
|
64
|
+
- 表の通貨の書き方まで本文に合わせて崩す
|
|
65
|
+
en:
|
|
66
|
+
direction: Write the currency's amounts the way the document mostly does. Keep the numbers as they are.
|
|
67
|
+
pairs:
|
|
68
|
+
- before: Shipping is $20. The discount is USD 10.
|
|
69
|
+
after: Shipping is $20. The discount is $10.
|
|
70
|
+
- before: The fee is 500 yen, or ¥450 if paid early.
|
|
71
|
+
after: The fee is 500 yen, or 450 yen if paid early.
|
|
72
|
+
keep:
|
|
73
|
+
- the numbers and their magnitude
|
|
74
|
+
- which currency each amount is in
|
|
75
|
+
avoid:
|
|
76
|
+
- converting an amount to another currency
|
|
77
|
+
- changing the way a table writes it to match the prose
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
id: dangling-participle
|
|
2
|
+
layer: L3
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: dangling-opener
|
|
5
|
+
requires: [pos]
|
|
6
|
+
languages: [en]
|
|
7
|
+
severity: info
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 主語の無い分詞の句
|
|
11
|
+
en: Dangling participle
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: 英語で分詞の句から始めた文(Having reviewed the code, …)は、句の動作をしたのが文の主語だと読まれます。主語が形だけの it や there だと(Having reviewed the code, it is ready.)、コードを見たのが誰なのか文に書かれていません。読み手は一瞬つまずき、意味を補って読むことになります。-ing の分詞の句の直後の主語が it か there で、be が続く形だけを指します。
|
|
15
|
+
en: 'A sentence that opens with a participle phrase ("Having reviewed the code, …") is read as if the subject did that action. When the subject is an empty "it" or "there" ("Having reviewed the code, it is ready."), the sentence never says who reviewed the code, and the reader has to supply it. Only an opening "-ing" phrase followed by "it" or "there" and a form of "be" is reported.'
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 「{opener}」の動作をしたのが誰か、文に書かれていません(主語が「{subject}」)
|
|
19
|
+
en: '"{opener}" has no one to attach to; the subject is an empty "{subject}"'
|
|
20
|
+
|
|
21
|
+
how_to_fix:
|
|
22
|
+
ja: 動作をした人を主語にするか(Having reviewed the code, we think it is ready.)、句を節にしてください(After we reviewed the code, it was ready.)。
|
|
23
|
+
en: Make whoever did the action the subject ("Having reviewed the code, we consider it ready."), or turn the phrase into a clause ("After we reviewed the code, it was ready.").
|
|
24
|
+
|
|
25
|
+
levels: { strict: warning, normal: info, relaxed: info }
|
|
26
|
+
|
|
27
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
28
|
+
off_for:
|
|
29
|
+
literature: "A narrator and a character speak as they speak, and loose openings are part of a voice."
|
|
30
|
+
speech: "A transcript keeps the speaker's words."
|
|
31
|
+
|
|
32
|
+
group: wording
|
|
33
|
+
summary:
|
|
34
|
+
ja: 英語で、「Having reviewed the code, it is ready.」のように、分詞の句の後ろの主語が形だけの it や there の文
|
|
35
|
+
en: 'A participle phrase followed by an empty "it" or "there", as in "Having reviewed the code, it is ready."'
|
|
36
|
+
|
|
37
|
+
example:
|
|
38
|
+
en:
|
|
39
|
+
before: Having reviewed the logs, it is clear that the job failed twice.
|
|
40
|
+
after: Having reviewed the logs, we found that the job failed twice.
|
|
41
|
+
|
|
42
|
+
not_flagged:
|
|
43
|
+
ja: 主語が人や物の名詞の文(Having reviewed the code, the team approved it.)、過去分詞で始めた句(Configured with SSO, it is ready.。it そのものを言うことが多い)、決まった言い方として読む句(Given、Based on、Generally speaking、Having said that)、挿入句の it is(Testing it, it is worth noting, requires …)、分詞の句が長く読点の位置が当てにならない文は指しません。英語の文だけを読みます。
|
|
44
|
+
en: 'A sentence whose subject is a person or a thing ("Having reviewed the code, the team approved it."), an opening past participle ("Configured with SSO, it is ready.", which usually describes "it" itself), openings read as fixed phrases ("Given", "Based on", "Generally speaking", "Having said that"), a parenthetical "it is" ("Testing it, it is worth noting, requires …"), and long openings where the comma cannot be trusted are not reported. Only English sentences are read.'
|
|
45
|
+
|
|
46
|
+
rewrite:
|
|
47
|
+
depth: light
|
|
48
|
+
en:
|
|
49
|
+
direction: Give the participle phrase a subject that did its action, or turn the phrase into a clause with its own subject. Keep what the sentence says.
|
|
50
|
+
pairs:
|
|
51
|
+
- before: Having reviewed the logs, it is clear that the job failed twice.
|
|
52
|
+
after: Having reviewed the logs, we found that the job failed twice.
|
|
53
|
+
- before: Looking at the totals, there is a gap of 40 hours.
|
|
54
|
+
after: Looking at the totals, we see a gap of 40 hours.
|
|
55
|
+
keep:
|
|
56
|
+
- what the sentence says and its figures
|
|
57
|
+
avoid:
|
|
58
|
+
- inventing who did the action when the document does not say
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
id: ellipsis-consistency
|
|
2
|
+
layer: L2
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: ellipsis-consistency
|
|
5
|
+
severity: info
|
|
6
|
+
|
|
7
|
+
name:
|
|
8
|
+
ja: 省略記号の書き方が混ざっている
|
|
9
|
+
en: Ellipses written two ways
|
|
10
|
+
|
|
11
|
+
why:
|
|
12
|
+
ja: 省略の記号を「……」と「・・・」、「…」と「...」のように二通りに書くと、読み手は違いに意味があるのかと迷い、別々の所から貼り合わせた文書に見えます。検索や置換でも片方を取りこぼします。どの書き方が正しいかは決めず、文書の中で少ないほうを指します。
|
|
13
|
+
en: 'An ellipsis written as "..." in some places and "…" in others makes the reader wonder whether the difference means something, and makes the document look pasted together; a search finds only one kind. chaff does not pick a side; it points at the way the document uses less.'
|
|
14
|
+
|
|
15
|
+
message:
|
|
16
|
+
ja: 省略の記号を「{written}」と書いています(この文書はふつう「{usual}」。{of} 箇所のうち {count} 箇所が違う)
|
|
17
|
+
en: 'The ellipsis "{written}" here, where the document usually writes "{usual}" ({count} of {of})'
|
|
18
|
+
|
|
19
|
+
how_to_fix:
|
|
20
|
+
ja: 文書の多いほうの書き方に合わせてください。
|
|
21
|
+
en: Match the way the rest of the document writes it.
|
|
22
|
+
|
|
23
|
+
# 少ないほうが、省略記号の何パーセントまでなら「混ざっている」と見るか。これを超えたら、文書が使い分けている。
|
|
24
|
+
levels: { strict: 49, normal: 34, relaxed: 20 }
|
|
25
|
+
|
|
26
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
27
|
+
|
|
28
|
+
group: consistency
|
|
29
|
+
summary:
|
|
30
|
+
ja: 「……」と「・・・」、「…」と「...」のように、一つの文書で省略の記号を二通りに書いている所
|
|
31
|
+
en: An ellipsis written two ways in one document, such as "..." and "…"
|
|
32
|
+
example:
|
|
33
|
+
ja:
|
|
34
|
+
before: |
|
|
35
|
+
準備中です……。確認中です……。少々お待ちください・・・。
|
|
36
|
+
after: |
|
|
37
|
+
準備中です……。確認中です……。少々お待ちください……。
|
|
38
|
+
en:
|
|
39
|
+
before: |
|
|
40
|
+
Loading… Saving… Please wait...
|
|
41
|
+
after: |
|
|
42
|
+
Loading… Saving… Please wait…
|
|
43
|
+
not_flagged:
|
|
44
|
+
ja: コードの中は見ません。点がさらに続く所(....、…・)は、どの書き方か決められないので数えません。少ないほうが全体の 3 分の 1 を超える文書や、二通りが同じ数の文書は、使い分けていると読んで指しません。
|
|
45
|
+
en: Code is not read. A longer run of dots ("....") is not counted, since its form is unclear. When the less common way is over a third, or the two are equally common, the document is read as using both on purpose.
|
|
46
|
+
level_meaning:
|
|
47
|
+
ja: 少ないほうが {limit}% までなら指摘
|
|
48
|
+
en: reported while the less common way is at most {limit}% of the ellipses
|
|
49
|
+
sources: [vale-styles]
|
|
50
|
+
rewrite:
|
|
51
|
+
depth: light
|
|
52
|
+
ja:
|
|
53
|
+
direction: 指した記号だけを、文書の多いほうの書き方に替えてください。ほかは変えません。
|
|
54
|
+
pairs:
|
|
55
|
+
- before: 少々お待ちください・・・。
|
|
56
|
+
after: 少々お待ちください……。
|
|
57
|
+
- before: 結果は...まだです。
|
|
58
|
+
after: 結果は……まだです。
|
|
59
|
+
keep:
|
|
60
|
+
- 記号の前後の文
|
|
61
|
+
avoid:
|
|
62
|
+
- 省略記号を消して文を書き換える
|
|
63
|
+
en:
|
|
64
|
+
direction: Change only the marked ellipsis to the form the rest of the document uses.
|
|
65
|
+
pairs:
|
|
66
|
+
- before: Please wait...
|
|
67
|
+
after: Please wait…
|
|
68
|
+
- before: The answer is . . . not yet known.
|
|
69
|
+
after: The answer is… not yet known.
|
|
70
|
+
keep:
|
|
71
|
+
- the words around the ellipsis
|
|
72
|
+
avoid:
|
|
73
|
+
- dropping the ellipsis or rewriting the sentence
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
id: figurative-density
|
|
2
|
+
layer: L2
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: phrase-density
|
|
5
|
+
word_list: figurative-phrase
|
|
6
|
+
uses: [pos]
|
|
7
|
+
severity: info
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 飾りのたとえが多い
|
|
11
|
+
en: Too many decorative figures
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: 「まるで魔法のように動く」「呪文のようなコマンド」「おまじないとして書く」のようなたとえは、一つなら文に色を付けますが、重なると何がどう動くのかが書かれないまま文書が進みます。読み手は仕組みを知りたいのに、たとえしか受け取れません。一つ一つは誤りではないので、文書の長さあたりの数で見ます。たとえの一覧は語彙表 figurative-phrase にあり、語ごとに代わりに書くことの例が付いています。
|
|
15
|
+
en: 'A figure such as "works like magic", "a one-line incantation" or "our secret sauce" adds colour once. Piled up, the document goes on without saying what actually happens, and a reader who wants the mechanism gets only the figure. None of them is wrong alone, so the rule counts them per length of the document. The figures are in the lexicon figurative-phrase, each with what to write instead.'
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 「{matched}」など、飾りのたとえが 1000 字あたり {density} 個あります
|
|
19
|
+
en: '"{matched}" and other decorative figures: {density} per 1000 words'
|
|
20
|
+
|
|
21
|
+
how_to_fix:
|
|
22
|
+
ja: たとえの代わりに、何がどう動くのか、何ができるのかを書いてください(まるで魔法のように設定が済む → 設定ファイルを読んで自動で済ませる)。
|
|
23
|
+
en: Replace the figure with what happens ("the config sets itself up like magic" becomes "the tool reads the config file and fills in the defaults").
|
|
24
|
+
|
|
25
|
+
# 「まるで魔法のように」は一つのたとえに二語が当たるので、既定は 1000 字あたり 2 個まで。
|
|
26
|
+
levels: { strict: 1, normal: 2, relaxed: 3 }
|
|
27
|
+
|
|
28
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
literature: "Figures are the writer's material in literature."
|
|
31
|
+
speech: "A speaker's figures are part of the talk."
|
|
32
|
+
|
|
33
|
+
group: ai-tells
|
|
34
|
+
summary:
|
|
35
|
+
ja: 「まるで魔法のように」「呪文のような」「おまじない」のような、仕組みの代わりのたとえが多い所
|
|
36
|
+
en: Decorative figures such as "like magic", "incantation" and "secret sauce" piled up in place of the mechanism
|
|
37
|
+
|
|
38
|
+
example:
|
|
39
|
+
ja:
|
|
40
|
+
pad: true
|
|
41
|
+
before: |
|
|
42
|
+
このツールを入れると、まるで魔法のように設定が終わります。最初の一行は呪文のようなものなので、おまじないとして書いておいてください。
|
|
43
|
+
after: |
|
|
44
|
+
このツールを入れると、設定ファイルを読んで既定の値を自動で埋めます。最初の一行は文字コードを指定する行なので、消さずに残してください。
|
|
45
|
+
en:
|
|
46
|
+
pad: true
|
|
47
|
+
before: |
|
|
48
|
+
The installer works like magic. Our secret sauce is a one-line incantation that magically fixes every path.
|
|
49
|
+
after: |
|
|
50
|
+
The installer reads your config file and fills in the defaults. The fix is one command that rewrites every path to an absolute one.
|
|
51
|
+
|
|
52
|
+
not_flagged:
|
|
53
|
+
ja: 一つ一つは誤りではないので、短い文書は測りません。例を挙げる「〜のような」(A や B のような製品)は数えません。文学と講演のジャンルでは止めています。
|
|
54
|
+
en: None of these is wrong alone, so short documents are not measured. A plain comparison or example ("tools such as A and B") is not counted. The literature and speech genres turn it off.
|
|
55
|
+
level_meaning:
|
|
56
|
+
ja: 1000 字あたり飾りのたとえ {limit} 個まで
|
|
57
|
+
en: up to {limit} decorative figures per 1000 words
|
|
58
|
+
|
|
59
|
+
rewrite:
|
|
60
|
+
depth: register
|
|
61
|
+
ja:
|
|
62
|
+
direction: たとえを、何がどう動くのか、何ができるのかの説明に替えてください。語彙表の語ごとの書き換えの例に従い、文書に書かれていない仕組みは作りません。
|
|
63
|
+
pairs:
|
|
64
|
+
- before: このツールを入れると、まるで魔法のように設定が終わります。
|
|
65
|
+
after: このツールを入れると、設定ファイルを読んで既定の値を自動で埋めます。
|
|
66
|
+
- before: 最初の一行はおまじないとして書いておいてください。
|
|
67
|
+
after: 最初の一行は文字コードを指定する行なので、消さずに残してください。
|
|
68
|
+
keep:
|
|
69
|
+
- 書いてある事実と手順
|
|
70
|
+
avoid:
|
|
71
|
+
- 文書に書かれていない仕組みを作って書く
|
|
72
|
+
- たとえを別のたとえに替える
|
|
73
|
+
en:
|
|
74
|
+
direction: Replace each figure with what actually happens or what the thing does, following the lexicon's hint for the phrase. Do not invent a mechanism the document does not give.
|
|
75
|
+
pairs:
|
|
76
|
+
- before: The installer works like magic.
|
|
77
|
+
after: The installer reads your config file and fills in the defaults.
|
|
78
|
+
- before: Our secret sauce is a one-line incantation that fixes every path.
|
|
79
|
+
after: The fix is one command that rewrites every path to an absolute one.
|
|
80
|
+
keep:
|
|
81
|
+
- the facts and steps the document gives
|
|
82
|
+
avoid:
|
|
83
|
+
- inventing a mechanism the document does not describe
|
|
84
|
+
- swapping one figure for another
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
id: footnote-mismatch
|
|
2
|
+
layer: L3
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: footnote-mismatch
|
|
5
|
+
severity: warning
|
|
6
|
+
|
|
7
|
+
name:
|
|
8
|
+
ja: 注の無い注の印と、印の無い注
|
|
9
|
+
en: A note mark with no note, or a note nothing points to
|
|
10
|
+
|
|
11
|
+
why:
|
|
12
|
+
ja: 本文に「※3」や「[^3]」と書いたのに注3が無ければ、読み手は探しても見つからない注を探します。逆に、本文のどこも指さない注は、どの語の注か分かりません。注を消したり番号を振り直したりして、印と注の片方だけが残ったときに起きます。印と注の番号を突き合わせれば、機械で言えます。
|
|
13
|
+
en: When the text says "[^3]" or "※3" and there is no note 3, the reader looks for a note that is not there; a note nothing points to cannot be tied to any word. It happens when a note is deleted or the notes are renumbered and only one side is changed. Matching the marks against the notes' numbers is mechanical.
|
|
14
|
+
|
|
15
|
+
message:
|
|
16
|
+
ja: 「{label}」の注がありません
|
|
17
|
+
en: 'There is no note for "{label}"'
|
|
18
|
+
|
|
19
|
+
messages:
|
|
20
|
+
missing:
|
|
21
|
+
ja: 「{label}」の注がありません
|
|
22
|
+
en: 'There is no note for "{label}"'
|
|
23
|
+
unused:
|
|
24
|
+
ja: 注「{label}」を本文のどこも指していません
|
|
25
|
+
en: 'Nothing in the text points to the note "{label}"'
|
|
26
|
+
|
|
27
|
+
how_to_fix:
|
|
28
|
+
ja: 注を足すか、印を消してください。注を振り直したなら、本文の印も同じ番号に直します。
|
|
29
|
+
en: Add the note or remove the mark. If the notes were renumbered, renumber the marks to match.
|
|
30
|
+
|
|
31
|
+
levels: { normal: warning, relaxed: info }
|
|
32
|
+
|
|
33
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
34
|
+
|
|
35
|
+
group: structure
|
|
36
|
+
summary:
|
|
37
|
+
ja: 本文の「※3」「[^3]」に対応する注が無い所と、本文のどこも指さない注
|
|
38
|
+
en: A note mark ("[^3]", "※3") with no note, or a note that nothing in the text points to
|
|
39
|
+
example:
|
|
40
|
+
ja:
|
|
41
|
+
before: |
|
|
42
|
+
営業運行※1を開始し、料金※2は無料です。
|
|
43
|
+
|
|
44
|
+
※1 特定の走行環境条件での運行
|
|
45
|
+
after: |
|
|
46
|
+
営業運行※1を開始し、料金※2は無料です。
|
|
47
|
+
|
|
48
|
+
※1 特定の走行環境条件での運行
|
|
49
|
+
※2 実証期間中に限ります
|
|
50
|
+
en:
|
|
51
|
+
before: |
|
|
52
|
+
The pilot starts in May[^1] and is free[^2].
|
|
53
|
+
|
|
54
|
+
[^1]: On weekdays only.
|
|
55
|
+
after: |
|
|
56
|
+
The pilot starts in May[^1] and is free[^2].
|
|
57
|
+
|
|
58
|
+
[^1]: On weekdays only.
|
|
59
|
+
[^2]: During the trial period.
|
|
60
|
+
|
|
61
|
+
not_flagged:
|
|
62
|
+
ja: Markdown の脚注([^1] と行頭の [^1]:)と、※ に一桁か二桁の番号を付けた印(※1、(※2))を読みます。※ の注が文書に一つも無いときは、注を別の所(表や別紙)に置いた文書と読んで言いません。※ の後ろに数が続くもの(※2018年度)は注の番号ではありません。コードの中は読みません。
|
|
63
|
+
en: Markdown footnotes ([^1] and a line starting "[^1]:") and a ※ with a one- or two-digit number (※1, (※2)) are read. When a document has no ※ note at all, its notes are taken to be elsewhere (a table, an annex) and nothing is reported for ※. A ※ before a longer number ("※2018") is not a note mark. Code is not read.
|
|
64
|
+
|
|
65
|
+
rewrite:
|
|
66
|
+
ja:
|
|
67
|
+
direction: 印と注の番号を突き合わせ、注の無い印には注を足すか印を消し、どこからも指されない注には印を足すか注を消してください。
|
|
68
|
+
pairs:
|
|
69
|
+
- before: 料金※2は無料です。(注は ※1 だけ)
|
|
70
|
+
after: 料金※2は無料です。(※2 実証期間中に限ります、を足す)
|
|
71
|
+
- before: 本文に ※3 が無いのに「※3 予約が必要です」の注がある
|
|
72
|
+
after: 予約の要る語に ※3 を付ける
|
|
73
|
+
keep:
|
|
74
|
+
- 注の中身
|
|
75
|
+
- ほかの注の番号
|
|
76
|
+
avoid:
|
|
77
|
+
- 書き手が知らない注の中身を作る
|
|
78
|
+
- 印だけを消して、注が要る内容を本文から落とす
|
|
79
|
+
en:
|
|
80
|
+
direction: Match the marks against the notes. Add the missing note or remove its mark; for a note nothing points to, add the mark where it belongs or remove the note.
|
|
81
|
+
pairs:
|
|
82
|
+
- before: The pilot is free[^2]. (only [^1] is defined)
|
|
83
|
+
after: 'The pilot is free[^2]. (adds "[^2]: During the trial period.")'
|
|
84
|
+
- before: '"[^3]: Booking required." with no [^3] in the text'
|
|
85
|
+
after: '"Booking is required[^3]." where the note belongs'
|
|
86
|
+
keep:
|
|
87
|
+
- what each note says
|
|
88
|
+
- the numbers of the other notes
|
|
89
|
+
avoid:
|
|
90
|
+
- inventing what a note says
|
|
91
|
+
- removing a mark and with it a qualification the text needs
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
id: heading-end-punctuation-mix
|
|
2
|
+
layer: L1
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: heading-end-punctuation
|
|
5
|
+
word_list: heading-end-word
|
|
6
|
+
requires: [markdown]
|
|
7
|
+
severity: info
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 見出しの終わりの記号が揃っていない
|
|
11
|
+
en: Heading end punctuation mixed
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: ほとんどの見出しが「手順」「注意点」のように記号なしで終わるのに、一つだけ「準備:」「確認。」と記号で終わっていたり、その逆だったりすると、読み手はその見出しだけ別の扱いなのかと迷い、目次でも浮いて見えます。直し忘れや、別の文書から貼った見出しによく出る形です。どちらの書き方が正しいかは決めず、同じ深さの見出しのうち少ないほうを指します。深さごとに比べるので、一段深い見出しをすべて「任意:」のような札にする書き方は指しません。
|
|
15
|
+
en: When most headings end bare ("Setup", "Notes") and one ends with a colon or a full stop ("Prerequisites:", "Checks."), or the other way round, the reader wonders whether that heading is meant to be different, and it stands out in the table of contents. It is usually a heading pasted from elsewhere or not yet tidied. chaff does not pick a style; it points at the smaller side among headings of the same depth. Depths are compared apart, so a depth whose headings are all labels ("Optional:") is not reported.
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 見出し「{heading}」の終わりの記号が、ほかの見出し(「{example}」など {count} 個)と違います
|
|
19
|
+
en: 'The heading "{heading}" ends differently from the other headings ("{example}" and {count} in all)'
|
|
20
|
+
messages:
|
|
21
|
+
marked:
|
|
22
|
+
ja: 見出し「{heading}」だけ「{mark}」で終わっています(ほかの見出しは「{example}」など {count} 個が「:」「。」なしで終わる)
|
|
23
|
+
en: 'The heading "{heading}" ends with "{mark}", while {count} other headings end bare ("{example}")'
|
|
24
|
+
bare:
|
|
25
|
+
ja: 見出し「{heading}」だけ「:」「。」なしで終わっています(ほかの見出しは「{example}」など {count} 個が記号で終わる)
|
|
26
|
+
en: 'The heading "{heading}" ends bare, while {count} other headings end with a mark ("{example}")'
|
|
27
|
+
|
|
28
|
+
how_to_fix:
|
|
29
|
+
ja: 見出しの終わりを、多いほうの書き方に揃えてください。記号なしの見出しが多ければ「:」や「。」を外します。
|
|
30
|
+
en: End the heading the way most headings end. If most end bare, drop the colon or the full stop.
|
|
31
|
+
|
|
32
|
+
placeholders:
|
|
33
|
+
heading:
|
|
34
|
+
ja: 見出し
|
|
35
|
+
en: the heading
|
|
36
|
+
mark:
|
|
37
|
+
ja: 記号
|
|
38
|
+
en: the mark
|
|
39
|
+
example:
|
|
40
|
+
ja: ほかの見出し
|
|
41
|
+
en: another heading
|
|
42
|
+
count:
|
|
43
|
+
ja: 〇
|
|
44
|
+
en: N
|
|
45
|
+
|
|
46
|
+
levels: { strict: warning, normal: info, relaxed: info }
|
|
47
|
+
|
|
48
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
49
|
+
|
|
50
|
+
group: consistency
|
|
51
|
+
summary:
|
|
52
|
+
ja: 記号なしの見出しの中に「準備:」「確認。」のように記号で終わる見出しが混ざっている所(またはその逆)
|
|
53
|
+
en: A heading ending with a colon or a full stop among headings that end bare, or the other way round
|
|
54
|
+
example:
|
|
55
|
+
ja:
|
|
56
|
+
before: |
|
|
57
|
+
# 作業の手引き
|
|
58
|
+
|
|
59
|
+
## 準備
|
|
60
|
+
|
|
61
|
+
道具をそろえます。
|
|
62
|
+
|
|
63
|
+
## 手順
|
|
64
|
+
|
|
65
|
+
順に進めます。
|
|
66
|
+
|
|
67
|
+
## 確認:
|
|
68
|
+
|
|
69
|
+
結果を見ます。
|
|
70
|
+
|
|
71
|
+
## 片付け
|
|
72
|
+
|
|
73
|
+
元に戻します。
|
|
74
|
+
after: |
|
|
75
|
+
# 作業の手引き
|
|
76
|
+
|
|
77
|
+
## 準備
|
|
78
|
+
|
|
79
|
+
道具をそろえます。
|
|
80
|
+
|
|
81
|
+
## 手順
|
|
82
|
+
|
|
83
|
+
順に進めます。
|
|
84
|
+
|
|
85
|
+
## 確認
|
|
86
|
+
|
|
87
|
+
結果を見ます。
|
|
88
|
+
|
|
89
|
+
## 片付け
|
|
90
|
+
|
|
91
|
+
元に戻します。
|
|
92
|
+
en:
|
|
93
|
+
before: |
|
|
94
|
+
# Working guide
|
|
95
|
+
|
|
96
|
+
## Preparation
|
|
97
|
+
|
|
98
|
+
Gather the tools.
|
|
99
|
+
|
|
100
|
+
## Steps
|
|
101
|
+
|
|
102
|
+
Work through them in order.
|
|
103
|
+
|
|
104
|
+
## Checks:
|
|
105
|
+
|
|
106
|
+
Look at the result.
|
|
107
|
+
|
|
108
|
+
## Cleanup
|
|
109
|
+
|
|
110
|
+
Put everything back.
|
|
111
|
+
after: |
|
|
112
|
+
# Working guide
|
|
113
|
+
|
|
114
|
+
## Preparation
|
|
115
|
+
|
|
116
|
+
Gather the tools.
|
|
117
|
+
|
|
118
|
+
## Steps
|
|
119
|
+
|
|
120
|
+
Work through them in order.
|
|
121
|
+
|
|
122
|
+
## Checks
|
|
123
|
+
|
|
124
|
+
Look at the result.
|
|
125
|
+
|
|
126
|
+
## Cleanup
|
|
127
|
+
|
|
128
|
+
Put everything back.
|
|
129
|
+
|
|
130
|
+
not_flagged:
|
|
131
|
+
ja: 文書の題(最初の一つだけの一番上の見出し)は比べません。同じ深さの見出しが四つ未満の所、記号で終わる見出しと終わらない見出しが同じくらいある文書(少ないほうが四分の一を超える)は指しません。疑問符・感嘆符で終わる見出しは、記号なしと数えます。「…」や「etc.」「Inc.」のように言葉の一部の点で終わる見出しは比べません(点で終わる略語は言語ごとの語彙表にあります)。
|
|
132
|
+
en: The page title (a single top-level heading that opens the document) is not compared. Fewer than four headings at one depth, or where both ways are common (the smaller side above a quarter), is not reported. A heading ending with a question mark or an exclamation mark counts as bare. A heading ending with a full stop that is part of the words ("…", "etc.", "Inc.") is left out of the comparison; the abbreviations are in each language's lexicon.
|
|
133
|
+
rewrite:
|
|
134
|
+
depth: light
|
|
135
|
+
ja:
|
|
136
|
+
direction: 見出しの終わりを、文書の多くの見出しと同じ書き方にしてください。記号を足すか外すだけで、見出しの言葉は変えません。
|
|
137
|
+
pairs:
|
|
138
|
+
- before: 「## 準備」「## 手順」「## 確認:」
|
|
139
|
+
after: 「## 準備」「## 手順」「## 確認」
|
|
140
|
+
- before: 「## 背景。」「## 方針。」「## 課題」
|
|
141
|
+
after: 「## 背景。」「## 方針。」「## 課題。」
|
|
142
|
+
keep:
|
|
143
|
+
- 見出しの言葉と深さ
|
|
144
|
+
avoid:
|
|
145
|
+
- 少ないほうに合わせて、ほかの見出しをすべて書き換える
|
|
146
|
+
- 見出しを文に書き直す
|
|
147
|
+
en:
|
|
148
|
+
direction: End the heading the way most of the document's headings end. Only add or drop the mark; keep the heading's words.
|
|
149
|
+
pairs:
|
|
150
|
+
- before: '"## Preparation", "## Steps", "## Checks:"'
|
|
151
|
+
after: '"## Preparation", "## Steps", "## Checks"'
|
|
152
|
+
- before: '"## Background.", "## Plan.", "## Risks"'
|
|
153
|
+
after: '"## Background.", "## Plan.", "## Risks."'
|
|
154
|
+
keep:
|
|
155
|
+
- the heading's words and depth
|
|
156
|
+
avoid:
|
|
157
|
+
- rewriting every other heading to match the odd one
|
|
158
|
+
- turning the heading into a sentence
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
id: less-for-fewer
|
|
2
|
+
layer: L3
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: amount-for-count
|
|
5
|
+
requires: [pos]
|
|
6
|
+
languages: [en]
|
|
7
|
+
extra_word_lists: [amount-quantifier, invariant-noun, finite-auxiliary]
|
|
8
|
+
severity: info
|
|
9
|
+
|
|
10
|
+
name:
|
|
11
|
+
ja: 数えられる名詞に less
|
|
12
|
+
en: '"Less" with a countable plural'
|
|
13
|
+
|
|
14
|
+
why:
|
|
15
|
+
ja: 英語の書き言葉では、量には less、数には fewer を使います(less time、fewer errors)。「less errors」「less people」は話し言葉ではよく聞きますが、改まった文書では誤りと読まれます。直後の名詞が数えられる複数とはっきり読める所だけを指します。名詞や数の後ろの less は「引く」の意味(revenue less costs)なので指しません。
|
|
16
|
+
en: 'Written English uses "less" for an amount and "fewer" for a count ("less time", "fewer errors"). "Less errors" and "less people" are common in speech, but a formal reader takes them as a slip. Only a "less" directly before a noun that reads clearly as a countable plural is reported. "Less" after a noun or a number means "minus" ("revenue less costs") and is not reported.'
|
|
17
|
+
|
|
18
|
+
message:
|
|
19
|
+
ja: 「{word}」は数を言うので「{suggestion}」と書きます
|
|
20
|
+
en: '"{word}" counts things; write "{suggestion}"'
|
|
21
|
+
|
|
22
|
+
how_to_fix:
|
|
23
|
+
ja: 数えられる名詞の複数の前では fewer を使ってください(less errors → fewer errors)。量を言いたいなら、名詞を量の語に替えてください(less work)。
|
|
24
|
+
en: Use "fewer" before a countable plural ("less errors" becomes "fewer errors"). To speak of an amount, use a word for the amount ("less work").
|
|
25
|
+
|
|
26
|
+
levels: { strict: warning, normal: info, relaxed: info }
|
|
27
|
+
|
|
28
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
literature: 'A narrator and a character speak as they speak: "less people" in dialogue is the voice.'
|
|
31
|
+
speech: "A transcript keeps the speaker's words."
|
|
32
|
+
|
|
33
|
+
group: slips
|
|
34
|
+
summary:
|
|
35
|
+
ja: 英語で、「less errors」のように数えられる名詞の複数に less を付けた所
|
|
36
|
+
en: '"Less" before a countable plural, as in "less errors", where written English uses "fewer"'
|
|
37
|
+
example:
|
|
38
|
+
en:
|
|
39
|
+
before: The new parser reports less errors on long files.
|
|
40
|
+
after: The new parser reports fewer errors on long files.
|
|
41
|
+
|
|
42
|
+
not_flagged:
|
|
43
|
+
ja: 量の名詞(less time、less work)、形容詞に付く less(less experienced staff)、「引く」の less(revenue less costs、$500 less fees)、less than、単数と複数が同じ綴りの名詞(less data)は指しません。
|
|
44
|
+
en: 'Mass nouns ("less time", "less work"), "less" before an adjective ("less experienced staff"), "less" meaning minus ("revenue less costs", "$500 less fees"), "less than", and nouns spelled alike in both numbers ("less data") are not reported.'
|
|
45
|
+
|
|
46
|
+
rewrite:
|
|
47
|
+
depth: light
|
|
48
|
+
en:
|
|
49
|
+
direction: Replace "less" with "fewer" before the countable plural. Change only that word.
|
|
50
|
+
pairs:
|
|
51
|
+
- before: The new parser reports less errors on long files.
|
|
52
|
+
after: The new parser reports fewer errors on long files.
|
|
53
|
+
- before: We hired less people in the spring.
|
|
54
|
+
after: We hired fewer people in the spring.
|
|
55
|
+
keep:
|
|
56
|
+
- the noun and the rest of the sentence
|
|
57
|
+
- '"less" before an amount ("less time") or meaning minus ("revenue less costs")'
|
|
58
|
+
avoid:
|
|
59
|
+
- turning every "less" into "fewer", including amounts
|