# *************************************************************************************** # Default proc options in Page TSconfig for htmlArea RTE and Classic RTE # # Sets the proc options for all default configurations. # # Assumptions: - CSS Styled Content is installed. # - XHTML output is expected. # # 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/doc_core_api/Page_TSconfig/ # For documentation of the HTMLparser, see: http://typo3.org/documentation/document-library/doc_core_tsref/HTMLparser/ # 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 # # @author Stanislas Rolland # # TYPO3 SVN ID: $Id$ # *************************************************************************************** ## 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, link, meta, o:p, strike, sdfield, style, title 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, b, bdo, big, blockquote, br, caption, center, cite, code, col, colgroup, dd, del, dfn, dl, div, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, ins, kbd, label, li, link, meta, ol, p, pre, q, samp, sdfield, small, span, strike, strong, style, sub, sup, table, thead, tbody, tfoot, td, th, tr, title, 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 ## REMAP BOLD AND ITALIC TO STRONG AND EMPHASIS AND VICE VERSA transformBoldAndItalicTags = 1 ## 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, WORD 2003 TAGS, LINK, META, STYLE AND TITLE 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, link, meta, o:p, sdfield, strike, style, title, 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