Snow Monkey Editor v9.1.0 の概要
機能追加
- ブロックプリセット機能を追加
ブロックプリセット機能を追加
ブロックの設定をプリセットとして保存して、同じ種類のブロックにワンクリックでそのプリセットを適用できる機能を追加しました。動画のほうがわかりやすいと思うので下記をご覧ください。
プリセットはブロックの種類毎に何個でも設定できます。また、プリセットはユーザー毎に個別に保存されます。
プリセットは技術的にはそのブロックの attributes をユーザーメタに保存して、それを他のブロックに setAttributes するという仕組みなのですが、全ての attributes を setAttributes してしまうとブロックが正しく動作しなくなったり、そこはコピーされたくなかったのにーということが起こってしまいます。例えば上の吹き出しブロックの例で言えば、画像や名前はコピーされてほしいけど吹き出しの内容はコピーされたくないですよね。
ということで、デフォルトではブロックプリセット機能を使えるブロックと、コピーできる attributes を制限しています。
現時点は下記のブロックにコアブロックプリセット機能が使用できます。
コピーできない attributes
url、title、text、linkTarget、rel
url
values
なし
また、Snow Monkey Blocks も v17.2.0 からブロックプリセット機能をサポートしており、下記の通り使用できます。
コピーできない attributes
title
ballonBody
なし
lede、note、btnLabel、btnURL、btnTarget
content、url、target、linkDestination
evaluationValue、title
content
title、subtitle、lede、backgroundText、imageID、imageURL、imageAlt、imageWidth、imageHeight、imageMediaType
title、subtitle、lede
title、subtitle、lede、backgroundText、imageID、imageURL、imageAlt、lgImageID、lgImageURL、lgImageAlt、lgImageMediaType、lgImageRepeat、lgFocalPoint、lgImageSizeSlug、mdImageID、mdImageURL、mdImageAlt、mdImageMediaType、mdImageRepeat、mdFocalPoint、mdImageSizeSlug、smImageID、smImageURL、smImageAlt、smImageMediaType、smImageRepeat、smFocalPoint、smImageSizeSlug
title、subtitle、lede、backgroundText、videoURL、videoWidth、videoHeight
title、subtitle、lede、backgroundText
tabs、tabsId
カスタムブロックにブロックプリセット機能を適用させる方法
block.json の supports を拡張することで適用できます。
// 全ての attributes がコピー対象の場合
supports: {
snowmonkeyeditor: {
blockPresets: true,
}
}
// がコピー対象の attributes を制限する場合
supports: {
snowmonkeyeditor: {
blockPresets: {
ignore: ['content'], // content はコピーさせない
}
}
}
