textlint校正ツールでRe:VIEW日本語原稿をチェックする方法

textlint と Re:VIEW

textlint と Re:VIEW

textlint校正ツールで日本語原稿チェック

2018年5月、Windows10に書籍執筆支援システム Re:VIEWをインストールして、textlint校正ツールを使用してRe:VIEW日本語原稿をチェックできました。

日本語の技術文章を書くとき注意すべきルールがあり、textlint校正ツールにより問題点を指摘できます。

textlint 指摘

textlint 指摘

Re:VIEWの概要、インストール、設定方法は、下記ブログを参照してください。

Windows10に Re:VIEW 執筆支援システムをインストールする方法

書籍執筆支援システム Re:VIEWの設定ファイルについて

textlint校正ツールとは

textlint

textlint

The pluggable linting tool for text and markdown.
textlint is similar to ESLint, but it’s for use with natural language.

textlintとは、テキストとマークダウンのためのプラガブル(Pluggable)なlint系のツールです。

代表的なlint系ツールには下記のものがあります。

  • lint : C言語の静的検証ツール
  • ESLint : JavaScriptの静的検証ツール
  • textlint : 自然言語の静的検証ツール

textlintは、自然言語のテキストを静的解析してあらかじめ決められたルールにより、日本語テキストの誤りや読みにくい点などを指摘します。

textlintには、チェックルールが付属していませんので別途インストールします。プラガブル(Pluggable)というのはプラグ(Plug)が可能(able)という意味で、チェックルールなどを差し替え可能ということです。

textlintの拡張

textlintの拡張

JavaScript環境のNode.jsで記述したtextlintは、ルールなどをJavaScriptで書くことで拡張可能です。

  • Plugin : プラグインでプロセッサー(npmモジュール)を追加
  • Filter rule : フィルタールールで結果のフィルタリングする
  • Rule-preset : 複数のルールをプリセットする
  • Rule : ルールを追加する

いろいろなルールが公開されていますので、自分の用途に合わせて利用できます。

Node.js、npm インストール

textlintはNode.js製のプログラムなので、最初にNode.jsとNode.js用のパッケージ管理ツールであるnpmをインストールします。

最新バージョン(2018年5月現在)のtextlintのバージョン要件を示します。

モジュール バージョン
textlint v10.2.1
Node.js 4.0.0+
npm 2.0.0+

Re:VIEWの動作環境をWindows10に作成したので、textlintもWindows10にインストールします。

Nodeダウンロード

Nodeダウンロード

Node.jsサイトからインストーラーをダウンロードしてインストールします。

コマンドプロンプトからNodeとnpmのバージョンを確認します。

バージョン確認

バージョン確認


パッケージ管理ツール npmとは

npm概要

npm(Node Package Manager)はNode.jsのパッケージ(Package)を管理する(Manager)ツールです。

npm パッケージインストール

npm パッケージインストール

パッケージのインストールは、「npm install パッケージ名」で行います。
npmによるパッケージのインストールには「グローバルインストール」と「ローカルインストール」があります。

  • グローバルインストール : すべてのプロジェクトでパッケージを利用可能
  • ローカルインストール : プロジェクト(ディレクトリー)ごとにインストールしプロジェクトだけで利用可能

ローカルインストールでは、package.jsonファイルでパッケージを管理できます。package.jsonファイルはパッケージの用途により記載方法が異なり、パッケージのインストール時にオプションを指定することにより自動で記述可能です。

オプション ID 用途
–save Dependencies 本番環境で利用するパッケージを記述
–save-dev devDependencies 開発環境だけで利用するパッケージを記述

グローバルインストール

パッケージをグローバルにインストールするコマンドを示します。


グローバルインストールしたパッケージをアンインストールするコマンドを示します。

ローカルインストール

プロジェクトごとのpackage.jsonを初期化するコマンドを示します。

  • -yオプションあり : デフォルト値で初期化します。
  • -yオプションなし : キー入力の値で初期化します。

パッケージをローカルにインストールするコマンドを示します。


パッケージをローカル(本番環境)にインストールするコマンドを示します。package.jsonのDependenciesに自動記載します。


パッケージをローカル(開発環境)にインストールするコマンドを示します。package.jsonのdevDependenciesに自動記載します。


ローカルインストールしたパッケージをアンインストールするコマンドを示します。


ローカル(本番環境)インストールしたパッケージをアンインストールするコマンドを示します。package.jsonの記述も削除します。


ローカル(開発環境)インストールしたパッケージをアンインストールするコマンドを示します。package.jsonの記述も削除します。

ローカルインストールか、グローバルインストールか?

グローバルインストールすると、どのプロジェクトからも利用できます。ローカルインストールはプロジェクト(ディレクトリー)ごとにインストールが必要ですが、プロジェクトごとの個別設定が可能です。
また、ローカルインストールしたパッケージはpackage.jsonに記載できるので、パッケージ情報から一括でパッケージのインストールを行うことができます。プロジェクトを別の環境に持って行く場合などに便利です。


本番環境と開発環境のパッケージを一括でインストールするコマンドを示します。


本番環境だけのパッケージを一括でインストールするコマンドを示します。

textlint インストール

インストール方針

npmツールを使用してtextlintをインストールします。textlintサイトによると、textlintをローカルにインストールすることを推奨しています。

If you have installed textlint globally you must install each reference rule globally as well.
If you have installed textlint locally you must install each rule locally as well.
We recommend installing textlint locally.

