Home

Awesome

Welcome to CrossLine

CrossLine is an outliner with sophisticated cross-link capabilities in the tradition of the well-respected  Ecco Pro. It implements the concept of "Transclusion" proposed by Ted Nelson and - among others - implemented in the legendary Objectory SE tool by Ivar Jacobson. It is also a full text database with built-in search engine.

An outliner (or outline processor) is a specialized type of text editor (word processor) used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections called "nodes", which are arranged according to their topic–subtopic (parent–child) relationships, sort of like the members of a family tree. When loaded into an outliner, an outline may be collapsed or expanded to display as few or as many levels as desired (see https://en.wikipedia.org/wiki/Outliner).

alt text

The screenshot shows the demo repository (see below).

Download and Installation

You can either compile CrossLine yourself or download the pre-compiled version from here:

This is a compressed single-file executable which was built using the source code from here. Of course you can build the executable yourself if you want (see below for instructions). Since it is a single executable, it can just be downloaded and unpacked. No installation is necessary. You therefore need no special privileges to run CrossLine on your machine.

On Mac the terminal opens when CrossLine is run, and the menus are only active if the application was in the background one time; to avoid this the application can be included in an application bundle. Also note that the application on Mac must be started via the "open" command from the context menu; otherwise the system refuses to start the app.

Note that the Windows versions are built with MT flag using a statically linked C/C++ runtime, so no Microsoft runtime has to be installed. The executable runs even on Windows 7.

Here is a demo repository with some instructions on how to use CrossLine: CrossLineDemo.cldb

Here are the old Qt4 based versions if need be (use the new versions above if possile):

How to Build CrossLine

This version of CrossLine now uses LeanQt instead of the modified Qt4 toolkit, which makes things easier. Follow these steps if you want to build CrossLine yourself:

  1. Create a new directory; we call it the root directory here.
  2. Download https://github.com/rochus-keller/BUSY/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "build".
  3. Download https://github.com/rochus-keller/LeanQt/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "LeanQt".
  4. Download https://github.com/rochus-keller/GuiTools/archive/refs/heads/master.zip and unpack it to the root directory; rename the resulting directory to "GuiTools".
  5. Download the CrossLine source code from https://github.com/rochus-keller/CrossLine/archive/master.zip and unpack it to the root directory; rename the resulting directory to "CrossLine".
  6. Download https://github.com/rochus-keller/Fts/archive/refs/heads/leanqt.zip and unpack it to the root directory; rename the resulting directory to "Fts".
  7. Download https://github.com/rochus-keller/Oln2/archive/refs/heads/leanqt.zip and unpack it to the root directory; rename the resulting directory to "Oln2".
  8. Download https://github.com/rochus-keller/Stream/archive/refs/heads/leanqt.zip and unpack it to the root directory; rename the resulting directory to "Stream".
  9. Download https://github.com/rochus-keller/Txt/archive/refs/heads/leanqt.zip and unpack it to the root directory; rename the resulting directory to "Txt".
  10. Download https://github.com/rochus-keller/Udb/archive/refs/heads/leanqt.zip and unpack it to the root directory; rename the resulting directory to "GuiTools".
  11. Download http://software.rochus-keller.ch/Sqlite3.zip and unpack it to the root directory, so that there is an Sqlite3 subdirectory.
  12. Open a command line in the build directory and type cc *.c -O2 -lm -o lua or cl /O2 /MD /Fe:lua.exe *.c depending on whether you are on a Unix or Windows machine; wait a few seconds until the Lua executable is built.
  13. Now type ./lua build.lua ../CrossLine (or lua build.lua ../CrossLine on Windows); wait until the CrossLine executable is built; you find it in the output subdirectory.

NOTE that if you build on Windows you have to first run vcvars32.bat or vcvars64.bat provided e.g. by VisualStudio (see e.g. here for more information) from the command line to set all required paths and environment variables.

If you already have a LeanCreator executable on your machine, you can alternatively open the root_directory/CrossLine/BUSY file with LeanCreator and build it there using all available CPU cores (don't forget to switch to Release mode); this is simpler and faster than the command line build.

Lucene option

In addition to the built-in Fts engine, Lucene can be integrated. If you need this option, download and unpack http://software.rochus-keller.ch/QLucene.zip to the root directory, so that there is a QLucene subdirectory, and add the -P HAVE_LUCENE parameter to the build command (so it looks e.g. like lua build.lua ../CrossLine -P HAVE_LUCENE).

Support

If you need support or would like to post issues or feature requests please use the Github issue list at https://github.com/rochus-keller/CrossLine/issues or send an email to the author.