KSK

リッチテキスト(TinyMCE)のソースコード整形

0

MT5.2以降のリッチテキストで導入されている、TinyMCEについてご質問させていただきます。

例えば、予め以下のようなHTMLソースを用意して、フォーマット:なしで貼り付けます。

<div class="hogehoge">
<p><a href="#">aaa</a></p>
<!-- end hogehoge --></div>

<div class="fugafuga">
<a href="#">bbb</a>
<!-- end fugafuga --></div>

そこからリッチテキストにすると、改行等が自動的に整形されます。

<div class="hogehoge">
<p><a href="#">aaa</a></p>
<!-- end hogehoge --></div>
<div class="fugafuga"><a href="#">bbb</a> <!-- end fugafuga --></div>

以下のようなソースを貼り付けた時も同様です。

<ul>
<li>
<span class="date">2017/00/00</span>
<span class="txt"><a href="#">テキストテキストテキスト</a></span>
</li>
<li>
<span class="date">2017/00/00</span>
<span class="txt"><a href="#">テキストテキストテキスト</a></span>
</li>
<li>
<span class="date">2017/00/00</span>
<span class="txt"><a href="#">テキストテキストテキスト</a></span>
</li>
</ul>


<div>
<ul>
<li><span class="date">2017/00/00</span> <span class="txt"><a href="#">テキストテキストテキスト</a></span></li>
<li><span class="date">2017/00/00</span> <span class="txt"><a href="#">テキストテキストテキスト</a></span></li>
<li><span class="date">2017/00/00</span> <span class="txt"><a href="#">テキストテキストテキスト</a></span></li>
</ul>
</div>

タグ構造的には変わっていませんが、
元のソースとは、改行位置が異なる・スペースに置き換わっていることを念頭に置いて、厳密には完全に一致しないという前提で比較しなくてはいけません。

DOM構造に基づいて、ブロック要素とインライン要素を判定して整形しているものと思われますが、これらの整形を無効化する手段に心当たり等はありますでしょうか。(個別に変換する処理を加える、というのは各種のタグや改行が入ってくることを考えると行い辛いです。)

現在のバージョン(MT6.3.5の時点でTinyMCEは3.5.11)では、「cleanup : false」といった設定が使えず(TinyMCE 3.4で削除)、他の設定を試してみても、自動整形を無効化することはできませんでした。

ソースの維持はTinyMCEのポリシーとは馴染まず、またMTに限らずリッチテキストでの入力とHTMLそのままでの出力の両立は難しいかもしれないのですが、
どこかで対処する方法があるか、それとも仕様としてリッチテキストでソースの維持は無理であるのか、ご意見を賜りたく、
どうぞよろしくお願いいたします。

返信する


OpenID対応しています OpenIDについて