Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文の途中に改行があるとエラーになる #69

Open
tanioka256 opened this issue Aug 2, 2024 · 2 comments
Open

文の途中に改行があるとエラーになる #69

tanioka256 opened this issue Aug 2, 2024 · 2 comments

Comments

@tanioka256
Copy link

以下の文で no-doubled-joshi のエラーが発生しました。

関数でアクセスで
きる。

以下のコマンドを bash 上で実行すると再現します。

$ npm init -y
$ npm install textlint textlint-rule-no-doubled-joshi --save-dev
$ echo -e "関数でアクセスで\nきる。" > test.txt
$ npx textlint --rule no-doubled-joshi test.txt

エラーメッセージは次のようになりました。

test.txt
  1:8  error  一文に二回以上利用されている助詞 "で" がみつかりました。

次の助詞が連続しているため、文を読みにくくしています。

- 関数"で"
- アクセス"で"

同じ助詞を連続して利用しない、文の中で順番を入れ替える、文を分割するなどを検討してください。
  no-doubled-joshi

✖ 1 problem (1 error, 0 warnings)

echo コマンドの \n の部分を削除するとエラーは出ませんでした。

@azu
Copy link
Member

azu commented Aug 2, 2024

image

https://textlint.github.io/astexplorer/#/snippet/woXCqHBhcnNlcklEwrN0ZXh0bGludDp0xI0tdG8tYXN0wqjEhXR0xJBnc8KBxIrEjMSOxJDEksSUdMSWxJjEmnTDgMKodsSGc2lvbsSjxKXEjcSPxJHEk8SVxJfEmcSbwqYxNC4wLjTCqGZpbGVuYW1lwrBzb3VyY2UudW5kZcWKbmVkwqRjb8Wcw5kiw6nClsKiw6bClcKww6PCgcKnw6PCgsKixbHCr8WxwrvFscK5xa7CpwrFrsKNxbHCi8OjwoDCgg}

txtでは、改行でそれぞれ別のパラグラフとして認識されるためだと思います。(こちらはルール側では対応は難しいです)

Markdownでは、"関数でアクセスで\nきる。"という感じになってこれもエラーですが、どうするかは悩ましい感じがしますね。改行を無視すれば対応はできるとは思いますが、形態素解析をしているルールは大体同じ壊れ方をするとは思います。
意味が変わるところで改行を入れると、文章としても意味は変わる可能性がある(どうレンダリングされるかは検知できない)ので、自然なエラーとも言えます。

@tanioka256
Copy link
Author

azu 様、丁寧な説明ありがとうございました。

text プラグインは、改行が Paragraph ノードの区切りになることを理解しました。

markdown プラグインの動作でも試したところ、行末の 2 個の空白と改行が Break ノードになるため、改行の前後で文字列が区切られていないような結果になりました。

個人的に欲しい結果を得るために、単一の改行を Break ノードに、複数の改行 (空行) を Paragraph ノードの区切りになるようなプラグインを作ることにしました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants