Fossil SCM
A wiki-style hyperlink to a well-formed ISO8601 date-time will link to the timeline at that date and time.
Commit
7ca773bc312f914225553fe58451fbfe5f55a361
Parent
1efd09ed4fa52d8…
1 file changed
+5
+5
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -958,10 +958,12 @@ | ||
| 958 | 958 | ** [WikiPageName] |
| 959 | 959 | ** |
| 960 | 960 | ** [0123456789abcdef] |
| 961 | 961 | ** |
| 962 | 962 | ** [#fragment] |
| 963 | +** | |
| 964 | +** [2010-02-27 07:13] | |
| 963 | 965 | */ |
| 964 | 966 | static void openHyperlink( |
| 965 | 967 | Renderer *p, /* Rendering context */ |
| 966 | 968 | const char *zTarget, /* Hyperlink traget; text within [...] */ |
| 967 | 969 | char *zClose, /* Write hyperlink closing text here */ |
| @@ -1015,10 +1017,13 @@ | ||
| 1015 | 1017 | } |
| 1016 | 1018 | } |
| 1017 | 1019 | }else if( g.okHistory ){ |
| 1018 | 1020 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1019 | 1021 | } |
| 1022 | + }else if( strlen(zTarget)>=10 && isdigit(zTarget[0]) && zTarget[4]=='-' | |
| 1023 | + && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ | |
| 1024 | + blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); | |
| 1020 | 1025 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1021 | 1026 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1022 | 1027 | }else{ |
| 1023 | 1028 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1024 | 1029 | zTerm = ""; |
| 1025 | 1030 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -958,10 +958,12 @@ | |
| 958 | ** [WikiPageName] |
| 959 | ** |
| 960 | ** [0123456789abcdef] |
| 961 | ** |
| 962 | ** [#fragment] |
| 963 | */ |
| 964 | static void openHyperlink( |
| 965 | Renderer *p, /* Rendering context */ |
| 966 | const char *zTarget, /* Hyperlink traget; text within [...] */ |
| 967 | char *zClose, /* Write hyperlink closing text here */ |
| @@ -1015,10 +1017,13 @@ | |
| 1015 | } |
| 1016 | } |
| 1017 | }else if( g.okHistory ){ |
| 1018 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1019 | } |
| 1020 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1021 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1022 | }else{ |
| 1023 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1024 | zTerm = ""; |
| 1025 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -958,10 +958,12 @@ | |
| 958 | ** [WikiPageName] |
| 959 | ** |
| 960 | ** [0123456789abcdef] |
| 961 | ** |
| 962 | ** [#fragment] |
| 963 | ** |
| 964 | ** [2010-02-27 07:13] |
| 965 | */ |
| 966 | static void openHyperlink( |
| 967 | Renderer *p, /* Rendering context */ |
| 968 | const char *zTarget, /* Hyperlink traget; text within [...] */ |
| 969 | char *zClose, /* Write hyperlink closing text here */ |
| @@ -1015,10 +1017,13 @@ | |
| 1017 | } |
| 1018 | } |
| 1019 | }else if( g.okHistory ){ |
| 1020 | blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget); |
| 1021 | } |
| 1022 | }else if( strlen(zTarget)>=10 && isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1023 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| 1024 | blob_appendf(p->pOut, "<a href=\"%s/timeline?c=%T\">", g.zBaseURL, zTarget); |
| 1025 | }else if( wiki_name_is_wellformed((const unsigned char *)zTarget) ){ |
| 1026 | blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget); |
| 1027 | }else{ |
| 1028 | blob_appendf(p->pOut, "[bad-link: %h]", zTarget); |
| 1029 | zTerm = ""; |
| 1030 |