RTE HTMLarea
5.1. Default configuration of RTE content transformation
This default configuration establishes default settings in Page TSConfig for RTE content transformation.
For documentation of RTE tranformations, see: http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/5/2/
For documentation of Page TSConfig configuration of RTE processing, see: http://typo3.org/documentation/document-library/references/doc_core_tsconfig/current/view/1/3/
For documentation of the HTMLparser, see: http://typo3.org/documentation/document-library/references/doc_core_tsref/current/view/5/17/
For documentation of RTE settings in TCA, see: http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/4/3/#id3665895
The following is inserted in Page TSConfig:
## Default RTE processing rules
RTE.default.proc {
## TRANSFORMATION METHOD
## We assume that CSS Styled Content is used.
overruleMode = ts_css
## DO NOT CONVERT BR TAGS INTO LINEBREAKS
## br tags in the content are assumed to be intentional.
dontConvBRtoParagraph = 1
## PRESERVE DIV SECTIONS - DO NOT REMAP TO P
preserveDIVSections = 1
## TAGS ALLOWED OUTSIDE P & DIV
allowTagsOutside = hr, address
## TAGS ALLOWED
## Added to the default internal list: b,i,u,a,img,br,div,center,pre,font,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,strike,span
## But, for the sake of clarity, we use a complete list in alphabetic order.
## center, font, strike, sdfield and u will be removed on entry (see below).
## b and i will be remapped on exit (see below).
## Note that the link accessibility feature of htmlArea RTE does insert img tags.
allowTags (
a, abbr, acronym, address, blockquote, b, bdo, big, br, caption, center, cite, code, col, colgroup, del, dfn, div, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, ins, kbd, li, link, ol, p, pre, q, samp, sdfield, small, span, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th, tr, tt, u, ul, var
)
## TAGS DENIED
## Make sure we can set rules on any tag listed in allowTags.
denyTags >
## ALLOWED P & DIV ATTRIBUTES
## Attributes class and align are always preserved
## Align attribute will be unset on entry (see below)
## This is a list of additional attributes to keep
keepPDIVattribs = id, title, dir, lang, xml:lang
## ALLOW TO WRITE ABOUT HTML
dontUndoHSC_db = 1
dontHSC_rte = 1
## CONTENT TO DATABASE
entryHTMLparser_db = 1
entryHTMLparser_db {
## TAGS ALLOWED
## Always use the same list of allowed tags.
allowTags < RTE.default.proc.allowTags
## TAGS DENIED
## Make sure we can set rules on any tag listed in allowTags.
denyTags >
## AVOID CONTENT BEING HSC'ed TWICE
htmlSpecialChars = 0
tags {
## REMOVE IMG TAGS
img.allowedAttribs = 0
img.rmTagIfNoAttrib = 1
## CLEAN ATTRIBUTES ON THE FOLLOWING TAGS
span.fixAttrib.style.unset = 1
p {
allowedAttribs = id, title, dir, lang, xml:lang, class
fixAttrib.align.unset = 1
}
div < .p
hr.allowedAttribs = class
b.allowedAttribs = id, title, dir, lang, xml:lang, class
bdo.allowedAttribs = id, title, dir, lang, xml:lang, class
big.allowedAttribs = id, title, dir, lang, xml:lang, class
blockquote.allowedAttribs = id, title, dir, lang, xml:lang, class
cite.allowedAttribs = id, title, dir, lang, xml:lang, class
code.allowedAttribs = id, title, dir, lang, xml:lang, class
del.allowedAttribs = id, title, dir, lang, xml:lang, class
dfn.allowedAttribs = id, title, dir, lang, xml:lang, class
em.allowedAttribs = id, title, dir, lang, xml:lang, class
i.allowedAttribs = id, title, dir, lang, xml:lang, class
ins.allowedAttribs = id, title, dir, lang, xml:lang, class
kbd.allowedAttribs = id, title, dir, lang, xml:lang, class
label.allowedAttribs = id, title, dir, lang, xml:lang, class
q.allowedAttribs = id, title, dir, lang, xml:lang, class
samp.allowedAttribs = id, title, dir, lang, xml:lang, class
small.allowedAttribs = id, title, dir, lang, xml:lang, class
strike.allowedAttribs = id, title, dir, lang, xml:lang, class
strong.allowedAttribs = id, title, dir, lang, xml:lang, class
sub.allowedAttribs = id, title, dir, lang, xml:lang, class
sup.allowedAttribs = id, title, dir, lang, xml:lang, class
tt.allowedAttribs = id, title, dir, lang, xml:lang, class
u.allowedAttribs = id, title, dir, lang, xml:lang, class
var.allowedAttribs = id, title, dir, lang, xml:lang, class
}
## REMOVE OPEN OFFICE META DATA TAGS AND DEPRECATED HTML TAGS
## We use this rule instead of the denyTags rule so that we can protect custom tags without protecting these unwanted tags.
removeTags = center, font, o:p, sdfield, strike, u
## PROTECT CUSTOM TAGS
keepNonMatchedTags = protect
}
HTMLparser_db {
## STRIP ALL ATTRIBUTES FROM THESE TAGS
## If this list of tags is not set, it will default to: b,i,u,br,center,hr,sub,sup,strong,em,li,ul,ol,blockquote,strike.
## However, we want to keep xml:lang attribute on most tags and tags from the default list where cleaned on entry.
noAttrib = br
## XHTML COMPLIANCE
## Note that applying xhtml_cleaning on exit would break non-standard attributes of typolink tags
xhtml_cleaning = 1
}
exitHTMLparser_db = 1
exitHTMLparser_db {
## KEEP ALL TAGS
## Unwanted tags were removed on entry.
## Without this rule, the parser will remove all tags! Presumably, this rule will be more efficient than repeating the allowTags rule
keepNonMatchedTags = 1
## AVOID CONTENT BEING HSC'ed TWICE
htmlSpecialChars = 0
}
}
## Use same RTE processing rules in FE
RTE.default.FE.proc < RTE.default.proc
## RTE processing rules for bodytext column of tt_content table
## Erase settings from other extensions
RTE.config.tt_content.bodytext >
## Make sure we use ts_css transformation
RTE.config.tt_content.bodytext.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.text.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.textpic.proc.overruleMode = ts_css