【要約】
textlintをグローバルにインストールした場合は、各参照ルールをグローバルにインストールする必要があります。
textlintをローカルにインストールした場合は、各ルールをローカルにインストールする必要があります。
textlintをローカルにインストールすることをお勧めします。

textlintとルールをローカル(開発環境)にインストールすることにしました。

プロジェクトディレクトリー作成

プロジェクト用のディレクトリーを作成します。
今回は、「C:\Users\pi\MyTextlint\text01」にインストールすることにしました。

ここで注意があります。プロジェクト用のディレクトリー名は「textlint」以外の名前としてください。ディレクトリー名をtextlintとすると、textlintをインストールするときに、ENOSELFエラーが発生します。

パッケージ(textlint)と同じ名前のディレクトリーにインストールできないのです。

package.json初期化

package.jsonを初期化して作成します。

textlintインストール

textlintをローカル(開発環境)にインストールします。

package.jsonを確認します。

devDependenciesにtextlintを記述しました。

ルール インストール

textlintルールプリセットをローカル(開発環境)にインストールします。ルールは、日本語で記述した技術文書向けのtextlint-rule-preset-ja-technical-writing Build Status Gitterにします。

package.jsonを確認します。

devDependenciesにtextlint-rule-preset-ja-technical-writingを記述しました。

.textlintrc に使用するルールを記載します。

textlintの実行

textlintを実行してみます。

textlintがコマンドとして認識されません。PATHが通っていないからです。グローバルにインストールしたときはPATHを設定しているので、コマンドとして認識されます。

ローカルインストール先は、./node_modules/.bin/(パッケージ名)ですので相対パスで実行します。


相対パスで実行できましたが、少々面倒です。

少し調べてみるとnpxコマンドが使えそうです。npxコマンドは、ローカルインストールしたパッケージでもグローバルインストールしたときのようにそのままコマンドを実行できるものです。

コマンドの先頭に「npx」を付けるだけです。しかし、毎回ネットワークからダウンロードしているような動作をします。


グローバルインストールしたとき、npmディレクトリーの下にtextlint.cmdを作成していました。

このファイルをローカルインストールしたディレクトリーにコピーすれば、textlintコマンドを実行できそうです。

グローバルインストールしたときのようにtextlintコマンドを実行できました。

Re:VIEWサンプル原稿

textlintで原稿の校正を行うサンプル原稿を作成します。ファイル名は、test.txtとします。

サンプル原稿のチェック

試行その1

それでは、サンプル原稿をtextlintでチェックします。

サンプル原稿に対する指摘が意味不明です。原因がわかりません。

試行その2

Windowsでサンプル原稿を書いたので文字コードがシフトJISになっていました。UTF-8に変更してみました。

文末が”。”なのに、「文末が”。”で終わっていません。」という指摘が発生しています。

試行その3

Windowsでサンプル原稿を書いたので改行コードが「CR+LF」になっていました。
改行コードをLinux系の「LF」に変更してみます。

それらしい指摘になりました。

textlint文章チェック結果

23行目の指摘「文中に逆接の接続助詞 “が” が二回以上使われています。」

Re:VIEWは素晴らしいツールですが、Windowsへのインストールが難しいと言われていましたが、2018年現在は簡単にインストールできます。

確かに、「○○ですが、□□いましたが、△△できます」という問題のある日本語です。


25行目の指摘「 同じ接続詞が連続して使われています。」

Re:VIEWは素晴らしいツールです。しかし、Windowsへのインストールが難しいと言われていました。しかし、2018年現在は簡単にインストールできます。

確かに、「○○です。しかし、□□いました。しかし、△△できます」という問題のある日本語です。


27行目の指摘「 “することができます”は冗長な表現です。」

Re:VIEWは素晴らしいツールです。技術用ドキュメントを簡単に記述することができます。

確かに、「記述することができます」という冗長な日本語です。


チェックする原稿は、UTF-8エンコード改行コードはLFにするとうまくチェックしてくれました。

textlint自動修正

fixable problem指摘は、「–fix」オプションを付けると指摘内容を自動修正します。

27行目の「技術用ドキュメントを簡単に記述することができます。」が「技術用ドキュメントを簡単に記述できます。」に自動修正しました。

Re:VIEWプラグイン追加

まだ「文末が”。”で終わっていません。」という指摘が残っています。Re:VIEW構文の行が指摘されています。

textlintにRe:VIEWプラグインを追加します。

package.jsonを確認します。

.textlintrcにプラグイン記述を追加します。

Re:VIEW用原稿のチェック

Re:VIEWサンプル原稿をチェックします。

設定に不備があるのか、Re:VIEWプラグインがうまく動作しません。

ネット検索して情報を収集しましたが、解決方法がわかりません。Re:VIEWの原稿は拡張子が.reなので、ファイル名をtest.txtからtest.reに変更してみました。

textlint 指摘

textlint 指摘

 

Re:VIEWの構文を認識して、指摘が表示されました。プラグインは、拡張子により有効になるみたいです。

Re:VIEWの構文を認識しているので、空行が出現するまでを1行として扱っています(10行目の指摘)。

Re:VIEWは、電子書籍向けの簡易なマークアップ言語で、
記述したテキストファイルをEPUBやPDFなどの形式に変換する、
ツールセットです。

まとめ

Windows10にtextlint校正ツールをインストールして、Re:VIEW日本語原稿をチェックできました。日本語技術文書向けルールもインストールして、適切に日本語チェックが行えました。

textlintで使用するルールなどについてもう少し調べてみたいと思います。

 

 

このエントリーをはてなブックマークに追加