@@ -30,10 +30,11 @@
30 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WIKI_NOBLOCK 0x004 /* No block markup of any kind */
31 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WIKI_BUTTONS 0x008 /* Allow sub-menu buttons */
32 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WIKI_NOBADLINKS 0x010 /* Ignore broken hyperlinks */
33 33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WIKI_LINKSONLY 0x020 /* No markup. Only decorate links */
34 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define WIKI_NEWLINE 0x040 /* Honor \n - break lines at each \n */
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define WIKI_MARKDOWNLINKS 0x080 /* Resolve hyperlinks as in markdown */
35 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
36 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
37 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
38 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
39 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These are the only markup attributes allowed.
@@ -1211,20 +1212,22 @@
1211 1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [http://www.fossil-scm.org/]
1212 1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [https://www.fossil-scm.org/]
1213 1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [ftp://www.fossil-scm.org/]
1214 1215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [mailto:[email protected] ]
1215 1216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [/path]
1217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [/path] -> Refers to the root of the Fossil hierarchy, not
1218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the root of the URI domain
1217 1219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1218 1220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [./relpath]
1221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [../relpath]
1219 1222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [WikiPageName]
1221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [wiki:WikiPageName]
1223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [#fragment]
1222 1224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1223 1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [0123456789abcdef]
1224 1226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** [#fragment]
1227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [WikiPageName]
1228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [wiki:WikiPageName]
1226 1229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1227 1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [2010-02-27 07:13]
1228 1231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1229 1232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void wiki_resolve_hyperlink(
1230 1233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob *pOut, /* Write the HTML output here */
@@ -1296,24 +1299,35 @@
1296 1299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(pOut, "%z[",xhref(zExtraNS, "%R/info/%s", zTarget));
1297 1300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTerm = "]</a>";
1298 1301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1299 1302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTerm = "";
1300 1303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
1302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
1303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut, "<a href=\"%R/timeline?c=%T\"%s>", zTarget, zExtra);
1304 1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( (z = validWikiPageName(mFlags, zTarget))!=0 ){
1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The link is to a valid wiki page name */
1305 1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zOverride = wiki_is_overridden(zTarget);
1306 1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zOverride ){
1307 1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(pOut, "<a href=\"%R/info/%S\"%s>", zOverride, zExtra);
1308 1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1309 1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(pOut, "<a href=\"%R/wiki?name=%T\"%s>", z, zExtra);
1310 1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( zOrig && zTarget>=&zOrig[2] && !fossil_isspace(zTarget[-2]) ){
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Probably an array subscript in code */
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Dates or date-and-times in ISO8610 resolve to a link to the
1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** timeline for that date */
1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pOut, "<a href=\"%R/timeline?c=%T\"%s>", zTarget, zExtra);
1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( mFlags & WIKI_MARKDOWNLINKS ){
1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If none of the above, and if rendering links for markdown, then
1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** create a link to the literal text of the target */
1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pOut, "<a href=\"%h\"%s>", zTarget, zExtra);
1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zOrig && zTarget>=&zOrig[2]
1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && zTarget[-1]=='[' && !fossil_isspace(zTarget[-2]) ){
1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If the hyperlink markup is not preceded by whitespace, then it
1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is probably a C-language subscript or similar, not really a
1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** hyperlink. Just ignore it. */
1313 1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTerm = "";
1314 1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( (mFlags & (WIKI_NOBADLINKS|WIKI_LINKSONLY))!=0 ){
1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Also ignore the link if various flags are set */
1315 1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTerm = "";
1316 1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1317 1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(pOut, "<span class=\"brokenlink\">[%h]", zTarget);
1318 1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTerm = "</span>";
1319 1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1758,20 +1772,10 @@
1758 1772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1759 1773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(renderer.pOut, "\n", 1);
1760 1774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(renderer.aStack);
1761 1775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1762 1776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
1764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Send a string as wiki to CGI output.
1765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
1766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void wiki_write(const char *zIn, int flags){
1767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob in;
1768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&in, zIn, -1);
1769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wiki_convert(&in, 0, flags);
1770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&in);
1771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1773 1777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1774 1778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: test-wiki-render
1775 1779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1776 1780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Usage: %fossil test-wiki-render FILE [OPTIONS]
1777 1781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -1790,10 +1794,11 @@
1790 1794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("htmlonly",0,0)!=0 ) flags |= WIKI_HTMLONLY;
1791 1795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("linksonly",0,0)!=0 ) flags |= WIKI_LINKSONLY;
1792 1796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("nobadlinks",0,0)!=0 ) flags |= WIKI_NOBADLINKS;
1793 1797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("inline",0,0)!=0 ) flags |= WIKI_INLINE;
1794 1798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("noblock",0,0)!=0 ) flags |= WIKI_NOBLOCK;
1799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_find_and_open_repository(0,0);
1795 1800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_all_options();
1796 1801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc!=3 ) usage("FILE");
1797 1802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&out);
1798 1803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_read_from_file(&in, g.argv[2], ExtFILE);
1799 1804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wiki_convert(&in, &out, flags);
1800 1805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!