From: joey Date: Fri, 24 Mar 2006 02:28:53 +0000 (+0000) Subject: awesome new blog-based todo page X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/5c8351541d8bcdb09a137aa7fe029ce10e5db057 awesome new blog-based todo page --- diff --git a/doc/todo.mdwn b/doc/todo.mdwn index eb5aad8dc..ab8c4d3d5 100644 --- a/doc/todo.mdwn +++ b/doc/todo.mdwn @@ -1,146 +1,9 @@ -## online page editing +Welcome to ikiwiki's todo blog. Feel free to add todo items on [[SubPage]s. -* Eventually, might want page deletion. -* Eventually, might want file upload. +## recently added -## recentchanges +[[inline pages="todo/* !*/Discussion" show="30"]] -* Should support mail notification of new and changed pages. +## all todo items - Hmm, should be easy to implement this.. it runs as a svn post-coommit hook - already, so just look at the userdb, svnlook at what's changed, and send - mails to people who have subscribed. - - A few details: - 1. [[Joey]] mentioned that being able to subscribe to globs as well as - explicitly named pages would be desirable. - 2. I think that since we're using Perl on the backend, being able to - let users craft their own arbitrary regexes would be good. - - Joey points out that this is actually a security hole, because Perl - regexes let you embed (arbitrary?) Perl expressions inside them. Yuck! - - It would also be good to be able to subscribe to all pages except discussion pages or the SandBox: `* !*/discussion !sandobx`, maybe --[[Joey]] - - 3. Of course if you do that, you want to have form processing on the user - page that lets them tune it, and probably choose literal or glob by - default. - - I think that the new globlist() function should do everything you need. - Adding a field to the prefs page will be trivial --[[Joey]] - - The first cut, I suppose, could use one sendmail process to batch-mail all - subscribers for a given page. However, in the long run, I can see users - demanding a bit of feature creep: - - 4. Each user should be able to tune whether they see the actual diff parts or - not. - 5. Each user should be able to set a maximum desired email size. - 6. We might want to support a user-specified shibboleth string that will be - included in the email they receive so they can easily procmail the messages - into a folder. - - --[[BrandenRobinson]] - -## pluggable renderers - -I'm considering a configurable rendering pipeline for each supported -filename extension. So for ".mdwn" files, it would send the content through -linkify, markdown, and finalize, while for ".wiki" files it might send it -through just a wiki formatter and finalize. - -This would allow not only supporting more types of markup, but changing -what style of [[WikiLink]]s are supported, maybe some people want to add -[[CamelCase]] for example, or don't like the [[SubPage/LinkingRules]]. - -The finalize step is where the page gets all the pretty junk around the -edges, so that clearly needs to be pluggable too. - -There also needs to be a step before finalize, where stuff like lists of pages -that linked back to it could be added to the page. However, doing linkbacks -also needs to tie into the main logic, to determine what pages need to be -renered, so maybe that won't be a plugin. - -## blogging - -- Add a small form at top and bottom of a blog to allow entering - a title for a new item, that goes to a template to create the new page. -- Should probably add params to control various rss fields like the blog - title, its author email, its copyright info, etc. - -## revisit case - -Being case insensative is handy, but it does make the [[BackLinks]] a bit -ugly compared to other links. It should be possible to support pagenames -that have uppercase, while still allowing them to be linked to using any -case. - -## html - -Make the html valid. Add css and prettify. Make RecentChanges use table for formatting, and images to indicate web vs svn commits and to link to diffs. - -All of this should be doable w/o touching a single line of code, just editing the [[templates]] BTW. - -## sigs - -Need a way to sign name in page that's easier to type than "--\[[Joey]]" -and that includes the date. - -What syntax do other wikis use for this? I'm considering "\[[--]]" (with -spaces removed) as it has a nice nmemonic. - -OTOH, adding additional syntax for this would be counter to one of the -design goals for ikiwiki: keeping as much markup as possible out of the -wiki and not adding nonstandard markup. And it's not significantly hard to -type "--\[[Joey]]", and as to the date, we do have page history. - -## recentchanges more than 100 - -Possibly add "next 100" link to it, but OTOH, you can just use svn log if -you need that data.. - -## search - -* page name substring search -* full text (use third-party tools?) - -## lists - -* list of all missing pages - -This could be its own static pages updated when other pages are updated. -Perhaps this ties in with the pluggable renderers stuff. - -## page indexes - -Might be nice to support automatically generating an index based on headers -in a page, for long pages. The question is, how to turn on such an index? - -## basewiki underlay - -Rather than copy the basewiki around everywhere, it should be configured to -underlay the main srcdir, and pages be rendered from there if not in the -srcdir. This would allow upgrades to add/edit pages in the basewiki. - -Impementaion will be slightly tricky since currently ikiwiki is hardcoded -in many places to look in srcdir for pages. Also, there are possible -security attacks in the vein of providing a file ikiwiki would normally -skip in the srcdir, and tricking it to processing this file instead of the -one from the underlaydir. - -There are also difficulties related to removing files from the srcdir, and -exposing ones from the underlaydir. Will need to make sure that the mtime -for the source file is zeroed when the page is removed, and that it then -finds the underlay file and treats it as newer. - -## wikilinks features - -- \[[John|Fred]] is a Wikipedia method for linking to the one page - while displaying it as the other, Kyle would like this. - -## Logo - -ikiwiki needs a logo. I'm thinking something simple like the word "ikiwiki" -with the first "k" backwards; drawn to show that it's "wiki" reflected. - -## [[Bugs]] +[[inline pages="todo/* !*/Discussion" archive="yes"]] diff --git a/doc/todo/blogging.mdwn b/doc/todo/blogging.mdwn new file mode 100644 index 000000000..25c5a0e11 --- /dev/null +++ b/doc/todo/blogging.mdwn @@ -0,0 +1,5 @@ +- Add a small form at top and bottom of a blog to allow entering + a title for a new item, that goes to a template to create the new page. +- Should probably add params to control various rss fields like the blog + title, its author email, its copyright info, etc. + diff --git a/doc/todo/case.mdwn b/doc/todo/case.mdwn new file mode 100644 index 000000000..7d9e38ddf --- /dev/null +++ b/doc/todo/case.mdwn @@ -0,0 +1,5 @@ +Being case insensative is handy, but it does make the [[BackLinks]] and +[[blog]] links a bit ugly compared to other links. It should be possible to +support pagenames that have uppercase, while still allowing them to be +linked to using any case. + diff --git a/doc/todo/html.mdwn b/doc/todo/html.mdwn new file mode 100644 index 000000000..3712c6b73 --- /dev/null +++ b/doc/todo/html.mdwn @@ -0,0 +1,6 @@ +Make the html valid. Add css and prettify. Make RecentChanges use table for +formatting, and images to indicate web vs svn commits and to link to diffs. + +All of this should be doable w/o touching a single line of code, just +editing the [[templates]] BTW. + diff --git a/doc/todo/lists.mdwn b/doc/todo/lists.mdwn new file mode 100644 index 000000000..da0f11205 --- /dev/null +++ b/doc/todo/lists.mdwn @@ -0,0 +1,4 @@ +* list of all missing pages + + This could be its own static pages updated when other pages are updated. + Perhaps this ties in with the [[pluggablerenderers]]? diff --git a/doc/todo/logo.mdwn b/doc/todo/logo.mdwn new file mode 100644 index 000000000..3960c646b --- /dev/null +++ b/doc/todo/logo.mdwn @@ -0,0 +1,3 @@ +ikiwiki needs a logo. I'm thinking something simple like the word "ikiwiki" +with the first "k" backwards; drawn to show that it's "wiki" reflected. + diff --git a/doc/todo/mailnotification.mdwn b/doc/todo/mailnotification.mdwn new file mode 100644 index 000000000..5aae98894 --- /dev/null +++ b/doc/todo/mailnotification.mdwn @@ -0,0 +1,36 @@ +Should support mail notification of new and changed pages. + + Hmm, should be easy to implement this.. it runs as a svn post-coommit hook + already, so just look at the userdb, svnlook at what's changed, and send + mails to people who have subscribed. + + A few details: + 1. [[Joey]] mentioned that being able to subscribe to globs as well as + explicitly named pages would be desirable. + 2. I think that since we're using Perl on the backend, being able to + let users craft their own arbitrary regexes would be good. + + Joey points out that this is actually a security hole, because Perl + regexes let you embed (arbitrary?) Perl expressions inside them. Yuck! + + It would also be good to be able to subscribe to all pages except discussion pages or the SandBox: `* !*/discussion !sandobx`, maybe --[[Joey]] + + 3. Of course if you do that, you want to have form processing on the user + page that lets them tune it, and probably choose literal or glob by + default. + + I think that the new globlist() function should do everything you need. + Adding a field to the prefs page will be trivial --[[Joey]] + + The first cut, I suppose, could use one sendmail process to batch-mail all + subscribers for a given page. However, in the long run, I can see users + demanding a bit of feature creep: + + 4. Each user should be able to tune whether they see the actual diff parts or + not. + 5. Each user should be able to set a maximum desired email size. + 6. We might want to support a user-specified shibboleth string that will be + included in the email they receive so they can easily procmail the messages + into a folder. + + --[[BrandenRobinson]] diff --git a/doc/todo/onlinepageediting.mdwn b/doc/todo/onlinepageediting.mdwn new file mode 100644 index 000000000..cc09853db --- /dev/null +++ b/doc/todo/onlinepageediting.mdwn @@ -0,0 +1,3 @@ +* Eventually, might want page deletion. +* Eventually, might want file upload. + diff --git a/doc/todo/pageindexes.mdwn b/doc/todo/pageindexes.mdwn new file mode 100644 index 000000000..6e6050fbe --- /dev/null +++ b/doc/todo/pageindexes.mdwn @@ -0,0 +1,2 @@ +Might be nice to support automatically generating an index based on headers +in a page, for long pages. The question is, how to turn on such an index? diff --git a/doc/todo/pluggablerenderers.mdwn b/doc/todo/pluggablerenderers.mdwn new file mode 100644 index 000000000..6cb862fb8 --- /dev/null +++ b/doc/todo/pluggablerenderers.mdwn @@ -0,0 +1,17 @@ +I'm considering a configurable rendering pipeline for each supported +filename extension. So for ".mdwn" files, it would send the content through +linkify, markdown, and finalize, while for ".wiki" files it might send it +through just a wiki formatter and finalize. + +This would allow not only supporting more types of markup, but changing +what style of [[WikiLink]]s are supported, maybe some people want to add +[[CamelCase]] for example, or don't like the [[SubPage/LinkingRules]]. + +The finalize step is where the page gets all the pretty junk around the +edges, so that clearly needs to be pluggable too. + +There also needs to be a step before finalize, where stuff like lists of pages +that linked back to it could be added to the page. However, doing linkbacks +also needs to tie into the main logic, to determine what pages need to be +renered, so maybe that won't be a plugin. + diff --git a/doc/todo/search.mdwn b/doc/todo/search.mdwn new file mode 100644 index 000000000..daf4c6830 --- /dev/null +++ b/doc/todo/search.mdwn @@ -0,0 +1,3 @@ +* page name substring search +* full text (use third-party tools?) + diff --git a/doc/todo/sigs.mdwn b/doc/todo/sigs.mdwn new file mode 100644 index 000000000..0f39474b0 --- /dev/null +++ b/doc/todo/sigs.mdwn @@ -0,0 +1,11 @@ +Need a way to sign name in page that's easier to type than "--\[[Joey]]" +and that includes the date. + +What syntax do other wikis use for this? I'm considering "\[[--]]" (with +spaces removed) as it has a nice nmemonic. + +OTOH, adding additional syntax for this would be counter to one of the +design goals for ikiwiki: keeping as much markup as possible out of the +wiki and not adding nonstandard markup. And it's not significantly hard to +type "--\[[Joey]]", and as to the date, we do have page history. + diff --git a/doc/todo/underlay.mdwn b/doc/todo/underlay.mdwn new file mode 100644 index 000000000..20266260f --- /dev/null +++ b/doc/todo/underlay.mdwn @@ -0,0 +1,15 @@ +Rather than copy the basewiki around everywhere, it should be configured to +underlay the main srcdir, and pages be rendered from there if not in the +srcdir. This would allow upgrades to add/edit pages in the basewiki. + +Impementaion will be slightly tricky since currently ikiwiki is hardcoded +in many places to look in srcdir for pages. Also, there are possible +security attacks in the vein of providing a file ikiwiki would normally +skip in the srcdir, and tricking it to processing this file instead of the +one from the underlaydir. + +There are also difficulties related to removing files from the srcdir, and +exposing ones from the underlaydir. Will need to make sure that the mtime +for the source file is zeroed when the page is removed, and that it then +finds the underlay file and treats it as newer. + diff --git a/doc/todo/wikilinkfeatures.mdwn b/doc/todo/wikilinkfeatures.mdwn new file mode 100644 index 000000000..782acf2af --- /dev/null +++ b/doc/todo/wikilinkfeatures.mdwn @@ -0,0 +1,3 @@ +- \[[John|Fred]] is a Wikipedia method for linking to the one page + while displaying it as the other, Kyle would like this. +