LifeType 目前的版本是使用 TinyMCE 來當 HTML(WYSWYG) Editor, 這套很聰明也蠻標準的, 但是太過聰明有時後反而有點被綁住了.
為何要修改讓 TinyMCE 吃某些 HTML Tag
有些 Widget/Badge 的寫法是 <script src="oox" class="abc"></script>, 但是裡面的 class="abc" 會被 TinyMCE 給濾掉, 造成此 Widget 嵌入會出問題, 所以要想辦法讓 TinyMCE 開放 script 裡面的 class 屬性(避免 script 的 class 屬性被濾掉).
註: 之前 Ruby on Rails 系列的文章, 想要透過 wowTree 來做整理做相關文章(這樣子就不用每增加一篇文章, 要回頭改前面所有文章的 "相關文章" 區塊, 只需要在 wowTree 加即可), 就是遇到這個狀況.
修改完成並可嵌入 Ruby on Rails 的整理如下:
修改方式
修改讓 TinyMCE 能吃 script 的 class 屬性的方法如下: (假設 LifeType 的目錄在 /var/www/lifetype)
- vim /var/www/lifetype/js/tinymce/tiny_mce-plog.js
- 找到第 213 行的: +"script[charset|defer|language|src|type],"
- 加上 |class 即可, 213 行會變成這樣: +"script[charset|defer|language|src|type|class],"
- 存檔即可.
不過, 改完的同時, wowTree 也已經不需要 script 的 class 屬性了.. Orz.. (就是上述不用改, 一樣可以嵌入使用), 防止有其它的類似的狀況, 還是於此做個紀錄.
LifeType tiny_mce-plog.js 發現
另外一個發現是, tiny_mce-plog.js 包含所有 HTML 的 Tag 允許哪些屬性的列表, 是相當實用的寶庫呀~ 😛