Using IconProject with Trunk Notes


A quick post about IconProject and how you can use it with Trunk Notes. IconProject is an app which allows you to add icons to your iPhones home screen which launch URLs (no jail breaking required!) The URLs can be any URL you want, include the special URLs to Trunk Notes pages.

The app is easy to use and creates really nice looking icons.

In the above screenshot I used it to create an icon which takes me straight to my passwords note.

You can link to any Trunk Notes page. A link to a Trunk Notes page starts with tn://. As well as normal pages you can also use URLs to create new pages.

  • tn://Special:NewText
  • tn://Special:NewImage
  • tn://Special:NewCamera

It’s quite cool to be able to have an icon on your homepage which takes a picture with the camera and adds it straight into your personal wiki.

More information about IconProject

Naming Pages in Trunk Notes

Unlike many note taking apps Trunk Notes forces you to give each page a name. That is because Trunk Notes, at it’s heart, is a personal wiki. The power of a personal wiki comes from the ability to link named pages together. Having good names for pages makes this easier and more natural.

Page names are also used to help find information quickly. The search bar in Trunk Notes works by matching what you type against existing page names. Start typing ‘blog’ and all pages which start with Blog will be listed with the most recently modified at the top.

Prefixing page names can be a helpful way to organise wiki entries. I am writing this blog post in Trunk Notes on my iPad. It’s name is ‘BlogNamingPages’. All my other blog posts also start with Blog. To find all my blog posts ordered by when they were written I just type Blog in the search bar. I don’t do this for all pages, just those where searching is quite common – this includes recipes.

One aspect of Trunk Notes which some new users find awkward is the “no spaces in page names” rule. This was an early design decision and it’s aim is to make it easier to refer to pages. You can still create links which contain spaces, for example [[Blog naming pages]] will show as written but still refer to the page BlogNamingPages. Trunk Notes makes this rule easy to follow by enforcing it. If you type “my new page name” Trunk Notes will correct it to “MyNewPageName”.


Most of the time you should give your page an explicit name when creating it. The exception is if you are using Trunk Notes for journalling or another activity where having the current date as the name is acceptable. If you tap the Action button and then use New… to create a page you will find that the name of the page is the current date. The format for this is taken from the timestamp settings.

In summary, names are very important in Trunk Notes. Think about page names carefully and you will be rewarded by information which is easy to link together and search.

Uploading files to Trunk Notes using your web browser

The publicised way of getting a PDF file, or other type of file, into Trunk Notes is to use iTunes File Sharing. However if you are on a computer which doesn’t have iTunes – or you avoid iTunes – then don’t worry there is another way.

The first step is to put Trunk Notes into Wi-Fi Sharing mode. Simply tap the action button in the bottom right hand corner of the screen, and select Wi-Fi Sharing.

Photo 1 Photo 2

You will be given a web address to enter into your web browser on a computer on the same network. For me the address is

If you are asked for a username and password, and haven’t changed it in the Settings app, enter trunk and password.

To upload a file click the Upload button.

HomePage  Trunk Notes

You will now be given the opportunity to choose the file to upload. Once you have done this click Upload File.

Upload Restore Backup  Trunk Notes 1

When the file has been successfully uploaded you will be given the rather terse message ‘OK’. (This feature needs a little more work before it is made properly public in the manual!)

If now look at the list of pages in your wiki a new one will have been created representing the file. Tapping that entry will show you a thumbnail. Tap the thumbnail to view the whole of the file.

Photo 3 Photo 4

The new Trunk Notes theme – Love or Hate?

I slipped in an updated default theme into Trunk Notes 2.5.3.

The idea was to make links to wiki pages stand out more and be more easily distinguishable from web links.

Some emails have suggested that the old, cleaner, theme should be reintroduced – or at least there should be an easy way to switch between them.

In case you aren’t sure what I’m talking about here is the old theme (on the left) vs the new theme (on the right):

IOS SimulatorScreenSnapz004IOS SimulatorScreenSnapz003

The wiki page links are now highlighted in yellow surrounded by a rounded border. Top level titles have an underline, and the default font has changed from Arial to Trebuchet MS.

