CKEditor で Source Editing プラグインを使うとき

Share

サイドプロジェクトで JavaScript の WYSWIG エディタの CKEditor というのを触る機会があった。

CKEditor 5 | Powerful Framework with Modular Architecture
Easy to customize RichText Editor with a powerful framework, a modular architecture, and modern features like Collaborative Editing.

これにはいろいろなプラグインがあり、HTML を直接編集するプラグインを使いたかったのだけどちょっと苦労したのでメモしておく。ちなみに CKEditor のバージョンは 5 です。

CKEditor プラグイン

CKEditor でプラグインを使うためには、基本的には自分でプラグイン取り込んで配布ファイルを自前でビルドする必要がある。github からクローンして手元でビルドしても大丈夫だけど、さすがに大変なのでオンラインビルドツールが用意されている。

CKEditor 5 Builder
Create and customize your online editor with CKEditor 5 Builder. Choose features, set up your editor, and see changes in real-time.

ここで任意のプラグインを選択しビルドされたファイルをサーバーにアップロードして script src で読み込めば良い。あとは、利用するプラグインに応じで config を設定する必要がある。

ちなみに <script> タグでビルドされたプラグインを読みこむだけでは使えないので注意。公式サイトにも書いてある。


ただ、この方法だと自分で配布環境を用意しないといけないのでめんどくさい。そこで便利な方法として公式プラグインが全部入った配布ファイルが用意されている。

Predefined builds | Legacy CKEditor 5 documentation
Learn how to install, integrate, configure, and develop CKEditor 5. Get to know the CKEditor 5 Framework. Browse through the API documentation and online samples.

これを使うが非常に楽で今回はこのビルドを使った。ただ、デメリットもあるので考慮したほうがよい。

  • 不要なプラグインも全て入るので読み込みが遅くなる。
  • 不要なプラグインを明示的に除去しないとだめ。
    • ここに詳しく書いてある

ちなみに、Source Editing はデフォルトではセキュリティのために編集できるタグの種類がかなり制限されている。それを緩和するには下記の設定をいれる。

htmlSupport: {
    allow: [
        {
            name: /.*/,
            attributes: true,
            classes: true,
            styles: true
        }
    ]
}

このようにすべて許可するのが楽だが誰でも投稿できるところでこれをすると脆弱性となるので注意する。管理者しか使えないような場面では大丈夫だと思うが。

Source Editing のバグ

Source Editing で inline 要素の中に <br> で改行をいれると要素が2つに分かれてしまうというバグがあった。github で issue になっているがなかなかなおらなさそうだった。

Should `br` break inline elements? · Issue #1068 · ckeditor/ckeditor5
At this moment if you press Shift + Enter inside an inline element, <br> element won’t be inserted as a chidren of the inline element. The <br> will break the inline element: I’m not sure how it sh…

暫定対応としては schema に下記の対応をいれた。CKEditor の内部編集モデルを理解していないため、これでなおる理屈はよく分かっていない。とりあえずは解決したので紹介しておく。

editor.model.schema.extend('softBreak', {
  allowAttributesOf: '$text'
});

Read more

2026Q1

気が付けば今年もあっという間に3か月が過ぎてしまった。 転職した 1月から新しい会社に勤めてる。転職といいつつ社内制度を利用したグループ会社への転籍だから、世間一般の「転職」とはだいぶ違うかな。知り合いもそれなりにいる。でも、雇用契約は巻き直しだったので公的には転職。健康保険組合も変わって、一時的にマイナ保険証が使えなくて不便だった。オフィスが違うからなのか、文化もけっこう違うし環境の変化はそれなりにあった。 転籍した理由はいろいろあるけれど、40歳目前にしてそろそろソフトウェアエンジニアとして錆びてくる部分が出てくるなと思っていた。それに抗うための一番の方法は環境を変えることだと思った。会社を変える方法以外にそれを回避する手段はあったのだろうけど、会社を変えるのが一番効率のいい手法だと思ってるし、これまで経験もそれを肯定していたから。とはいえ、子育て中のサラリーマンが全く知らない新しい会社に飛び込むのはいろいろとハードルが高く、ある程度は転職先の状況が読めるこの形に落ち着いた。 いくつか変化はあったが、より AI に近いところで仕事できるようになった。前職でも AI は使っ

2025年の冬

今年ももう終り。読んだ本などのメモ。 『三体0【ゼロ】 球状閃電』 三体0【ゼロ】 球状閃電 (ハヤカワ文庫SF) | 劉 慈欣, 大森 望, 光吉 さくら, ワン チャイ | 中国の小説・文芸 | Kindleストア | AmazonAmazonで劉 慈欣, 大森 望, 光吉 さくら, ワン チャイの三体0【ゼロ】 球状閃電 (ハヤカワ文庫SF)。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいただけます。このブランドからフォロー これまでに三体シリーズの Ⅰ、Ⅱ、Ⅲ はすでに読んでいて、また三体っぽい重めの雰囲気の小説が読みたいと思っていたところ、三体シリーズの前日譚という触れ込みで Amazon のおすすめに出てきたから手に取ってみた。 著者は三体シリーズと同じ劉慈欣。出版の時系列としては、原著は劉慈欣が三体を執筆する直前に出版されていて、三体の人気があって日本語訳が最近になって出版された。原著のタイトルは「球状閃電」であり、

2025年の秋

いつのまにか11月になっていた。今年もあと一月しかない。読んだ本を書いていく。 『すごい物理学講義』 Amazon.co.jp: すごい物理学講義 : カルロ・ロヴェッリ, 竹内 薫, 栗原 俊秀: 本Amazon.co.jp: すごい物理学講義 : カルロ・ロヴェッリ, 竹内 薫, 栗原 俊秀: 本Amazonのストアでお買い物 ›フォロー 前の記事で少しふれた最新の理論物理学の本。ちゃんと最後まで読んだ。 著者はループ量子重力理論の研究者。本の内容は、古典力学、電磁気学、相対性理論、量子力学を経て量子重力理論に至るまでの解説。最初の章では古代ギリシアの原子論についても触れ、「最新の理論物理学的の視点で見ると、その時代の世界の捉え方はいい線いってた」みたいな話も。電磁気学、相対性理論、量子力学、それぞれについての解説本は軽く読んだことはあるけど(Newton とかね)、理論が発展してきた流れを知ることができてよかった。 この本の中でキャッチーなのは「第7章: 時間は実は存在しない」のところで、ループ量子重力理論では時間を扱うことなく理論を構築することができる、

2025の夏

月に一本はブログを書きたいから最近のできごとを書いておく。まとまりはないが書かないよりはよい。本当は8月中に投稿したかったけど、9月になってしまった。 『因果推論の科学 - なぜ?の問いにどう答えるか』 因果推論の科学 「なぜ?」の問いにどう答えるか | ジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大 |本 | 通販 | AmazonAmazonでジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大の因果推論の科学 「なぜ?」の問いにどう答えるか。アマゾンならポイント還元本が多数。ジューディア・パール, ダナ・マッケンジー, 松尾 豊, 夏目 大作品ほか、お急ぎ便対象商品は当日お届けも可能。また因果推論の科学 「なぜ?」の問いにどう答えるかもアマゾン配送商品なら通常配送無料。Amazonのストアでお買い物 ›フォロー 夏前から読んでた本。 因果推論という新しい統計的手法を解説した本。この分野の潮流として、「ドナルド・