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

サイドプロジェクトで 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

2025年の秋・冬

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

2025の夏

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

『コンピュータシステムの理論と実装』を始めた

『コンピュータシステムの理論と実装 - モダンなコンピュータの作り方』を始めた。 コンピュータシステムの理論と実装コンピュータを理解するための最善の方法はゼロからコンピュータを作ることです。コンピュータの構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できます。本書では、これらコンピュータの構成要素をひとつずつ組み立てます。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計します。そして、オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させます。実行環境はJava(Mac、Windows、Linuxで動作)。 ● 本書のサポートサイト ● 本書で使用するツール「Nand2tetris Software Suite」 ● 「Nand2tetris Software Suite」のチュートリアルO'Reilly logoNoam Nisan、Shimon Schocken 著、斎藤 康毅 訳 本書では、これらコンピュータの構成要素をひとつずつ組み

『1984年』ジョージ・オーウェル著

ジョージ・オーウェルの『1984年』を読みました。 一九八四年 (ハヤカワepi文庫) | ジョージ・オーウェル, 高橋 和久, 高橋和久 | 英米の小説・文芸 | Kindleストア | AmazonAmazonでジョージ・オーウェル, 高橋 和久, 高橋和久の一九八四年 (ハヤカワepi文庫)。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいただけます。Amazonフォロー 特に紹介するまでもない有名な本だからあらすじとかそういうのは書かなくていいかな。海外では『読んだことないけど読んだふりして語る本』の第一位らしい。だから、意外とみんな実際に読んだことはないのかもしれない。それでも、“BIG BROTHER IS WATCHING YOU” とか、“WAR IS PEACE” はよくオマージュされてるし、有名なのはたぶん間違いない。 大学生活の終わりのころ、ハヤカワから出てる旧訳を読んで感銘(?)を受けたけど記憶も薄れてきて、新訳もたくさん出てたからもう一度手に取った。訳