#define i(a,b,c) do{Node *tnode=node_new();node_set(tnode,TEXT,b);node_setflags(tnode,c);import_node(&ist,a,tnode);}while(0) i(0,"Introduction to hnb",0); i(1,"Introducing hnb",0); i(2,"hnb is an hierarchical notebook, that is an editor that focuses on editing and managing information in a hierarchical manner. This type of editor is also known as outline editors.",0); i(2,"hnb was written as a personal itch of the author, he knew no other such program and thought out how he wanted it to work. Some of the additional features in hnb have been inspired by other similar programs.",0); i(2,"I, that is Øyvind Kolås use hnb to maintain my contact list, my to-do lists, my calendar, writing documentation and reports.",0); i(1,"Installing hnb",0); i(2,"Unix",0); i(3,"prepackaged binaries",0); i(4,"prepackaged binaries for hnb exist for some operating-systems/distributions, these might not be the latest versions.",0); i(4,"Andras Bali maintains a Debian package of hnb, which can be installed by issuing",0); i(5,"apt-get install hnb",0); i(4,"Patrick Li maintains a Free-BSD ports package of hnb, I don't know how to install it on Free-BSD.",0); i(3,"compiling",0); i(4,"hnb comes packaged in a tar.gz file, this file contains a Makefile, hopefully installing hnb is as simple as:",0); i(5,"make",0); i(5,"su",0); i(6,"",0); i(5,"make install",0); i(4,"platform specific workarounds",0); i(5,"SuSE Linux:",0); i(6,"SuSE Linux doesn't install ncurses as curses, which ncurses actually does by default if it is allowed to. Changing the CFLAGS line in src/Makefile to -lncurses instead of -lcurses makes hnb compile on SuSE",0); i(5,"OS X / Darwin:",0); i(6,"the preprocessor that OS X uses doesn't work properly. Adding -no-cpp-precomp to the Makefile should make it compile properly on OS/X as well",0); i(1,"Starting hnb",0); i(2,"When you start hnb it automatically loads the default database, ~/.hnb and lets you edit it, this is to make it convenient to have your personal information like contacts and to-do list readily available.",0); i(3,"If ~/.hnb doesn't exist a sample database will be loaded instead",0); i(2,"The full commandline usage for hnb is",0); i(3,"hnb [options] [filename] [-e \\comand\\ [\\command\\ [\\command\\ ..]]]",0); i(3,"options:",0); i(4,"-h or --help show recognized options",0); i(4,"",0); i(4,"-a or --ascii use tab indented ASCII for loading/saving database",0); i(5,"ASCII doesn't remember attributes like to-do status, done etc.",0); i(4,"-o or --opml use OPML DTD for loading/saving database",0); i(4,"-x or --xml invoke hnb as a XML editor",0); i(4,"--hnb use hnb DTD for loading/saving database, this is the default unless you've changed it in the preferences file",0); i(3,"running commands",0); i(4,"by running",0); i(5,"hnb -e \\go_root\\ \\oexport_htmlcss test.html\\",0); i(4,"hnb will load the default database, go to the start of the database, and export it with the htmlcss filter to a file called test.html",0); i(2,"In the latest version hnb also contains a menu that can be invoked by pressing F9, for advanced commands the commandline (F5) is preferred.",0); i(1,"Quitting hnb",0); i(2,"By pressing ESC, hnb will ask you whether you want to save or not, if you press ESC again hnb will return to normal operation.",0); i(1,"Importing data",0); i(2,"To import the contents of another file, you press ^L (Ctrk+L), you will then get a list of choices of format to import from.",0); i(2,"Choose the desired format",0); i(2,"Enter the relative or full path of the filename you want imported.",0); i(2,"hnb will add that file under the current level.",0); i(1,"Exporting data",0); i(2,"To export the current tree to another file.",0); i(2,"press ^E (ctrl+E)",0); i(2,"Choose the desired format",0); i(2,"Enter the relative or full path of the filename you want to write to.",0); i(1,"Printing",0); i(2,"hnb doesn't support printing to a printer directly, but by using an intermediate format you can get some quite good printouts, a good candidate is the HTML/CSS format.",0); i(0,"Using Outlines",0); i(1,"Managing entries",0); i(2,"Navigating amongst entries",0); i(3,"The arrow keys will move you amongst the entries in the tree, you may also start typing the name of a entry that exist on the current level, and hnb will take you to the entry that matches what you've typed, pressing tab twice will enter the sub-level of the current entry, this behavior is modeled after the name completion in Unix shells.",0); i(3,"PageUp/PageDown will skip a large amount of entries up and down.",0); i(3,"Home will bring you to the \\root\\ (the first entry) of the tree.",0); i(3,"Searching",0); i(4,"^F will ask you for a search term, you may thereafter navigate amongst the occurrences of the search term with up/down n/p, pressing space or return will make you stop where you found the substring, ESC will bring you back to where you started the search.",0); i(2,"Moving entries",0); i(3,"You can move entries either by pressing shift and using the arrow keys, the entry will then move within the constraints of the hierarchical structure.",0); i(3,"You can also move entries by cutting and pasting a entry, this has much of the same effect, cut is instantiated with ^C and the paste command is ^V",0); i(2,"Adding entries",0); i(3,"Pressing insert will add a new entry below the current. You will also immediately enter edit mode.",0); i(3,"You may also exploit the fact that searching by keyboard for a entry that doesn't exist, and pressing enter, will create the entry name that you entered.",0); i(2,"Deleting entries",0); i(3,"If you press delete the current entry will be deleted, if it has children you will be asked to confirm the action.",0); i(3,"Cutting can also be used to remove data, no confirmation will be asked whether you want to fulfill you action or not, but the data will be available from the clipboard.",0); i(2,"Indenting and Outdenting entries",0); i(3,"> will move the current entry and all the following entries of the same level to be children of the preceding entry.",0); i(3,"< will move the current entry and all the following entries of the same level to follow the parent of the preceding entry.",0); i(2,"Expanding and Collapsing entries",0); i(3,"expanding",0); i(4,"pressing '+' on a entry with sub entries will display the sub entries even when you're not within them, thus displaying a larger portion of the tree.",0); i(3,"collapsing",0); i(4,"Pressing '-' has the opposite effect of '+' it hides the expanded entries",0); i(3,"operations working on the whole outline",0); i(4,"pressing F10 brings up the user menu,.. a menu where miscellany commands that don't fit anywhere else are added,.. here you may expand or collapse all entries in the current tree.",0); i(1,"Editing entries",0); i(2,"Pressing Return will start editing the current entry, now the cursor keys move between the characters of the data in the entry instead amongst the entries",0); i(2,"(most) Default editing shortcuts",0); i(2,"Splitting entries",0); i(3,"When editing a entry you may press ^S, the entry being edited will be split in the current position. The data to the left of the cursor will be retained in the current entry, whilst the remaining data will be inserted in a new entry below.",0); i(2,"Joining entries",0); i(3,"Pressing ^J whilst editing a entry will join the following entry, (as long as it doesn't have sub-nodes) will merge the data in; at the end of the entry being edited.",0); i(1,"Spell-checking",0); i(2,"By default hnb is configured to use ispell for spell-checking.",0); i(2,"Pressing F6 will spell-check the current entry",0); i(2,"Ispell will start and guide you through the unmatched words in the current entry.",0); i(2,"Thereafter you can press space to spell check the next entry, escape to cancel the changes or return to accept the changes made.",0); i(1,"Sorting entries",0); i(2,"pressing ctrl+s will sort the entries on the current level",0); i(0,"Other features",0); i(1,"Todo-list mode",0); i(2,"^T toggles checkmarks instead of bullets,. ^D checks or unchecks the checkmarks.",0); i(2,"percentages are shown for unchecked parents that have checked subentries",0); i(1,"Using URL's",0); i(2,"If an entry contains a web url ^A will bring up the configured web browser, (see your ~/.hnbrc for more information about configuration)",0); i(1,"Calendars",0); i(2,"From the commandline you can issue a command like \\insert_cal 3 2003\\ to insert a calendar template.",0); i(1,"Using Email addresses",0); i(2,"If an entry contains a email-address ^A will bring up the configured mail client, (see your ~/.hnbrc for more information about configuration)",0); i(0,"Configuring hnb",0); i(1,"Nothing here yet, please examine your ~/.hnbrc (created automatically the first time you run hnb) for information.",0); i(0,"sample data",0); i(1,"This is a stripped down version of the authors default database.. the real database contains >4000 entires",0); i(1,"contacts",0); i(2,"frodo baggins",0); i(3,"or perhaps underhill",0); i(3,"555-12341324",0); i(3,"frode@bagend.net",0); i(2,"merry",0); i(3,"meridoc somthing",0); i(3,"555-23234324",0); i(2,"peregrin took",0); i(3,"aka pippin",0); i(3,"pippin@users.sourceforge.net",0); i(2,"sam gamgee",0); i(3,"samwise",0); i(3,"555-12341234",0); i(3,"sam@gamgee.com",0); i(1,"calendar",0); i(2,"2003 March",0); i(3,"Sat_01 ",0); i(3,"Sun_02 ",0); i(3,"Mon 03 ",0); i(3,"Tue 04 ",0); i(3,"Wed 05 ",0); i(3,"Thu 06 ",0); i(3,"Fri 07 ",0); i(3,"Sat_08 ",0); i(3,"Sun_09 ",0); i(3,"Mon 10 ",0); i(3,"Tue 11 remember to do some stuff",0); i(3,"Wed 12 ",0); i(3,"Thu 13 ",0); i(3,"Fri 14 ",0); i(3,"Sat_15 ",0); i(3,"Sun_16 ",0); i(4,"got some sub entries on my todolist here,..",0); i(3,"Mon 17 ",0); i(3,"Tue 18 ",0); i(3,"Wed 19 ",0); i(3,"Thu 20 ",0); i(3,"Fri 21 ",0); i(3,"Sat_22 ",0); i(3,"Sun_23 ",0); i(3,"Mon 24 ",0); i(3,"Tue 25 ",0); i(3,"Wed 26 ",0); i(3,"Thu 27 ",0); i(3,"Fri 28 ",0); i(3,"Sat_29 ",0); i(3,"Sun_30 ",0); i(3,"Mon 31 ",0); i(2,"2003 April",0); i(3,"Tue 01 Aprils Fool",0); i(4,"need to find some good ideas for jokes",0); i(3,"Wed 02 ",0); i(3,"Thu 03 ",0); i(3,"Fri 04 ",0); i(3,"Sat_05 ",0); i(3,"Sun_06 ",0); i(3,"Mon 07 ",0); i(3,"Tue 08 ",0); i(3,"Wed 09 ",0); i(3,"Thu 10 ",0); i(3,"Fri 11 ",0); i(3,"Sat_12 ",0); i(3,"Sun_13 ",0); i(3,"Mon 14 ",0); i(3,"Tue 15 ",0); i(3,"Wed 16 ",0); i(3,"Thu 17 ",0); i(3,"Fri 18 ",0); i(3,"Sat_19 ",0); i(3,"Sun_20 ",0); i(3,"Mon 21 ",0); i(3,"Tue 22 ",0); i(3,"Wed 23 ",0); i(3,"Thu 24 ",0); i(3,"Fri 25 ",0); i(3,"Sat_26 ",0); i(3,"Sun_27 ",0); i(3,"Mon 28 ",0); i(3,"Tue 29 ",0); i(3,"Wed 30 ",0); i(1,"to-do",0); i(2,"hnb todo",0); i(3,"force all expanded",0); i(3,"clones",0); i(3,"calendar",0); i(3,"new documentation",0); i(4,"start",0); i(4,"asdfasdfadsf",0); i(4,"blah",0); i(4,"asdfasdf",0); i(4,"asdfasdf",0); i(3,"revert to last saved version",0); i(3,"known bugs",0); i(4,"insert bug",0); i(5,"press right",0); i(5,"type data",0); i(5,"press insert",0); i(5,"data is lost,..",0); i(3,"show all of bottommost node when possible",0); i(3,"menu",0); i(3,"add real percentages again,.. so I don't have to fake it like I did above on new documentation,..",0); i(1,"school",0); i(2,"notes from exam cramming,..",0); i(2,"paper outlines",0); i(2,"...",0); i(1,"work",0); i(2,"I've removed quite a lot of the stuff I actually keep in my database...",0); i(1,"movie manuscripts",0); i(2,"one of them made,.. some of them in planning,.",0); i(2,"I don't want everybody to see them,..",0); i(2,"but it's an actual node in my database",0); i(1,"bookmarks",0); i(2,"http://hnb.sourceforge.net/",0); i(2,"norwegian short film festivals",0); i(3,"http://www.kortfilmfestivalen.no/",0); i(3,"http://www.minimalen.com/",0); i(2,"news",0); i(3,"k5",0); i(4,"http://www.kuro5hin.org/",0); i(3,"slashdot",0); i(4,"http://slashdot.org/",0); i(3,"nettavisen",0); i(4,"http://www.nettavisen.no/",0); i(3,"dagbladet",0); i(4,"http://www.dagbladet.no/",0); i(3,"vg",0); i(4,"http://www.vg.no/",0); i(3,"fark.com",0); i(4,"http://www.fark.com/",0); i(1,"quotes ",0); i(2,"Peoples Front To Reunite Gondwanaland: \\Stop the Laurasian Separatist Movement!\\ ",0); i(2,"slashdot ",0); i(3,"disbelief ",0); i(4,"To anyone who is still stubborn enough to insist that BlackICE Defender is actually good for something: PLEASE do not write to me. I don't want to hear it. I'm a scientist who will not find your mystic beliefs to be compelling. I respect your right to your own opinions, no matter how blatantly they fly in the face of logic and reality. That is, after all, the nature of faith. Happy computing. I suggest prayer. ",0); i(2,"the movie zardoz",0); i(3,"The gun is good. The penis is evil. The penis shoots seeds, and makes new life, and poisons the earth with a plague of men, as once it was. But the gun shoots death, and purifies the earth of the filth of brutals. Go forth and kill!",0); i(1,"old",0); i(2,"I keep a 'trashbin' where I stow away outdated entries,.. just to be able to search it,.. and save it later,..",0);