はじめに
Wordpressでも設定するあれです。Movabletypeでも試してみました。
TinyMCEのtalbe初期値,border-collapse,boder,widthをなんとかしてみようという話・・
ネット上でないので試してみた・・
プラグインをつくってみる・・
js_includeにJavaScript入れる・・ExtendTinyMCEを参考に・・
下記を見ながら・・・
https://www.tiny.cloud/docs/plugins/opensource/table/
ファイル構成
├─mt-static
│ └─plugins
│ └─ExTinyMCETable
│ extension.js
└─plugins
└─ExTinyMCETable
│ config.yaml
│
└─tmpl
extension.tmpl
mt-static\plugins\ExTinyMCETable\extension.jsの内容
(function ($) {
var config = MT.Editor.TinyMCE.config;
$.extend(config, {
// invalid_styles: {
// 'tr' : 'width height',
// 'th' : 'width height',
// 'td' : 'width height'
// },
table_default_attributes: {},
table_default_styles: {},
content_style: 'table {width: 100%}',
table_use_colgroups: false,
table_resize_bars: false
});
}(jQuery));
plugins\ExTinyMCETable\tmpl\extension.tmpl
<mt:setvarblock name="js_include" append="1">
<script type="text/javascript" src="<mt:var name="static_uri">plugins/ExTinyMCETable/extension.js?v1.0.0"></script>
</mt:setvarblock>
plugins\ExTinyMCETable\config.yaml
id: ExTinyMCETable
name: ExTinyMCETable
version: 1.0.0
author_link:
author_name:
description: <MT_TRANS phrase="Extend TinyMCE Table.">
l10n_lexicon:
ja:
Extend TinyMCE Table.: "TinyMCEのtable機能拡張セット"
editors:
tinymce:
extension: extension.tmpl
動作確認・・
記事、ウェブページの、tinymceの部分は動作した・・
でも・・MTBlockEditorのテーブルでは、動作しなかった・・・泣
デバックすると・・下記の const DefaultRenderOptionで固定でいるよう・・
table_default_stylesとか拾ってくるようになっているみたいだけど・・固定になるようです・・
\mt-static\plugins\TinyMCE6\tiny_mce\models\dom\model.min.js
サポートきいてみた
TinyMCEの設定は内部構造に該当し、カスタマイズは想定しておりません。
今後のアップデートによって別の仕組みに変更となる可能性もあり、内部の設定を直接変更することは非推奨となります。
まぁ。。ブラウザーデバッカーで確認したとき、TinyMCE内に設定した値をマージする処理もあったりしたけど。テーブルプラグインの方で・・
リセット?されてたのか。MTがやっているのかわからないかったので・・聞いてみた。TinyMCE側でやっているようで、MTの方ではない様です。
mt-static\plugins\ExTinyMCETable\extension.jsの内容を差し替え
サポート、今後の保証はないけど...下記で。。
今後のアップデートによって別の仕組みに変更となる可能性ってあるので・・・自己判断で・・
tinyMCE.on("AddEditor", (ev) => {
const config = {
table_default_attributes: {},
table_default_styles: {},
content_style: "table {width: 100%}",
table_use_colgroups: false,
table_resize_bars: false,
};
const ed = ev.editor;
ed.on("init", () => {
Object.keys(config).forEach((key) => {
ed.options.set(key, config[key]);
});
});
});
さいごに
レスポンシブ対応だと、困りますよね・・
関連
Movabletype 6 から7へアップデート検証
記事
https://www.omakase.net/blog/2023/03/movabletype-6-7up.html