Steamer Lane Studio技術備忘録Movable Type

MovableType8のTinyMCE6でmtevalを使う際にmtタグの<>が実態参照されるのを停める

movable-type MovableType8のTinyMCE6でmtevalを使う際にmtタグの<>が実態参照されるのを停める
作成日: 2025年4月27日

前にもやったけど、最近WPばっかでMT弄ってなかったが9がでるってので今更7.1から8.4にしたところ、投稿画面が酷い状況だった。
先ずプラグイン整理して、7.1で使えてたTinyMCE1xが使えないので削除しTinyMCE6にして、assetのimage.pmを毎度書き換えてるが書き換えて画像を入れたらaltの<mtentrytitle>の<>が実態参照されてタイトル読まない。
過去投稿でTinyMCEのコアファイル書き換えをしてたのを思い出し、同様に治そうと思ったがファイルのコードが変わっていて単純に変えられなかった。
AI使いながらよくよく実態参照している部分を探し、変更してようやく実態参照されないようにできた。

const makeMap$3 = Tools.makeMap;// const attrsCharsRegExp = /[&\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g;// const textCharsRegExp = /[&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g;// const rawCharsRegExp = /[<>&\"\']/g;const attrsCharsRegExp = /[&\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g;const textCharsRegExp = /[&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g;const rawCharsRegExp = /[&\"\']/g;const entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;const asciiMap = {128: '\u20AC',130: '\u201A',131: '\u0192',132: '\u201E',133: '\u2026',134: '\u2020',135: '\u2021',136: '\u02c6',137: '\u2030',138: '\u0160',139: '\u2039',140: '\u0152',142: '\u017d',145: '\u2018',146: '\u2019',147: '\u201C',148: '\u201D',149: '\u2022',150: '\u2013',151: '\u2014',152: '\u02DC',153: '\u2122',154: '\u0161',155: '\u203A',156: '\u0153',158: '\u017e',159: '\u0178'};
const baseEntities = {'"': '&quot;','\'': '&#39;',// '<': '&lt;',// '>': '&gt;','&': '&amp;','`': '&#96;'};const reverseEntities = {// '&lt;': '<',// '&gt;': '>','&amp;': '&','&quot;': '"','&apos;': `'`};

mt-static/plugins/TinyMCE6/tiny_mce/tinymce.jsの2752行目から
削除せずコメントアウトして差し替えを書いた。
tinymce.min.jsが読まれると思うが、こちらも同様の指定となるよう<>を削除、置換指示も削除する。

mtevalモデファイアがあるのにTinyMCEリッチテキストで実態参照されるって、おかしいよな。
MTは3から使っているが、いくらTinyMCEがライブラリっつーかプラグイン扱いだとはいえ本末転倒だよな。
非商用だから個人無償版でやってるけどさ、これ10万払って機能不全とか、WPにシェア取られるわけだよな。