Какие атрибуты HTML разрешены в записи Tumblr?(TinyMCE) - PullRequest
5 голосов
/ 01 декабря 2011

При создании публикации Tumblr и использовании опции редактора HTML, когда я добавляю определенные атрибуты HTML к элементам, редактор форматированного текста TinyMCE удаляет практически все.

т.е. это:

<span class="something" data-random="foobar">

становится таким:

<span class="something">

и на это не влияет:

<span class="something" title="foobar">

Так могу ли я: 1) отключить эту очистку (что нелепо, по крайней мере, как это в настоящее время реализовано) или 2) получить список всех допустимых атрибутов, чтобы я мог выбрать лучший семантический выбор?

Ответы [ 3 ]

10 голосов
/ 23 февраля 2012

Это меня тоже убивало. И поиск в Google для любого разработчика Tumblr поможет сложнее, чем "Как мне отредактировать цвет текста", оу, очень. Я бы никому этого не пожелал.

Пользователи Tumblr не имеют никакого контроля над html или js, которые запускают панель управления, и поэтому не могут добавлять файлы, которые изменяют конфигурацию TinyMCE. Но вы можете просто выключить его. На вкладке Панель инструментов настроек Tumblr вы найдете раздел Текстовый редактор . Выбор обычного html или Markdown отключит TinyMCE и позволит вам публиковать формы, атрибуты данных и любые html, не входящие в белый список, к содержанию вашего сердца.

0 голосов
/ 28 июля 2013

Использование 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, но посетитель или блог увидят красивую версию.

0 голосов
/ 02 декабря 2011

1) Элементы зачистки могут быть отключены с помощью следующего параметра инициализации tinymce cleanup:false,

2) Здесь можно найти определение допустимых HTML-значений по умолчанию: http://www.tinymce.com/wiki.php/Configuration:valid_elements

Чтобы сохранить data-random в качестве атрибута диапазона, вам нужно установить параметр инициализации *1009* следующим образом

valid_children: "body[p|ol|ul|hr]" +
",span[a|b|i|u|sup|sub|img|data-random|#text]" +
",a[span|b|i|u|sup|sub|img|#text]", //...
...