ウェブサイト上で簡単に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ファイル内に、見出しなどのスタイルを指定しておくとそれが適用されます。


HTTP/2が設定されているはずなのに、ブラウザ上でHTTP/1.1になってしまう場合はセキュリティソフトを確認
Visual Studio Codeで開始タグを修正すると自動で閉じタグも修正してくれる拡張機能「Auto Rename Tag」
ソースコードをハイライトする軽量ライブラリ「Highlight.js」の導入方法と使い方
サイトのPocketに保存された回数や、あとで読まれた回数まで解析できるPocketのパブリッシャーツールの登録方法
Vue CLIで共通のSCSSファイルを読み込む方法
HTMLが書ければすぐ習得できるテンプレートエンジン「EJS」の基本的な書き方
コードスニペットの管理方法や命名規則について
Vue CLIでVue.jsの開発環境をセットアップするまでの流れ
MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
SourceTreeでBacklogのGitを使うときに、権限エラーになってしまう場合の解決法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う