June 8, 2005

Tuxcards and KnowIt: Open source outlining

Author: James LaRue

Tuxcards and KnowIt are two twists on the same idea. These open source two-pane outliners can be used as quickly searchable notebooks, or collections of Web clippings, to-do lists, or projects in progress. Both make fine text databases, and both are handy for the planning of complex documents.For instance, one of my Tuxcards files contains every newspaper column I've written for 15 years. Another contains the complete history of my use of a particular computer -- all the software changes I've made, tips and tricks I discovered, and hardware issues.

In these applications, the left pane contains hierarchical lists (think directory trees) of headings that serve as a skeleton of a document. These headings can be expanded (revealed) or collapsed (hidden). The right pane ties a text window to each heading. You can quickly fill in the associated text window on the right, without losing track of the overall structure. If it should turn out that one section of text fits better somewhere else, then it's relatively easy to shuffle the heading, which escorts the related text to a new location. You can expand either pane so all you're looking at is the text or the structure.

Tuxcards, by Alexander Theel, was inspired by the Windows Cuecards program. KnowIt, from Michael Rudolf, was inspired by Tuxcards. Both programs allow Rich Text style formatting of text in the editing window. The main difference between them is that KnowIt requires KDE. Tuxcards does not.

Outlining

Both Tuxcards and KnowIt allow for unlimited nesting of levels. Practically speaking, few people will go much deeper than three or four. Both allow the user to expand or contract headings by clicking on a + or - icon next to a heading (a plus sign means there are subordinate headings to be revealed, a minus sign means that it is fully expanded).

Both programs let you add a subordinate heading by pressing the Insert key or using the mouse. Both let you change the name of a heading. Tuxcards lets you attach an icon to a heading.

However, KnowIt does a much better job of providing keyboard control, and general outline editing. Let's say you have something like this:

main_topic
    subtopic_1
    subtopic_2

main_topic_2
    subtopic_a
    subtopic_b

And suppose you want to move subtopic_b to between subtopic_1 and subtopic_2.

In Tuxcards, you have to use the mouse:
1) Drag subtopic_b on top of main_topic. This puts it after subtopic_2.
2) Click on the mouse control toolbar button to move subtopic_b up one. (The only other mouse button moves it down.)

In KnowIt, you can either
1) Just drag it from where it is to where you want it to be, or
2) use a combination of four mouse-controlled toolbar buttons (up, down, left, right), or
3) use Alt-Shift-Arrow keys to move it left, then up, then right.

Similarly, action is more complicated moving from one pane to the other in Tuxcards. Both applications let you just click from one pane to the other. But KnowIt lets you bounce back and forth between them using the Tab and Shift-Tab keys to move from outline editor to text window and back.

In Tuxcards, pressing Tab in the outliner takes you to the pull-down list for list formatting, then to a font selector, then to a font size selector, and only then to the text window. Shift-Tab cycles in the opposite direction. Bottom line: you're not going to use the keyboard controls.

Neither program has other popular or sophisticated outline editing commands. There is no hoisting of the outline so that only one section is visible. There is no cloning of an outline. KnowIt lets you sort subordinate headings, Tuxcards does not.

KnowIt clearly has an overall edge in outlining functions, making it much easier to shuffle the headings.

Text editing

Like the outlining functions, the text windows are similar in both programs. Both let you apply styles to text. Tuxcards also lets you mix up fonts and font sizes within a note, although a single note can have only one alignment (left, centered, right, or full-justified). With KnowIt, you get one font, one size, one alignment.

Tuxcards offers a fast word count for a note. KnowIt does not, but offers the spell check Tuxcards left out.

Both have drag and drop, the insertion of the date (Tuxcards adds a time stamp), and the usual editing commands. Only KnowIt allows you to insert a file from the menu; in Tuxcards, you have to cut and paste. Neither lets you insert a graphic.

Both let you assign list types to a note (bulleted, numbered, etc.), although I found both of them odd -- you must use Ctrl-Enter, not just Enter, at the end of a paragraph [to get these styles to apply to each paragraph]. Both have undo and redo.

Both feel fast and responsive. Both look good.

Searching

Tuxcards and KnowIt both allow you to do a word search. Tuxcards is better: first, it lets you decide whether you're searching the whole tree or just from the current heading down; second, it returns a list of all the matches: headings and a sample phrase. Click on the one you want.

KnowIt moves you through the whole outline, incident by incident. You can search forward or backward, or go to a named note.

Printing and exporting

The chief limitation of both programs is that they will print only one note at a time, and neither includes the heading. Both would greatly benefit from some options: to print the current heading and subordinate headings and text, to print only those items that are revealed, to print the whole outline, to print only those headings and notes that are marked, and to suppress headings. As it is, you get the note and a page number.

And as with printing, I'd like to see some more export options. Right now, Tuxcards saves to XML and exports to HTML. KnowIt saves in its own format, apparently some mix of XML and HTML, although it can be edited as a plain text file. It exports to HTML -- one note at a time.

But Tuxcards has an interesting wrinkle. Its HTML export saves the whole file, not just one note. It uses the header as the note's filename, adding an.html filetype. Finally, it turns the whole outline into a two-frame Web page, output to its own folder. This can get a little tricky to read if you don't keep those headers short. And Tuxcards makes some odd additions to the frames that may require a little editing later. The HTML export gives Tuxcards a small advantage, although it's hard for me to imagine that anybody would use it as a Web editor.

Both applications would benefit by adding RTF and ASCII as export options. Right now, both are too limited in this area.

Tuxcards always goes back to assuming that you are printing on A4 paper every time you restart the application; you can't save the paper type as a preference. KnowIt uses the default KDE printer.

Idiosyncrasies

KnowIt lets you add a third pane, horizontal to the text editing window, in which you can add an external link to a URL or an internal link to a local file, that relates to the item in the right pane.

Tuxcards adds a third pane, vertical and left of the outline editor. It's called Cactusbar, and it... grows a cactus, unobtrusively. The cactus even blooms. This has no practical purpose whatsoever, but I still like it.

Conclusion

Linux has some catching up to do in the arena of outliners. At present, both Tuxcards and KnowIt are relatively primitive compared to the venerable Inspiration on the Macintosh or Windows. While Tuxcards is at version 1.2, and KnowIt and 0.10, I would judge them roughly equal. (Of course, KnowIt had the advantage of building on Tuxcards.)

While KnowIt is a better outliner, I have concerns about its non-standard file format. It doesn't take long to build up a big file, and I'd hate to be held hostage to a quirky format.

But both Tuxcards and KnowIt are incredibly useful, and succeed in their design goals as quick, good-looking, searchable text scrapbooks. Both are worthy additions to a Linux user's tool chest.

James LaRue is a public library director in Colorado.

Click Here!