• HIERARCHICAL NOTEBOOK
    • hierarchical notebook (hnb) is program to organize, many kinds of data
    • in one place, for example adresses, todo lists, ideas, book "reviews",
    • brainstorming, organizing a speech, making a structured packing list
    • random notes, and probably many more I haven't thought of yet..
  • HOW TO GET hnb?
    • new releases and information about hnb will appear at hnb's homepage
    • http://sourceforge.net/projects/hnb/
  • INSTALLING hnb
    • if you've got a source release you must first compile hnb,..
    • see further down in this file for instructions.
    • Windows
      • the windows binary distribution, is a .zip file containing the
      • executable, this readme file, an sample database, and the
      • licence for hnb's use. the binary is standalone, so you can
      • just copy it wherever you'd like it to reside.
    • Linux
      • the linux binary distribution is a .tar.gz file containing the
      • executable, this readme file, a an sample database, and the
      • licence for hnb's use. The binary is dynamically linked
      • against ncurses just place it anywere in your path.. like
      • /usr/bin, /usr/local/bin or /home/user/bin
  • COMPILING hnb
    • hnb uses automake/autoconf installing it is as simple as:
    • ./configure
    • make
    • su
    • (enter root password)
    • make install
  • USAGE DOCUMENTATION
    • If you start hnb without any parameters and no default database, or
    • with the -t or --tutorial option, hnb will load a special tutorial
    • database.
  • CHANGELOG
    • 1.8.1
      • fixed the movement behaviour when going to the parent node,.. the screen jumped too much
    • 1.8 30 aug 2001
      • changed the default window scrolling behaviour to move the cursorbar instead of the whole screen when possible
      • integrated libxml support changes from orang@imonk.com
      • added flag to keep whitespace when loading xml file
    • 1.7 6 jul 2001
      • made the tutorial saveable, if opened in place of the default db
      • fixed sorting segfault
      • bsd curses workaround,.. does it work?
      • changed percentage calculation algorithm
      • cleanup of the node drawing code
      • integrated priorities
      • integrated Andrew J. Webers libxml2 import/export filters
      • preferences items
        • mouse
        • bullet mode
        • prefs revision checking
        • priority colors
        • bold mode colors configurable
        • keyboard redefinition
    • 1.6 25 may 2001
      • generic xml import and export filter
      • preferences
      • color settings
      • todobox fixes
      • percentage calculations fixes
      • xml tag shortcuts
      • macrofied node.
    • 1.5 19 may 2001
      • switched to autoconf/automake
      • joining/splitting of nodes.
      • hooks for priority setting
        • (press ^P on a todo node)
      • added import/export of xml
      • optimizations
      • update to manpage
      • update documentatino
      • default format is now xml
      • commented all headerfunctions
    • 1.4 16 may 2001
      • added preferences saving/loading
      • replaced tab char in display with a space.
      • removal of temporary node, when issuing insert in a new leaf.
      • cli mode, for use in scripts etc.
      • pipe export by Karsten Hilbert
      • automatic generation of README.html
    • 1.3 14 may 2001
      • bloat
      • various feedback changes
      • debug mode for my own sake
      • added collapseviews
    • 1.2 12 may 2001
      • added mouse navigation
      • code cleanups
      • improved navigation in edit mode
      • improved pgup/pgdn
    • 1.1 10 may 2001
      • ran all the files through indent
        • indent -bad -bap -br -ts4 -ce -ci4 -i4 -cli4 -cbi0 -ss -di0 -nbc -npsl -T Node -brs -ip4 -bbo --line-length78
      • changed the editor cursor
      • minor code tweaks and cleanups
      • added manpage by Andras BALI
      • switched to bold indication of subnodes
      • fixed grabbing of nodes (copy/move)
      • improved tree.c, multiple trees are now possible
    • 1.0 21 april 2001
      • changed ctrl+space for marking to ctrl+g in win32 port
      • bullet system for all nodes ( +/- [X] [ ] )
      • added copying feature
      • better user feedback when moving
      • various fixes
    • 0.9 15 april 2001 end of easter holdidays
      • undefined keyboard debugging in win32 port
      • added in-binary tutorial, and export mode for the include file
      • changed curses mode to raw
      • upon request from Marck Rintsch, ctrl+s now saves the file
      • added more visual feedback when saving, quitting and such
      • added an standard bullet on all entries.
    • 0.8 15 april 2001
      • ascii export
      • html export
        • (doesn't escape any html by itself)
      • latex export
        • doesn't work for deeper nesting levels than four
      • postscript export
        • based on the latex export
        • uses system calls and requires latex, and dvips
      • loading(insertion) of an external file into the db
      • added done percentage
    • 0.7 13 april 2001
      • rearranged input structures
      • added todo checkboxes
      • added error display
      • remade the help system
      • fixed resizing
      • made search case insensitive
      • refined search control interface
    • 0.6b 11 april 2001
      • the guadec hacked fixes on strics computer
      • worked on search ability
      • fixed the display of confirm mode in curses ui.
      • added reparenting
      • cleaned up node_remove
      • added load,save and display of todo in standard file format
      • changed to bz2 format on distribution file
    • 0.5
      • help item's update
      • added insert in the interface
    • 0.4 march 2001
      • added registry functions
      • small bugfix for node recurse() (go right, and to top)
      • fixed tab'ing into children of empty nodes bug
      • fixed wordwrap
    • 0.3 15.oct 2000
      • first rendition of cgi-bin browser
      • wordwrap
      • added registry
      • added resize functionality
      • pageup/pagedown
      • changes to help/confirming interface
    • 1.8.1
  • AUTHORS
    • hnb authors
    • Øyvind Kolås
      • project maintainer
    • Andras BALI
      • Debian Package
      • manual page
    • Karsten Hilbert
      • pipe export
    • Martin van Beilen
      • various todo/done issues in the code
    • Andrew J Weber
      • libxml2 import/export
  • BUGS
    • slashes (/) inside nodes are not escaped correctly in cli mode
    • bullets/todo boxes, doesn't check that the line is writeable (top of screen on multiline nodes)
  • TODO
    • buffer limits
      • they are high,.. but a really long node might crash it
    • more entities on each node
      • current entities:
        • priority
        • title/data
        • todo item
        • done/not done
      • future items:
        • created date
        • modified date
        • due date, for project planning
        • details dialog for each node to modify such things
        • cronological id
    • purge todo items on lower levels
    • shuffle action
    • curses interface
      • "context" menu for mouse mode
    • cli interface
      • make '/' inside node names appear correctly in pwd, and prompt
      • maybe avoiding static buffers is even more important here than in the curses version (due to possible scripted input),.. but then I'd have to fix path.c as well..
    • gtk 2.0
      • start
    • how to implement cloning
      • linked list
        • add a flag called ghost
        • add a Node *ghost; var to all nodes.
        • the node that sets up the symlink is set F_ghost, and Node *Right points to the children of the original node.
        • the destination points it's Node *ghost to the node that referred to it.
        • if a new ghost is made of any of the two other nodes, it sets it's own F_ghost attribute. Follows the links to the originating ghost, (->child -> parent) sets it's *right node pointing to it, follows the *ghost link until the 0, and hooks itself in there.
        • when removing the original node you reparent the children to the next node in the link list, and removes the F_ghost attribute from that node.
        • when removing one of the ghosts, you must tidy up the ghost link list, and free that node(but none of it's data)
      • in the ascii data format just say node_no(link) is linked here
      • the userinterface should have no notion of it's path,.. but perhaps a node history...
      • functions that must be changed
        • node_swap
          • if a node with F_ghost is moved, don't reparent children.
        • subtree_copy
          • nahh, tough one,.. just make a duplicate that isn't linked with the rest? TBD
        • node_recurse
          • ignore ghosts thereby avoiding loops
        • node_backrecurse
        • node_insert_up
        • node_insert_down
        • node_remove
    • make a dead tree copy of the source for examination
      • enscript *.h *.c -E --output uts.ps -U 2 -j
    • backspace/delete behaviour, experiment to find good solution
    • win32 port
      • make sure it works
      • check key behaviour
    • html export
      • make the html legal,.. (
      • overnode
        • hei
        • der
        • )