Snow Monkey Editor v9.1.0 をリリースしました

Snow Monkey Editor v9.1.0 の概要

機能追加

  • ブロックプリセット機能を追加

ブロックプリセット機能を追加

ブロックの設定をプリセットとして保存して、同じ種類のブロックにワンクリックでそのプリセットを適用できる機能を追加しました。動画のほうがわかりやすいと思うので下記をご覧ください。

プリセットはブロックの種類毎に何個でも設定できます。また、プリセットはユーザー毎に個別に保存されます。

プリセットは技術的にはそのブロックの attributes をユーザーメタに保存して、それを他のブロックに setAttributes するという仕組みなのですが、全ての attributessetAttributes してしまうとブロックが正しく動作しなくなったり、そこはコピーされたくなかったのにーということが起こってしまいます。例えば上の吹き出しブロックの例で言えば、画像や名前はコピーされてほしいけど吹き出しの内容はコピーされたくないですよね。

ということで、デフォルトではブロックプリセット機能を使えるブロックと、コピーできる attributes を制限しています。

現時点は下記のブロックにコアブロックプリセット機能が使用できます。

ブロック名

コピーできない attributes

ボタン

urltitletextlinkTargetrel

カバー

url

リスト

values

段落、グループ、カラム、段落

なし

また、Snow Monkey Blocks も v17.2.0 からブロックプリセット機能をサポートしており、下記の通り使用できます。

ブロック名

コピーできない attributes

アラート

title

吹き出し

ballonBody

ボックス

なし

ボタンボックス

ledenotebtnLabelbtnURLbtnTarget

ボタン

contenturltargetlinkDestination

星評価

evaluationValuetitle

アイコンリスト

content

セクション(ブロークングリッド)

titlesubtitleledebackgroundTextimageIDimageURLimageAltimageWidthimageHeightimageMediaType

セクション(サイド見出し)

titlesubtitlelede

セクション(背景画像/動画)

titlesubtitleledebackgroundTextimageIDimageURLimageAltlgImageIDlgImageURLlgImageAltlgImageMediaTypelgImageRepeatlgFocalPointlgImageSizeSlugmdImageIDmdImageURLmdImageAltmdImageMediaTypemdImageRepeatmdFocalPointmdImageSizeSlugsmImageIDsmImageURLsmImageAltsmImageMediaTypesmImageRepeatsmFocalPointsmImageSizeSlug

セクション(YouTube 動画)

titlesubtitleledebackgroundTextvideoURLvideoWidthvideoHeight

セクション

titlesubtitleledebackgroundText

タブ

tabstabsId

カスタムブロックにブロックプリセット機能を適用させる方法

block.jsonsupports を拡張することで適用できます。

// 全ての attributes がコピー対象の場合
supports: {
  snowmonkeyeditor: {
    blockPresets: true,
  }
}
// がコピー対象の attributes を制限する場合
supports: {
  snowmonkeyeditor: {
    blockPresets: {
     ignore: ['content'], // content はコピーさせない
   }
  }
}

この記事を書いた人

キタジマ タカシ

長崎県長崎市在住。地元のWeb制作会社でWebデザイナー/エンジニアとして従事した後、2015年にフリーランス [ モンキーレンチ ] として独立。WordPress のテーマやプラグイン、ライブラリ、CSS フレームワーク等、多数のプロダクトをオープンソースで開発・公開しています。

Snow Monkey オンラインコミュニティ

Snow Monkey をより良いテーマにするために、今後の機能開発等について情報共有したりディスカッションをしたりする場所です。より多くのユーザーの交流があったほうがより良いプロダクトに育っていくと思いますので、ぜひご参加ください!