[!!!][FEATURE] Streamline Fluid Styled Content and CSS Styled Content
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid_styled_content / Configuration / TypoScript / Helper / ParseFunc.txt
1 # Creates persistent ParseFunc setup for non-HTML content.
2 lib.parseFunc {
3     makelinks = 1
4     makelinks {
5         http {
6             keep = {$styles.content.links.keep}
7             extTarget = {$styles.content.links.extTarget}
8         }
9         mailto {
10             keep = path
11         }
12     }
13     tags {
14         link = TEXT
15         link {
16             current = 1
17             typolink {
18                 parameter.data = parameters : allParams
19                 extTarget = {$styles.content.links.extTarget}
20             }
21             parseFunc.constants = 1
22         }
23         a = TEXT
24         a {
25             current = 1
26             typolink {
27                 parameter.data = parameters:href
28                 title.data = parameters:title
29                 aTagParams.data = parameters:allParams
30                 target.data = parameters:target
31                 extTarget = {$styles.content.links.extTarget}
32                 extTarget.override.data = parameters:target
33             }
34         }
35     }
36     allowTags = {$styles.content.allowTags}
37     denyTags = *
38     sword = <span class="ce-sword">|</span>
39     constants = 1
40     nonTypoTagStdWrap {
41         HTMLparser = 1
42         HTMLparser {
43             keepNonMatchedTags = 1
44             htmlSpecialChars = 2
45         }
46     }
47 }
48
49
50 # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
51 lib.parseFunc_RTE < lib.parseFunc
52 lib.parseFunc_RTE {
53     # Processing <table> and <blockquote> blocks separately
54     externalBlocks = article, aside, blockquote, div, dd, dl, footer, header, nav, ol, section, table, ul, pre
55     externalBlocks {
56         # The blockquote content is passed into parseFunc again...
57         blockquote {
58             stripNL = 1
59             callRecursive = 1
60             callRecursive {
61                 tagStdWrap {
62                     HTMLparser = 1
63                     HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
64                 }
65             }
66         }
67         ol {
68             stripNL = 1
69             stdWrap.parseFunc = < lib.parseFunc
70         }
71         ul {
72             stripNL = 1
73             stdWrap.parseFunc = < lib.parseFunc
74         }
75         table {
76             stripNL = 1
77             stdWrap {
78                 HTMLparser = 1
79                 HTMLparser {
80                     tags.table.fixAttrib.class {
81                         default = contenttable
82                         always = 1
83                         list = contenttable
84                     }
85                     keepNonMatchedTags = 1
86                 }
87             }
88             HTMLtableCells = 1
89             HTMLtableCells {
90                 # Recursive call to self but without wrapping non-wrapped cell content
91                 default.stdWrap {
92                     parseFunc = < lib.parseFunc_RTE
93                     parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag =
94                 }
95                 addChr10BetweenParagraphs = 1
96             }
97         }
98         div {
99             stripNL = 1
100             callRecursive = 1
101         }
102         article < .div
103         aside < .div
104         footer < .div
105         header < .div
106         nav < .div
107         section < .div
108         dl < .div
109         dd < .div
110     }
111     nonTypoTagStdWrap {
112         encapsLines {
113             encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr,dt
114             remapTag.DIV = P
115             nonWrappedTag = P
116             innerStdWrap_all.ifBlank = &nbsp;
117         }
118     }
119     nonTypoTagStdWrap {
120         HTMLparser = 1
121         HTMLparser {
122             keepNonMatchedTags = 1
123             htmlSpecialChars = 2
124         }
125     }
126 }