/** * Full HTML5 compatibility rule set * These rules define which tags and CSS classes are supported and which tags should be specially treated. * * Examples based on this rule set: * * foo * ... becomes ... * foo * * * ... becomes ... * * *
foo
* ... becomes ... *
foo
* * foo * ... becomes ... * foo * * foo
bar * ... becomes ... * foo
bar * *
hello
* ... becomes ... *
hello
* *
hello
* ... becomes ... *
hello
*/ var wysihtml5ParserRules = { /** * CSS Class white-list * Following CSS classes won't be removed when parsed by the wysihtml5 HTML parser * If all classes should pass "any" as classes value. Ex: "classes": "any" */ "classes": { "wysiwyg-clear-both": 1, "wysiwyg-clear-left": 1, "wysiwyg-clear-right": 1, "wysiwyg-color-aqua": 1, "wysiwyg-color-black": 1, "wysiwyg-color-blue": 1, "wysiwyg-color-fuchsia": 1, "wysiwyg-color-gray": 1, "wysiwyg-color-green": 1, "wysiwyg-color-lime": 1, "wysiwyg-color-maroon": 1, "wysiwyg-color-navy": 1, "wysiwyg-color-olive": 1, "wysiwyg-color-purple": 1, "wysiwyg-color-red": 1, "wysiwyg-color-silver": 1, "wysiwyg-color-teal": 1, "wysiwyg-color-white": 1, "wysiwyg-color-yellow": 1, "wysiwyg-float-left": 1, "wysiwyg-float-right": 1, "wysiwyg-font-size-large": 1, "wysiwyg-font-size-larger": 1, "wysiwyg-font-size-medium": 1, "wysiwyg-font-size-small": 1, "wysiwyg-font-size-smaller": 1, "wysiwyg-font-size-x-large": 1, "wysiwyg-font-size-x-small": 1, "wysiwyg-font-size-xx-large": 1, "wysiwyg-font-size-xx-small": 1, "wysiwyg-text-align-center": 1, "wysiwyg-text-align-justify": 1, "wysiwyg-text-align-left": 1, "wysiwyg-text-align-right": 1 }, "type_definitions": { "visible_content_object": { "methods": { "has_visible_contet": 1 } }, "alignment_object": { "classes": { "wysiwyg-text-align-center": 1, "wysiwyg-text-align-justify": 1, "wysiwyg-text-align-left": 1, "wysiwyg-text-align-right": 1, "wysiwyg-float-left": 1, "wysiwyg-float-right": 1 }, "styles": { "float": ["left", "right"], "text-align": ["left", "right", "center"] } }, "valid_image_src": { "attrs": { "src": /^[^data\:]/i } }, "text_color_object": { "styles": { "color": true, "background-color": true } }, "text_fontsize_object": { "styles": { "font-size": true } }, "text_formatting_object": { "classes": { "wysiwyg-color-aqua": 1, "wysiwyg-color-black": 1, "wysiwyg-color-blue": 1, "wysiwyg-color-fuchsia": 1, "wysiwyg-color-gray": 1, "wysiwyg-color-green": 1, "wysiwyg-color-lime": 1, "wysiwyg-color-maroon": 1, "wysiwyg-color-navy": 1, "wysiwyg-color-olive": 1, "wysiwyg-color-purple": 1, "wysiwyg-color-red": 1, "wysiwyg-color-silver": 1, "wysiwyg-color-teal": 1, "wysiwyg-color-white": 1, "wysiwyg-color-yellow": 1, "wysiwyg-font-size-large": 1, "wysiwyg-font-size-larger": 1, "wysiwyg-font-size-medium": 1, "wysiwyg-font-size-small": 1, "wysiwyg-font-size-smaller": 1, "wysiwyg-font-size-x-large": 1, "wysiwyg-font-size-x-small": 1, "wysiwyg-font-size-xx-large": 1, "wysiwyg-font-size-xx-small": 1 } } }, /** * Tag list * * The following options are available: * * - add_class: converts and deletes the given HTML4 attribute (align, clear, ...) via the given method to a css class * The following methods are implemented in wysihtml5.dom.parse: * - align_text: converts align attribute values (right/left/center/justify) to their corresponding css class "wysiwyg-text-align-*") *

foo

... becomes ...

foo

* - clear_br: converts clear attribute values left/right/all/both to their corresponding css class "wysiwyg-clear-*" *
... becomes ...
* - align_img: converts align attribute values (right/left) on to their corresponding css class "wysiwyg-float-*" * * - add_style: converts and deletes the given HTML4 attribute (align) via the given method to a css style * The following methods are implemented in wysihtml5.dom.parse: * - align_text: converts align attribute values (right/left/center) to their corresponding css style) *

foo

... becomes ...

foo

* * - remove: removes the element and its content * * - unwrap removes element but leaves content * * - rename_tag: renames the element to the given tag * * - set_class: adds the given class to the element (note: make sure that the class is in the "classes" white list above) * * - set_attributes: sets/overrides the given attributes * * - check_attributes: checks the given HTML attribute via the given method * - url: allows only valid urls (starting with http:// or https://) * - src: allows something like "/foobar.jpg", "http://google.com", ... * - href: allows something like "mailto:bert@foo.com", "http://google.com", "/foobar.jpg" * - alt: strips unwanted characters. if the attribute is not set, then it gets set (to ensure valid and compatible HTML) * - numbers: ensures that the attribute only contains numeric characters * - any: allows anything to pass */ "tags": { "tr": { "add_class": { "align": "align_text" } }, "strike": { "unwrap": 1 }, "form": { "unwrap": 1 }, "rt": { "rename_tag": "span" }, "code": {}, "acronym": { "rename_tag": "span" }, "br": { "add_class": { "clear": "clear_br" } }, "details": { "unwrap": 1 }, "h4": { "add_class": { "align": "align_text" } }, "em": {}, "title": { "remove": 1 }, "multicol": { "unwrap": 1 }, "figure": { "unwrap": 1 }, "xmp": { "unwrap": 1 }, "small": { "rename_tag": "span", "set_class": "wysiwyg-font-size-smaller" }, "area": { "remove": 1 }, "time": { "unwrap": 1 }, "dir": { "rename_tag": "ul" }, "bdi": { "unwrap": 1 }, "command": { "unwrap": 1 }, "ul": {}, "progress": { "rename_tag": "span" }, "dfn": { "unwrap": 1 }, "iframe": { "remove": 1 }, "figcaption": { "unwrap": 1 }, "a": { "check_attributes": { "href": "href", // if you compiled master manually then change this from 'url' to 'href' "target": "any" }, "set_attributes": { "rel": "nofollow" } }, "img": { "one_of_type": { "valid_image_src": 1 }, "check_attributes": { "width": "numbers", "alt": "alt", "src": "src", // if you compiled master manually then change this from 'url' to 'src' "height": "numbers" }, "add_class": { "align": "align_img" } }, "rb": { "unwrap": 1 }, "footer": { "rename_tag": "div" }, "noframes": { "remove": 1 }, "abbr": { "unwrap": 1 }, "u": {}, "bgsound": { "remove": 1 }, "sup": { "unwrap": 1 }, "address": { "unwrap": 1 }, "basefont": { "remove": 1 }, "nav": { "unwrap": 1 }, "h1": { "add_class": { "align": "align_text" } }, "head": { "unwrap": 1 }, "tbody": { "add_class": { "align": "align_text" } }, "dd": { "unwrap": 1 }, "s": { "unwrap": 1 }, "li": {}, "td": { "check_attributes": { "rowspan": "numbers", "colspan": "numbers", "valign": "any", "align": "any" }, "add_class": { "align": "align_text" } }, "object": { "remove": 1 }, "div": { "one_of_type": { "visible_content_object": 1 }, "remove_action": "unwrap", "keep_styles": { "textAlign": 1, "float": 1 }, "add_class": { "align": "align_text" } }, "option": { "remove":1 }, "select": { "remove":1 }, "i": {}, "track": { "remove": 1 }, "wbr": { "remove": 1 }, "fieldset": { "unwrap": 1 }, "big": { "rename_tag": "span", "set_class": "wysiwyg-font-size-larger" }, "button": { "unwrap": 1 }, "noscript": { "remove": 1 }, "svg": { "remove": 1 }, "input": { "remove": 1 }, "table": {}, "keygen": { "remove": 1 }, "h5": { "add_class": { "align": "align_text" } }, "meta": { "remove": 1 }, "map": { "remove": 1 }, "isindex": { "remove": 1 }, "mark": { "unwrap": 1 }, "caption": { "add_class": { "align": "align_text" } }, "tfoot": { "add_class": { "align": "align_text" } }, "base": { "remove": 1 }, "video": { "remove": 1 }, "strong": {}, "canvas": { "remove": 1 }, "output": { "unwrap": 1 }, "marquee": { "unwrap": 1 }, "b": {}, "q": { "check_attributes": { "cite": "url" } }, "applet": { "remove": 1 }, "span": { "one_of_type": { "text_formatting_object": 1, "text_color_object": 1, "text_fontsize_object": 1 }, "keep_styles": { "color": 1, "backgroundColor": 1, "fontSize": 1 }, "remove_action": "unwrap" }, "rp": { "unwrap": 1 }, "spacer": { "remove": 1 }, "source": { "remove": 1 }, "aside": { "rename_tag": "div" }, "frame": { "remove": 1 }, "section": { "rename_tag": "div" }, "body": { "unwrap": 1 }, "ol": {}, "nobr": { "unwrap": 1 }, "html": { "unwrap": 1 }, "summary": { "unwrap": 1 }, "var": { "unwrap": 1 }, "del": { "unwrap": 1 }, "blockquote": { "check_attributes": { "cite": "url" } }, "style": { "remove": 1 }, "device": { "remove": 1 }, "meter": { "unwrap": 1 }, "h3": { "add_class": { "align": "align_text" } }, "textarea": { "unwrap": 1 }, "embed": { "remove": 1 }, "hgroup": { "unwrap": 1 }, "font": { "rename_tag": "span", "add_class": { "size": "size_font" } }, "tt": { "unwrap": 1 }, "noembed": { "remove": 1 }, "thead": { "add_class": { "align": "align_text" } }, "blink": { "unwrap": 1 }, "plaintext": { "unwrap": 1 }, "xml": { "remove": 1 }, "h6": { "add_class": { "align": "align_text" } }, "param": { "remove": 1 }, "th": { "check_attributes": { "rowspan": "numbers", "colspan": "numbers" }, "add_class": { "align": "align_text" } }, "legend": { "unwrap": 1 }, "hr": {}, "label": { "unwrap": 1 }, "dl": { "unwrap": 1 }, "kbd": { "unwrap": 1 }, "listing": { "unwrap": 1 }, "dt": { "unwrap": 1 }, "nextid": { "remove": 1 }, "pre": {}, "center": { "rename_tag": "div", "set_class": "wysiwyg-text-align-center" }, "audio": { "remove": 1 }, "datalist": { "unwrap": 1 }, "samp": { "unwrap": 1 }, "col": { "remove": 1 }, "article": { "rename_tag": "div" }, "cite": {}, "link": { "remove": 1 }, "script": { "remove": 1 }, "bdo": { "unwrap": 1 }, "menu": { "rename_tag": "ul" }, "colgroup": { "remove": 1 }, "ruby": { "unwrap": 1 }, "h2": { "add_class": { "align": "align_text" } }, "ins": { "unwrap": 1 }, "p": { "add_class": { "align": "align_text" } }, "sub": { "unwrap": 1 }, "comment": { "remove": 1 }, "frameset": { "remove": 1 }, "optgroup": { "unwrap": 1 }, "header": { "rename_tag": "div" } } };