「セクション名が重複しています」の警告が出るjpy1ファイル内の素材が利用数に反映されない。

Issue #321 resolved
ルンバ created an issue

背景変更コンテンツ等で「セクション名が重複しています」の警告が出るjpy1ファイル内の素材が利用数に反映されません。
警告が出ないようにセクション名を変えれば反映されます。書式的には違う名であるべきなのかもしれませんが、実際に同じセクション名であってもエンジン上では実動するようですし、もしエンジンで実動しないとしても、利用数には反映されていないと間違えて消してしまったりするかもしれませんので利用数や参照検索上では反映されるべきでしょう。

Comments (2)

  1. k4nagatsuki repo owner

    まず前提として、そのようなJPY1ファイルは意図通りに動作しません。挙動はエンジンによって異なります。セクション名の重複はJPY1ファイルのバグであり、エラーとして扱われるべきものという事をご理解いただければと思います。

    エラーのあるリソースの参照情報をどう扱うかという問題は、すなわちcwxeditorがエラーをどこまで許容して自動訂正するかという問題です。

    エラーのあるリソースは壊れており、壊れたリソースの参照情報は正しいものになるとは限らず、正しくない参照情報は予期せぬ結果を生む可能性があるので、扱うべきではありません。ただし、そのエラーが予測可能なものであり、機械的に訂正しても問題が起きない時に限り、例外とする事ができます。その例外をどの程度設けるかというのは仕様の問題です。

    たとえば以下のような問題があります:

    • 数値があるべきところに数値以外があったら訂正するべきか?
    • 命令文の値の書式が正しくなかったら?
    • 命令文自体の書式が正しくなかったら?
    • 未知の命令文があったら?
    • セクションが無かったら?
    • セクションの後ろのカッコが欠けていたら?
    • JPTXの開始タグがおかしかったら?
    • JPTXで未知のタグ名が使われていたら?
    • 属性の書式がおかしかったら?
    • 色の書式がおかしかったら?
    • などなど……

    このように切りがありません。もちろんこれらの問題は個別に訂正ロジックを設ける必要があります。それはかなりの手間である上に、作者の目からエラーを隠してしまうという悪い効果を生んでしまいます(これはWebブラウザによるHTMLのエラー訂正の歴史を見れば分かりやすいです)。

    そのため、今のcwxeditorはエラーのあるエフェクトブースターファイルを(色指定の方法が仕様書に載っているものと載っていないものの二種類存在するといったごく一部の例外を除いて)一律壊れたリソースとして扱っています。これはそういう仕様とご理解ください。

    セクション名の重複は実際には期待したようには動きませんので(実際にそうしたファイルが使われていて動作が壊れているシナリオもあるので、CWPyはわざわざ互換モードを設けています)、修正されるべきです。

  2. ルンバ reporter

    セクション名の重複に限った話にならないとは思い至りませんでした。納得いきましたので終了します。ご説明ありがとうございました。

  3. Log in to comment