HyperList

hyperlist

Everything. Concise and precise.

HyperListS represents a way to describe anything – any state or any transition. It represents data in tree-structure lists with a very rich set of features. It can be used for any structuring of data, such as:

  • Todo lists
  • Project plans
  • Data structures
  • Business processes
  • Logic breakdowns
  • Food recipes
  • Outlines of ideas
  • . . . and much, much more

If you came to this page to get a quick primer on HyperList, here you go:

  • HyperList contains Items (separate particulars, usually on a single line)
  • An Item can have a “child”, adding description or depth to its parent Item
  • A “child” is an indented Item under its parent Item
  • A semicolon (“;”) can be used instead of a line break to separate Items
  • Top level Items are in bold for clarity
  • An Item can contain various elements, color coded for
    clarity
  • Square brackets indicate a condition or “Qualifier” for the Item (in green)
  • A single question mark enclosed in square brackets denotes an optional item
  • A word in capital letters ending in a colon at the beginning of an Item is called an Operator (in blue)
  • An Operator “operates” on that Item
  • If a line ends in an Operator, it “operates” on all the Item’s children
  • Words not in capitals at the beginning of an Item and ending in a colon are a Tag (in red)
  • Tags give structure information to an Item. If a line ends in a Tag, it applies to all the Item’s children.
  • Angle brackets (“<” and “>”) indicates a Reference (in purple)
  • A Reference in a process means that you jump to where the Reference points

The HyperList document starts off with several examples where lists are useful as a way of describing something and where HyperLists is especially powerful. It then goes into every part of HyperLists and how it can be used to describe anything (yes – anything). Toward the end, HyperLists is used in describing itself, something very few frameworks are able to accomplish.

The list is the origin of culture. It’s part of the history of art and literature. What does culture want? To make infinity comprehensible. It also wants to create order – not always, but often. And how, as a human being, does one face infinity? How does one attempt to grasp the incomprehensible? Through lists [. . . ]” (Umberto Eco)

HyperList document

Get the HyperList document (PDF).

VIM plugin

To facilitate the creation and managing of HyperListS, I have created an elaborate plugin for the VIM text editor.

The plugin includes a large range of features such as:

  • Complete highlighting of HyperList elements
  • Collapsing and expanding of up to 15 levels in a list
  • Linking/referencing between elements (items) in a list
  • Easy navigation in lists, including jumping to references
  • “Presentation modes” where you can view only parts of lists and line-by-line
  • Automatic underlining of State or Transition items in a list
  • Creating and checking of checkboxes in a list, with or without date stamps
  • Easy navigation to elements that needs filling out (when you use a list as a template)
  • Encryption (and decryption) of whole lists or parts of lists
  • Auto-encryption of lists – making a list into an excellent password safe
  • HTML export of lists
  •  LaTeX export of lists
  • Description on how to include HyperLists within other filetypes, thus taking full advantage of the above features when including a HyperList in e.g. a normal .txt document.
  • All documents with the file suffix “.hl” is treated as HyperList documents
  • … and there are many more features. Check out the comprehensive documentation (type “:help HyperList” in VIM after install)

Go to the HyperList VIM plugin page (source on Github).

HyperGraph

You can automatically graph a HyperList as either a mindmap (for HyperLists that are State descriptions) or a flowchart (for HyperLists that are Transitions descriptions). An example should suffice – this dummy HyperList:

First Item
Second Item; OR: 
   Third Item
   Fourth Item
Fifth Item
[? Item=Cool] Sixth Item ()
Seventh Item
Eighth Item

Graphed as a State (mindmap):
test_state

Graphed as a Transition (flowchart):
test_trans

You may graph your HyperLists online over at isene.org.

HyperGraph is a Ruby script with a lot of options (run “hypergraph -h” for a full overview). Download HyperGraph here. HyperGraph is a rather complex endeavour. It works but you may encounter some snags. If you do, drop me a line and I will fix.

8 thoughts on “HyperList

Have your say