Fossil SCM
Fix some rendering issues with the new wiki formatter.
Commit
7d2fe13c829574995dd1626f8eed708f53148103
Parent
d35608836ee123e…
1 file changed
+18
-15
+18
-15
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -321,21 +321,21 @@ | ||
| 321 | 321 | } |
| 322 | 322 | |
| 323 | 323 | /* |
| 324 | 324 | ** Token types |
| 325 | 325 | */ |
| 326 | -#define TOKEN_MARKUP 1 /* <...> */ | |
| 327 | -#define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ | |
| 328 | -#define TOKEN_LINK 3 /* [...] */ | |
| 329 | -#define TOKEN_PARAGRAPH 4 /* blank lines */ | |
| 330 | -#define TOKEN_NEWLINE 5 /* A single "\n" */ | |
| 331 | -#define TOKEN_BUL_LI 6 /* " * " */ | |
| 332 | -#define TOKEN_NUM_LI 7 /* " # " */ | |
| 333 | -#define TOKEN_ENUM 8 /* " \(?\d+[.)]? " */ | |
| 334 | -#define TOKEN_INDENT 9 /* " " */ | |
| 335 | -#define TOKEN_RAW 10 /* Output exactly (used when wiki-use-html==1) */ | |
| 336 | -#define TOKEN_TEXT 11 /* None of the above */ | |
| 326 | +#define TOKEN_MARKUP 1 /* <...> */ | |
| 327 | +#define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ | |
| 328 | +#define TOKEN_LINK 3 /* [...] */ | |
| 329 | +#define TOKEN_PARAGRAPH 4 /* blank lines */ | |
| 330 | +#define TOKEN_NEWLINE 5 /* A single "\n" */ | |
| 331 | +#define TOKEN_BUL_LI 6 /* " * " */ | |
| 332 | +#define TOKEN_NUM_LI 7 /* " # " */ | |
| 333 | +#define TOKEN_ENUM 8 /* " \(?\d+[.)]? " */ | |
| 334 | +#define TOKEN_INDENT 9 /* " " */ | |
| 335 | +#define TOKEN_RAW 10 /* Output exactly (used when wiki-use-html==1) */ | |
| 336 | +#define TOKEN_TEXT 11 /* None of the above */ | |
| 337 | 337 | |
| 338 | 338 | /* |
| 339 | 339 | ** State flags |
| 340 | 340 | */ |
| 341 | 341 | #define AT_NEWLINE 0x001 /* At start of a line */ |
| @@ -891,12 +891,13 @@ | ||
| 891 | 891 | |
| 892 | 892 | /* |
| 893 | 893 | ** Begin a new paragraph if that something that is needed. |
| 894 | 894 | */ |
| 895 | 895 | static void startAutoParagraph(Renderer *p){ |
| 896 | - if( p->wantAutoParagraph==0 || p->wikiList==MARKUP_OL || p->wikiList==MARKUP_UL ) return; | |
| 897 | - blob_appendf(p->pOut, "<p>", -1); | |
| 896 | + if( p->wantAutoParagraph==0 ) return; | |
| 897 | + if( p->wikiList==MARKUP_OL || p->wikiList==MARKUP_UL ) return; | |
| 898 | + blob_appendf(p->pOut, "<p type=\"auto\">", -1); | |
| 898 | 899 | pushStack(p, MARKUP_P); |
| 899 | 900 | p->wantAutoParagraph = 0; |
| 900 | 901 | p->inAutoParagraph = 1; |
| 901 | 902 | } |
| 902 | 903 | |
| @@ -1243,11 +1244,13 @@ | ||
| 1243 | 1244 | p->state = savedState; |
| 1244 | 1245 | blob_append(p->pOut, zClose, -1); |
| 1245 | 1246 | break; |
| 1246 | 1247 | } |
| 1247 | 1248 | case TOKEN_TEXT: { |
| 1248 | - startAutoParagraph(p); | |
| 1249 | + int i; | |
| 1250 | + for(i=0; i<n && isspace(z[i]); i++){} | |
| 1251 | + if( i<n ) startAutoParagraph(p); | |
| 1249 | 1252 | blob_append(p->pOut, z, n); |
| 1250 | 1253 | break; |
| 1251 | 1254 | } |
| 1252 | 1255 | case TOKEN_RAW: { |
| 1253 | 1256 | blob_append(p->pOut, z, n); |
| @@ -1397,11 +1400,11 @@ | ||
| 1397 | 1400 | pushStack(p, markup.iCode); |
| 1398 | 1401 | }else |
| 1399 | 1402 | { |
| 1400 | 1403 | if( markup.iType==MUTYPE_FONT ){ |
| 1401 | 1404 | startAutoParagraph(p); |
| 1402 | - }else if( markup.iType==MUTYPE_BLOCK ){ | |
| 1405 | + }else if( markup.iType==MUTYPE_BLOCK || markup.iType==MUTYPE_LIST ){ | |
| 1403 | 1406 | p->wantAutoParagraph = 0; |
| 1404 | 1407 | } |
| 1405 | 1408 | if( markup.iCode==MARKUP_HR |
| 1406 | 1409 | || markup.iCode==MARKUP_H1 |
| 1407 | 1410 | || markup.iCode==MARKUP_H2 |
| 1408 | 1411 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -321,21 +321,21 @@ | |
| 321 | } |
| 322 | |
| 323 | /* |
| 324 | ** Token types |
| 325 | */ |
| 326 | #define TOKEN_MARKUP 1 /* <...> */ |
| 327 | #define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ |
| 328 | #define TOKEN_LINK 3 /* [...] */ |
| 329 | #define TOKEN_PARAGRAPH 4 /* blank lines */ |
| 330 | #define TOKEN_NEWLINE 5 /* A single "\n" */ |
| 331 | #define TOKEN_BUL_LI 6 /* " * " */ |
| 332 | #define TOKEN_NUM_LI 7 /* " # " */ |
| 333 | #define TOKEN_ENUM 8 /* " \(?\d+[.)]? " */ |
| 334 | #define TOKEN_INDENT 9 /* " " */ |
| 335 | #define TOKEN_RAW 10 /* Output exactly (used when wiki-use-html==1) */ |
| 336 | #define TOKEN_TEXT 11 /* None of the above */ |
| 337 | |
| 338 | /* |
| 339 | ** State flags |
| 340 | */ |
| 341 | #define AT_NEWLINE 0x001 /* At start of a line */ |
| @@ -891,12 +891,13 @@ | |
| 891 | |
| 892 | /* |
| 893 | ** Begin a new paragraph if that something that is needed. |
| 894 | */ |
| 895 | static void startAutoParagraph(Renderer *p){ |
| 896 | if( p->wantAutoParagraph==0 || p->wikiList==MARKUP_OL || p->wikiList==MARKUP_UL ) return; |
| 897 | blob_appendf(p->pOut, "<p>", -1); |
| 898 | pushStack(p, MARKUP_P); |
| 899 | p->wantAutoParagraph = 0; |
| 900 | p->inAutoParagraph = 1; |
| 901 | } |
| 902 | |
| @@ -1243,11 +1244,13 @@ | |
| 1243 | p->state = savedState; |
| 1244 | blob_append(p->pOut, zClose, -1); |
| 1245 | break; |
| 1246 | } |
| 1247 | case TOKEN_TEXT: { |
| 1248 | startAutoParagraph(p); |
| 1249 | blob_append(p->pOut, z, n); |
| 1250 | break; |
| 1251 | } |
| 1252 | case TOKEN_RAW: { |
| 1253 | blob_append(p->pOut, z, n); |
| @@ -1397,11 +1400,11 @@ | |
| 1397 | pushStack(p, markup.iCode); |
| 1398 | }else |
| 1399 | { |
| 1400 | if( markup.iType==MUTYPE_FONT ){ |
| 1401 | startAutoParagraph(p); |
| 1402 | }else if( markup.iType==MUTYPE_BLOCK ){ |
| 1403 | p->wantAutoParagraph = 0; |
| 1404 | } |
| 1405 | if( markup.iCode==MARKUP_HR |
| 1406 | || markup.iCode==MARKUP_H1 |
| 1407 | || markup.iCode==MARKUP_H2 |
| 1408 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -321,21 +321,21 @@ | |
| 321 | } |
| 322 | |
| 323 | /* |
| 324 | ** Token types |
| 325 | */ |
| 326 | #define TOKEN_MARKUP 1 /* <...> */ |
| 327 | #define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ |
| 328 | #define TOKEN_LINK 3 /* [...] */ |
| 329 | #define TOKEN_PARAGRAPH 4 /* blank lines */ |
| 330 | #define TOKEN_NEWLINE 5 /* A single "\n" */ |
| 331 | #define TOKEN_BUL_LI 6 /* " * " */ |
| 332 | #define TOKEN_NUM_LI 7 /* " # " */ |
| 333 | #define TOKEN_ENUM 8 /* " \(?\d+[.)]? " */ |
| 334 | #define TOKEN_INDENT 9 /* " " */ |
| 335 | #define TOKEN_RAW 10 /* Output exactly (used when wiki-use-html==1) */ |
| 336 | #define TOKEN_TEXT 11 /* None of the above */ |
| 337 | |
| 338 | /* |
| 339 | ** State flags |
| 340 | */ |
| 341 | #define AT_NEWLINE 0x001 /* At start of a line */ |
| @@ -891,12 +891,13 @@ | |
| 891 | |
| 892 | /* |
| 893 | ** Begin a new paragraph if that something that is needed. |
| 894 | */ |
| 895 | static void startAutoParagraph(Renderer *p){ |
| 896 | if( p->wantAutoParagraph==0 ) return; |
| 897 | if( p->wikiList==MARKUP_OL || p->wikiList==MARKUP_UL ) return; |
| 898 | blob_appendf(p->pOut, "<p type=\"auto\">", -1); |
| 899 | pushStack(p, MARKUP_P); |
| 900 | p->wantAutoParagraph = 0; |
| 901 | p->inAutoParagraph = 1; |
| 902 | } |
| 903 | |
| @@ -1243,11 +1244,13 @@ | |
| 1244 | p->state = savedState; |
| 1245 | blob_append(p->pOut, zClose, -1); |
| 1246 | break; |
| 1247 | } |
| 1248 | case TOKEN_TEXT: { |
| 1249 | int i; |
| 1250 | for(i=0; i<n && isspace(z[i]); i++){} |
| 1251 | if( i<n ) startAutoParagraph(p); |
| 1252 | blob_append(p->pOut, z, n); |
| 1253 | break; |
| 1254 | } |
| 1255 | case TOKEN_RAW: { |
| 1256 | blob_append(p->pOut, z, n); |
| @@ -1397,11 +1400,11 @@ | |
| 1400 | pushStack(p, markup.iCode); |
| 1401 | }else |
| 1402 | { |
| 1403 | if( markup.iType==MUTYPE_FONT ){ |
| 1404 | startAutoParagraph(p); |
| 1405 | }else if( markup.iType==MUTYPE_BLOCK || markup.iType==MUTYPE_LIST ){ |
| 1406 | p->wantAutoParagraph = 0; |
| 1407 | } |
| 1408 | if( markup.iCode==MARKUP_HR |
| 1409 | || markup.iCode==MARKUP_H1 |
| 1410 | || markup.iCode==MARKUP_H2 |
| 1411 |