ウェブサイト上で簡単にWYSIWYGエディタを実装する「TinyMCE」

単なる入力機能だけではなく、入力した文字を選択して太字にしたり色を変えたりリンクを付けたりなどの機能があるエディタのことをWYSIWYGエディタと呼びます。これは「What You See Is What You Get(見た通りのものが得られる)」の略で、エディタ上で見た通りに文章を編集できます。
WYSIWYGエディタを実装するときは、すでに有名な「TinyMCE」を使うと非常に簡単に実装できます。
TinyMCE
TinyMCEはJavaScriptで簡単にリッチテキストエディタを実装できるJavaScriptライブラリです。
- 機能が豊富でカスタマイズも柔軟に可能
- ツールバーの追加
- ボタンの入れ替えや削除
- 独自のボタンを追加
- WordPressにも採用されている
公式サイトから「Download TinyMCE SDK Now」をクリックしてダウンロードして、中に入っているJavaScriptファイルを読み込めば使えます。
(一緒に入っている「plugins」「langs」「themes」などのフォルダも必要です)
基本的な使い方
TinyMCEはtextareaに対してJavaScriptを適用して使います。
<textarea id="tinymce"></textarea>「tinymce.init」で設定の初期化ができて、「selector」でtextareaのidやclassを指定します。
tinymce.init({
selector: '#tinymce',
});これでWYSIWYGエディタが表示されます。
日本語化
公式サイトの「Language Packages」ページから日本語のフォルダをダウンロードして「ja.js」を「js/tinymce/」にある「langs」へ移動します。
あとはtinymce.initで「language」に「ja」を指定します。
tinymce.init({
selector: '#tinymce',
language: 'ja',
});これで日本語化されました。
初期入力内容を設定
<textarea>の中にHTMLを入力すれば、初期入力内容として表示されます。
<textarea id="tinymce">
<p>ここに入力したHTMLは<strong>初期入力内容</strong>として表示されます。</p>
</textarea>最低限のエディタのカスタマイズ
エディタの横幅や高さの設定
「width」や「height」に数値を指定すると、エディタの横幅や高さを指定できます。
tinymce.init({
selector: '#tinymce',
language: 'ja',
width: 680,
height: 420
});他にも、エディタの右下をドラッグして拡大縮小するときに、最小のサイズを指定する「min_width」「min_height」や最大のサイズを指定する「max_width」「max_height」もあります。
ツールバーの変更
「toolbar」ではツールバーに表示するツールを指定します。
「|」で区切りアイコンを表示できて、半角スペースで区切りながら表示したいツールを左から順に書いていきます。
tinymce.init({
selector: '#tinymce',
language: 'ja',
toolbar: 'undo redo | bold italic link | image table',
plugins: "image link table",
});ツールの種類と名前は、公式サイトの「Toolbar Buttons」で確認できます。
また、一部のツールは「plugins」に指定してプラグインファイルを読み込む必要があります。
クレジットの非表示
「branding」を「false」にすると、下に表示される「Powered by TinyMCE」というクレジットが非表示になります。
tinymce.init({
selector: '#tinymce',
language: 'ja',
branding: false
});CSSの読み込み
「content_css」にパスを指定すると、CSSの読み込みができます。
tinymce.init({
selector: '#tinymce',
language: 'ja',
content_css: '/assets/css/editor.css'
});これで指定したCSSファイル内に、見出しなどのスタイルを指定しておくとそれが適用されます。


CSSのz-indexの確認や管理を便利にする方法
JavaScriptで特定のOSやブラウザの判定を行う方法
gulp 4.0から新しく加わったseriesとparallelについての備忘録
Visual Studio Codeで開始タグを修正すると自動で閉じタグも修正してくれる拡張機能「Auto Rename Tag」
iCLUSTA+でWordPressのアップロード容量を上げたいときのメモ
ダミーとして使うURLは適当に入力せず、決まったものを使うようにしよう
さくらのレンタルサーバで.htaccessが原因で500エラーになってしまう場合のチェックリスト
HTMLが書ければすぐ習得できるテンプレートエンジン「EJS」の基本的な書き方
Visual Studio Codeを使ったコード整形方法(Fomatter)
アクセス解析ツールの定番!!Googleアナリティクスの登録方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする