Moin Moin Todo

This is a list of things that are to be implemented. If you miss a feature, have a neat idea or any other suggestion, please put it on MoinMoinIdeas.
To discuss the merit of the planned extensions, or new features from MoinMoinIdeas, please use MoinMoinDiscussion.
A list of things that are added to the current source in CVS are on MoinMoinDone.
MoinMoinRelease describes how to build a release from the SourceForge repository.



Things to do in the near future:
  • Spellchecker:
    • add a nice progress page, while the dictionary cache is built
    • add a means to build the dict.cache file from the command line
  • Macro that lists all users that have an email address; a click on the user name sends the re-login URL to that email (and not more than once a day).
  • Send a timestamp with the EditPage link, and then compare to the current timestamp; warn the user if page was edited since displaying.
  • Now that we can identify certain authors (those who have set a user profile), we can avoid to create a backup copy if one author makes several changes; we have to remember who made the last save of a page, though.
  • Implement the update script (copying new images etc.) described elsewhere on this page or MoinMoinIdeas.
    • By default, enable an as-if mode that shows what needs to be fixed.
    • Replace SystemPages by using the normal "save page" code, thus creating a backup copy of the page that was in the system. Only replace when diff shows the page needs updating.
  • UserPreferences
    • Send a regular "changes" mail? (checkbox, plus frequency setting hourly/daily/weekly/etc.)
    • Other things like color, icons, menu?
    • On request, send email containing an URL to send the cookie
    • Steal ideas from MeatBall:Preferences
    • a CSS switch (needs more work on the formatter issue to really work)
    • configurable fonts, font sizes etc. (copy master CSS file to a user one, and send that)
  • MoinMoinRefactoring
    • create a dir per page in the "backup" dir; provide an upgrade.py script to adapt existing wikis
      • or go all the way, and store pages as data/pages/<firstletter>/<pagename>/(current|meta|...|<timestamp>)
  • Add backlink patch by Thomas Thurman
    • Page info: links to / from page.
  • Add a link to Wiki:EditThePageSimultaneously (or a link to a local copy) to the edit conflict message.
  • [[SiteMap]]: find the hotspots and create a hierarchical list of all pages (again, faster with caching)
  • ProcessingInstructions
  • Remember when someone starts to edit a page, and warn when someone else opens the same page for editing
  • macro for the server time/date (pass the strftime string as an optional argument)
  • Using the new zipfile module, add a download of all pages
  • Some of MeatBall:IndexingScheme as macros
  • Diffs:
    • Lynx-friendliness (keep >>> === <<< ?)
    • look at cvsweb code (color-coded, side-by-side comparisons)
    • or look at viewcvs www.lyra.org/viewcvs (a nicer python version of cvsweb with bonsai like features)
    • diff -y gives side by side comparisons
  • Create MoinMoinI18n master sets (english help pages are done, see HelpIndex, translations are welcome)
  • Document the config options (possibly after the refactoring)
  • Check generated HTML code for conformity



  • Script or macro to allow the creation of new wikis ==> WikiFarm
  • Setup tool (cmd line or cgi): fetch/update from master set of system pages, create a new wiki from the master tarball, delete pages, ...
  • Support URNs, see http://www.ietf.org/internet-drafts/draft-daigle-uri-std-00.txt and http://www.ietf.org/internet-drafts/draft-hakala-isbn-00.txt
  • Add ISBN links
    • IsbnInfo page and ISBN macro
    • pattern d{3}-d{8}-d{8}-0-9xX
    • calculate checksum
    • Link icon to IsbnInfo page, and the ISBN number itself to the main URL
  • Support for -- (‐ ?), << and >> (french quotes) and possibly any (Latin-1) SGML entity.
  • A RegisterInterest macro
  • Add display of config params (lower/uppercase letterns) to the SystemInfo macro.
  • Add a "news item" macro (edit page shows a special form)
  • Implement http://sunir.org/apps/visits.pl
  • Make a sitemap using Wiki:GraphViz
  • System Info: number edits, views, whatever.
  • Add hidden field to editor, for two purposes:
    • recognize saves from the same author
    • prevent direct saves from outside (i.e. simple attacks), that did not load and parse the edittext page before saving
    • needs a way to save meta-info for a page
  • Add change counter to RecentChanges
  • Add PyUnit tests
  • WikiName|s instead of the obsessive WikiName' ' ' ' ' 's (or use " " for escaping)
  • Backslash escapes?
  • Support &uuml; SgmlEntities
  • Configuration outside the script proper (config file instead of moin_config.py)
  • When a save is in conflict with another update, use the rcs/cvs merge process to create the new page, so the conflicts can be refactored. Warn the user of this!
  • Write timings to a log file (cgi_log) when configured accordingly, so we can check for necessary optimizations.
  • Wiki:WikiWordStatistics (or just add counters to the WordIndex?)
  • Document all MoinMoinUrlSchemes (i.e. action=whatever)
  • Make a ZopeMoinMoin product, to compete with ZWiki product.
    • I'll certainly not have the time to climb the Zope learning curve in the near future. The new source structure would allow to simply add a ~cpp zopemain.py companion to ~cpp cgimain.py. Volunteers?

4. UserPreferences

The following actions are needed:
  • On request, send email containing an URL to send the cookie (i.e. login from a click into the email)
  • Add password handling?

Preference settings:
  • Use text links instead of images on RecentChanges
  • Checkbox: Send daily "changes" mail?
  • Other things like color, icons, menu?
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0325 sec