Fossil SCM

Fix some rendering issues with the new wiki formatter.

drh 2010-09-13 23:37 UTC wolfgangFormat2CSS
Commit 7d2fe13c829574995dd1626f8eed708f53148103
1 file changed +18 -15
+18 -15
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -321,21 +321,21 @@
321321
}
322322
323323
/*
324324
** Token types
325325
*/
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 */
337337
338338
/*
339339
** State flags
340340
*/
341341
#define AT_NEWLINE 0x001 /* At start of a line */
@@ -891,12 +891,13 @@
891891
892892
/*
893893
** Begin a new paragraph if that something that is needed.
894894
*/
895895
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);
898899
pushStack(p, MARKUP_P);
899900
p->wantAutoParagraph = 0;
900901
p->inAutoParagraph = 1;
901902
}
902903
@@ -1243,11 +1244,13 @@
12431244
p->state = savedState;
12441245
blob_append(p->pOut, zClose, -1);
12451246
break;
12461247
}
12471248
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);
12491252
blob_append(p->pOut, z, n);
12501253
break;
12511254
}
12521255
case TOKEN_RAW: {
12531256
blob_append(p->pOut, z, n);
@@ -1397,11 +1400,11 @@
13971400
pushStack(p, markup.iCode);
13981401
}else
13991402
{
14001403
if( markup.iType==MUTYPE_FONT ){
14011404
startAutoParagraph(p);
1402
- }else if( markup.iType==MUTYPE_BLOCK ){
1405
+ }else if( markup.iType==MUTYPE_BLOCK || markup.iType==MUTYPE_LIST ){
14031406
p->wantAutoParagraph = 0;
14041407
}
14051408
if( markup.iCode==MARKUP_HR
14061409
|| markup.iCode==MARKUP_H1
14071410
|| markup.iCode==MARKUP_H2
14081411
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button