« ^ »

文書の校正を工夫する

2022/10/8 更新
約 2分 で読める

textlint

これらの記事を参考にtexlintの整備をする。

それぞれ記述している内容はほとんど同じ内容だ。ここでやったことはそれらの記事の内容をほぼそのまま行っている。ファイル名やファイルパスなど微妙に変更したが、概ね同じ方法になっている。

まずはtextlintをインストールする。

npm install -g textlint

次に校正ルールをインストールする。ここでは技術文書向けの校正ルールを用いる。

npm install -g textlint-rule-preset-ja-technical-writing textlint-rule-preset-ja-spacing
npm install -g textlint-rule-unexpanded-acronym textlint-rule-write-good textlint-rule-ginger textlint-rule-alex textlint-rule-common-misspellings textlint-rule-en-max-word-count

Org-modeでtextlintを実行するためにパーサーをインストールする。

npm install -g textlint-plugin-org traverse
npm install -g @textlint/ast-node-types

textlintを実行するスクリプトを実装する。

#! /usr/bin/env bash
SCRIPT_DIR=$(cd $(dirname $0); pwd)

FILENAME=$1

if grep -q [ぁ-ん] $FILENAME; then
    TEXTLINTRC="${SCRIPT_DIR}/../textlint/ja.json"
else
    TEXTLINTRC="${SCRIPT_DIR}/../textlint/en.json"
fi

EXTENTION=${FILENAME##*.}

if [ $EXTENTION = "org" ]; then
    PLUGIN="--plugin org"
else
    PLUGIN=""
fi

exec textlint --format unix --config ${TEXTLINTRC} ${PLUGIN} ${FILENAME}

flycheckのチェッカーを定義する。

(flycheck-define-checker textlint
  "A linter for text."
  :command ("textlint-check" source)
  :error-patterns
  ((warning line-start (file-name) ":" line ":" column ": "
            (id (one-or-more (not (any " "))))
            (message (one-or-more not-newline)
                     (zero-or-more "\n" (any " ") (one-or-more not-newline)))
            line-end))
  :modes (text-mode markdown-mode gfm-mode org-mode))

ただし、textlintの実行とflycheckの組み合わせには問題もある。例えば、textlintは文章が多い場合にはエラーを出力し異常終了する。またtextlintの環境を整備するのも若干面倒に感じる。それ用のDocker Imageを作成してしまってもよいかもしれない。あと、textlintの技術文書の校正ルールが結構厳しくて「〜だと思う」や「〜かもしれない」のような表現は校正によってエラーとなる。曖昧な表現は許されず、断定することを強制してくる。論文を記述するという意味では問題にならないが、テクニカルエッセイのような文章の場合は、これらの表現は頻繁に使いたくなる。そもそも断定できることなんてこの世にあるのだろうか。


しむどん三度無視 により 2022/9/24 に投稿、2022/10/8 に最終更新
« ^ »