MoinMoin as a Personal Wiki, Zen To Done, And A Bit of Ikiwiki

Since I last evaluated and complained about wikis last year, I’ve been using moinmoin for two sites: a public one and a personal one.

The personal site has notes on various projects, and my task lists. I’ve been starting out with the Zen To Done (ebook, PDF, paper) idea. It sounds great, by the way; a nice improvement on the better-known GTD.

My To Do Page

Anyhow, in MoinMoin, I have a ToDos page. At the top are links to pages with different tasks: personal, work, yard, etc. Below that, are the three “big rocks” (as ZTD calls them) for the day: three main goals for the day. I edit that section every day.

The Calendar

And below that, I use MoinMoin’s excellent MonthCalendar macro. I have three calendars in a row: this month, next month, and last month. Each day on the calendar is a link to a wiki page; for instance, ToDos/Calendar/2009-10-01. The day has a red background if the wiki page exists, and white otherwise. So when I need to do something on or by a specific day, I click on the link, click my TaskTemplate, and create a simple wiki page. When I complete all the tasks for that day, I delete that day’s wiki page (and can note what I did as the log message if I like). Very slick.

The Task Lists

My task pages are similar. They look like this:

= Personal =

<<NewPage(TaskTemplate,Create new task,@SELF)>>


So, my personal task page has a heading, then it has an input form with a text box and a button that says “Create new task.” Type something in and that becomes the name for a wiki page, and takes you do the editor to describe it. Below the button is a list of all the sub-pages under the Personal page, which represent the tasks. When a task is done, I delete the page and off the list it goes. I can move items from one list to another by renaming the page. It works very, very nicely.


Part of both ZTD and GTD is that it must be very easy to get your thoughts down. The idea is that if you have to think, “I’ve got to remember this,” then you’ll be stressed and worried about the things you might be forgetting. I have a “Collecting” page, like the Personal or Work pages, that new items appear on when I’m not editing my wiki. They get there by email.

MoinMoin has a nice email system. I’ve set up a secret email address. Mail sent there goes directly into MoinMoin. It does some checks on it, then looks at a combination of the From and Subject lines to decide what to do with it. If I name an existing page, it will append my message the the end. If it’s a new page, it’ll create it. I have it set up so that it takes the subject line as a page name to create/append to under ToDos/Collecting/$subject (by putting that as the “name” on the To line).

So, on my computers, I have a “newtodo” script that invokes mail(1), asks for a subject, and optionally lets me supply a body. Quick and painless.

Also, I’ve added the address to my mobile phone’s address book. That way I don’t have to carry around pen and paper. Need to get down some thought ? No problem. Hit send email, pull the last address sent to, give it a subject and maybe a body. Very slick.

Wiki Software

As a way of updating my posts from last year: I’ve been very happy with MoinMoin overall. It has some oddities, and the biggest one that concerns me is its attachment support. It doesn’t let you specify a maximum upload size, and doesn’t very well let you restrict attachment work to only certain people. But the biggest problem is that it doesn’t track history on attachments. If a vandal deletes the attachment on a page, it’s GONE. They expect to have that fixed in 2.0, coming out in approximately November, 2010.

I also looked at Ikiwiki carefully over the past few days. Several things impressed me. First, everything can be in git. This makes for a very nice offline mode, better than Moin’s offline sync. The comment module is nicer than anything in Moin, and the tagging system is as well. Ikiwiki truly could make a nice blog, and Moin just couldn’t. It also puts backlinks at the bottom of each page automatically, a nice feature. And it’s by Joey Hess, who writes very solid software.

There are also some drawbacks. Chief on that list is that ikiwiki has no built-in history of a page feature. Click History and it expects to take you to gitweb or ViewVC or some such tool. That means that reverting a page requires either git access or cut and pasting. That’s fine for me, but throwing newbies to gitweb suddenly might not be the most easy. Since ikiwiki is a (very smart) wiki compiler, its permission system is a lot less powerful than Moin’s, and notably can’t control read access to pages at all. If you need to do that, you’d have to do it at the webserver level. It does have a calendar, but not one that works like Moin’s does, though I could probably write one easily enough based on what’s there.

