Tumblr帖子允许哪些HTML属性? (TinyMCE的)

时间:2011-12-01 19:38:24

标签: tinymce tumblr

创建Tumblr帖子并使用HTML编辑器选项时,当我向元素添加特定的HTML属性时,TinyMCE富文本编辑器几乎可以删除所有内容。

即。这样:

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

成为这个:

<span class="something">

并且不受影响:

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

我可以1)禁用此清理(这是荒谬的,至少是当前如何实现)或2)获取所有有效属性的列表,以便我可以选择最佳的语义选择?

3 个答案:

答案 0 :(得分:10)

这也让我很伤心。并且搜索谷歌任何tumblr开发帮助比“如何编辑文本颜色”更复杂,oy vey。我不希望任何人。

Tumblr用户无法控制运行控制面板的html或js,因此无法添加任何改变TinyMCE配置的文件。但你可以把它关掉。在Tumblr settings信息中心标签中,您会找到文字编辑器部分。选择普通html或Markdown将停用TinyMCE,并允许您将表单,数据属性和任何非白名单html发布到您的内心。

答案 1 :(得分:0)

1)可以使用以下tinymce init参数cleanup:false,

关闭剥离元素

2)有效的html elmements的默认定义可以在这里找到: http://www.tinymce.com/wiki.php/Configuration:valid_elements

为了将data-random作为span的属性,您需要设置valid_children init parameter,如下所示

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]", //...

答案 2 :(得分:0)

使用Markdown听起来是一个不错的选择,但我已经在某处看到嵌入式iframe存在问题。如果它对你有用,那就太蓬松了。我还没有测试过它。

但是,如果你不想放弃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中看起来不会很多,但访客或博客会看到漂亮的版本。