Personal desktop wiki for Windows

A number of small applications I’m working on have all had their release dates unceremoniously pushed back due to my discovery of Wikidpad.

WikidPad is a desktop wiki written in wxPython; and it’s great. You can download it and use it for free for 30 days, but it only costs $12 (that’s about £6 in real money), and is well worth it. WikidPad is now open source, and costs nothing. It has a Trac homepage on wikidpad.python-hosting.com and is actively maintained by Michael Butscher.

After a few days of using it, it was good enough for me to want to write my own, but with some of the behaviour changed slightly. After a few more days of using it I realised that it would takes months of hard graft to create anything of the standard that WikidPad sets, it’s really that good.

Apart from all the instant obvious benefits of having a personal wiki that’s just on your desktop, no server needed, it has some great extra features: it can export single pages, or the entire wiki to HTML; there’s no “edit” mode, you just type in the main window and it auto-saves your content; it saves its content in plain text files so you can modify them with any tool and best of all it’s really customisable.

The regexes for styling text (such as headings, italics, bold etc) are all editable, so you can change them to match your favourite style – for example I changed the headings to match the JSPWiki syntax because that’s what I’m used to using at work.

It has a list of public hooks so that on events like application startup, creation of a new page, saving of a page and so on, you can execute your own Python commands (it comes shipped with commented out CVS commands at the appropriate hooks, which would be very useful).

In addition it has a public API so that you can write plugins which can directly manipulate the application itself. You could probably even get hold of the parent window and create your own wxWidgets dialogs.

It also supports a kind of tagging for pages, whereby you can add something like [work=true] to a page and it will then be listed under the tag “work”. This is slightly cumbersome at the moment (really you just want to add a list of space or comma separated values), but might be possible to change by editing the regexes.

As soon as I realised it was so extensible my mind took off in all kinds of directions – how about enabling rendezvouszeroconf on it, for example, and using it in an office? Or instead of using CVS as a filestore, just use simple FTP commands. Or hook it up to the del.icio.us API for quick access to your bookmarks, or your favourite blogging tool so that you can post directly. In fact, JSPWiki also stores its files in plain text, so there’s the possibility of making WikidPad a desktop editor for JSPWiki, but one that you could carry around with you (hideous versioning problems aside). Just about anything’s possible, and as it allows you to embed (and evaluate) Python code directly on any page, you can automate an awful lot of functions; for example I can now write up my meeting minutes then hit a key combo which converts the page to HTML, posts it to our internal wiki, and mails the URL to the attendees. Brilliant.

So all of this is why I’m behind. Sorry 🙂

Published by

9 thoughts on “Personal desktop wiki for Windows”

  1. Wow, quite visionary.

    Question is, are all/any of these great ideas actually possible?

    I’ve tried experimenting with the python eval powers of WikidPad and had mixed results. Most of what I’ve tried has not worked. Unsure whether the thing is limited to a subset of Python (in which case our dreams are screwed) or whether there is some magic needed to enable general-purpose Python abilities.

  2. I’ve currently got an “FTP wrapper” that I’m using to run WikidPad on 3 PC’s, all using the same data. Works pretty well. It downloads, runs WikidPad, waits for it to close and then uploads the data. Just 3 files dumped into the wiki directory (and edited for your FTP settings) and then use the wrapper to start it up. I’m about 70% done writing and packaging it up for use by others. Will post on my blog when written up. Could easily be modified to run SVN commands instead of FTP for full version control (likely my next step).

  3. That sounds cool! Originally I was using a scheduled SyncBack task to do FTP transfer between different machines, but something hooked right in sounds a bit better!

    I’d used the WikidPad API to do submit and retrieves from SVN, and that worked OK, but I only did it as proof on concept, not as anything serious.

  4. This sounds exactly what I’m after. Just from reading this, my mind also went racing off on various possibilities. Very interesting article thanks. Although I now see that wikipad is open source. Can’t wait to try it!

  5. You might be interested in a similar product made by my company, Reliable Software. It’s called Code Co-op and it’s mainly a P2P version control system, but it has a built-in wiki capability. You can create wiki sites and let other people join and collaborate on them. No server necessary.

    There is one unique wiki feature in Code Co-op: it lets you create simple text-based databases, complete with a version of SQL. All database entries are free-form wiki files.

    This is a commercial product, so it costs money–buy it only if you need a version control system. However, you can use it for free for a month. It’s now in beta. The download site is http://www.relisoft.com/co_op/50annc.html .

  6. Can you post details on how you were able to configure the regex for styling text to match that of JSPWiki syntax?.

  7. Well, I’m truly sorry, because I just can seem to find Wikidpad a truly easy to use application. I obviously do not possess the same knowledge level as the folks on previous posts. So what I would really like to see is something simple and straightforward as a WordWiki…! Why not?

    The question is: as long as wiki requires all this cumbersome systems to run, it will not trickle to the masses…

    And Wikidpad seems to be a great program, but I just cannot relate to its overly “technical” approach. Why can’t I just set up new links utilizing the same syntax I’m used to in other wikis? And if I could customize the syntax, well, you’ve lost me already…

    I want to write down directly in hyper-text, not learn a new programming language, or fiddle with several neat tricks.

  8. July 17th Anon: I’m afraid I don’t have the syntax file any more – at work we’ve moved to Confluence and I updated my live config file.

    July 20th Anon: Out of the box WikidPad uses a virtually identical syntax to several other wikis I’ve used. It can’t be the same as them all. Such is life. On the other hand, you can write down directly in hyper-text, it’s called Frontpage or Dreamweaver. Try Nvu if you want a free version. Good luck with that.

  9. Ok. If you don’t have the actual file what pointers can you provide in terms of file names to be edited and file locations etc.?

Leave a Reply

Your email address will not be published.

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