A few other minor nits: the email receiving feature is not as versatile as Moin’s, you can’t subscribe to get email notifications on certain pages (RSS feeds only, which would have to be manually tweaked later), and you can’t easily modify the links at the top of each page or create personal bookmarks.

Ikiwiki looks like an excellent tool, but just not quite the right fit for my needs right at the moment. I’ve also started to look at DokuWiki a bit. I was initially scared off by all the plugins I’d have to use, but it does look like a nice software.

I also re-visited MediaWiki, and once again concluded that it is way too complicated for its own good. There are something like a dozen calendar plugins for it, some of which even are thought to work. The one that looked like the one I’d use had a 7-step (2-page) installation process that involved manually running SQL commands and cutting and pasting some obscure HTML code with macros in it. No thanks.

13 thoughts on “MoinMoin as a Personal Wiki, Zen To Done, And A Bit of Ikiwiki

  1. Thanks for this post. I’ve been using MoinMoin for years to do similar tasks and now I can’t live without it.

    I have a general calendar like what you mentioned, then I have a Training calendar where I log workouts. I set up a template that has activity, time, intensity, etcetera in table format, and I jsut fill in the details.

    Your task list seems useful and I’ll have to give it a try.

  2. I started to use MoinMoin desktop edition (OSX 10.4) as a way to look at my hard disk with the structure I need for my work and not in the hierarchic tree of unix. It works fine. However, what I want next is to click nouns on a page and launch applications such as my text editor (TexTWrangler), the TeX engine (TeXShop) and the My problem seems to be : how do I launch a shell command by clicking on a moinmoin formated page? I will appreciate any help on this.

  3. Hi, thanks for your article. I came across it via Google when I was searching for how to configure my Desktop Edition of MoinMoin to receive emails. If you don’t mind, could you share what commands you used to configure your for email ? I tried MoinMoin’s Help on Configuration but it’s not working and I think I’m missing something. Thanks again, JS

  4. Thanks for the interesting ideas about using MoinMoin. Regarding your list of MoinMoin shortcomings: I wrote a modified AttachFile to give me more control over attachments – see It would be an easy matter to likewise modify the code to move rather than delete files, then have the superuser confirm actual deletion. I guess, not storing deleted files is about not using too much storage. The file size limit could be easily done server-side, immediately deleting an upload that exceeded set limits either for a single upload or a per page total. I am not sure about doing this a client-side, but perhaps there is a way. I have not used other wikis, but I do like the ease of being able to customise MoinMoin. My struggle, being a shell account holder on a virtual server, but not the server owner, I find the instructions on how to get MoinMoin to receive mail difficult to apply. There doesn’t appear to be much advice available on this, but perhaps you could share more detail of what you did to get it all working.

  5. “That means that reverting a page requires either git access or cut and pasting.”

    Actually, recent versions of ikiwiki have a revert UI on the RecentChanges page.

    I agree that a wiki-type calendar, as opposed to the current blog-type calendar, would be a nice added feature.

    My sister, who uses ikiwiki heavily, keeps nagging me about adding an email subscription thing for comments. Some day..

  6. I know this is an old post but I happen to be setting something like this up. Do you know of any way to get the Navigation macro to list the child pages in a left-justified vertical list instead of a right-justified horizontal one (short of hacking the python code)?

  7. Check on different online stores so thazt you cann acquire
    the most valuable toys. But a woman whho is truly inn llve will do
    her best in keeping the song from fading too fast.

    Christopher is a voice actor, director and producer
    most known for is array of voices for Dragonball Z including Vegeta, Piccolo, Yamcha, Mr.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.