Skip to content
Larry Kollar edited this page Jun 4, 2016 · 17 revisions

Introduction

Tines is an outliner, a planner, an organizer, and a notebook. The user interface is very flexible and easy to customize. It is based on the old hnb (hierarchical notebook) software, originally written and maintained by Øyvind Koläs. Larry Kollar ([email protected]) currently maintains Tines.

You can use Tines as a straight outliner, editing individual files in OPML, hnb (a simple XML format), or tab-indented text formats.

A more powerful way to use Tines is to keep all your working outlines, project notes, and calendar entries in a single file. If you do not specify a file name when starting Tines, it uses .tines in your home directory.

Roadmap

When I started listing all the updates I wanted from hnb after fixing the 64-bit issue, I realized I'd need a more organized approach. Maybe I'll get a little help.

These items are in no particular order or priority. If you want to pick one up and do it, no matter where it is in the roadmap, that would be great. (I would particularly like to have UTF-8 support as soon as possible, but I'm not sure my coding skills are up to the job right now.)

There may be a segfault or two still lurking in lesser-used corners of the program. Reports are welcome, patches are cherished.

1.10 (YOU ARE HERE) Bug fixes (including several I introduced while trying to clean things up) and lots of new features:

  • Bug fix: Tines (and hnb before it) would not open files specified on the command line that contained spaces.
  • Import and export commands now use glob() to expand tilde (e.g. ~/Dropbox/shared.opml).
  • ? displays help strings for each command now. You can get a very rough quick reference by typing the following at a shell prompt: tines -e '?' show_vars
  • All help strings have been completed and cleaned up.
  • New command: stop (suspends Tines and returns to shell). The default rc file remapped Ctrl-Z to suspend Tines.
  • New command: today. If you have inserted a calendar, this command locates today's entry and expands all sub-entries to show your daily agenda. You can use this from the shell prompt: tines -e today 'go right' ls prints your agenda on stdout.
  • Enhancement to insert_cal: The -t option inserts workday hourly entries for each day. The logic was already in the code, but not activated. You can use this to plan your day or track hours worked on projects.
  • New commands: export_hnb_branch, export_opml_branch, export_xml_branch — exports only the selected entry plus all sub-entries. This differs from the original export commands in that those commands export everything in the current level (required to save an entire file).
  • New variable: pid — contains the process ID for this instance of Tines. This can be used to create temporary files.
  • New feature implemented in .tinesrc: "Export->XSLT" — exports the current branch to a temporary file and runs xsltproc on it. This release includes XSLT files to transform to groff -ms and Markdown formats. (Obviously, this feature requires you to have xmllib and xsltproc installed.)
  • Primary feature: "make install" creates a share directory, /usr/local/share/tines by default. This directory contains default database and rc files, XSLT files for the "Export->XSLT" feature, and alternate rc files and snippets. If this directory exists and is populated, it pulls default files from here (cut-down versions are still embedded in the executable just in case). Contributed rc and database files will go here as well. (Anyone want to share their translated menus?)

1.9.19 - 2.0:

  • finish renaming (.hnb to .tines, for example) (complete)
  • rewrite/expand the documentation ("complete" in that all current features have at least some documentation)
  • Planner menu (complete)
  • new "text" type to mark paragraphs (complete)
  • new command: export_branch (complete in 1.10 for XML-based formats. New commands are: export_hnb_branch, export_opml_branch, and export_xml_branch. The original export commands export everything on the current level, thus requiring new commands.)
  • new command: stop (put the process in the background) (complete in 1.10)
  • move tutorial.inc, etc. into /usr/local/share/tines (complete in 1.10)
  • new command: insert_above (insert new node above current) (we have a working substitute for now, using key bindings - use Ctrl-B to insert above)
  • Test procedures (In progress)
  • automated test suite
  • UTF-8 friendly
  • improved OPML support (preserving <head> elements, map hnb attributes to OPML type attribute)
  • new commands: add_int and add_str for user-defined variables
  • modify att_list to add an option for showing only attributes (not text)
  • new command: menu_toggle to toggle boolean variables
  • implement mouse support in curses
  • packages (OSX, deb, rpm)
  • new commands: alert (dialog box with OK button), choice (dialog box with two buttons), querybox (similar to query but using a text entry dialog)
  • alternate rc file for OPML (for anyone who doesn't want to wait for 2.0)
  • --sharedir=dir option to override compiled default
  • fix ASCII export to actually support ascii_margin variable

2.0 - 3.0:

  • autoconf
  • code cleanup
  • replace XML code with xmllib
  • use OPML as the default file format, maintaining hnb as a legacy format
  • use XSLT as basis for all export activity

3.0 and beyond: (this is pie in the sky stuff)

  • Add Qt for optional GUI, maintaining console mode
  • (???) Complete rewrite, maybe as an interpreted language (for example, Perl/TK or Python/Qt)