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.

drh 2007-10-28 21:26 trunk
Commit f40230a7e831ebb118afd736af1424b381ce7edc
1 file changed +8 -3
+8 -3
--- src/wiki.c
+++ src/wiki.c
@@ -112,11 +112,15 @@
112112
char *zHtmlPageName;
113113
char *zBody = mprintf("%s","<i>Empty Page</i>");
114114
115115
login_check_credentials();
116116
if( !g.okRdWiki ){ login_needed(); return; }
117
- zPageName = PD("name","");
117
+ zPageName = P("name");
118
+ if( zPageName==0 ){
119
+ wcontent_page();
120
+ return;
121
+ }
118122
if( check_name(zPageName) ) return;
119123
zTag = mprintf("wiki-%s", zPageName);
120124
rid = db_int(0,
121125
"SELECT rid FROM tagxref"
122126
" WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
@@ -154,11 +158,11 @@
154158
style_footer();
155159
}
156160
157161
/*
158162
** WEBPAGE: wikiedit
159
-** URL: /wikiedit?page=PAGENAME
163
+** URL: /wikiedit?name=PAGENAME
160164
*/
161165
void wikiedit_page(void){
162166
char *zTag;
163167
int rid;
164168
Blob wiki;
@@ -430,10 +434,11 @@
430434
"SELECT substr(tagname, 6, 1000) FROM tag WHERE tagname GLOB 'wiki-*'"
431435
" ORDER BY lower(tagname)"
432436
);
433437
while( db_step(&q)==SQLITE_ROW ){
434438
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>
436440
}
437441
db_finalize(&q);
442
+ @ </ul>
438443
style_footer();
439444
}
440445
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button