Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: |
|
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | 2bb1d6469f96de4575aff0410a59d64f |
User & Date: | jeremy_c 2009-12-09 14:39:20 |
Context
2009-12-09
| ||
15:34 | Added a DELETED abc.xyz message when using fossil rm. This is the same as fossil add's ADDED abc.xyz message. Also, the word DELETED was choosen over REMOVED because fossil status reports the file as DELETED. check-in: 49ed1961 user: jeremy_c tags: trunk | |
14:39 |
| |
2009-12-08
| ||
18:43 | Clean up the RSS code slightly. check-in: 484c8f9f user: drh tags: trunk | |
Changes
Changes to src/wiki.c.
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
...
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
|
/* ** WEBPAGE: wiki_rules */ void wikirules_page(void){ style_header("Wiki Formatting Rules"); @ <h2>Formatting Rule Summary</h2> @ <ol> @ <li> Blank lines are paragraph breaks @ <li> Bullets are "*" surrounded by two spaces at the beginning of the line. @ <li> Enumeration items are a number surrounded by two space @ at the beginning of a line. @ <li> Indented pargraphs begin with a tab or two spaces. @ <li> Hyperlinks are contained with square brackets: "[target]" @ <li> Most ordinary HTML works. @ <li> <verbatim> and <nowiki>. @ </ol> @ <p>We call the first five rules above "wiki" formatting rules. The @ last two rules are the HTML formatting rule.</p> @ <h2>Formatting Rule Details</h2> @ <ol> @ <li> <p><b>Paragraphs</b>. Any sequence of one or more blank lines forms @ a paragraph break. Centered or right-justified paragraphs are not ................................................................................ @ using HTML.</p> @ <li> <p><b>Bullet Lists</b>. @ A bullet list item is a line that begins with a single "*" character @ surrounded on @ both sides by two or more spaces or by a tab. Only a single level @ of bullet list is supported by wiki. For nested lists, use HTML.</p> @ <li> <p><b>Enumeration Lists</b>. @ An enumeration list item is a line that begins @ with one or more digits optionally @ followed by a "." and is surrounded on both sides by two or more spaces or @ by a tab. The number is significant and becomes the number shown @ in the rendered enumeration item. Only a single level of enumeration @ list is supported by wiki. For nested enumerations or for @ enumerations that count using letters or roman numerials, use HTML.</p> @ <li> <p><b>Indented Paragraphs</b>. @ Any paragraph that begins with two or more spaces or a tab and @ which is not a bullet or enumeration list item is rendered @ indented. Only a single level of indentation is supported by wiki; use @ HTML for deeper indentation.</p> @ <li> <p><b>Hyperlinks</b>. |
|
|
|
>
|
|
|
>
|
|
|
<
|
<
<
|
|
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
...
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
|
/* ** WEBPAGE: wiki_rules */ void wikirules_page(void){ style_header("Wiki Formatting Rules"); @ <h2>Formatting Rule Summary</h2> @ <ol> @ <li>Blank lines are paragraph breaks</li> @ <li>Bullets are "*" surrounded by two spaces at the beginning of the @ line.</li> @ <li>Enumeration items are "#" surrounded by two spaces at the beginning of @ a line.</li> @ <li>Indented pargraphs begin with a tab or two spaces.</li> @ <li>Hyperlinks are contained with square brackets: "[target]" or @ "[target|name]".</li> @ <li>Most ordinary HTML works.</li> @ <li><verbatim> and <nowiki>.</li> @ </ol> @ <p>We call the first five rules above "wiki" formatting rules. The @ last two rules are the HTML formatting rule.</p> @ <h2>Formatting Rule Details</h2> @ <ol> @ <li> <p><b>Paragraphs</b>. Any sequence of one or more blank lines forms @ a paragraph break. Centered or right-justified paragraphs are not ................................................................................ @ using HTML.</p> @ <li> <p><b>Bullet Lists</b>. @ A bullet list item is a line that begins with a single "*" character @ surrounded on @ both sides by two or more spaces or by a tab. Only a single level @ of bullet list is supported by wiki. For nested lists, use HTML.</p> @ <li> <p><b>Enumeration Lists</b>. @ An enumeration list item is a line that begins with a single "#" character @ surrounded on both sides by two or more spaces or by a tab. Only a single @ level of enumeration list is supported by wiki. For nested lists or for @ enumerations that count using letters or roman numerials, use HTML.</p> @ <li> <p><b>Indented Paragraphs</b>. @ Any paragraph that begins with two or more spaces or a tab and @ which is not a bullet or enumeration list item is rendered @ indented. Only a single level of indentation is supported by wiki; use @ HTML for deeper indentation.</p> @ <li> <p><b>Hyperlinks</b>. |
Changes to src/wikiformat.c.
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 ... 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 ... 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 .... 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 |
** Token types */ #define TOKEN_MARKUP 1 /* <...> */ #define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ #define TOKEN_LINK 3 /* [...] */ #define TOKEN_PARAGRAPH 4 /* blank lines */ #define TOKEN_NEWLINE 5 /* A single "\n" */ #define TOKEN_BULLET 6 /* " * " */ #define TOKEN_ENUM 7 /* " \(?\d+[.)]? " */ #define TOKEN_INDENT 8 /* " " */ #define TOKEN_TEXT 9 /* None of the above */ /* ** State flags */ #define AT_NEWLINE 0x001 /* At start of a line */ #define AT_PARAGRAPH 0x002 /* At start of a paragraph */ #define ALLOW_WIKI 0x004 /* Allow wiki markup */ ................................................................................ }else{ for(i=1; isalpha(z[i]); i++){} return i>1 && z[i]==';'; } } /* ** Check to see if the z[] string is the beginning of a wiki bullet. ** If it is, return the length of the bullet text. Otherwise return 0. */ static int bulletLength(const char *z){ int i, n; n = 0; i = 0; while( z[n]==' ' || z[n]=='\t' ){ if( z[n]=='\t' ) i++; i++; n++; } if( i<2 || z[n]!='*' ) return 0; n++; i = 0; while( z[n]==' ' || z[n]=='\t' ){ if( z[n]=='\t' ) i++; i++; n++; } ................................................................................ return n; }else if( isspace(z[1]) ){ *pTokenType = TOKEN_NEWLINE; return 1; } } if( (p->state & AT_NEWLINE)!=0 && isspace(z[0]) ){ n = bulletLength(z); if( n>0 ){ *pTokenType = TOKEN_BULLET; return n; } n = enumLength(z); if( n>0 ){ *pTokenType = TOKEN_ENUM; return n; } ................................................................................ break; } case TOKEN_NEWLINE: { blob_append(p->pOut, "\n", 1); p->state |= AT_NEWLINE; break; } case TOKEN_BULLET: { if( inlineOnly ){ blob_append(p->pOut, " • ", -1); }else{ if( p->wikiList!=MARKUP_UL ){ if( p->wikiList ){ popStackToTag(p, p->wikiList); } pushStack(p, MARKUP_UL); blob_append(p->pOut, "<ul>", 4); p->wikiList = MARKUP_UL; } popStackToTag(p, MARKUP_LI); startAutoParagraph(p); pushStack(p, MARKUP_LI); blob_append(p->pOut, "<li>", 4); } break; |
| > | | | | | | | | > > > > > | > > > > > > > > > > > > > > > > > > > |
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 ... 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 ... 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 .... 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 |
** Token types */ #define TOKEN_MARKUP 1 /* <...> */ #define TOKEN_CHARACTER 2 /* "&" or "<" not part of markup */ #define TOKEN_LINK 3 /* [...] */ #define TOKEN_PARAGRAPH 4 /* blank lines */ #define TOKEN_NEWLINE 5 /* A single "\n" */ #define TOKEN_BUL_LI 6 /* " * " */ #define TOKEN_NUM_LI 7 /* " # " */ #define TOKEN_ENUM 8 /* " \(?\d+[.)]? " */ #define TOKEN_INDENT 9 /* " " */ #define TOKEN_TEXT 10 /* None of the above */ /* ** State flags */ #define AT_NEWLINE 0x001 /* At start of a line */ #define AT_PARAGRAPH 0x002 /* At start of a paragraph */ #define ALLOW_WIKI 0x004 /* Allow wiki markup */ ................................................................................ }else{ for(i=1; isalpha(z[i]); i++){} return i>1 && z[i]==';'; } } /* ** Check to see if the z[] string is the beginning of a wiki list item. ** If it is, return the length of the bullet text. Otherwise return 0. */ static int listItemLength(const char *z, const char listChar){ int i, n; n = 0; i = 0; while( z[n]==' ' || z[n]=='\t' ){ if( z[n]=='\t' ) i++; i++; n++; } if( i<2 || z[n]!=listChar ) return 0; n++; i = 0; while( z[n]==' ' || z[n]=='\t' ){ if( z[n]=='\t' ) i++; i++; n++; } ................................................................................ return n; }else if( isspace(z[1]) ){ *pTokenType = TOKEN_NEWLINE; return 1; } } if( (p->state & AT_NEWLINE)!=0 && isspace(z[0]) ){ n = listItemLength(z, '*'); if( n>0 ){ *pTokenType = TOKEN_BUL_LI; return n; } n = listItemLength(z, '#'); if( n>0 ){ *pTokenType = TOKEN_NUM_LI; return n; } n = enumLength(z); if( n>0 ){ *pTokenType = TOKEN_ENUM; return n; } ................................................................................ break; } case TOKEN_NEWLINE: { blob_append(p->pOut, "\n", 1); p->state |= AT_NEWLINE; break; } case TOKEN_BUL_LI: { if( inlineOnly ){ blob_append(p->pOut, " • ", -1); }else{ if( p->wikiList!=MARKUP_UL ){ if( p->wikiList ){ popStackToTag(p, p->wikiList); } pushStack(p, MARKUP_UL); blob_append(p->pOut, "<ul>", 4); p->wikiList = MARKUP_UL; } popStackToTag(p, MARKUP_LI); startAutoParagraph(p); pushStack(p, MARKUP_LI); blob_append(p->pOut, "<li>", 4); } break; } case TOKEN_NUM_LI: { if( inlineOnly ){ blob_append(p->pOut, " # ", -1); }else{ if( p->wikiList!=MARKUP_OL ){ if( p->wikiList ){ popStackToTag(p, p->wikiList); } pushStack(p, MARKUP_OL); blob_append(p->pOut, "<ol>", 4); p->wikiList = MARKUP_OL; } popStackToTag(p, MARKUP_LI); startAutoParagraph(p); pushStack(p, MARKUP_LI); blob_append(p->pOut, "<li>", 4); } break; |