Fossil SCM
Add the ability to escape Wiki page names in hyperlinks using a wiki: prefix. Ticket [f58a05747498d3aaa9ea1e4f8f4015c209dfc54a].
Commit
d6b2c387a0e5506293dd24a54c3edd5a757ffa3e
Parent
b16b4337b9f5736…
1 file changed
+5
+5
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -975,10 +975,11 @@ | ||
| 975 | 975 | ** [/path] |
| 976 | 976 | ** |
| 977 | 977 | ** [./relpath] |
| 978 | 978 | ** |
| 979 | 979 | ** [WikiPageName] |
| 980 | +** [wiki:WikiPageName] | |
| 980 | 981 | ** |
| 981 | 982 | ** [0123456789abcdef] |
| 982 | 983 | ** |
| 983 | 984 | ** [#fragment] |
| 984 | 985 | ** |
| @@ -1041,10 +1042,14 @@ | ||
| 1041 | 1042 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1042 | 1043 | } |
| 1043 | 1044 | }else if( strlen(zTarget)>=10 && isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1044 | 1045 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1045 | 1046 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); |
| 1047 | + }else if( strncmp(zTarget, "wiki:", 5)==0 | |
| 1048 | + && wiki_name_is_wellformed((const unsigned char*)zTarget) ){ | |
| 1049 | + zTarget += 5; | |
| 1050 | + blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); | |
| 1046 | 1051 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1047 | 1052 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1048 | 1053 | }else{ |
| 1049 | 1054 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1050 | 1055 | zTerm = ""; |
| 1051 | 1056 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -975,10 +975,11 @@ | |
| 975 | ** [/path] |
| 976 | ** |
| 977 | ** [./relpath] |
| 978 | ** |
| 979 | ** [WikiPageName] |
| 980 | ** |
| 981 | ** [0123456789abcdef] |
| 982 | ** |
| 983 | ** [#fragment] |
| 984 | ** |
| @@ -1041,10 +1042,14 @@ | |
| 1041 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1042 | } |
| 1043 | }else if( strlen(zTarget)>=10 && isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1044 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1045 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); |
| 1046 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1047 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1048 | }else{ |
| 1049 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1050 | zTerm = ""; |
| 1051 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -975,10 +975,11 @@ | |
| 975 | ** [/path] |
| 976 | ** |
| 977 | ** [./relpath] |
| 978 | ** |
| 979 | ** [WikiPageName] |
| 980 | ** [wiki:WikiPageName] |
| 981 | ** |
| 982 | ** [0123456789abcdef] |
| 983 | ** |
| 984 | ** [#fragment] |
| 985 | ** |
| @@ -1041,10 +1042,14 @@ | |
| 1042 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1043 | } |
| 1044 | }else if( strlen(zTarget)>=10 && isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1045 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1046 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); |
| 1047 | }else if( strncmp(zTarget, "wiki:", 5)==0 |
| 1048 | && wiki_name_is_wellformed((const unsigned char*)zTarget) ){ |
| 1049 | zTarget += 5; |
| 1050 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1051 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1052 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1053 | }else{ |
| 1054 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1055 | zTerm = ""; |
| 1056 |