Skip to content

Editor: List View にブロック名として TAG NAME を反映する #43

@mt8

Description

@mt8

現状

エディタ左の List View (ブロックアウトライン) で、<channel> 配下に並ぶ Element ブロックがすべて 「Element」 という同じ表示になり、どれが <title> でどれが <link> か、ブロックを選択するまで判別できない。

current
※ サイドバーで TAG NAME に title を入れている状態でも、List View 上は「Element」のまま

要望

feedwright/element ブロックの List View ラベルを、設定された tagName 属性を使って動的に表示する。

例:

  • tagName="title" → List View に <title> (または title
  • tagName="media:thumbnail"<media:thumbnail>
  • tagName="" (未設定)→ フォールバックで Element

同様に、入れ子で名前を持つ他のブロックも対象にする:

  • feedwright/channel<channel>(固定)
  • feedwright/item<item>(固定)

…はそもそもタグ名が固定なので block.json の title で十分。動的なのは feedwright/element のみが対象。

実装方針

registerBlockType( 'feedwright/element', { ... } )__experimentalLabel コールバックを足す:

__experimentalLabel: ( attributes, { context } ) => {
    if ( context === 'list-view' && attributes.tagName ) {
        return `<${ attributes.tagName }>`;
    }
    return undefined; // fall back to block.json title
},

context === 'list-view' のときだけ上書きし、Inserter や他の場所はデフォルトの "Element" を維持する。

対象ファイル

  • blocks/element/index.js__experimentalLabel を追加

確認手順

  • List View でタグ名が <title> / <link> / <media:thumbnail> のように表示される
  • TAG NAME が空のブロックは "Element" のまま表示される
  • Inserter 一覧では従来どおり "Element" カードが出る

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