{"id":13646546,"url":"https://github.com/rswgnu/hyperbole","last_synced_at":"2025-04-21T21:31:12.058Z","repository":{"id":37835344,"uuid":"64351086","full_name":"rswgnu/hyperbole","owner":"rswgnu","description":"GNU Hyperbole: The Everyday, Hypertextual Information Manager","archived":false,"fork":false,"pushed_at":"2025-04-20T05:30:23.000Z","size":57061,"stargazers_count":168,"open_issues_count":9,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-20T06:26:37.929Z","etag":null,"topics":["emacs","gnu","hypermedia","hypertext","lisp","outline","outliner","outlines","rolodex","window-manager"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rswgnu.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-07-28T00:33:07.000Z","updated_at":"2025-04-20T05:30:27.000Z","dependencies_parsed_at":"2023-12-22T16:27:31.801Z","dependency_job_id":"6673fc89-c75b-4dd7-8c72-f24cee0c38cd","html_url":"https://github.com/rswgnu/hyperbole","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rswgnu%2Fhyperbole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rswgnu%2Fhyperbole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rswgnu%2Fhyperbole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rswgnu%2Fhyperbole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rswgnu","download_url":"https://codeload.github.com/rswgnu/hyperbole/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250136676,"owners_count":21380876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs","gnu","hypermedia","hypertext","lisp","outline","outliner","outlines","rolodex","window-manager"],"created_at":"2024-08-02T01:02:58.755Z","updated_at":"2025-04-21T21:31:12.043Z","avatar_url":"https://github.com/rswgnu.png","language":"Emacs Lisp","readme":"# GNU Hyperbole 9.0.2pre - The Everyday Hypertextual Information Manager\n\n[We work on Hyperbole as a gift to the Emacs community and request you\n send us a thank you or a testimonial describing your usage if you like\n Hyperbole to [rsw@gnu.org](mailto:rsw@gnu.org)].\n\n[TOC]\n\n![Hyperbole screenshot of the Koutliner, DEMO file and HyRolo](man/im/hyperbole-cv.png)\n\n## Reference Manual\n\nHyperbole has many features you can explore interactively or by reading sections of\nthe reference manual:\n\n   - [Browse Hyperbole Web Manual](man/hyperbole.html)\n\n   - [In Emacs, Browse Hyperbole Info Manual](man/hyperbole.info)\n\n   - [Display or Print PDF Manual](man/hyperbole.pdf)\n\n## Videos\n\nIf you prefer video introductions, visit the videos linked to below;\notherwise, skip to the next section.\n\n   - [Overview and Demo](https://youtu.be/WKwZHSbHmPg)\n      Long video that covers most of Hyperbole;\n      Hyperlink timestamps to watch each section\n\n   - [Quick Introduction](https://youtu.be/K1MNUctggwI)\n\n   - [Top 10 ways Hyperbole amps up Emacs](https://emacsconf.org/2023/talks/hyperamp/)\n  \n   - [Introduction to Buttons](https://youtu.be/zoEht66N2PI)\n\n   - [Linking Personal Info with Implicit Buttons](https://emacsconf.org/2022/talks/buttons/)\n\n   - [Powerful Productivity with Hyperbole and Org Mode](https://emacsconf.org/2022/talks/hyperorg/)\n\n   - [HyRolo, fast contact/hierarchical record viewer](https://youtu.be/xdJGFdgKPFY)\n\n   - [Using Koutline for stream of thought journaling](https://emacsconf.org/2023/talks/koutline/)\n  \n   - [Build a Zettelkasten with HyRolo](https://emacsconf.org/2022/talks/rolodex/)\n\n   - [HyControl, fast Emacs frame and window manager](https://youtu.be/M3-aMh1ccJk)\n\n   - [Writing test cases for GNU Hyperbole](https://emacsconf.org/2023/talks/test/)\n  \n   - [Find/Web Search](https://youtu.be/8lMlJed0-OM)\n\n   - [Linking personal info with implicit buttons](https://youtu.be/TQ_fG7b1iHI)\n\n## Summary\n\n`GNU Hyperbole` (pronounced Ga-new Hi-per-bo-lee), or just `Hyperbole`, is\nlike Markdown for hypertext.  Hyperbole automatically recognizes dozens of\ncommon, pre-existing patterns in any buffer regardless of mode and can\ninstantly activate them as hyperbuttons with a single key: email addresses,\nURLs, grep -n outputs, programming backtraces, sequences of Emacs keys,\nprogramming identifiers, Texinfo and Info cross-references, Org links,\nMarkdown links and on and on.  All you do is load Hyperbole and then your\ntext comes to life with no extra effort or complex formatting.\n\nHyperbole includes easy-to-use, powerful hypertextual button types without\nthe need to learn a markup language.  Hyperbole's button types are written\nin Lisp and can be wholly independent of the web, i.e. web links are one\ntype of Hyperbole link, not fundamental to its link architecture.  However,\nHyperbole is a great assistant when editing HTML or Javascript or when\nbrowsing web pages and links.\n\nHyperbole comes pre-built with most of the implicit button types you will\nneed but with a little extra effort and a few lines of code (or even just a\nfew words), you can define your own implicit button types to recognize your\nspecific buttons and then activate them anywhere in Emacs.  You press a\nsingle key, {M-RET} by default, on any kind of Hyperbole button to activate\nit, so you can rely on your muscle memory and let the computer do the hard\nwork of figuring out what to do.  {C-u M-RET} shows you what any button will\ndo in any context before you activate it, so you can always be sure of what\nyou are doing when needed or if some emails you a button (you can do that\ntoo).\n\nHyperbole is something to be experienced and interacted with, not understood\nfrom reading alone.  It installs normally as a single Emacs package with no\ndependencies outside of standard Emacs libraries.  Most of Hyperbole is a\nsingle global minor mode that you can activate and deactivate at will.  And\nit can be uninstalled quickly as well if need be, so there is no risk to\ngiving it a spin.\n\nOnce you have it installed and activated {C-u M-x hyperbole-mode RET}, try\nthe interactive demo with {C-h h d d}.  In fact, if you have Hyperbole\nloaded, you can press {M-RET} inside any of the brace delimited series of\nkeys you see in this document and it will execute them on-the-fly (easy\nkeyboard-macro style buttons in any text).\n\nHyperbole can dramatically increase your productivity and greatly reduce the\nnumber of keyboard/mouse keys you'll need to work efficiently.\n\nIn short, Hyperbole lets you:\n\n   1. Quickly create hyperlink buttons either from the keyboard or by dragging\n      between a source and destination window with a mouse button depressed.\n      Later, activate buttons by pressing/clicking on them or by giving the\n      name of the button.\n\n   2. Activate many kinds of `implicit buttons` recognized by context\n      within text buffers, e.g. URLs, grep output lines, and git commits.\n      A single key or mouse button automatically does the right thing in\n      dozens of contexts; just press and go.\n\n\u003cimg src=\"man/im/action-key-animation.gif\" alt=\"Hyperbole Animation of Action Key Contexts\"\u003e\n\n   3. Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,\n      that all renumber automatically as any node or tree is moved in the\n      outline.  Each node also has a permanent hyperlink anchor that you can\n      reference from any other node;\n\n   4. Manage all your contacts or record-based, unstructured nodes quickly\n      with hierarchical categories; each entry can have embedded\n      hyperbuttons of any type.  Or create an archive of documents with\n      hierarchical entries and use the same search mechanism to quickly find\n      any matching entry;\n\n   5. Use single keys to easily manage your Emacs windows or frames and\n      quickly retrieve saved window and frame configurations;\n\n   6. Search for things in your current buffers, in a directory tree or\n      across major web search engines with the touch of a few keys.\n\nThe common thread in all these features is making retrieval,\nmanagement and display of information fast and easy.  That is\nHyperbole's purpose.  It may be broad but it works amazingly well.  If\nit is textual information, Hyperbole can work with it.  In contrast to\nOrg mode, Hyperbole works across all Emacs modes and speeds your work\nby turning all kinds of references into clickable hyperlinks and\nallowing you to create new hyperlinks by dragging between two windows.\nThe [Hyperbole wiki page](https://www.emacswiki.org/emacs/Hyperbole)\nexplains the many ways it differs from and is complementary to Org\nmode.  Hyperbole is designed to work with Org mode, so use them both\nacross your tasks.\n\nHyperbole allows hypertext buttons to be embedded within unstructured and\nstructured files, mail messages and news articles.  It offers intuitive\nkeyboard and mouse-based control of information display within multiple\nwindows.  It also provides point-and-click access to World-Wide Web URLs,\nInfo manuals, ftp archives, etc.\n\nHyperbole works well on GNU Emacs 28 or above.  It is designed and written\nby Bob Weiner.  It is maintained by him and Mats Lidell.  Its main\ndistribution site is: \u003chttps://www.gnu.org/software/hyperbole/\u003e.  If any\nterm in here is new or unfamiliar to you, you can look it up in the\n[Hyperbole Glossary](man/hyperbole.html#Glossary).\n\nHyperbole is available for [download and installation](#installation)\nthrough the GNU Emacs package manager.\n\nUnlock the power of GNU Hyperbole to make your information work for you.\nOne system.  One language.  One manual.  One solution.  Learn Hyperbole and\nstart moving further, faster.\n\n## Installation\n\nOnce you have Emacs set up at your site, GNU Hyperbole may be\ninstalled by using the Emacs Package Manager.  If you are not\nfamiliar with it, see the Packages section of the GNU Emacs Manual,\n[Emacs Packages](https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html). \n\nIf you have Hyperbole 5.10 or higher already installed and simply want to\nupgrade it, invoke the Emacs Package Manager with {M-x list-packages RET},\nthen use the {U} key followed by the {x} key to upgrade all out-of-date\npackages, Hyperbole among them.  Then skip the text below and move on to\nthe next section, [Invocation](#invocation).\n\nOtherwise, to download and install the Hyperbole package, you should\nadd several lines to your personal Emacs initialization file,\ntypically \"~/.emacs\".  For further details, see [Emacs Init\nFile](https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html).\n\nBelow are the lines to add:\n\n    (require 'package)\n    (setq package-enable-at-startup nil) ;; Prevent double loading of libraries\n    (package-initialize)\n    (unless (package-installed-p 'hyperbole)\n      (package-refresh-contents)\n      (package-install 'hyperbole))\n    (hyperbole-mode 1)\n\n----\n\nNow save the file and then restart Emacs.  Hyperbole will then be\ndownloaded and compiled for use with your version of Emacs; give it a\nminute or two.  You may see a bunch of compilation warnings but these\ncan be safely ignored and have no impact on Hyperbole's performance.\n\n## Invocation\n\nOnce Hyperbole has been installed for use at your site and loaded into your\nEmacs session, it is ready for use.  You will see a Hyperbole menu on your\nmenubar and 'Hypb' in the minor-mode section of your modeline.  {C-h h} will\ndisplay a Hyperbole menu in the minibuffer for quick keyboard-based selection.\n\nYou can invoke Hyperbole commands in one of three ways:\n\n   use the Hyperbole menu on your menubar;\n\n   ![Hyperbole Menubar Menu](man/im/menu-hyperbole.png)\n\n   type {C-h h} or {M-x hyperbole RET} to bring up the Hyperbole main menu\n   in the minibuffer window, for fast keyboard or mouse-based selection;\n   select an item from this menu by typing the item's first letter; use {q}\n   to quit from the menu.\n\n   use a specific Hyperbole command such as an Action Key click {M-RET} on\n   a pathname to display the associated file or directory.\n\nUse {C-h h d d} for an interactive demonstration of standard Hyperbole\nbutton capabilities.\n\n![Hyperbole screenshot of the DEMO](man/im/demo.png)\n\n{C-h h k e} offers an interactive demonstration of the Koutliner,\nHyperbole's multi-level autonumbered hypertextual outliner.\n\n![Hyperbole screenshot of the Koutliner](man/im/koutliner.png)\n\nTo try out HyControl, Hyperbole's interactive frame and window control\nsystem, use {C-h h s w} for window control or {C-h h s f} for frame\ncontrol.  {t} switches between window and frame control once in one of\nthem.  Hyperbole also binds {C-c \\} for quick access to HyControl's\nwindow control menu if it was not already bound prior to Hyperbole's\ninitialization.  A long video demonstrating many of HyControl's\nfeatures is available at https://youtu.be/M3-aMh1ccJk.\n\nThe above are the best interactive ways to learn about Hyperbole.\nHyperbole also includes the Hyperbole Manual, a full reference manual,\nnot a simple introduction.  It is included in the \"man/\" subdirectory\nof the Hyperbole package directory in four forms:\n\n[hyperbole.info](man/hyperbole.info)   - online Info browser version  \n[hyperbole.html](man/hyperbole.html)   - web version  \n[hyperbole.pdf](man/hyperbole.pdf)     - printable version  \n[hyperbole.texi](man/hyperbole.texi)   - source version  \n\nThe Hyperbole package installation places the Info version of this manual\nwhere needed and adds an entry for Hyperbole into the Info directory under\nthe Emacs category.  {C-h h d i} will let you browse the manual.  For web\nbrowsing, point your browser at \"${hyperb:dir}/man/hyperbole.html\",\nwherever the Hyperbole package directory is on your system; often this is:\n\"~/.emacs.d/elpa/hyperbole-${hyperb:version}/\".\n\n\n## Mailing Lists\n\n   - **hyperbole-users@gnu.org** - User list for GNU Hyperbole\n\n       [info and subscription](http://lists.gnu.org/mailman/listinfo/hyperbole-users)\n       [web archive](http://lists.gnu.org/pipermail/hyperbole-users/)\n\n   - **bug-hyperbole@gnu.org** - List for bug reporting\n\n       [info and subscription](http://lists.gnu.org/mailman/listinfo/bug-hyperbole)\n       [web archive](http://lists.gnu.org/archive/html/bug-hyperbole/)\n\n## Ftp and Git Repository Downloads\n\nTo inspect the Hyperbole source code online rather than installing it for\nuse (which will also give you the source code), open a web page to:\n\n   - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/\n\nAlternatively, you may download a tar.gz source archive from either:\n\n   - ftp://ftp.gnu.org/gnu/hyperbole/\n\n   - http://ftpmirror.gnu.org/hyperbole/\n\nwhich will find the closest mirror of the GNU ftp site and show it to you.\n\nIf you want to follow along with Hyperbole development and maintain a\ncopy/clone of the current version-controlled git tree, use a\n[command listed here](https://savannah.gnu.org/git/?group=hyperbole)\nto clone the Hyperbole project tree.\n\n## Hyperbole Components\n\nHyperbole consists of six parts:\n\n   1.  **Buttons and Smart Keys**: A set of hyperbutton types which supply\n       core hypertext and other behaviors.  Buttons may be added to\n       documents (explicit buttons) with a simple drag between windows,\n       no markup language needed.  Implicit buttons are patterns\n       automatically recognized within text that perform actions,\n       e.g. bug#24568 displays the bug status information for that bug\n       number.\n       \n       These actions may be links or arbitrary Lisp expressions.  So\n       for example, you could create your own button type of\n       Wikipedia searches that jumped to the named Wikipedia page\n       whenever point was within text of the form [wp\u003csearch term\u003e].\n       You define the pattern so {\u003csearch term\u003e} might do the same\n       thing if you preferred.  And this works within any Emacs\n       buffer you want it to, regardless of major or minor mode.\n\n       Buttons are accessed by clicking on them or referenced by name\n       (global buttons), so they can be activated regardless of what is\n       on screen.  Users can make simple changes to button types and\n       those familiar with Emacs Lisp can prototype and deliver new\n       types quickly with just a few lines of code.\n\n       Hyperbole includes two special `Smart Keys', the Action Key\n       and the Assist Key, that perform an extensive array of\n       context-sensitive operations across emacs usage, including\n       activating and showing help for Hyperbole buttons.  In many\n       popular Emacs modes, they allow you to perform common, sometimes\n       complex operations without having to use a different key for each\n       operation.  Just press a Smart Key and the right thing happens;\n\n   2.  **Auto-Wiki Note Taker**: HyWiki is a simple note taking system\n       that uses Org mode and automatically highlights and turns each\n       WikiWord into a hyperlink to its Wiki page or section without any\n       markup.\n\n   3.  **Autonumbered Legal Outliner**: The Koutliner is an advanced\n       outliner with multi-level autonumbering and permanent ids\n       attached to each outline node for use as hypertext link\n       anchors, per node properties and flexible view specifications\n       that can be embedded within links or used interactively;\n\n   4.  **Contact and Text Finder**: HyRolo is a powerful, hierarchical\n       contact manager and fast text record search interface with\n       expand/collapse capabilities over search results for quick\n       views.  HyRolo is easy to learn to use since it introduces only\n       a few new mechanisms and has a menu interface, which may be\n       operated from the keyboard or the mouse.\n\n\t   ![HyRolo Menubar Menu](man/im/menu-rolo.png)\n\n   5.  **Screen Control**: HyControl is the fastest, easiest-to-use\n       window and frame control available for GNU Emacs.  With just a\n       few keystrokes, you can shift from increasing a window's height\n       by 5 lines to moving a frame by 220 pixels or immediately\n       moving it to a screen corner.  Text in each window or frame may\n       be enlarged or shrunk (zoomed) for easy viewing, plus many\n       other features;\n\n\t   The broader vision for HyControl is to support persistent\n   \t   window and frame configurations as link targets.  Then a user\n   \t   will be able to create the views of information he wants and\n   \t   store them as links for rapid display.  Work remains to\n   \t   implement this feature but it helps explain the connection of\n   \t   HyControl to the rest of Hyperbole;\n\n   6.  **Programming Library**: a set of programming library classes for\n       system developers who want to integrate Hyperbole with another\n       user interface or as a back-end to a distinct system.  (All of\n       Hyperbole is written in Emacs Lisp for ease of modification.\n       Hyperbole has been engineered for real-world usage and is well\n       structured).\n\nWe find Hyperbole's parts are more powerful as one package, i.e. the\nsum is greater than the parts, so we don't offer them separately.\nHyperbole is free software, however, so you may modify it as you see\nfit.\n\n\n## Hyperbole Buttons\n\nA Hyperbole hypertext user works with buttons; he may create, modify, move\nor delete buttons.  Each button performs a specific action, such as linking\nto a file or executing a shell command.\n\nThere are three categories of Hyperbole buttons:\n\n   1.  *Explicit Buttons*\n          created by Hyperbole, accessible from within a single document; \n\n   2.  *Global Buttons*\n          created by Hyperbole, accessible anywhere within a user's\n          network of documents;\n\n   3.  *Implicit Buttons*\n          buttons created and managed by other programs or embedded\n          within the structure of a document, accessible from within a\n          single document.  Hyperbole recognizes implicit buttons by\n          contextual patterns given in their type specifications.\n\nHyperbole buttons may be clicked upon with a mouse to activate them or to\ndescribe their actions.  Thus, a user can always check how a button will act\nbefore activating it.  Buttons may also be activated from a keyboard.  (In\nfact, virtually all Hyperbole operations, including menu usage, may be\nperformed from any standard terminal interface, so one can use it on distant\nmachines that provide limited display access).\n\nHyperbole does not enforce any particular hypertext or information\nmanagement model, but instead allows you to organize your information in\nlarge or small chunks as you see fit, organizing each bit as time allows.\nThe Hyperbole Koutliner and HyRolo tools organize textual hierarchies and\nmay also contain links to external information sources.\n\n## Important Features\n\nSome of Hyperbole's most important features include:\n\n - Buttons may link to information or may execute commands, such as\n   computing a complex value or communicating with external programs;\n\n - Buttons are quick and easy to create with no programming nor\n   markup needed.  One simply drags between a button source location\n   and a link destination to create or to modify a link button.  The\n   same result can be achieved from the keyboard.\n\n - Buttons may be embedded within email messages and activated from\n   Emacs mail readers; hyperlinks may include variables so that they\n   work at different locations where the variable settings differ;\n\n - Koutlines allow rapid browsing, editing and movement of chunks of\n   information organized into trees (hierarchies) and offer links\n   that include viewspecs which determine how documents are to be\n   displayed, e.g. show just the first two lines of all levels in a\n   Koutline;\n\n - Other hypertext and information retrieval systems may be\n   encapsulated under a Hyperbole user interface very easily.\n\n## Hyperbole Uses\n\nTypical Hyperbole applications include:\n\n - *Personal Information Management*  \n   Overlapping link paths provide a variety of views into an\n   information space.  A single key press activates buttons\n   regardless of their types, making navigation easy.\n\n   A search facility locates buttons in context and permits quick\n   selection.\n\n - *Documentation Browsing*  \n   Embedding cross-references in a favorite documentation format.\n\n   Addition of a point-and-click interface to existing documentation.\n\n   Linkage of code and design documents.  Jumping to the definition\n   of an identifier from its use within code or its reference within\n   documentation.\n\n - *Brainstorming*  \n   Capture of ideas and then quick reorganization with the Hyperbole\n   Koutliner.  Link to related ideas, eliminating the need to copy\n   and paste information into a single place.\n\n - *Help/Training Systems*  \n   Creation of tutorials with embedded buttons that show students how\n   things work while explaining the concepts, e.g. an introduction\n   to UNIX commands.  This technique can be much more effective than\n   descriptions alone.\n\n - *Archive Managers*  \n   Supplementation of programs that manage archives from incoming\n   information stream, having them add topic-based buttons that\n   link to the archive holdings.  Users can then search and create\n   their own links to archive entries.\n\n## Files\n\nSee the [HY-ABOUT](HY-ABOUT) file for a description and overview of Hyperbole.\n\nSee the [HY-NEWS](HY-NEWS) file for a summary of new features in this release.\n\nSee the [INSTALL](INSTALL) file for installation and invocation instructions.\n\nSee the [HY-COPY](HY-COPY) and [COPYING](COPYING) files for license information.\n\nSee the [MANIFEST](MANIFEST) file for summaries of Hyperbole distribution files.\n\nSee [FAST-DEMO](FAST-DEMO) for a demonstration of Hyperbole implicit button\ncapabilities.  This is the best way to initially interactively learn about\nHyperbole after installing it.\n\nVarious forms of the Hyperbole are below the \"man/\" subdirectory.\n\n\n## Programmer Quick Reference\n\n[MANIFEST](MANIFEST) summarizes most of the files in the distribution.\n\nSee [DEMO](DEMO) for a lengthier tutorial of standard Hyperbole button\ncapabilities.  This is the best way to go deeper into all of Hyperbole.\nThe Hyperbole Manual is a reference manual, not a simple introduction.\n\nNaming conventions:\n\n  - All Hyperbole-specific code files begin with an 'h', aside from the\n    Koutliner files which are in the kotl/ subdirectory and begin with a 'k'.\n\n  - Hyperbole user-interface files begin with 'hui-' or 'hmouse-'.\n\n  - Files that define implicit button types begin with 'hib-'.\n\n  - Encapsulations of foreign systems begin with 'hsys-'.\n\nMost of the standard Emacs user interface for Hyperbole is located in\n[hui.el](hui.el).  Most of the Hyperbole application programming\ninterface can be found in [hbut.el](hbut.el).  [hbdata.el](hbdata.el)\nencapsulates the button attribute storage implemented by Hyperbole.\n[hmail.el](hmail.el) provides a basic abstract interface for\nintegrating mail readers other than Rmail into Hyperbole.\n\nSee the [Hyperbole Questions and Answers](man/hyperbole.html#Questions-and-Answers)\nappendix in the Hyperbole manual for information on how to alter the\ndefault context-sensitive Hyperbole key bindings (Smart Keys).\n\n## User Quotes\n\n\n  Hyperbole is a wonderful package, I love the feeling of the deep,\n  well-thought out, poised engineering.  It may be from the 90s, but it\n  feels like a breath of fresh air to me.\n\n                        -- de_sonnaz on reddit  \n\n\n  \\*\\*\\* MAN I love Hyperbole!!!  Wow! \\*\\*\\*\n\n                        -- Ken Olstad  \n                           Cheyenne Software, Inc.\n\n-------\n\n  I *love* koutlines.\n\n                        -- Bob Glickstein  \n                           Z-Code Software Corporation\n\n-------\n\n  One of the nicest things about Hyperbole is that it's available\n  everywhere. Org-mode is a mode and its features are only available in\n  Org files. For instance if you dropped into `eshell' or `ansi-term' and\n  did `ls', you can move point to any of the directory's contents, do M-RET\n  (or Shift-Button2) and jump to that file.  And that's just one example.\n  Note that this means that all Hyperbole functionality is available in\n  Org files as well.  To me, except for the Hyperbole outliner, that means\n  complementary not conflicting. It's Hyperbole *and* org-mode, not\n  Hyperbole vs. org-mode.\n\n  Additionally, off the bat, I found it very well documented and for me\n  that's a proxy for the quality of a package.  The maintainers are quite\n  responsive.  There's plenty more functionality that I haven't uncovered yet\n  but due to the ease of installation and the quality of the documentation,\n  digging into it is actually fun.\n\n                        -- Aditya Siram  \n\n-------\n\n  GNU Hyperbole is a game-changer for your mental model of information\n  management and personal productivity.  Even if you don't use it you should\n  study one or two of the modules and compare them to how you solve the same\n  problem with your preferred tool of choice.  It is subtle, and subtle is one\n  of the hardest and post powerful things to reside in your mental landscape\n  these days.\n\n                        -- Grant Rettke__\n                           Org2Blog Maintainer\n-------\n\n  For me, Emacs isn't Emacs without Hyperbole.  I have depended on Hyperbole\n  daily since 1992, when I first started using it to manage my development\n  environment.  It didn't take long before I could summon almost any\n  information I needed directly from within my editing environment with an\n  implicit button. Since I almost never have to slow down to look for\n  things--one context-dependent button usually produces exactly what I need\n  --I am able to maintain focus on the task I am working on and complete it\n  more quickly.  With its gestural interface, seamless integration with other\n  Emacs packages and incredibly useful set of core features.  I think that\n  Hyperbole is one of the best designed and most easily extensible software\n  products I have ever come across.  It is certainly the one which has made\n  the biggest improvement in my personal productivity.\n\n  My Hyperbole button file is my start page in Emacs.  It's a quickly\n  searchable index with links to countless resources.  We also have a\n  library of implicit buttons that enable rapid navigation from references\n  in our code to our issue tracking system, so clicking a reference like\n  Client6502 opens the relevant conversation.  Hyperbole provides a really\n  useful set of power tools.  If Emacs is your preferred productivity\n  environment, it's definitely worth getting familiar with it.\n\n                        -- Chris Nuzum  \n                           Co-founder, Traction Softwarea, Inc.\n\n-------\n\n  I've found Hyperbole (in conjunction with XEmacs) to be very useful\n  for signal processing algorithm development.\n\n  For me, it has almost completely obsoleted the engineering notebook:\n  I keep a set of files with ideas, algorithms, and results, linked\n  together and to the implementation in C++ files.  Using XEmacs'\n  support for embedding graphics, I've written a mode that accepts\n  image tags (formatted like HTML), and reads in GIF files to display\n  plots.  I have another program that converts the file to HTML (not\n  perfect, but adequate), so I can put any aspect of development on\n  our internal web for others to see.\n\n                        -- Farzin Guilak  \n                           Protocol Systems, Inc., Engineer\n\n-------\n\n  I am blind and have been using Hyperbole since 1992.  I used to use a PC as\n  a talking terminal attached to a UNIX system, but then I developed\n  Emacspeak which lets me use Emacs and Hyperbole from standard UNIX\n  workstations with an attached voice synthesizer.\n\n  My main uses are:\n\n   1. Global and implicit buttons for jumping to ftp sites.\n\n   2. The contact manager with Emacspeak support.\n\n   3. Explicit buttons as part of comments made about a structured document.\n      Each button jumps to the document section referred to by the comment.\n      This is very, very useful.\n\n   4. The Hyperbole Koutliner, which I find a very useful tool.  I've\n      implemented Emacspeak extensions to support it.\n\n                        -- TV Raman  \n                           Google Inc.\n\n-------\n\n  I've been a grateful Hyperbole user for a few years now.  Hyperbole's\n  flexibility and ease of use is a marvel.\n\n  Mainly, I write easy little implicit button types (and corresponding action\n  types) to make my life easier.  For example, I have an implicit button type\n  to bury certain buffers when I click at their bottoms, one that recognizes\n  a bug report record in various contexts and edits it, one that links pieces\n  of test output in a log file to the corresponding test case source code\n  (EXTREMELY helpful in interpreting test output), others that support our\n  homegrown test framework, one that handles tree dired mode the way I'd\n  like, one that completely handles wico menus (I've also overloaded the\n  wconfig actions triggered by diagonal mouse drags with wicos actions), and\n  a couple that support interaction with BBDB.\n\n  Other than that, I keep a global button file with 30 or so explicit buttons\n  that do various little things, and I index saved mail messages by putting\n  explicit link-to-mail buttons in an outline file.\n\n                        -- Ken Olstad  \n                           Cheyenne Software, Inc.\n\n-------\n\n  In general, Hyperbole is an embeddable, highly extensible hypertext\n  tool.  As such, I find it very useful. As it stands now, Hyperbole is\n  particularly helpful for organizing ill-structured or loosely coupled\n  information, in part because there are few tools geared for this purpose.\n  Hyperbole also possesses a lot of potential in supporting a wider\n  spectrum of structuredness, ranging from unstructured to highly\n  structured environments, as well as structural changes over time.\n\n  Major Uses:\n\n  * Menu interface to our own collaborative support environment called\n    CoReView: This interface brings together all top-level user commands\n    into a single partitioned screen, and allows the end user to interact\n    with the system using simple mouse-clicking instead of the meta-x key.\n\n  * Gateway to internet resources: this includes links to major Internet\n    archive sites of various types of information. Links are made at both\n    directory and file levels.\n\n  * Alternative directory organizer: The hierarchical nature of the Unix\n    file system sometimes makes it difficult to find things quickly and\n    easily using directory navigational tools such as dired. Hyperbole\n    enables me to create various \"profile\" views of my directory tree, with\n    entries in these views referring to files anywhere in the hierarchy.\n\n  * Organizing and viewing online documentation: using Hyperbole along with\n    Hyper-man and Info makes it truly easy to look up online documentation.\n      \n  * Other desktop organization tasks: including links to various mail\n    folders, saved newsgroup conversation threads, online note-taker,\n    emacs-command invocations, etc.\n\n                        -- Dadong Wan  \n                           University of Hawaii\n\n-------\n\n  Hyperbole is the first hyper-link system I've run across that is\n  actually part of the environment I use regularly, namely Emacs. The\n  complete flexibility of the links is both impressive and expected -- the\n  idea of making the link itself programmable is clever, and given that one\n  assumes the full power of Emacs.  Being able to send email with buttons\n  in it is a very powerful capability.  Using ange-ftp mode, one can make\n  file references \"across the world\" as easily as normal file references.\n\n                        -- Mark Eichin  \n                           Cygnus Support\n-------\n\n   I just wanted to say how much I enjoy using the Hyperbole Koutliner.\n   It is a great way to quickly construct very readable technical documents\n   that I can pass around to others.   Thanks for the great work.  \n\n                        -- Jeff Fried  \n                           Informix\n\n-------\n\n   The Hyperbole system provides a nice interface to exploring corners of\n   Unix that I didn't know existed before.\n\n                        -- Craig Smith  \n\n\n## Why was Hyperbole developed?\n\nHyperbole was originally designed to aid in research aimed at Personalized\nInformation production/retrieval Environments (PIEs).  Hyperbole was a\nPIE Manager that provided services to PIE Tools.  PIEmail, a mail reader was\nthe only PIE Tool developed as part of this research but Hyperbole has\ngreatly expanded since then and has long been a production quality toolset.\n\nAn examination of many hypertext environments as background research did\nnot turn up any that seemed suitable for the research envisioned, mainly\ndue to the lack of rich, portable programmer and user environments.  We also\ntired of trying to manage our own distributed information pools with standard\nUNIX tools.  And so Hyperbole was conceived and raved about until it\ngot its name.\n\nSince then Hyperbole has proved indispensable at improving information\naccess and organization in daily use over many years.  Why not start\nimproving your information handling efficiency today?\n\n-- The End --\n","funding_links":[],"categories":["Emacs Lisp","emacs"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frswgnu%2Fhyperbole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frswgnu%2Fhyperbole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frswgnu%2Fhyperbole/lists"}