A wickedly useful application

WikidPad


What is WikidPad? Well, that's a tough one. The author calls it an "IDE for thoughts," and although that's a pretty good description, it just doesn't really do WikidPad justice. Basically, WikidPad is what you want it to be: a notebook, an address book, a to-do manager, and a desktop wiki.

By Dmitri Popov

No matter what you call it, WikidPad is one of the most useful tools for anyone looking for an easy and effective way to organize snippets of data and knowledge. As the name suggests, WikidPad borrows its fundamental idea from wiki: any word can be turned into a wiki word, and each wiki word acts as a link to a separate page. This allows users to seamlessly create new pages as well as navigate through the entire wiki in a non-linear manner. However, because WikidPad is a desktop application, it offers a few additional features that take the wiki idea to a whole new level (Figure 1).

Figure 1: WikidPad in all its beauty.

Although a binary package of WikidPad is available for the Windows platform only, installing the application on Linux from the source code is relatively easy. On (K)Ubuntu, you can start by installing the python-wxtools package using the Synaptic manager. You can download the latest source code WikidPad archive [1] and unzip it into your home directory. Next, you'll rename the resulting folder "wikidpad". In the Terminal, you can switch to the WikidPad directory using the cd wikidpad command. Next, you add the lib path to the PYTHONPATH variable to make it available to the Python interpreter with the command export PYTHONPATH=lib and then launch WikidPad by running the python WikidPad.py command.

Obviously, the first thing you might want to do once WikidPad is up and running is to create a new wiki. To do this, you simply choose Wiki | New, select a location, specify the database type it should use (on Linux, you have only one option - the Gadfly database type), and press OK.

The created wiki contains several important elements that deserve a closer look. First, the WikidPad's interface has two panes: the Tree pane to the left and the Page pane to the right. The Tree pane displays all pages in the wiki as a hierarchical tree, whereas the MyWiki page (or whatever name you chose for your wiki) acts as a root. WikidPad considers camel-case words (e.g., BigWord) as wiki words, and each time you add a new wiki word to the current page, the system generates a related page. To see how this works, you can enter "This is my first WikiPage" somewhere in the MyWiki page.

As soon as you've entered the word WikiPage, WikidPad turns it into a link, and when you double-click on it, the page opens in the Main pane and also appears in the Tree pane.

Of course, you can prevent WikidPad from automatically turning a particular camel-case word into a wiki word by placing a backslash in front of it: \WikiWord. If you want to use a word that is not in camel case as a wiki word, you can do so with the use of square brackets (e.g., [Wiki word]).

Before you start working with the created page, you can specify some of its attributes. Attributes in WikidPad are powerful tools that allow you to do many things - from specifying global preferences and page appearance to tagging specific parts of the text and defining dynamic contents. For starters, you can use page-specific attributes to customize different aspects of any page in the wiki. For example, if you want to change the default tree icon of the page, you can enter [icon: disk] somewhere in the page, and the default icon is replaced by a disk icon. WikidPad includes hundreds of icons you can use for your wiki pages. If you don't fancy the default font, you can use the [font] attribute to specify another font for the current page, for example, [font: Bitstream Vera Sans]. If you want to highlight the current wiki page in the Tree pane, you can do so with the color attribute: [color: Purple]. Better yet, WikidPad has special menu commands that allow you to choose a desired icon and color for your page (Figure 2).

Figure 2: Any wiki page can have a custom icon.

WikidPad uses a wiki-like markup for text formatting, and if you've worked with a wiki before, you'll feel right at home in WikidPad. Although WikidPad's markup is not on par with a full-blown wiki system, it does cover all the basics, including bold and italic text styles, headings, bulleted and numbered lists, and tables. The only major omission here is the lack of native graphics support, meaning you can't insert images into a wiki page. As with a conventional wiki, you apply markup directly to the text, but you can also switch to the view mode via the Show Preview button. This displays a nicely formatted page in read-only mode.

Figure 3: The History window displays a list of recently visited pages for easy navigation.

Advanced WikidPad Features

Although WikidPad and conventional wiki systems share a lot of similarities, the desktop application also offers a few nifty features of its own. ScratchPad is one of them. Simply put, it's a special wiki page that acts as a container, into which you can copy any selected text fragment from any page with the Ctrl+Alt+C keyboard shortcut. It is a sort of clipboard inside your wiki.

Another, more powerful feature, is Insertions. An Insertion is a special attribute that specifies dynamic content in a wiki page. For example, you can insert the SomeCleverThoughts page into the MyWiki page by adding the following insertion code to the latter: [:page: SomeCleverThoughts].

Now, if you switch to Preview mode, you'll see the content of the SomeCleverThoughts page at the insertion point. Besides pages, you can also insert a Table of Contents that lists all the headings in the current wiki page with the insertion code [:toc: ""]. You can even insert a search request that inserts search results into the page. For example, the following search insertion returns a list divided into four columns of all wiki pages containing the word "monkey": [:savedsearch: monkey; columns 4].

Another nifty feature that can save you a lot of typing is Text blocks. WikidPad includes a special set of pages called functional pages that are used to specify different aspects of the application and the current wiki. The Global text blocks and Wiki text blocks are such functional pages that allow you to specify text snippets, which can be inserted into any wiki page by choosing the appropriate item under the Editor | Text blocks menu. For example, enter the string "loremipsum =Lorem ipsum dolor sit amet" into the Wiki text block page, and you can then insert the specified sentence by choosing the loremipsum item from the menu.

The Views item in the Tree pane is another powerful tool with many clever uses (Figure 4). WikidPad considers any string that has the format [tag: name] a tag. When added to a wiki page, these tags automatically appear under the Views tree item. This gives you the ability to tag and categorize wiki pages in as many ways as you want. For example, with the use of tags like [subject: language], [research: notes], [book: chapter_1], etc., you can easily organize your pages by the specified tags and quickly find them under the Views tree item. But that's not all. WikidPad also includes a set of special keywords that effectively turn the application into a capable task manager. These words are "todo," "done," "action," "track," "issue," and "question," and you can use them as follows:

todo: Buy milk.
question: How does the Web work?
project: Clean the fridge.

Like user-defined tags, these keywords appear under the Views tree item, so you can easily manage your todo lists, projects, and other tasks. With the tagging feature, you can even implement a full-blown GTD-based system [2].

Figure 4: The Views tree item has a lot of clever uses, like managing your tasks.

Final Word

These WikidPad features are just a few that I hope will whet your appetite. However, WikidPad is much more. It has powerful search capabilities, extensive keyboard shortcuts, export/import, and print features, as well as the ability to define templates and forms (Figure 5).

Figure 5: WikidPad has powerful search capabilities.

In other words, WikidPad is a real gem of an application, and it can prove to be an indispensable tool in a variety of situations you may encounter.

INFO
[1] WikidPad source: http://wikidpad.python-hosting.com/
[2] Getting Things Done on WikidPad: http://geekanddiva.com/archivedwiki/gtdonwikidpad.html
THE AUTHOR

Dmitri Popov holds a degree in Russian language and computer linguistics. He has been working as a technical translator and freelancer contributor for several years. He has published over 500 articles covering productivity software, mobile computing, web applications, and other computer-related topics. His articles have appeared in Danish, British, US, and Russian magazines and websites.