If you are someone who thinks the new style should be scrapped let me know! If you think it is an improvement let me know!

You can revert the style by turning on the custom stylesheet. To do this carry out the following steps:

  1. Tap on the Settings app (from the home screen with all your apps on)
  2. Scroll down until you find the settings for Trunk Notes
  3. Turn on “Custom Stylesheet”
  4. Double tap the (physical) home button on your device
  5. Hold down your finger on Trunk Notes then tap the – indicator button
  6. Go back into Trunk Notes and in the search bar type Special:SetStyleSheet
  7. Edit the page
  8. Remove all the text
  9. Paste the old stylesheet text into the page, then click Save. (The old stylesheet text is at the end of this blog post)

So if you detest the new style and want the simpler look of Trunk Notes 2.5.2 it is (fairly) easy to switch back. If I get enough comments pointing to the new style being horrible then I will bring back the old style in the next version of Trunk Notes.

Old stylesheet text:

body {
    font: medium Arial;
    background-color: white;

h1 {
    font-weight: bold;
    font-size: 20px;

h2 {
    font-weight: bold;
    font-size: 18px;

h3 {
    font-weight: bold;
    font-size: 16px;

#info {
    font: medium Arial;
    background: #CFCFCF;
    font-size: 12px;
    padding-left: 4px;
    margin-bottom: 0px;
    padding-top: 2px;
    padding-bottom: 2px;
    height: 14px;

.highlight {
    background-color: yellow;

.highlight-selected {
    background-color: red;

#contents {
    margin-top: 0px;
    padding-left: 8px;
    padding-right: 8px;

table {
    margin: 1em;
    border-collapse: collapse;
    width: 90%;

td, th {
    padding: .3em;
    border: 1px #ccc solid;

thead {
    background: #ccc;

a {
    text-decoration: none;
} {
    text-decoration: underline;
    border-bottom: none;

a.missing-wiki-link {
    color: red;

html {
    -webkit-text-size-adjust: none;

OmniOutliner to Markdown

I was doing some planning with OmniOutliner yesterday. I haven’t used it for over two years but decided it was a good fit for the task I had to do. Once I had created my outline I decided I wanted to add it to my Trunk Notes personal wiki.

Excitedly I saw a plugin for OmniOutliner to do exactly that – After a little playing I was impressed by all the features and the information available on the site and in the user’s guide. However the opml2mmd tool only included the first column. My reason for using OmniOutliner was the support for multiple columns.

OmniOutliner can export in a variety of formats. One of the simplest is Plain Text with tabs. This includes all the columns and even the column headings. Five minutes later I had a little Python script which easily handles my OmniOutliner document and converts it into sensibly formatted Markdown. I want columns two and above to appear as a bulleted list underneath the heading.

Here is an example OmniOutliner document (not the one I was working with, but it has the same format):


As you can see I have three columns, and have included a note. I now export the document in the format Plain Text (with tabs) and run my Python script. Here is the resulting Markdown:


The Python script is very quick and dirty (no error handling or proper command line arguments):

#!/usr/bin/env python

Convert an export OmniOutliner (plain text with tabs) document to Markdown

@author: Matthew Kennard <>

import sys

outline_path = sys.argv[1]

lines = open(outline_path).readlines()
column_headings = lines[0].strip().split('t')

for line in lines[1:]:
    # Get number of tabs at the start
    tabs = 0
    for c in line:
        if c != 't':
        tabs += 1
    # Remove the tabs
    line = line.strip('t')
    if line.startswith('- '):
        # A branch
        line = line[2:]
        line = line.strip()
        if not line:
        columns = line.split('t')
        print '%s %s' % ('#' * (tabs + 1), columns[0])
        for i, column_heading in enumerate(column_headings[1:]):
            column_n = i + 1
            if column_n < len(columns):
                print ' * %s: %s' % (column_headings[column_n], columns[column_n], )
        # A note
        print line.strip()

I’m now happy that I can export my OmniOutliner planning documents and have them available on my iPhone in Trunk Notes.

The beauty of open formats (such as plain text or OPML which OmniOutliner also supports) is the ease with which you can convert your data for use in other applications. If you use Trunk Notes with other applications let me know!