Skip to content

element ブロックで cdata-binding モード選択時に <![CDATA[...]]> を視覚表示する #20

@mt8

Description

@mt8

背景

feedwright/element ブロックの contentMode を 「バインディング式(CDATA)」 (cdata-binding) に切り替えても、エディタ上の見た目は普通のバインディングモードと区別が付きにくい。Author が「これは CDATA で出る」ことを視覚的に確認できないため、混乱の元になる。

期待

ブロック本文の表示領域で、cdata-binding モードのときだけバインディング式を <![CDATA[ ... ]]> でラップして見せる。XML 出力時の実際の挙動と編集画面の見た目を一致させる。

想定 UI

┌─ Element ─────────────────────────────┐
│ <content:encoded>                     │
│ <![CDATA[ {{post.post_content}} ]]>   │
│ </content:encoded>                    │
└────────────────────────────────────────┘

binding モード(CDATA なし)のときは現状どおり:

│ <content:encoded>                     │
│ {{post.post_content}}                 │
│ </content:encoded>                    │

実装方針

  • blocks/element/edit.js のブロック本文プレビュー描画箇所で、contentMode === 'cdata-binding' のときだけ式の前後に <![CDATA[ / ]]> を表示する文字列ラッパを追加
  • スタイル的には既存の binding 表示と同じトーン(コードフォント、薄いグレー枠など)で、<![CDATA[ / ]]> だけ少し色を変えて視認性を上げる程度
  • 翻訳対象になる文字列は無し(コード表記のみ)

受け入れ基準

  • cdata-binding モードに切り替えたとき、ブロック本文に <![CDATA[ ... ]]> が表示される
  • binding モードに戻すと表示されなくなる
  • static / children / empty モードでは表示されない
  • 既存スナップショット / 出力 XML には影響なし(純粋にエディタ UI のみ)
  • phpcs / unit tests グリーン(変更は JS のみのはず)

影響範囲

  • blocks/element/edit.js
  • 必要なら blocks/_shared/editor.css に少量のスタイル追加

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions