Fossil SCM
The "wiki" URI without a page name argument now gives you a list of existing wiki pages. This works fine as long as there are a reasonable number (no more than a few hundred) wiki pages. We need to think of something better for large wikis. We also need to think of ways to give users better guidance for creating new wiki pages.
Commit
f40230a7e831ebb118afd736af1424b381ce7edc
Parent
e75f9a2ab45aa3b…
1 file changed
+8
-3
+8
-3
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -112,11 +112,15 @@ | ||
| 112 | 112 | char *zHtmlPageName; |
| 113 | 113 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 114 | 114 | |
| 115 | 115 | login_check_credentials(); |
| 116 | 116 | if( !g.okRdWiki ){ login_needed(); return; } |
| 117 | - zPageName = PD("name",""); | |
| 117 | + zPageName = P("name"); | |
| 118 | + if( zPageName==0 ){ | |
| 119 | + wcontent_page(); | |
| 120 | + return; | |
| 121 | + } | |
| 118 | 122 | if( check_name(zPageName) ) return; |
| 119 | 123 | zTag = mprintf("wiki-%s", zPageName); |
| 120 | 124 | rid = db_int(0, |
| 121 | 125 | "SELECT rid FROM tagxref" |
| 122 | 126 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -154,11 +158,11 @@ | ||
| 154 | 158 | style_footer(); |
| 155 | 159 | } |
| 156 | 160 | |
| 157 | 161 | /* |
| 158 | 162 | ** WEBPAGE: wikiedit |
| 159 | -** URL: /wikiedit?page=PAGENAME | |
| 163 | +** URL: /wikiedit?name=PAGENAME | |
| 160 | 164 | */ |
| 161 | 165 | void wikiedit_page(void){ |
| 162 | 166 | char *zTag; |
| 163 | 167 | int rid; |
| 164 | 168 | Blob wiki; |
| @@ -430,10 +434,11 @@ | ||
| 430 | 434 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname GLOB 'wiki-*'" |
| 431 | 435 | " ORDER BY lower(tagname)" |
| 432 | 436 | ); |
| 433 | 437 | while( db_step(&q)==SQLITE_ROW ){ |
| 434 | 438 | const char *zName = db_column_text(&q, 0); |
| 435 | - @ <li><a href="%s(g.zBaseURL)/wiki?page=%T(zName)">%h(zName)</a></li> | |
| 439 | + @ <li><a href="%s(g.zBaseURL)/wiki?name=%T(zName)">%h(zName)</a></li> | |
| 436 | 440 | } |
| 437 | 441 | db_finalize(&q); |
| 442 | + @ </ul> | |
| 438 | 443 | style_footer(); |
| 439 | 444 | } |
| 440 | 445 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -112,11 +112,15 @@ | |
| 112 | char *zHtmlPageName; |
| 113 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 114 | |
| 115 | login_check_credentials(); |
| 116 | if( !g.okRdWiki ){ login_needed(); return; } |
| 117 | zPageName = PD("name",""); |
| 118 | if( check_name(zPageName) ) return; |
| 119 | zTag = mprintf("wiki-%s", zPageName); |
| 120 | rid = db_int(0, |
| 121 | "SELECT rid FROM tagxref" |
| 122 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -154,11 +158,11 @@ | |
| 154 | style_footer(); |
| 155 | } |
| 156 | |
| 157 | /* |
| 158 | ** WEBPAGE: wikiedit |
| 159 | ** URL: /wikiedit?page=PAGENAME |
| 160 | */ |
| 161 | void wikiedit_page(void){ |
| 162 | char *zTag; |
| 163 | int rid; |
| 164 | Blob wiki; |
| @@ -430,10 +434,11 @@ | |
| 430 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname GLOB 'wiki-*'" |
| 431 | " ORDER BY lower(tagname)" |
| 432 | ); |
| 433 | while( db_step(&q)==SQLITE_ROW ){ |
| 434 | const char *zName = db_column_text(&q, 0); |
| 435 | @ <li><a href="%s(g.zBaseURL)/wiki?page=%T(zName)">%h(zName)</a></li> |
| 436 | } |
| 437 | db_finalize(&q); |
| 438 | style_footer(); |
| 439 | } |
| 440 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -112,11 +112,15 @@ | |
| 112 | char *zHtmlPageName; |
| 113 | char *zBody = mprintf("%s","<i>Empty Page</i>"); |
| 114 | |
| 115 | login_check_credentials(); |
| 116 | if( !g.okRdWiki ){ login_needed(); return; } |
| 117 | zPageName = P("name"); |
| 118 | if( zPageName==0 ){ |
| 119 | wcontent_page(); |
| 120 | return; |
| 121 | } |
| 122 | if( check_name(zPageName) ) return; |
| 123 | zTag = mprintf("wiki-%s", zPageName); |
| 124 | rid = db_int(0, |
| 125 | "SELECT rid FROM tagxref" |
| 126 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| @@ -154,11 +158,11 @@ | |
| 158 | style_footer(); |
| 159 | } |
| 160 | |
| 161 | /* |
| 162 | ** WEBPAGE: wikiedit |
| 163 | ** URL: /wikiedit?name=PAGENAME |
| 164 | */ |
| 165 | void wikiedit_page(void){ |
| 166 | char *zTag; |
| 167 | int rid; |
| 168 | Blob wiki; |
| @@ -430,10 +434,11 @@ | |
| 434 | "SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname GLOB 'wiki-*'" |
| 435 | " ORDER BY lower(tagname)" |
| 436 | ); |
| 437 | while( db_step(&q)==SQLITE_ROW ){ |
| 438 | const char *zName = db_column_text(&q, 0); |
| 439 | @ <li><a href="%s(g.zBaseURL)/wiki?name=%T(zName)">%h(zName)</a></li> |
| 440 | } |
| 441 | db_finalize(&q); |
| 442 | @ </ul> |
| 443 | style_footer(); |
| 444 | } |
| 445 |