Использование Markdown звучит как хорошая альтернатива, но я где-то читал, что у него проблемы со встроенными фреймами. Если это работает для вас, то это пушистый. Я еще не проверял.
Однако, если вы не хотите отказываться от TinyMCE, вы можете сделать следующее:
tinymce.activeEditor.schema.setValidElements('*[*]')
Это говорит активному редактору, что теперь все элементы действительны.
К сожалению, как только вы закроете и снова откроете окно редактирования, вновь запущенный редактор снова удалит их, поэтому я написал небольшой скрипт Greasemonkey , который автоматически устанавливает valid_elements при инициализации редактора.
// ==UserScript==
// @name Lift TinyMCE tag restrictions
// @namespace http://claviger.net
// @include *.tumblr.com/*
// @version 1
// @grant none
// ==/UserScript==
if (typeof tinyMCE !== 'undefined') {
tinyMCE.onAddEditor.add(function(mgr, ed) {
ed.settings.valid_elements = '*[*]';
});
}
Это работает довольно хорошо для меня, но я думаю, что в редких случаях между сценарием Greasemonkey и фактической инициализацией TinyMCE происходит гонка. Я предполагаю, что последний должен иногда бежать перед первым и сорвать мой маленький взлом. Хотя этого не происходило последние двадцать или около того раз, когда я перезагружал страницу, и, если это произошло, просто перезагрузил без сохранения. (Может, у кого-то есть идеи, как этого избежать?)
Кстати, атрибут class
, похоже, не удаляется, поэтому в качестве другой альтернативы вы можете определить что-то вроде .alignleft
в теме вашего блога и использовать его для изображений. Тогда это не будет похоже на TinyMCE, но посетитель или блог увидят красивую версию.