textlintを導入して文章校正を行う環境を導入

Wordを使わずにエディターで文章を書く習慣のある人に伝えたい。実はWordを使わなくても、文章の校正をしてくれるツールがあるんです。

· 3 min read
textlintを導入して文章校正を行う環境を導入

Markdownテキストを書くエディターを探している途中でVS Codeも試していたのですが、Markdownテキスト用の機能拡張を探している段階でtextlintという文章校正ツールがある事を知りました。最初は「テキスト校正くん」というtextlintのパッケージを機能拡張の中で完結させたプラグインを導入をして効果を試していたのですが、これがなかなか凄くて細かく文章の修正したほうが良い点を指摘してくれるのです。そこで本格的にtextlintの導入に踏み込んだのですが、どうやってもVS CodeもAtomでも動作せず。そして今まで慣れていたエディターから、別のエディターに移行する必要性もそれでは生じてしまいます。Rubyをシェルスクリプト代わりに使って中を通す方法も考えたのですが、なかなかな上手くいかず。結局、使い慣れたTyporaというエディターに表示しているファイルのパスをコピーする機能があるので、隣に並べてターミナルでtextlintのエラーを表示させて、それを見て本文の修正を行う方法に落ち着きました。jtfという日本の翻訳者団体が出している文章校正ルールも導入出来て、快適に使用しています。英文に記号などをいれているとカッコ類をチェックするルールに引っかかってしまう事が発覚。マークダウン水平線を英文の上下にいれてそれをtextlintの対象から外すルールも導入しました。結局2日ぐらいを導入して色々と設定を変えたり、スクリプトを書いて自動化出来ないか試したあげく、一番お手軽な方法で妥協しました。サンプルに撮ったスクリーンショットはtextlint導入前のファイルに実行をかけたもので、かなり問題点を指摘されている。textlintについては沢山のホームページで紹介されているので、ここでは公式サイトのURLを紹介するに留めて起きます。

ところで私のエディター探しの旅はTyporaというエディターに最終的に落ち着きそうです。気に入ってる理由は、プレビュー状態で編集出来るので目障りな記号がなく文章に集中出来る事。markdownの表を独自実装ではなく、ちゃんと実装していること。そしてCSSを書けば簡単に見た目を自分好みに出来るところです。obsidianやVsCodeはプレビューの編集が出来ない点が、Ulysesは表が独自実装なこと、CraftはCSSを編集出来ないので文字が詰まって見えてもフォントや行間すら設定出来ない事と表機能が使いづらい点でそれぞれ私の好みとは違いました。今のところエディターの表機能で翻訳は出来ているので、相当長い文章を翻訳する必要がない場合はエディターで事足りそうです。

という事で動作の様子を動画にしました。

とはいえ、最近、エディターを探したりブログのサーバーを移動したりとムダに過ごしてしまう日が続いています。基本的にIT系の新しい事に挑戦するのは大好きなのですが、あと10ヶ月後ぐらいには一日1500文字を翻訳出来る人を目指しているのになかなか勉強時間が足りません。textlintの作者さんがJavaScriptの本を出しているので是非読みたいのですが、洋書を読む事のほうが先に必要です。

最後に私のtextlint設定ファイルは現在のところこんな感じになっています。

{
    "filters": {
      "allowlist": {
        "allow": [
            "[a-zA-Z0-9()[]<> ]+",
            "/------[\\s\\S]*?------/m"
        ]
    }
 },

  "rules": {
    "max-ten": {
      "max": 5
    },
    "ja-no-successive-word": true,
    "ja-no-abusage": true,
    "no-nfd": true,
    "max-kanji-continuous-len": {
      "max": 10,
      "allow": [
        "年月日時分秒"
      ]
    },
    "no-doubled-conjunctive-particle-ga": true,
    "no-doubled-conjunction": true,
    "no-double-negative-ja": true,
    "no-dropping-the-ra": true,
    "sentence-length": {
      "max": 200
    },
    "no-mix-dearu-desumasu": {
      "preferInHeader": "",
      "preferInBody": "ですます",
      "preferInList": "である",
      "strict": true
    },
    "prh": {
      "rulePaths": [
        "prh.yml"
      ]
    },
    "preset-jtf-style": {
      "1.2.1.句点(。)と読点(、)": false,
      "2.1.2.漢字": false,
      "2.1.5.カタカナ": false,
      "2.1.6.カタカナの長音": false,
      "4.2.2.疑問符(?)": false,
      "4.3.1.丸かっこ()": false,
      "preset-ja-technical-writing": {
        "ja-no-mixed-period": false, // 「。」のつけ忘れのチェックを除外
    },
    "preset-ja-spacing": true,
    "no-start-duplicated-conjunction": {
        "interval" : 2 // interval of sentences
    },
    "no-surrogate-pair": true,
    "no-mixed-zenkaku-and-hankaku-alphabet": true,
    "ja-hiragana-fukushi": true,
    "ja-hiragana-hojodoushi": true,
    "@textlint-ja/textlint-rule-no-insert-dropping-sa": true,
    "prefer-tari-tari": true,
    "@textlint-ja/no-synonyms": true,
    "ja-no-orthographic-variants": true,
    "use-si-units": true,
    "jis-charset": true,
    "no-hoso-kinshi-yogo": true,
    "ja-no-inappropriate-words": true
    }
  }
}

追記、文章校正に使うにはエディターに修正箇所が表示されたほうが良いのですが、私の環境ではVSCodeでtextLintが上手く動作してくれませんという事は以前に書いた通りです。そこで、カスタマイズの自由度が低くなっても翻訳支援ツールと一緒に使うときはテキスト校正くんというVSCodeのプラグインで単体で動いてくれるものを使用したほうが良いのかなと最近は思っています。現在は他の勉強のため翻訳作業から離れていますが、翻訳の品質向上に1度テキストに書き出してエラーを見て翻訳支援ツールで修正して、Wordなどの翻訳会社指定フォーマットに書き出すのが良いのかなと思っています。恐らくレイアウト指定で翻訳依頼が来ると思うので。