Fossil SCM
Added several new HTML5 block-level elements to the wiki whitelist, per ML discussion, treating them like DIVs. Alas, data-* attributes prove to be too problematic due to how the attribute propery list is stored/used.
Commit
93dffb914729d3e84def3e0ded605514ea58eceb
Parent
8206ac9b9ec9428…
1 file changed
+82
-54
+82
-54
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -164,62 +164,68 @@ | ||
| 164 | 164 | ** in aAllowedMarkup[]. |
| 165 | 165 | */ |
| 166 | 166 | #define MARKUP_INVALID 0 |
| 167 | 167 | #define MARKUP_A 1 |
| 168 | 168 | #define MARKUP_ADDRESS 2 |
| 169 | -#define MARKUP_B 3 | |
| 170 | -#define MARKUP_BIG 4 | |
| 171 | -#define MARKUP_BLOCKQUOTE 5 | |
| 172 | -#define MARKUP_BR 6 | |
| 173 | -#define MARKUP_CENTER 7 | |
| 174 | -#define MARKUP_CITE 8 | |
| 175 | -#define MARKUP_CODE 9 | |
| 176 | -#define MARKUP_COL 10 | |
| 177 | -#define MARKUP_COLGROUP 11 | |
| 178 | -#define MARKUP_DD 12 | |
| 179 | -#define MARKUP_DFN 13 | |
| 180 | -#define MARKUP_DIV 14 | |
| 181 | -#define MARKUP_DL 15 | |
| 182 | -#define MARKUP_DT 16 | |
| 183 | -#define MARKUP_EM 17 | |
| 184 | -#define MARKUP_FONT 18 | |
| 185 | -#define MARKUP_H1 19 | |
| 186 | -#define MARKUP_H2 20 | |
| 187 | -#define MARKUP_H3 21 | |
| 188 | -#define MARKUP_H4 22 | |
| 189 | -#define MARKUP_H5 23 | |
| 190 | -#define MARKUP_H6 24 | |
| 191 | -#define MARKUP_HR 25 | |
| 192 | -#define MARKUP_I 26 | |
| 193 | -#define MARKUP_IMG 27 | |
| 194 | -#define MARKUP_KBD 28 | |
| 195 | -#define MARKUP_LI 29 | |
| 196 | -#define MARKUP_NOBR 30 | |
| 197 | -#define MARKUP_NOWIKI 31 | |
| 198 | -#define MARKUP_OL 32 | |
| 199 | -#define MARKUP_P 33 | |
| 200 | -#define MARKUP_PRE 34 | |
| 201 | -#define MARKUP_S 35 | |
| 202 | -#define MARKUP_SAMP 36 | |
| 203 | -#define MARKUP_SMALL 37 | |
| 204 | -#define MARKUP_SPAN 38 | |
| 205 | -#define MARKUP_STRIKE 39 | |
| 206 | -#define MARKUP_STRONG 40 | |
| 207 | -#define MARKUP_SUB 41 | |
| 208 | -#define MARKUP_SUP 42 | |
| 209 | -#define MARKUP_TABLE 43 | |
| 210 | -#define MARKUP_TBODY 44 | |
| 211 | -#define MARKUP_TD 45 | |
| 212 | -#define MARKUP_TFOOT 46 | |
| 213 | -#define MARKUP_TH 47 | |
| 214 | -#define MARKUP_THEAD 48 | |
| 215 | -#define MARKUP_TR 49 | |
| 216 | -#define MARKUP_TT 50 | |
| 217 | -#define MARKUP_U 51 | |
| 218 | -#define MARKUP_UL 52 | |
| 219 | -#define MARKUP_VAR 53 | |
| 220 | -#define MARKUP_VERBATIM 54 | |
| 169 | +#define MARKUP_HTML5_ARTICLE 3 | |
| 170 | +#define MARKUP_HTML5_ASIDE 4 | |
| 171 | +#define MARKUP_B 5 | |
| 172 | +#define MARKUP_BIG 6 | |
| 173 | +#define MARKUP_BLOCKQUOTE 7 | |
| 174 | +#define MARKUP_BR 8 | |
| 175 | +#define MARKUP_CENTER 9 | |
| 176 | +#define MARKUP_CITE 10 | |
| 177 | +#define MARKUP_CODE 11 | |
| 178 | +#define MARKUP_COL 12 | |
| 179 | +#define MARKUP_COLGROUP 13 | |
| 180 | +#define MARKUP_DD 14 | |
| 181 | +#define MARKUP_DFN 15 | |
| 182 | +#define MARKUP_DIV 16 | |
| 183 | +#define MARKUP_DL 17 | |
| 184 | +#define MARKUP_DT 18 | |
| 185 | +#define MARKUP_EM 19 | |
| 186 | +#define MARKUP_FONT 20 | |
| 187 | +#define MARKUP_HTML5_FOOTER 21 | |
| 188 | +#define MARKUP_H1 22 | |
| 189 | +#define MARKUP_H2 23 | |
| 190 | +#define MARKUP_H3 24 | |
| 191 | +#define MARKUP_H4 25 | |
| 192 | +#define MARKUP_H5 26 | |
| 193 | +#define MARKUP_H6 27 | |
| 194 | +#define MARKUP_HTML5_HEADER 28 | |
| 195 | +#define MARKUP_HR 29 | |
| 196 | +#define MARKUP_I 30 | |
| 197 | +#define MARKUP_IMG 31 | |
| 198 | +#define MARKUP_KBD 32 | |
| 199 | +#define MARKUP_LI 33 | |
| 200 | +#define MARKUP_HTML5_NAV 34 | |
| 201 | +#define MARKUP_NOBR 35 | |
| 202 | +#define MARKUP_NOWIKI 36 | |
| 203 | +#define MARKUP_OL 37 | |
| 204 | +#define MARKUP_P 38 | |
| 205 | +#define MARKUP_PRE 39 | |
| 206 | +#define MARKUP_S 40 | |
| 207 | +#define MARKUP_SAMP 41 | |
| 208 | +#define MARKUP_HTML5_SECTION 42 | |
| 209 | +#define MARKUP_SMALL 43 | |
| 210 | +#define MARKUP_SPAN 44 | |
| 211 | +#define MARKUP_STRIKE 45 | |
| 212 | +#define MARKUP_STRONG 46 | |
| 213 | +#define MARKUP_SUB 47 | |
| 214 | +#define MARKUP_SUP 48 | |
| 215 | +#define MARKUP_TABLE 49 | |
| 216 | +#define MARKUP_TBODY 50 | |
| 217 | +#define MARKUP_TD 51 | |
| 218 | +#define MARKUP_TFOOT 52 | |
| 219 | +#define MARKUP_TH 53 | |
| 220 | +#define MARKUP_THEAD 54 | |
| 221 | +#define MARKUP_TR 55 | |
| 222 | +#define MARKUP_TT 56 | |
| 223 | +#define MARKUP_U 57 | |
| 224 | +#define MARKUP_UL 58 | |
| 225 | +#define MARKUP_VAR 59 | |
| 226 | +#define MARKUP_VERBATIM 60 | |
| 221 | 227 | |
| 222 | 228 | /* |
| 223 | 229 | ** The various markup is divided into the following types: |
| 224 | 230 | */ |
| 225 | 231 | #define MUTYPE_SINGLE 0x0001 /* <img>, <br>, or <hr> */ |
| @@ -251,10 +257,15 @@ | ||
| 251 | 257 | } aMarkup[] = { |
| 252 | 258 | { 0, MARKUP_INVALID, 0, 0 }, |
| 253 | 259 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 254 | 260 | AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET|AMSK_STYLE }, |
| 255 | 261 | { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, AMSK_STYLE }, |
| 262 | + { "article", MARKUP_HTML5_ARTICLE, MUTYPE_BLOCK, | |
| 263 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 264 | + { "aside", MARKUP_HTML5_ASIDE, MUTYPE_BLOCK, | |
| 265 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 266 | + | |
| 256 | 267 | { "b", MARKUP_B, MUTYPE_FONT, AMSK_STYLE }, |
| 257 | 268 | { "big", MARKUP_BIG, MUTYPE_FONT, AMSK_STYLE }, |
| 258 | 269 | { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 259 | 270 | { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, |
| 260 | 271 | { "center", MARKUP_CENTER, MUTYPE_BLOCK, AMSK_STYLE }, |
| @@ -272,10 +283,13 @@ | ||
| 272 | 283 | AMSK_COMPACT|AMSK_STYLE }, |
| 273 | 284 | { "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE }, |
| 274 | 285 | { "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE }, |
| 275 | 286 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 276 | 287 | AMSK_COLOR|AMSK_FACE|AMSK_SIZE|AMSK_STYLE }, |
| 288 | + { "footer", MARKUP_HTML5_FOOTER, MUTYPE_BLOCK, | |
| 289 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 290 | + | |
| 277 | 291 | { "h1", MARKUP_H1, MUTYPE_BLOCK, |
| 278 | 292 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 279 | 293 | { "h2", MARKUP_H2, MUTYPE_BLOCK, |
| 280 | 294 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 281 | 295 | { "h3", MARKUP_H3, MUTYPE_BLOCK, |
| @@ -284,10 +298,14 @@ | ||
| 284 | 298 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 285 | 299 | { "h5", MARKUP_H5, MUTYPE_BLOCK, |
| 286 | 300 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 287 | 301 | { "h6", MARKUP_H6, MUTYPE_BLOCK, |
| 288 | 302 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 303 | + | |
| 304 | + { "header", MARKUP_HTML5_HEADER, MUTYPE_BLOCK, | |
| 305 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 306 | + | |
| 289 | 307 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 290 | 308 | AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH| |
| 291 | 309 | AMSK_STYLE|AMSK_CLASS }, |
| 292 | 310 | { "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE }, |
| 293 | 311 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| @@ -294,19 +312,23 @@ | ||
| 294 | 312 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 295 | 313 | AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE }, |
| 296 | 314 | { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE }, |
| 297 | 315 | { "li", MARKUP_LI, MUTYPE_LI, |
| 298 | 316 | AMSK_TYPE|AMSK_VALUE|AMSK_STYLE }, |
| 317 | + { "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK, | |
| 318 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 299 | 319 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 300 | 320 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 301 | 321 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 302 | 322 | AMSK_START|AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, |
| 303 | 323 | { "p", MARKUP_P, MUTYPE_BLOCK, |
| 304 | 324 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 305 | 325 | { "pre", MARKUP_PRE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 306 | 326 | { "s", MARKUP_S, MUTYPE_FONT, AMSK_STYLE }, |
| 307 | 327 | { "samp", MARKUP_SAMP, MUTYPE_FONT, AMSK_STYLE }, |
| 328 | + { "section", MARKUP_HTML5_SECTION, MUTYPE_BLOCK, | |
| 329 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 308 | 330 | { "small", MARKUP_SMALL, MUTYPE_FONT, AMSK_STYLE }, |
| 309 | 331 | { "span", MARKUP_SPAN, MUTYPE_BLOCK, |
| 310 | 332 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 311 | 333 | { "strike", MARKUP_STRIKE, MUTYPE_FONT, AMSK_STYLE }, |
| 312 | 334 | { "strong", MARKUP_STRONG, MUTYPE_FONT, AMSK_STYLE }, |
| @@ -339,11 +361,10 @@ | ||
| 339 | 361 | AMSK_ID|AMSK_TYPE }, |
| 340 | 362 | }; |
| 341 | 363 | |
| 342 | 364 | void show_allowed_wiki_markup( void ){ |
| 343 | 365 | int i; /* loop over allowedAttr */ |
| 344 | - | |
| 345 | 366 | for( i=1 ; i<=sizeof(aMarkup)/sizeof(aMarkup[0]) - 1 ; i++ ){ |
| 346 | 367 | @ <%s(aMarkup[i].zName)> |
| 347 | 368 | } |
| 348 | 369 | } |
| 349 | 370 | |
| @@ -1869,11 +1890,18 @@ | ||
| 1869 | 1890 | popStackToTag(&renderer, markup.iCode); |
| 1870 | 1891 | }else |
| 1871 | 1892 | |
| 1872 | 1893 | /* Push <div> markup onto the stack together with the id=ID attribute. |
| 1873 | 1894 | */ |
| 1874 | - if( markup.iCode==MARKUP_DIV ){ | |
| 1895 | + if( markup.iCode==MARKUP_DIV | |
| 1896 | + || markup.iCode==MARKUP_HTML5_ARTICLE | |
| 1897 | + || markup.iCode==MARKUP_HTML5_ASIDE | |
| 1898 | + || markup.iCode==MARKUP_HTML5_FOOTER | |
| 1899 | + || markup.iCode==MARKUP_HTML5_HEADER | |
| 1900 | + || markup.iCode==MARKUP_HTML5_NAV | |
| 1901 | + || markup.iCode==MARKUP_HTML5_SECTION | |
| 1902 | + ){ | |
| 1875 | 1903 | pushStackWithId(&renderer, markup.iCode, markupId(&markup), |
| 1876 | 1904 | (renderer.state & ALLOW_WIKI)!=0); |
| 1877 | 1905 | }else |
| 1878 | 1906 | |
| 1879 | 1907 | /* Enter <verbatim> processing. With verbatim enabled, all other |
| 1880 | 1908 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -164,62 +164,68 @@ | |
| 164 | ** in aAllowedMarkup[]. |
| 165 | */ |
| 166 | #define MARKUP_INVALID 0 |
| 167 | #define MARKUP_A 1 |
| 168 | #define MARKUP_ADDRESS 2 |
| 169 | #define MARKUP_B 3 |
| 170 | #define MARKUP_BIG 4 |
| 171 | #define MARKUP_BLOCKQUOTE 5 |
| 172 | #define MARKUP_BR 6 |
| 173 | #define MARKUP_CENTER 7 |
| 174 | #define MARKUP_CITE 8 |
| 175 | #define MARKUP_CODE 9 |
| 176 | #define MARKUP_COL 10 |
| 177 | #define MARKUP_COLGROUP 11 |
| 178 | #define MARKUP_DD 12 |
| 179 | #define MARKUP_DFN 13 |
| 180 | #define MARKUP_DIV 14 |
| 181 | #define MARKUP_DL 15 |
| 182 | #define MARKUP_DT 16 |
| 183 | #define MARKUP_EM 17 |
| 184 | #define MARKUP_FONT 18 |
| 185 | #define MARKUP_H1 19 |
| 186 | #define MARKUP_H2 20 |
| 187 | #define MARKUP_H3 21 |
| 188 | #define MARKUP_H4 22 |
| 189 | #define MARKUP_H5 23 |
| 190 | #define MARKUP_H6 24 |
| 191 | #define MARKUP_HR 25 |
| 192 | #define MARKUP_I 26 |
| 193 | #define MARKUP_IMG 27 |
| 194 | #define MARKUP_KBD 28 |
| 195 | #define MARKUP_LI 29 |
| 196 | #define MARKUP_NOBR 30 |
| 197 | #define MARKUP_NOWIKI 31 |
| 198 | #define MARKUP_OL 32 |
| 199 | #define MARKUP_P 33 |
| 200 | #define MARKUP_PRE 34 |
| 201 | #define MARKUP_S 35 |
| 202 | #define MARKUP_SAMP 36 |
| 203 | #define MARKUP_SMALL 37 |
| 204 | #define MARKUP_SPAN 38 |
| 205 | #define MARKUP_STRIKE 39 |
| 206 | #define MARKUP_STRONG 40 |
| 207 | #define MARKUP_SUB 41 |
| 208 | #define MARKUP_SUP 42 |
| 209 | #define MARKUP_TABLE 43 |
| 210 | #define MARKUP_TBODY 44 |
| 211 | #define MARKUP_TD 45 |
| 212 | #define MARKUP_TFOOT 46 |
| 213 | #define MARKUP_TH 47 |
| 214 | #define MARKUP_THEAD 48 |
| 215 | #define MARKUP_TR 49 |
| 216 | #define MARKUP_TT 50 |
| 217 | #define MARKUP_U 51 |
| 218 | #define MARKUP_UL 52 |
| 219 | #define MARKUP_VAR 53 |
| 220 | #define MARKUP_VERBATIM 54 |
| 221 | |
| 222 | /* |
| 223 | ** The various markup is divided into the following types: |
| 224 | */ |
| 225 | #define MUTYPE_SINGLE 0x0001 /* <img>, <br>, or <hr> */ |
| @@ -251,10 +257,15 @@ | |
| 251 | } aMarkup[] = { |
| 252 | { 0, MARKUP_INVALID, 0, 0 }, |
| 253 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 254 | AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET|AMSK_STYLE }, |
| 255 | { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, AMSK_STYLE }, |
| 256 | { "b", MARKUP_B, MUTYPE_FONT, AMSK_STYLE }, |
| 257 | { "big", MARKUP_BIG, MUTYPE_FONT, AMSK_STYLE }, |
| 258 | { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 259 | { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, |
| 260 | { "center", MARKUP_CENTER, MUTYPE_BLOCK, AMSK_STYLE }, |
| @@ -272,10 +283,13 @@ | |
| 272 | AMSK_COMPACT|AMSK_STYLE }, |
| 273 | { "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE }, |
| 274 | { "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE }, |
| 275 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 276 | AMSK_COLOR|AMSK_FACE|AMSK_SIZE|AMSK_STYLE }, |
| 277 | { "h1", MARKUP_H1, MUTYPE_BLOCK, |
| 278 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 279 | { "h2", MARKUP_H2, MUTYPE_BLOCK, |
| 280 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 281 | { "h3", MARKUP_H3, MUTYPE_BLOCK, |
| @@ -284,10 +298,14 @@ | |
| 284 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 285 | { "h5", MARKUP_H5, MUTYPE_BLOCK, |
| 286 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 287 | { "h6", MARKUP_H6, MUTYPE_BLOCK, |
| 288 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 289 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 290 | AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH| |
| 291 | AMSK_STYLE|AMSK_CLASS }, |
| 292 | { "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE }, |
| 293 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| @@ -294,19 +312,23 @@ | |
| 294 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 295 | AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE }, |
| 296 | { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE }, |
| 297 | { "li", MARKUP_LI, MUTYPE_LI, |
| 298 | AMSK_TYPE|AMSK_VALUE|AMSK_STYLE }, |
| 299 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 300 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 301 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 302 | AMSK_START|AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, |
| 303 | { "p", MARKUP_P, MUTYPE_BLOCK, |
| 304 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 305 | { "pre", MARKUP_PRE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 306 | { "s", MARKUP_S, MUTYPE_FONT, AMSK_STYLE }, |
| 307 | { "samp", MARKUP_SAMP, MUTYPE_FONT, AMSK_STYLE }, |
| 308 | { "small", MARKUP_SMALL, MUTYPE_FONT, AMSK_STYLE }, |
| 309 | { "span", MARKUP_SPAN, MUTYPE_BLOCK, |
| 310 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 311 | { "strike", MARKUP_STRIKE, MUTYPE_FONT, AMSK_STYLE }, |
| 312 | { "strong", MARKUP_STRONG, MUTYPE_FONT, AMSK_STYLE }, |
| @@ -339,11 +361,10 @@ | |
| 339 | AMSK_ID|AMSK_TYPE }, |
| 340 | }; |
| 341 | |
| 342 | void show_allowed_wiki_markup( void ){ |
| 343 | int i; /* loop over allowedAttr */ |
| 344 | |
| 345 | for( i=1 ; i<=sizeof(aMarkup)/sizeof(aMarkup[0]) - 1 ; i++ ){ |
| 346 | @ <%s(aMarkup[i].zName)> |
| 347 | } |
| 348 | } |
| 349 | |
| @@ -1869,11 +1890,18 @@ | |
| 1869 | popStackToTag(&renderer, markup.iCode); |
| 1870 | }else |
| 1871 | |
| 1872 | /* Push <div> markup onto the stack together with the id=ID attribute. |
| 1873 | */ |
| 1874 | if( markup.iCode==MARKUP_DIV ){ |
| 1875 | pushStackWithId(&renderer, markup.iCode, markupId(&markup), |
| 1876 | (renderer.state & ALLOW_WIKI)!=0); |
| 1877 | }else |
| 1878 | |
| 1879 | /* Enter <verbatim> processing. With verbatim enabled, all other |
| 1880 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -164,62 +164,68 @@ | |
| 164 | ** in aAllowedMarkup[]. |
| 165 | */ |
| 166 | #define MARKUP_INVALID 0 |
| 167 | #define MARKUP_A 1 |
| 168 | #define MARKUP_ADDRESS 2 |
| 169 | #define MARKUP_HTML5_ARTICLE 3 |
| 170 | #define MARKUP_HTML5_ASIDE 4 |
| 171 | #define MARKUP_B 5 |
| 172 | #define MARKUP_BIG 6 |
| 173 | #define MARKUP_BLOCKQUOTE 7 |
| 174 | #define MARKUP_BR 8 |
| 175 | #define MARKUP_CENTER 9 |
| 176 | #define MARKUP_CITE 10 |
| 177 | #define MARKUP_CODE 11 |
| 178 | #define MARKUP_COL 12 |
| 179 | #define MARKUP_COLGROUP 13 |
| 180 | #define MARKUP_DD 14 |
| 181 | #define MARKUP_DFN 15 |
| 182 | #define MARKUP_DIV 16 |
| 183 | #define MARKUP_DL 17 |
| 184 | #define MARKUP_DT 18 |
| 185 | #define MARKUP_EM 19 |
| 186 | #define MARKUP_FONT 20 |
| 187 | #define MARKUP_HTML5_FOOTER 21 |
| 188 | #define MARKUP_H1 22 |
| 189 | #define MARKUP_H2 23 |
| 190 | #define MARKUP_H3 24 |
| 191 | #define MARKUP_H4 25 |
| 192 | #define MARKUP_H5 26 |
| 193 | #define MARKUP_H6 27 |
| 194 | #define MARKUP_HTML5_HEADER 28 |
| 195 | #define MARKUP_HR 29 |
| 196 | #define MARKUP_I 30 |
| 197 | #define MARKUP_IMG 31 |
| 198 | #define MARKUP_KBD 32 |
| 199 | #define MARKUP_LI 33 |
| 200 | #define MARKUP_HTML5_NAV 34 |
| 201 | #define MARKUP_NOBR 35 |
| 202 | #define MARKUP_NOWIKI 36 |
| 203 | #define MARKUP_OL 37 |
| 204 | #define MARKUP_P 38 |
| 205 | #define MARKUP_PRE 39 |
| 206 | #define MARKUP_S 40 |
| 207 | #define MARKUP_SAMP 41 |
| 208 | #define MARKUP_HTML5_SECTION 42 |
| 209 | #define MARKUP_SMALL 43 |
| 210 | #define MARKUP_SPAN 44 |
| 211 | #define MARKUP_STRIKE 45 |
| 212 | #define MARKUP_STRONG 46 |
| 213 | #define MARKUP_SUB 47 |
| 214 | #define MARKUP_SUP 48 |
| 215 | #define MARKUP_TABLE 49 |
| 216 | #define MARKUP_TBODY 50 |
| 217 | #define MARKUP_TD 51 |
| 218 | #define MARKUP_TFOOT 52 |
| 219 | #define MARKUP_TH 53 |
| 220 | #define MARKUP_THEAD 54 |
| 221 | #define MARKUP_TR 55 |
| 222 | #define MARKUP_TT 56 |
| 223 | #define MARKUP_U 57 |
| 224 | #define MARKUP_UL 58 |
| 225 | #define MARKUP_VAR 59 |
| 226 | #define MARKUP_VERBATIM 60 |
| 227 | |
| 228 | /* |
| 229 | ** The various markup is divided into the following types: |
| 230 | */ |
| 231 | #define MUTYPE_SINGLE 0x0001 /* <img>, <br>, or <hr> */ |
| @@ -251,10 +257,15 @@ | |
| 257 | } aMarkup[] = { |
| 258 | { 0, MARKUP_INVALID, 0, 0 }, |
| 259 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 260 | AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET|AMSK_STYLE }, |
| 261 | { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, AMSK_STYLE }, |
| 262 | { "article", MARKUP_HTML5_ARTICLE, MUTYPE_BLOCK, |
| 263 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 264 | { "aside", MARKUP_HTML5_ASIDE, MUTYPE_BLOCK, |
| 265 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 266 | |
| 267 | { "b", MARKUP_B, MUTYPE_FONT, AMSK_STYLE }, |
| 268 | { "big", MARKUP_BIG, MUTYPE_FONT, AMSK_STYLE }, |
| 269 | { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 270 | { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, |
| 271 | { "center", MARKUP_CENTER, MUTYPE_BLOCK, AMSK_STYLE }, |
| @@ -272,10 +283,13 @@ | |
| 283 | AMSK_COMPACT|AMSK_STYLE }, |
| 284 | { "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE }, |
| 285 | { "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE }, |
| 286 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 287 | AMSK_COLOR|AMSK_FACE|AMSK_SIZE|AMSK_STYLE }, |
| 288 | { "footer", MARKUP_HTML5_FOOTER, MUTYPE_BLOCK, |
| 289 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 290 | |
| 291 | { "h1", MARKUP_H1, MUTYPE_BLOCK, |
| 292 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 293 | { "h2", MARKUP_H2, MUTYPE_BLOCK, |
| 294 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 295 | { "h3", MARKUP_H3, MUTYPE_BLOCK, |
| @@ -284,10 +298,14 @@ | |
| 298 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 299 | { "h5", MARKUP_H5, MUTYPE_BLOCK, |
| 300 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 301 | { "h6", MARKUP_H6, MUTYPE_BLOCK, |
| 302 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 303 | |
| 304 | { "header", MARKUP_HTML5_HEADER, MUTYPE_BLOCK, |
| 305 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 306 | |
| 307 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 308 | AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH| |
| 309 | AMSK_STYLE|AMSK_CLASS }, |
| 310 | { "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE }, |
| 311 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| @@ -294,19 +312,23 @@ | |
| 312 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 313 | AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE }, |
| 314 | { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE }, |
| 315 | { "li", MARKUP_LI, MUTYPE_LI, |
| 316 | AMSK_TYPE|AMSK_VALUE|AMSK_STYLE }, |
| 317 | { "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK, |
| 318 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 319 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 320 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 321 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 322 | AMSK_START|AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, |
| 323 | { "p", MARKUP_P, MUTYPE_BLOCK, |
| 324 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 325 | { "pre", MARKUP_PRE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 326 | { "s", MARKUP_S, MUTYPE_FONT, AMSK_STYLE }, |
| 327 | { "samp", MARKUP_SAMP, MUTYPE_FONT, AMSK_STYLE }, |
| 328 | { "section", MARKUP_HTML5_SECTION, MUTYPE_BLOCK, |
| 329 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 330 | { "small", MARKUP_SMALL, MUTYPE_FONT, AMSK_STYLE }, |
| 331 | { "span", MARKUP_SPAN, MUTYPE_BLOCK, |
| 332 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 333 | { "strike", MARKUP_STRIKE, MUTYPE_FONT, AMSK_STYLE }, |
| 334 | { "strong", MARKUP_STRONG, MUTYPE_FONT, AMSK_STYLE }, |
| @@ -339,11 +361,10 @@ | |
| 361 | AMSK_ID|AMSK_TYPE }, |
| 362 | }; |
| 363 | |
| 364 | void show_allowed_wiki_markup( void ){ |
| 365 | int i; /* loop over allowedAttr */ |
| 366 | for( i=1 ; i<=sizeof(aMarkup)/sizeof(aMarkup[0]) - 1 ; i++ ){ |
| 367 | @ <%s(aMarkup[i].zName)> |
| 368 | } |
| 369 | } |
| 370 | |
| @@ -1869,11 +1890,18 @@ | |
| 1890 | popStackToTag(&renderer, markup.iCode); |
| 1891 | }else |
| 1892 | |
| 1893 | /* Push <div> markup onto the stack together with the id=ID attribute. |
| 1894 | */ |
| 1895 | if( markup.iCode==MARKUP_DIV |
| 1896 | || markup.iCode==MARKUP_HTML5_ARTICLE |
| 1897 | || markup.iCode==MARKUP_HTML5_ASIDE |
| 1898 | || markup.iCode==MARKUP_HTML5_FOOTER |
| 1899 | || markup.iCode==MARKUP_HTML5_HEADER |
| 1900 | || markup.iCode==MARKUP_HTML5_NAV |
| 1901 | || markup.iCode==MARKUP_HTML5_SECTION |
| 1902 | ){ |
| 1903 | pushStackWithId(&renderer, markup.iCode, markupId(&markup), |
| 1904 | (renderer.state & ALLOW_WIKI)!=0); |
| 1905 | }else |
| 1906 | |
| 1907 | /* Enter <verbatim> processing. With verbatim enabled, all other |
| 1908 |