Skip to content

prh-rules/wordpress.yml ファイル内の、矛盾したルール #1

@stein2nd

Description

@stein2nd

WordPress PRH Rules 矛盾調査レポート

調査概要

github:jawordpressorg/textlint-rule-preset-wp-docs-ja/prh-rules/wordpress.yml ファイル内の矛盾したルールを調査しました。

発見された矛盾

1. プレイヤー/プレーヤーの矛盾

矛盾の詳細:

  • 行2354-2355: プレイヤー を期待値として、プレーヤ をパターンとして定義
  • 行2356-2357: プレーヤ を期待値として、プレーヤー をパターンとして定義

問題:

- expected: プレイヤー
  pattern:  /プレーヤ/
- expected: プレーヤ
  pattern:  /プレーヤー/

この2つのルールは相互に矛盾しており、以下の問題が発生します:

  • プレーヤ と入力すると プレイヤー に変換される
  • プレーヤー と入力すると プレーヤ に変換される
  • 結果として、どちらの表記も正しくないと判定される無限ループが発生する可能性がある

2. レイヤ/レイヤーの矛盾

矛盾の詳細:

  • 行2296-2297: レイヤ を期待値として、レイヤー をパターンとして定義
  • しかし、regexpMustEmpty: $1 の設定により、プレイヤー は例外として扱われる

問題:

- expected: レイヤ
  pattern:  /(プ)?レイヤー/
  regexpMustEmpty: $1
  specs:
    - from: レイヤー
      to:   レイヤ
    - from: プレイヤー
      to:   プレイヤー  # 例外として変更されない

この設定により、レイヤーレイヤ に変換されるが、プレイヤー は変換されない。しかし、上記の矛盾により、プレイヤー は別のルールで プレーヤ に変換される可能性がある。

3. 長音符の一貫性の問題

問題の詳細:
多くのカタカナ語で長音符の使用に一貫性がない:

  • アーキテクチャー (長音符あり) vs アーキテクチャ (長音符なし)
  • サーバー (長音符あり) vs サーバ (長音符なし)
  • コンピューター (長音符あり) vs コンピュータ (長音符なし)

具体的な例:

- expected: アーキテクチャー
  pattern:
    - /アーキテクチャ(?!ー)/
    - /アーキティクチャ/

- expected: サーバー
  pattern:  /サーバ(?!ー)/

- expected: コンピューター
  pattern:  /コンピュータ(?!ー)/

推奨される修正

1. プレイヤー/プレーヤーの矛盾の修正

どちらか一つの表記に統一する必要があります:

オプションA: プレイヤーに統一

- expected: プレイヤー
  pattern:  /プレーヤ/
- # プレーヤのルールを削除

オプションB: プレーヤに統一

- expected: プレーヤ
  pattern:  /プレイヤー/
- # プレイヤーのルールを削除

2. 長音符の一貫性の確保

カタカナ語の長音符使用について、一貫した方針を決定する必要があります:

  • 英語の語尾が -er の場合は長音符を付ける
  • 英語の語尾が -or の場合は長音符を付ける
  • その他の場合は長音符を付けない

結論

wordpress.yml ファイルには明確な矛盾が存在し、特にプレイヤー/プレーヤーの表記については相互に矛盾するルールが定義されています。これらの矛盾は、textlintの実行時に予期しない動作や無限ループを引き起こす可能性があります。

修正には、矛盾するルールの削除と、カタカナ語の長音符使用に関する一貫した方針の策定が必要です。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions