1HIERARCHICAL NOTEBOOK
2
3 hierarchical notebook (hnb) is program to organise, many kinds of data
4 in one place, for example addresses, to-do lists, ideas, book "reviews",
5 brainstorming, organising a speech, making a structured packing list
6 random notes, and probably many more I haven't thought of yet..
7
8
9HOW TO GET hnb?
10 new releases and information about hnb will appear at hnb's home page
11
12 http://sourceforge.net/projects/hnb/
13
14INSTALLING hnb
15 if you've got a source release you must first compile hnb,..
16 see further down in this file for instructions.
17
18 Windows
19 the windows binary distribution, is a .zip file containing the
20 executable, this README file, an sample database, and the
21 license for hnb's use. the binary is stand alone, so you can
22 just copy it wherever you'd like it to reside.
23 Linux
24 the Linux binary distribution is a .tar.gz file containing the
25 executable, this README file, a an sample database, and the
26 license for hnb's use. The binary is dynamically linked
27 against ncurses just place it anywhere in your path.. like
28 /usr/bin, /usr/local/bin or /home/user/bin
29
30COMPILING hnb
31
32 hnb uses a custom Makefile, that should work on most unix'ish systems with a curses library.
33
34 make
35 su
36 (enter root password)
37 make install
38
39
40USAGE DOCUMENTATION
41 If you start hnb without any parameters and no default database, or
42 with the -t or --tutorial option, hnb will load a special tutorial
43 database.
44
45CHANGELOG
46 1.9.18
47 fixes crashes when trying to run in amd64 systems
48 1.9.17
49 bug fix, when saving hnb DTD, I also saved the text attribute
50 removed the format names from prefs.c,.. now the string specified is used instead, (makes extending easier)
51 improved the tokenizer for libcli, it now acts almost exactly as bash, even the hooks for understanding $variable_expansion is included in the code, uses a single malloc
52 various bug fixes
53 cleanups and merging of commands, e.g. go_root, go_recurse, and go_backrecurse are now go <root|backrecurse|recurse|up|down|left|right>
54 search now is a single command taking direction and query as arguments.
55 changed escape to be the key used to bring up the menu,.. and remapped ^Q to be quit (again)
56 1.9.16
57 attempts to fix the compile on OSX
58 renaming mergesort to node_mergesort due to nameclash
59 only compiling the static lib
60 made indent and outdent only work when there is no data typed already, (thus making > and < allowed typed in navigation mode as long as they're not the first character typed.
61 removed errors appearing with -pedantic (at least here)
62 removing all macros with variable arguments replacing them with va_list
63 removing inline statements from libcli
64 created an utility function for string replacements, that I inserted into all the various import/export filters.
65 added a function "insert_cal <month> <year>" which inserts the specified month/year in a fashion that makes hnb useable as a simple timeplanner as well. (when I get around to adding support for clones, this might be interesting)
66 allowing the user to use <,>,+ and - when typing in new data without erratic behavior, and not the need to enter edit mode. (except if it is the first char of the data)
67 fixed an issue with creating the first child, and pressing insert, and various other commands,..
68 added rpm spec file from Asgeir Nilsen
69 made file_opml and file_hnb interpret all attributes
70 implemented buffered reading for the xml tokenizer
71 changed the function prototype for functions that register with libcli, they must now register with an int (int argc, char **argv, void *data) function
72 overhauled hnb to use this API, some more refinement might be needed in someplaces, but it seems to work OK for now.
73 added a menu that is accesed from F9
74 1.9.15
75 outdent fixed to be more efficient and work as intended
76 added export context
77 changed all import/export functions to use the query variable if filename passed is *
78 1.9.14
79 bugfix: The new sort and shuffle functions could result in dataloss when saved.
80 new feature: expand/collapse and expand_all/collapse_all are new bindable functions, expand/collapse is bound to +/- in the default config file, they force portions of the tree to stay open even when you leave it.
81 1.9.13
82 Apparently I broke the nasty quick-sort I had implemented, when I changed the way the tree was stored. Implemented a Merge-sort which is faster anyways.
83 Improved the behavior of non fixed navigation when the whole tree is displayed.
84 Added a shuffle function (not currently bound), I used it while developing the new mergesort, but someone might find it useful.
85 1.9.12
86 Changed the datastructure to use a "assosciation list" for storing the actual data. Will move all tags, like checkbox to this structure.
87 Should actually make it possible to do the addition of start end date and other "columns" a breeze, perhaps even automatic for some export/import formats
88 modified tree_duplicate to use the new node_duplicate function, and a modified version of the import_node which takes a single node with data set as input.
89 added import_node_text which disregards all other data items
90 1.9.11
91 changed node_swap to only swap relational pointers, thus making it easier to extend the data stored in Node later
92 thus also changing and move node, indent/out-dent and sort to accommodate for a truer swap
93 fixed a bug with editing of newly introduced child
94 note: should perhaps move ui_action_edit into a built-in command that is handled specially since it now needs special attention by being a subcommand to ui_action_command
95 1.9.4-1.9.10 feb 2003
96 re-implementation of positioning of selection bar in non fixed mode
97 massive code cleanup and separation
98 separation of variables from prefs.* to static variables in the code modules where they belonged
99 integration with spell checker (Ispell, but through prefs it could easily be made Aspell instead)
100 new preferences format
101 ability to execute commands and running mail-client / web-browser if a node or it's children contain url's / mail addresses
102 OPML import and export
103 postscript export
104 htmlcss export
105 save_state and restore_state for single level undo where needed
106 new XML tokenizer
107 cut/paste functionality
108 1.9.3 jan 2003
109 stabilising of the code
110 ability to use default terminal colours, (patch from NN)
111 1.9.1 oct 2002
112 option to remember current position in hnb file when saving/loading
113 cleaned up most of the help-system code
114 further code separation
115 1.9.0 oct 2002
116 fixed the movement behaviour when going to the parent node,.. the screen jumped too much
117 separated the various export and load filters into own files
118 used my new libcli for the cli code, and as "glue" in some code spots
119 reverted to a manual makefile instead of autoconf/automake
120 improvements to dynamic key-bindings, multiple key-bindings for each action, all key-bindings in various context got their own choice in the preferences.
121 The first of the actual key-bindings shown as help
122 added some more bindings for the node editor, (skip word and bskip word, hooks for even more)
123 1.8 30 aug 2001
124 changed the default window scrolling behaviour to move the selection bar instead of the whole screen when possible
125 integrated libxml support changes from orang@imonk.com
126 added flag to keep whitespace when loading XML file
127 1.7 6 jul 2001
128 made the tutorial save-able, if opened in place of the default database
129 fixed sorting segfault
130 BSD curses workaround,.. does it work?
131 changed percentage calculation algorithm
132 cleanup of the node drawing code
133 integrated priorities
134 integrated Andrew J. Webers libxml2 import/export filters
135 preferences items
136 mouse
137 bullet mode
138 prefs revision checking
139 priority colours
140 bold mode colours configurable
141 keyboard redefinition
142 1.6 25 may 2001
143 generic XML import and export filter
144 preferences
145 colour settings
146 todobox fixes
147 percentage calculations fixes
148 XML tag shortcuts
149 macrofied node.<c|h>
150 1.5 19 may 2001
151 switched to autoconf/automake
152 joining/splitting of nodes.
153 hooks for priority setting
154 (press ^P on a to-do node)
155 added import/export of XML
156 optimisations
157 update to man-page
158 update documentation
159 default format is now XML
160 commented all header-functions
161 1.4 16 may 2001
162 added preferences saving/loading
163 replaced tab char in display with a space.
164 removal of temporary node, when issuing insert in a new leaf.
165 cli mode, for use in scripts etc.
166 pipe export by Karsten Hilbert
167 automatic generation of README.html
168 1.3 14 may 2001
169 bloat
170 various feedback changes
171 debug mode for my own sake
172 added collapse-views
173 1.2 12 may 2001
174 added mouse navigation
175 code cleanups
176 improved navigation in edit mode
177 improved pgup/pgdn
178 1.1 10 may 2001
179 ran all the files through indent
180 indent -bad -bap -br -ts4 -ce -ci4 -i4 -cli4 -cbi0 -ss -di0 -nbc -npsl -T Node -brs -ip4 -bbo --line-length78
181 changed the editor cursor
182 minor code tweaks and cleanups
183 added manpage by Andras BALI
184 switched to bold indication of subnodes
185 fixed grabbing of nodes (copy/move)
186 improved tree.c, multiple trees are now possible
187 1.0 21 april 2001
188 changed ctrl+space for marking to ctrl+g in win32 port
189 bullet system for all nodes ( +/- [X] [ ] )
190 added copying feature
191 better user feedback when moving
192 various fixes
193 0.9 15 april 2001 end of easter holdidays
194 undefined keyboard debugging in win32 port
195 added in-binary tutorial, and export mode for the include file
196 changed curses mode to raw
197 upon request from Marck Rintsch, ctrl+s now saves the file
198 added more visual feedback when saving, quitting and such
199 added an standard bullet on all entries.
200 0.8 15 april 2001
201 ascii export
202 html export
203 (doesn't escape any html by itself)
204 latex export
205 doesn't work for deeper nesting levels than four
206 postscript export
207 based on the latex export
208 uses system calls and requires latex, and dvips
209 loading(insertion) of an external file into the db
210 added done percentage
211 0.7 13 april 2001
212 rearranged input structures
213 added todo checkboxes
214 added error display
215 remade the help system
216 fixed resizing
217 made search case insensitive
218 refined search control interface
219 0.6b 11 april 2001
220 the guadec hacked fixes on strics computer
221
222 worked on search ability
223 fixed the display of confirm mode in curses ui.
224 added reparenting
225 cleaned up node_remove
226
227 added load,save and display of todo in standard file format
228 changed to bz2 format on distribution file
229 0.5
230 help item's update
231 added insert in the interface
232 0.4 march 2001
233 added registry functions
234 small bugfix for node recurse() (go right, and to top)
235 fixed tab'ing into children of empty nodes bug
236 fixed wordwrap
237 0.3 15.oct 2000
238 first rendition of cgi-bin browser
239 wordwrap
240 added registry
241 added resize functionality
242 pageup/pagedown
243 changes to help/confirming interface
244AUTHORS
245 hnb authors
246
247 �yvind Kol�s <pippin@users.sourceforge.net>
248 project maintainer
249 Andras BALI <drewie@bigfoot.com>
250 Debian Package
251 manual page
252 Karsten Hilbert <Karsten.Hilbert@gmx.net>
253 pipe export
254 Martin van Beilen <bln@simlab.dhs.org>
255 various todo/done issues in the code
256 Andrew J Weber <orang@imonk.com>
257 libxml2 import/export
258 Guillermo A. Amaral <g@maral.me>
259 Import sourceforge repository into github
260 Santhosh Raju <santhosh.raju@gmail.com>
261 Fixes crashes when running in amd64 systems
262BUGS
263 slashes (/) inside nodes are not escaped correctly in cli mode
264 bullets/todo boxes, doesn't check that the line is writable (top of screen on multi-line nodes)
265TODO
266 buffer limits
267 they are high,.. but a really long node might crash it
268 more entities on each node
269 current entities:
270 priority
271 title/data
272 todo item
273 done/not done
274 future items:
275 created date
276 modified date
277 due date, for project planning
278 details dialog for each node to modify such things
279 cronological id
280 purge todo items on lower levels
281 curses interface
282 "context" menu for mouse mode
283 gtk 2.0
284 start
285 make a dead tree copy of the source for examination
286 enscript *.h *.c -E --output uts.ps -U 2 -j
287 make it stop outdent when - is pressed without being in edit mode,.. and characters are typed.
288