-
Notifications
You must be signed in to change notification settings - Fork 11
GNU Hyperbole
GNU Hyperbole (pronounced Hi-per-bo-lee) is an open, efficient, and programmable hypertextual information management and outliner system that is fully complementary to and compatible with Org mode.
The project page is https://savannah.gnu.org/projects/hyperbole/. Major new public releases started in 2016 with version 6.0.1 and now as of 2024, the latest release is version 9 with many exciting new features (see https://raw.githubusercontent.com/rswgnu/hyperbole/master/HY-NEWS).
At a high level, Hyperbole has the following features:
- Info Management: an interactive, unstructured textual information management interface.
- HyControl: the fastest and easiest-to-use window and frame control.
- KoutlineMode: advanced outliner with multi-level autonumbering.
- Button Types: set of hyper-button types which supply core hypertext and other behaviors.
- Programming Library: library classes for system developers who want to integrate with Hyperbole.
People often ask us about the differences between Org mode and Hyperbole. Although on the surface this comes up a lot, once you use both of these, you'll quickly see how different they are. Because they are so different, it is likely that there will be some integration in the future. You can use both together already with very little conflict. Here is a contrast of the two, for those interested.
- Org-mode is a major-mode that works on structured files built atop Emacs outlining mode.
- Hyperbole is a system that spans across much of Emacs' functionality, providing quick access keys and hyperbuttons wherever needed.
- Org-mode's outliner is like Emacs outliner.
- Hyperbole's Koutliner is unique; every node/paragraph has a unique id and settable attributes plus a relative id that is auto-updated as you move trees around the outline, so you know that node 2b4 is a child of 2b and is the next sibling of the 2b3 node.
- Org-mode has explicit hyperlinks that you create.
- Hyperbole has these too, allowing you to create them in any type of text file, with simple drags between windows. But Hyperbole also recognizes hyperlinks embedded in many different types of files and buffers and can easily support new types. You simply press one button and Hyperbole figures out what to do in dozens of contexts.
- Org-mode manages todos, time entries and some basic project management.
- Hyperbole does none of this except you can integrate with whatever todo management you like.
- Org-mode doesn't have any contact management builtin, only through add-on packages.
- Hyperbole has an integrated, fast, effective hierarchical contact manager.
- Org-mode does nothing with your buffers, windows and frames since it is just a major mode.
- Hyperbole has a fast, thoughtfully designed window and frame manager that lets you quickly arrange your Emacs artifacts as you like. Eventually, these window and frame configurations will be saveable and will be able to be the target of links, so you can have quick access buttons that arrange things for different work tasks (similar to Workspaces but integrated with all of Hyperbole's other features).
- Org-mode does nothing for management of libraries of information.
- Hyperbole helps organize, link, search and retrieve libraries of text files.
- Hyperbole also has features that speed code browsing and structured code editing and support for using the mouse keys as Control and Meta modifiers so you can point and operate on screen entities quickly. Org mode does not.
GNU Hyperbole 9.0.1, the Rhapsody release, is now available on GNU ELPA. And oh what a release it is: extensive new features, new video demos, org and org roam integration, Markdown and Org file support in HyRolo, recursive directory and wildcard file scanning in HyRolo, and much more.
Hyperbole is like Markdown for hypertext. Hyperbole automatically recognizes dozens of common patterns in any buffer regardless of mode and transparently turns them into hyperbuttons you can instantly activate with a single key. Email addresses, URLs, grep -n outputs, programming backtraces, sequences of Emacs keys, programming identifiers, Texinfo and Info cross-references, Org links, Markdown links and on and on. All you do is load Hyperbole and then your text comes to life with no extra effort or complex formatting.
But Hyperbole is also a personal information manager with built-in capabilities of contact management/hierarchical record lookup, legal-numbered outlines with hyperlinkable views and a unique window and frame manager. It is even Org-compatible so you can use all of Org's capabilities together with Hyperbole.
Hyperbole stays out of your way but is always a key press away when you need it. Like Emacs, Org, Counsel and Helm, Hyperbole has many different uses, all based around the theme of reducing cognitive load and improving your everyday information management. It reduces cognitive load by using a single Action Key, {M-RET}, across many different contexts to perform the best default action in each.
Hyperbole has always been one of the best documented Emacs packages. With Version 9 comes excellent test coverage: over 400 automated tests are run with every update against every major version of Emacs since version 27, to ensure quality. We hope you'll give it a try.
If you prefer video introductions, visit the videos linked to below; otherwise, skip to the next section.
GNU Hyperbole Videos | Web Link |
---|---|
Overview and Demo | https://youtu.be/WKwZHSbHmPg |
Covers all of Hyperbole | |
Timestamps to watch each section | |
------------------------------------------------- | ---------------------------------- |
Quick Introduction | https://youtu.be/K1MNUctggwI |
------------------------------------------------- | ---------------------------------- |
Top 10 ways Hyperbole amps up Emacs | https://youtu.be/BysjfL25Nlc |
------------------------------------------------- | ---------------------------------- |
Introduction to Buttons | https://youtu.be/zoEht66N2PI |
------------------------------------------------- | ---------------------------------- |
Linking Personal Info with Implicit Buttons | https://youtu.be/TQ_fG7b1iHI |
------------------------------------------------- | ---------------------------------- |
Powerful Productivity with Hyperbole and Org | https://youtu.be/BrTpTNEXMyY |
------------------------------------------------- | ---------------------------------- |
HyRolo, fast contact/hierarchical record viewer | https://youtu.be/xdJGFdgKPFY |
------------------------------------------------- | ---------------------------------- |
Using Koutline for stream of thought journaling | https://youtu.be/dO-gv898Vmg |
------------------------------------------------- | ---------------------------------- |
Build a Zettelkasten with HyRolo | https://youtu.be/HdlCK9w-LyQ |
------------------------------------------------- | ---------------------------------- |
HyControl, fast Emacs frame and window manager | https://youtu.be/M3-aMh1ccJk |
------------------------------------------------- | ---------------------------------- |
Writing test cases for GNU Hyperbole | https://youtu.be/maNQSKxXIzI |
------------------------------------------------- | ---------------------------------- |
Find/Web Search | https://youtu.be/8lMlJed0-OM |
------------------------------------------------- | ---------------------------------- |
-
Create a card catalog of published documents and reference them with simple text ids as hyperlinks in any type of document.
-
Single Action Key press to follow URLs with section links, Markdown links, Emacs outline heading links, Org mode links, Koutline links, file and directory links and program identifier references. See HTML Markdown and Emacs Outline Hash Links.
-
Jump from sections of a Table of Contents in DEMO, README and TUTORIAL files as well as Internet RFCs to the section text. Entries in a code library MANIFEST file work the same way. See Table of Contents Browsing.
-
Display and edit local or remote files and directories simply by pressing th Action Key on their names. Hyperbole will automatically embed certain key variables in link pathnames so that as these links are moved from site to site and the variable values change at each site, the links are properly maintained. See Path Suffixes and Variables and Path Prefixes.
-
Automatically translate POSIX and MSWindows paths within buffers or links to the right format for the current operating system, eliminating the drudgery of converting backslashes to forward slashes. See POSIX and MSWindows Paths.
-
Quickly search the web for targeted types of information such as programming questions, code libraries, images, videos, locations, word definitions, wikipedia entries or even tweets. See Hyperbole Menus.
-
Embed social media hashtags and user names in any text files. Then jump to the associated web page in your favorite web browser with an Action Key press. See Social Media Hashtags and Usernames.
-
Similarly, you can embed github and git object links in any files with a simple syntax and Hyperbole will display the associated objects with an Action Key press. See Github (Remote) References. and Git (Local) References.
-
Fast, multi-line, record-level full-text search across files of contacts or other record-based files in Org, Markdown, Emacs Outline or Koutline format. Then collapse all matches to a single line each while still seeing name, phone number and email information. See HyRolo.
-
Select regions of structured text or source code to copy or move them between buffers with a single mouse drag or two key presses. These selectable things include: delimited pairs of (), @{@}, <>, [] and quote marks, source code functions, source code comments and matching tag pairs in HTML and SGML modes. See Thing Selection.
-
Use the fantastic, auto-numbered Koutliner with per-item links and rapidly changeable views. See Koutliner.
-
Rapidly and precisely control from the keyboard the layout and what is displayed in your Emacs windows and frames. See HyControl.
What's new in version 9 is described in detail here:
www.gnu.org/s/hyperbole/HY-NEWS.html
Everything back until release 8.0.0 is new since the last major release announcement (almost a year and a half ago), so updates are extensive.
Below is a quicker summary of major feature additions.
- Instant cross-window, typed hyperlink creation.
- Select whole regions delimited by <>, [], () or {} when on any delimiter.
- Drag to display a Hyperbole button referent into a specific window.
- Hyperbole's markup pair selection now works in mhtml-mode.
- Native compilation is now supported with minimal warnings.
- Natively compiled functions work as button action types.
- Virtually all compilation warnings have been removed.
- New Hyperbole Concepts document shows how the parts interrelate.
- New video talks about Hyperbole from EmacsConf 2023 and 2022.
- Hyperbole button help now works on Emacs push-buttons as well.
- Smart Keys display flymake warnings.
- Move directionally through windows and frames with I/J/K/M keys.
- HyRolo full-text searching of directories of Org, Markdown Koutline and Emacs Outline files. Matching records can be expanded and collapsed as outlines as well.
- Hyrolo searching of directories or wildcard expansions of filesets. Paths may also include Environment or Elisp variables.
- Improved, fast movement and outlining keys for HyRolo matches.
- Consult and Helm grep package support for searching HyRolo files and Org Roam databases.
- Run or Edebug ERT tests from the first line of their definition.
- Unique face for highlighting implicit button names.
- Lisp identifiers recognized in byte-compilation Warnings buffer, Flymake log and diagnostics buffers.
- Now recognizes Table of Contents as cross-refs in any text-derived major mode with the text-toc implicit button type.
- Youtube snippet links to play parts or whole Youtube videos.
- Hash character, #, section references now work with klinks to Koutline cell auto-numbers or to cell heading strings that end with a colon or a newline.
- Org {M-S-} and {M-S-} tree promote and demote keys now work in Koutline mode. See "(hyperbole)Promoting and Demoting".
- Import indented Org outlines into Koutlines. See "(hyperbole)Inserting and Importing".
- Over 400 test cases automatically run across Emacs 27, 28, 29 and the current git master on each Hyperbole update.
- ERT test symbol definition display within Elisp and Elisp interaction buffers.
- Button type to run any set of Emacs ERT tests with a common prefix.
- Expanded support for cross-reference following in compilation and ERT test backtrace buffers.
- Minibuffer menu auto-column-based reformatting when lines get too long.
- Minibuffer menu movement commands now support prefix arguments.
- Automatic fix for mixed org versions when Hyperbole is initialized.
- Hyperbole can now link to Org links in non-Org buffers as well as to Org and Org Roam IDs.
- Jump to Org code block header :dir directories in Dired.
- Clear results from an Org code block header.
- Auto-programming identifier lookup within code blocks.
- Smart Keys work the same way on Code block and results headers. Smart Keys on Org internal targets now work just as they do on radio button targets.
- Support for Org 9.7 and up with newer features.
- Cycling among Org Todo states and sets of states with the Smart Keys.
- Hyperbole Doc/ files displayed in Org mode and cycle views of the document with TAB at the start of the buffer.
To install within GNU Emacs, use:
{M-x package-install RET hyperbole RET}
Hyperbole installs in less than a minute and can be uninstalled even faster if ever need be. Give it a try.
Then to invoke its minibuffer menu, use:
{C-h h}
or {M-x hyperbole RET}
The best way to get a feel for many of its capabilities is to invoke the all new, interactive FAST-DEMO and explore sections of interest:
{C-h h d d}
To permanently activate Hyperbole in your Emacs initialization file, add the line:
(hyperbole-mode 1)
Hyperbole is a minor mode that may be disabled at any time with:
{C-u 0 hyperbole-mode RET}
See the Hyperbole home page with screenshots.
See Hyperbole use cases or what users think about Hyperbole.
Enjoy,
The Hyperbole Team