# Overview

After an extensive year-and-a-half of development and quality-assurance,
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.


# Videos

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]() |
  |-------------------------------------------------|----------------------------------|


# Use Cases

   1. Create a [card catalog](https://www.gnu.org/software/hyperbole/hib-doc-id.el)
      of published documents and reference them with simple text ids as
      hyperlinks in any type of document.

   2. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23t2).

   3. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23v).

   4. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23t3)
      and [Path Prefixes](https://www.gnu.org/software/hyperbole/DEMO.html#k23t4).

   5. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23t7).

   6. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k16c).

   7. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23z).

   8. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k23aa).
      and [Git (Local) References](https://www.gnu.org/software/hyperbole/DEMO.html#k23ac).

   9. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k19).

  10. 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](https://www.gnu.org/software/hyperbole/DEMO.html#k27a).

  11. Use the fantastic, auto-numbered Koutliner with per-item links
      and rapidly changeable views.  See [Koutliner](https://www.gnu.org/software/hyperbole/DEMO.html#k17).

  12. Rapidly and precisely control from the keyboard the layout and
      what is displayed in your Emacs windows and frames.  See
      [HyControl](https://www.gnu.org/software/hyperbole/DEMO.html#k18).


# What's New

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.

## Hyperbole Buttons

- 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.

## Compilation

- Native compilation is now supported with minimal warnings.
- Natively compiled functions work as button action types.
- Virtually all compilation warnings have been removed.

## Documentation

- 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.

## [HyControl](https://www.gnu.org/software/hyperbole/man/hyperbole.html#HyControl)

- Move directionally through windows and frames with I/J/K/M keys.

## [HyRolo](https://www.gnu.org/software/hyperbole/man/hyperbole.html#HyRolo)

- 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.

## [Koutliner](https://www.gnu.org/software/hyperbole/man/hyperbole.html#Koutliner)

- 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-<left>} and {M-S-<right>} 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".

## ERT Tests

- 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 Keyboard Menus

- Minibuffer menu auto-column-based reformatting when lines get too long.
- Minibuffer menu movement commands now support prefix arguments.

## [Org Mode Integration](https://www.gnu.org/software/hyperbole/man/hyperbole.html#Smart-Key-_002d-Org-Mode)

- 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.


# Installing and Using Hyperbole

To install within GNU Emacs, use:

&nbsp;&nbsp;&nbsp;&nbsp;`{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:

&nbsp;&nbsp;&nbsp;&nbsp; `{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:

&nbsp;&nbsp;&nbsp;&nbsp; `{C-h h d d}`

To permanently activate Hyperbole in your Emacs initialization file, add
the line:

&nbsp;&nbsp;&nbsp;&nbsp; `(hyperbole-mode 1)`

Hyperbole is a minor mode that may be disabled at any time with:

&nbsp;&nbsp;&nbsp;&nbsp; `{C-u 0 hyperbole-mode RET}`

See the [Hyperbole home page with screenshots](https://www.gnu.org/s/hyperbole).

See [Hyperbole use cases](https://www.gnu.org/s/hyperbole/HY-WHY.html)
or what [users think about Hyperbole](https://www.gnu.org/s/hyperbole/hyperbole.html#user-quotes).

Enjoy,

The Hyperbole Team