                          ABOUT GNU HYPERBOLE

                   Designed and Written by Bob Weiner
                Maintained by Mats Lidell and Bob Weiner
                 https://www.gnu.org/software/hyperbole/
                            Version 7.1.1

         Say thanks or send a testimonial if you like Hyperbole:
                        Email: <rsw@gnu.org>

GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
an efficient and programmable hypertextual information management
system implemented as a GNU Emacs package.  It works well on GNU Emacs
24.4 or above.  (See also: "HY-WHY.kotl" for Hyperbole uses).

Hyperbole includes easy-to-use, powerful hypertextual buttons without
the need to learn a markup language; a hierarchical, record-based
contact manager; a rapid window and frame control system; and a
powerful multi-level auto-numbered outliner.  All features are aimed
at making textual information management and display fast and easy.

Hyperbole allows hypertext buttons to be embedded within unstructured
and structured files, mail messages and news articles.  It offers
intuitive keyboard and mouse-based control of information display
within multiple windows.  It also provides point-and-click access to
World-Wide Web URLs, Info manuals, ftp archives, etc.

The Hyperbole wiki page, "https://www.emacswiki.org/emacs/Hyperbole",
explains the many ways it differs from and is complementary to Org mode.

Hyperbole consists of five parts:

   1.  Buttons and Smart Keys: Hyperbole hyperlink and other kinds of
       buttons may be added to documents (explicit buttons) with a
       simple drag between windows, no markup language needed.
       Implicit buttons are patterns automatically recognized within
       text that perform actions, e.g. bug#24568 displays the bug
       status information for that bug number.
       
       Buttons are accessed by clicking on them or referenced by name
       (global buttons), so they can be activated regardless of what is
       on screen.  Users can make simple changes to button types and
       those familiar with Emacs Lisp can prototype and deliver new
       types quickly with just a few lines of code.

       Hyperbole includes two special `Smart Keys', the Action Key
       and the Assist Key, that perform an extensive array of
       context-sensitive operations across emacs usage, including
       activating and showing help for Hyperbole buttons.  In many
       popular Emacs modes, they allow you to perform common, sometimes
       complex operations without having to use a different key for each
       operation.  Just press a Smart Key and the right thing happens;

   2.  Contact and Text Finder: an interactive textual information
       management interface, including fast, flexible file and text
       finding commands.  A powerful, hierarchical contact manager,
       HyRolo, which anyone can use is also included.  It is easy to
       learn to use since it introduces only a few new mechanisms and
       has a menu interface, which may be operated from the keyboard or
       the mouse.

   3.  Screen Control: the fastest, easiest-to-use window and frame
       control available for GNU Emacs.  With just a few keystrokes,
       you can shift from increasing a window's height by 5 lines
       to moving a frame by 220 pixels or immediately moving it to a
       screen corner.  Text in each window or frame may be enlarged
       or shrunk (zoomed) for easy viewing, plus many other features;

   4.  The Koutliner: an advanced outliner with multi-level
       autonumbering and permanent ids attached to each outline node for
       use as hypertext link anchors, per node properties and flexible
       view specifications that can be embedded within links or used
       interactively;

   5.  Programming Library: a set of programming library classes for
       system developers who want to integrate Hyperbole with another
       user interface or as a back-end to a distinct system.  (All of
       Hyperbole is written in Emacs Lisp for ease of modification.
       Hyperbole has been engineered for real-world usage and is well
       structured).

A Hyperbole hypertext user works with buttons; he may create, modify, move
or delete buttons.  Each button performs a specific action, such as linking
to a file or executing a shell command.

There are three categories of Hyperbole buttons:

   1.  Explicit Buttons
          created by Hyperbole, accessible from within a single document; 

   2.  Global Buttons
          created by Hyperbole, accessible anywhere within a user's
          network of documents;

   3.  Implicit Buttons
          buttons created and managed by other programs or embedded
          within the structure of a document, accessible from within a
          single document.  Hyperbole recognizes implicit buttons by
          contextual patterns given in their type specifications.

Hyperbole buttons may be clicked upon with a mouse to activate them or to
describe their actions.  Thus, a user can always check how a button will act
before activating it.  Buttons may also be activated from a keyboard.  (In
fact, virtually all Hyperbole operations, including menu usage, may be
performed from any standard terminal interface, so one can use it on distant
machines that provide limited display access).

Hyperbole does not enforce any particular hypertext or information
management model, but instead allows you to organize your information in
large or small chunks as you see fit, organizing each bit as time allows.
The Hyperbole Koutliner and HyRolo tools organize textual hierarchies and
may also contain links to external information sources.

Some of Hyperbole's most important features include:

    Buttons may link to information or may execute commands, such as
    computing a complex value or communicating with external programs;

    Buttons are quick and easy to create with no programming nor
    markup needed.  One simply drags between a button source location
    and a link destination to create or to modify a link button.  The
    same result can be achieved from the keyboard.

    Buttons may be embedded within email messages and activated from
    Emacs mail readers; hyperlinks may include variables so that they
    work at different locations where the variable settings differ;

    Koutlines allow rapid browsing, editing and movement of chunks of
    information organized into trees (hierarchies) and offer links
    that include viewspecs which determine how documents are to be
    displayed, e.g. show just the first two lines of all levels in a
    Koutline;

    Other hypertext and information retrieval systems may be
    encapsulated under a Hyperbole user interface very easily.

Typical Hyperbole applications include:

    Personal Information Management
       Overlapping link paths provide a variety of views into an
       information space.  A single key press activates buttons
       regardless of their types, making navigation easy.

       A search facility locates buttons in context and permits quick
       selection.

    Documentation Browsing
       Embedding cross-references in a favorite documentation format.

       Addition of a point-and-click interface to existing documentation.

       Linkage of code and design documents.  Jumping to the definition
       of an identifier from its use within code or its reference within
       documentation.

    Brainstorming
       Capture of ideas and then quick reorganization with the Hyperbole
       Koutliner.  Link to related ideas, eliminating the need to copy
       and paste information into a single place.

    Help/Training Systems
       Creation of tutorials with embedded buttons that show students how
       things work while explaining the concepts, e.g. an introduction
       to UNIX commands.  This technique can be much more effective than
       descriptions alone.

    Archive Managers
       Supplementation of programs that manage archives from incoming
       information stream, having them add topic-based buttons that
       link to the archive holdings.  Users can then search and create
       their own links to archive entries.
