我正在构建一个像 WordPress 页面构建器一样使用的页面构建器 - 它不需要更改我在页面中编程的任何 html(我是一名程序员并且正在使用它 - 这样我就可以轻松地修改页面并且它是更改,而不必处理 GIT 的工具)。
我之所以把它做成所见即所得的编辑器,是因为我想让一些与我一起工作的非技术人员编辑一些内容(即更改图像、修复拼写、添加内容等)。
我正在使用 bootstrap-wysihtml5(链接)。
编辑:
查看源代码后,我发现我想关闭部分 HTML Sanitizer。显然我需要一些帮助来确保我的代码是好的,但我不希望它删除类/标签/...等。
具有相同 jist 的另一个问题:link
原始问题:
我已经研究了如何做到这一点,并发现我可以使用ParserRules
. 但是在写了 25 多行之后,它似乎仍然在弄乱我的 html。
现在我可以继续并继续关闭这些 parserRules,但我认为这可能不是正确的方法,因为我将继续遇到这个天才系统的怪癖。
有没有办法删除它,这样它就不会剥离 html?
原始 HTML
<form action="/contact-us/send" name="contact-form" id="contact-form" method="post">
<table class="form-table"><tbody>
<tr class="field">
<td class="form-label"><label for="fullname"><span class="req"></span> Full Name</label></td>
<td class="form-input"><input type="text" name="fullname" id="fullname"></td>
</tr>
<tr class="field">
<td class="form-label"><label for="email"><span class="req"></span> Email</label></td>
<td class="form-input"><input type="text" name="email" id="email"></td>
</tr>
<tr class="field">
<td class="form-label"><label for="phone"><span class="req"></span> Phone</label></td>
<td class="form-input"><input type="text" name="phone" id="phone"></td>
</tr>
<tr class="field">
<td class="form-label"><label for="feedback"><span class="req"></span> Questions/Feedback</label></td>
<td class="form-input"><textarea name="feedback" id="feedback"></textarea></td>
</tr>
</tbody></table>
</form>
当前输出 HTML
<form>
<span>
<span>
<label> Full Name</label>
<input>
</span>
<span>
<label> Email</label>
<input>
</span>
<span>
<label> Phone</label>
<input>
</span>
<span>
<label> Questions/Feedback</label>
<textarea></textarea>
</span>
</span>
</form>
当前的 ParserRules
parserRules: {
classes: {
// (path_to_project/lib/css/wysiwyg-color.css)
"wysiwyg-color-silver": 1,
"wysiwyg-color-gray": 1,
"wysiwyg-color-white": 1,
"wysiwyg-color-maroon": 1,
"wysiwyg-color-red": 1,
"wysiwyg-color-purple": 1,
"wysiwyg-color-fuchsia": 1,
"wysiwyg-color-green": 1,
"wysiwyg-color-lime": 1,
"wysiwyg-color-olive": 1,
"wysiwyg-color-yellow": 1,
"wysiwyg-color-navy": 1,
"wysiwyg-color-blue": 1,
"wysiwyg-color-teal": 1,
"wysiwyg-color-aqua": 1,
"wysiwyg-color-orange": 1
},
tags: {
"b": {},
"i": {},
"br": {},
"ol": {},
"ul": {},
"li": {},
"h1": {},
"h2": {},
"h3": {},
"blockquote": {},
"u": 1,
"img": {
"check_attributes": {
"width": "numbers",
"alt": "alt",
"src": "url",
"height": "numbers"
}
},
"a": {
set_attributes: {
target: "_blank",
rel: "nofollow"
},
check_attributes: {
href: "url" // important to avoid XSS
}
},
"span": 1,
"div": 1,
// to allow save and edit files with code tag hacks
"code": 1,
"pre": 1,
"label": {},
"legend": {},
"textarea": {},
"html": {},
"button": {},
"select": {},
"option": {},
"iframe": {},
"form": {},
"head": {},
"object": {},
"noscript": {},
"svg": {},
"input": {},
"meta": {},
"video": {},
"canvas": {},
"source": {},
"frame": {},
"style": {},
"xml": {},
"param": {},
"audio": {},
"link": {},
"script": {},
"colgroup": {},
"comment": {},
"header": {}
}
},
我还试图切换它是如何删除课程的(正如这个问题所问的那样 - 不知道他在做什么......但标题很合适) - 这似乎是由ParserRules:classes
; 再次,我想我需要关闭整个 ParserRules。