Friday, December 27, 2002

Editing outlines on your Palm

Back in May I asked for some folks to help me figure out a way to edit outlines on my Palm. One of Radio’s powerful features is its built-in outliner – a simple but effective tool for hierarchically ordering information. It stores all outlines in its own file format, called OPML (more on OPML here). Increasingly, I found that I was putting more information into outline format  because it made it easier to organize my own information. Then I found activeRenderer, a great Radio enhancement developed by Marc Barrot – aR takes your Radio outlines and converts them to very useable HTML pages. (See my CV as one example of a Radio outline converted to HTML.) aR applies templates to the outlines, so that you can maintain the organization of the outline while applying a consistent look and feel to the content. Only downside to this – you need to be in front of the Radio app to edit the outlines – and there was no easy way to extend this functionality to the Palm.

In response to my request, one individual turned me on to Bonsai, an outlining software application for the Palm OS. Now that I’ve got my Treo (an outstanding combination cell phone and Palm PDA), I’ve found the perfect match. What follows is a quick run-down on how to connect Bonsai to Radio so that edits you make on your Palm get synched back to Radio – and, if you’re using activeRenderer, how to then upload (and render) those outlines to the web.

  1. Download Bonsai from Natara’s web site. You can try it for 30 days before you have to register – it’s probably a good idea to do this while you test this out. NOTE: This integration is a Windows-only thing; while you can download Bonsai without its desktop component, the export to Radio requires the Windows destop app. Install it to your desktop and ensure that it installs properly to your Palm.
  2. If you don’t already have a Radio outline you want to have available on your Palm, skip to step 3. Open Radio (right-click on Radio in system tray, select “Open Radio”), open your outline, and select “File | Save as Plain Text”. Save it somewhere you’ll remember (like /My Documents).
  3. Launch Bonsai (Start | Programs | Natara Software | Bonsai) and create a new, blank outline. If importing from an existing outline, click “File | Import” and navigate to the text version of your Radio outline. Set the outline to synchronize with your Palm (“File | Synchronize”), then close.
  4. Sync your Palm. The outline should now show up on your Palm.

  5. Create a Bonsai Export Template to convert the Bonsai outline to OPML. Thanks to David Benjamin, who posted this message to, this is a simple process. Save the resulting text file as opml.oxt in your Bonsai directory.
  6. Verify that the export template works; open the outline in Bonsai’s desktop app, click “File | Export” then select “opml” from the list. Give it a filename, then open the file in Radio and make sure that everything looks good.
  7. The last step is a nice “hack” that is supported by Bonsai: command-line exports of files that can then be automated. Open Notepad. Create a batch file that includes the following line:
    BONSAI /EXPORT [filename].OTL “c:\program files\natara\bonsai\opml.oxt” “c:\program files\radio userland\www\outlines\[filename].opml”
    This will give you a file that you can run whenever you want to take the Bonsai outline and apply the OPML export instructions. The reason I put it in the /www/outlines folder of Radio is that this is the folder that activeRenderer “watches” and automatically converts to HTML for upload. If you have more than one outline to export, simply add a separate line for each outline (and make sure to change the filenames as appropriate). Save the batch file (I called mine outline_export.bat) in your Bonsai directory.
  8. Finally, you can automate this so that every time you sync your Palm, it will run the OPML export. In the Bonsai application, click on “View | Global Settings” then select Synchronization. The last box says “Post synchronization command” – in this box, type in the name of the batch file you created. Now, whenever you sync your Palm, this export will run. And if you’re online, Radio will “see” it, and with aR installed it will render the outline and upload it to your weblog (or, in my case, I have Radio set to upload a sub-directory of /www/outlines to my intranet).

The end result is rather elegant – you can edit outlines on the Palm, and have them automatically uploaded to the web. Couple comments:

  • You shouldn’t edit the outline in Radio anymore – if you do, the changes will be overwritten next time you sync your Palm. (If you choose to edit in Radio, you’ll need to export, then import into Bonsai – this is a manual process!)
  • Bonsai is a much more fully-featured outline application than Radio. This means that you can link outline items to to-dos, track completion status, identify whether items are done, etc. If you want any of that information reflected in your Radio outline, you’ll need to change the OPML export template. See the Bonsai User Manual (starting on p. 61) for more info about how to customize what information is exported from Bonsai.

  • OPML doesn’t really store the node state (expanded or collapsed) in a way that’s easily reproduceable from Bonsai. It looks like Bonsai can export a list of collapsed items, but OPML wants a list of expanded items. This is probably possible to figure out, but it’s not all that important to me (see below about collapsing all nodes).
  • Bonsai has a limit of 140 characters per outline item. (It can also create “notes” that are attahed to the items.) Since Radio doesn’t have a concept of items vs. notes, you will probably want to keep your outline items fairly short so they don’t get truncated in export.

A couple things that I did to make this more functional for me, since the primary purpose of doing this was to distribute these outlines throughout my company.

  • You can include Radio macros in the outline itself – once the outline is exported to a directory that Radio watches, the macro will be executed before the outline is upstreamed. I used the radio.macros.getLastUpdate and authorName macros, so that a line shows up in the top of the outline that tells them when the file was last updated and who edited it.
  • I was annoyed that the default export created an outline with every node expanded. So I use an activeRenderer javascript command to automatically collapse all outline nodes. Just insert onload=“collapseAll(‘active’)” somewhere in the body tag of your #template.txt file. Note: this will collapse the entire outline and show just top-level items.

No comments:

Post a Comment