-
Notifications
You must be signed in to change notification settings - Fork 11
/
README.md.html
645 lines (644 loc) · 34.9 KB
/
README.md.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
<h1
id="gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager">GNU
Hyperbole 9.0.2pre - The Everyday Hypertextual Information Manager</h1>
<p>[We work on Hyperbole as a gift to the Emacs community and request
you send us a thank you or a testimonial describing your usage if you
like Hyperbole (mailto:<a
href="mailto:[email protected]">[email protected]</a>)].</p>
<ul>
<li><a
href="#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager">GNU
Hyperbole 9.0.2pre - The Everyday Hypertextual Information Manager</a>
<ul>
<li><a href="#videos">Videos</a></li>
<li><a href="#summary">Summary</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#invocation">Invocation</a></li>
<li><a href="#mailing-lists">Mailing Lists</a></li>
<li><a href="#ftp-and-git-repository-downloads">Ftp and Git Repository
Downloads</a></li>
<li><a href="#hyperbole-components">Hyperbole Components</a></li>
<li><a href="#hyperbole-buttons">Hyperbole Buttons</a></li>
<li><a href="#important-features">Important Features</a></li>
<li><a href="#hyperbole-uses">Hyperbole Uses</a></li>
<li><a href="#files">Files</a></li>
<li><a href="#programmer-quick-reference">Programmer Quick
Reference</a></li>
<li><a href="#user-quotes">User Quotes</a></li>
<li><a href="#why-was-hyperbole-developed">Why was Hyperbole
developed?</a></li>
</ul></li>
</ul>
<p><img src="man/im/hyperbole-cv.png"
alt="Hyperbole screenshot of the Koutliner, DEMO file and HyRolo" /></p>
<h2 id="videos">Videos</h2>
<p>If you prefer video introductions, visit the videos linked to below;
otherwise, skip to the next section.</p>
<ul>
<li><p><a href="https://youtu.be/WKwZHSbHmPg">Overview and Demo</a> Long
video that covers most of Hyperbole; Hyperlink timestamps to watch each
section</p></li>
<li><p><a href="https://youtu.be/K1MNUctggwI">Quick
Introduction</a></p></li>
<li><p><a href="https://emacsconf.org/2023/talks/hyperamp/">Top 10 ways
Hyperbole amps up Emacs</a></p></li>
<li><p><a href="https://youtu.be/zoEht66N2PI">Introduction to
Buttons</a></p></li>
<li><p><a href="https://emacsconf.org/2022/talks/buttons/">Linking
Personal Info with Implicit Buttons</a></p></li>
<li><p><a href="https://emacsconf.org/2022/talks/hyperorg/">Powerful
Productivity with Hyperbole and Org Mode</a></p></li>
<li><p><a href="https://youtu.be/xdJGFdgKPFY">HyRolo, fast
contact/hierarchical record viewer</a></p></li>
<li><p><a href="https://emacsconf.org/2023/talks/koutline/">Using
Koutline for stream of thought journaling</a></p></li>
<li><p><a href="https://emacsconf.org/2022/talks/rolodex/">Build a
Zettelkasten with HyRolo</a></p></li>
<li><p><a href="https://youtu.be/M3-aMh1ccJk">HyControl, fast Emacs
frame and window manager</a></p></li>
<li><p><a href="https://emacsconf.org/2023/talks/test/">Writing test
cases for GNU Hyperbole</a></p></li>
<li><p><a href="https://youtu.be/8lMlJed0-OM">Find/Web
Search</a></p></li>
<li><p><a href="https://youtu.be/TQ_fG7b1iHI">Linking personal info with
implicit buttons</a></p></li>
</ul>
<h2 id="summary">Summary</h2>
<p><code>GNU Hyperbole</code> (pronounced Ga-new Hi-per-bo-lee), or just
<code>Hyperbole</code>, is like Markdown for hypertext. Hyperbole
automatically recognizes dozens of common, pre-existing patterns in any
buffer regardless of mode and can instantly activate them as
hyperbuttons 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.</p>
<p>Hyperbole includes easy-to-use, powerful hypertextual button types
without the need to learn a markup language. Hyperbole's button types
are written in Lisp and can be wholly independent of the web, i.e. web
links are one type of Hyperbole link, not fundamental to its link
architecture. However, Hyperbole is a great assistant when editing HTML
or Javascript or when browsing web pages and links.</p>
<p>Hyperbole comes pre-built with most of the implicit button types you
will need but with a little extra effort and a few lines of code (or
even just a few words), you can define your own implicit button types to
recognize your specific buttons and then activate them anywhere in
Emacs. You press a single key, {M-RET} by default, on any kind of
Hyperbole button to activate it, so you can rely on your muscle memory
and let the computer do the hard work of figuring out what to do. {C-u
M-RET} shows you what any button will do in any context before you
activate it, so you can always be sure of what you are doing when needed
or if some emails you a button (you can do that too).</p>
<p>Hyperbole is something to be experienced and interacted with, not
understood from reading alone. It installs normally as a single Emacs
package with no dependencies outside of standard Emacs libraries. Most
of Hyperbole is a single global minor mode that you can activate and
deactivate at will. And it can be uninstalled quickly as well if need
be, so there is no risk to giving it a spin.</p>
<p>Once you have it installed and activated {C-u M-x hyperbole-mode
RET}, try the interactive demo with {C-h h d d}. In fact, if you have
Hyperbole loaded, you can press {M-RET} inside any of the brace
delimited series of keys you see in this document and it will execute
them on-the-fly (easy keyboard-macro style buttons in any text).</p>
<p>Hyperbole can dramatically increase your productivity and greatly
reduce the number of keyboard/mouse keys you'll need to work
efficiently.</p>
<p>In short, Hyperbole lets you:</p>
<ol type="1">
<li><p>Quickly create hyperlink buttons either from the keyboard or by
dragging between a source and destination window with a mouse button
depressed. Later, activate buttons by pressing/clicking on them or by
giving the name of the button.</p></li>
<li><p>Activate many kinds of <code>implicit buttons</code> recognized
by context within text buffers, e.g. URLs, grep output lines, and git
commits. A single key or mouse button automatically does the right thing
in dozens of contexts; just press and go.</p></li>
</ol>
<img src="man/im/action-key-animation.gif" alt="Hyperbole Animation of Action Key Contexts">
<ol start="3" type="1">
<li><p>Build outlines with multi-level numbered outline nodes, e.g.
1.4.8.6, that all renumber automatically as any node or tree is moved in
the outline. Each node also has a permanent hyperlink anchor that you
can reference from any other node;</p></li>
<li><p>Manage all your contacts or record-based, unstructured nodes
quickly with hierarchical categories; each entry can have embedded
hyperbuttons of any type. Or create an archive of documents with
hierarchical entries and use the same search mechanism to quickly find
any matching entry;</p></li>
<li><p>Use single keys to easily manage your Emacs windows or frames and
quickly retrieve saved window and frame configurations;</p></li>
<li><p>Search for things in your current buffers, in a directory tree or
across major web search engines with the touch of a few keys.</p></li>
</ol>
<p>The common thread in all these features is making retrieval,
management and display of information fast and easy. That is Hyperbole's
purpose. It may be broad but it works amazingly well. If it is textual
information, Hyperbole can work with it. In contrast to Org mode,
Hyperbole works across all Emacs modes and speeds your work by turning
all kinds of references into clickable hyperlinks and allowing you to
create new hyperlinks by dragging between two windows. The <a
href="https://www.emacswiki.org/emacs/Hyperbole">Hyperbole wiki page</a>
explains the many ways it differs from and is complementary to Org mode.
Hyperbole is designed to work with Org mode, so use them both across
your tasks.</p>
<p>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.</p>
<p>Hyperbole works well on GNU Emacs 27.1 or above. It is designed and
written by Bob Weiner. It is maintained by him and Mats Lidell. Its main
distribution site is: <a
href="https://www.gnu.org/software/hyperbole/">https://www.gnu.org/software/hyperbole/</a>.
If any term in here is new or unfamiliar to you, you can look it up in
the <a href="man/hyperbole.html#Glossary">Hyperbole Glossary</a>.</p>
<p>Hyperbole is available for <a href="#installation">download and
installation</a> through the GNU Emacs package manager.</p>
<p>Unlock the power of GNU Hyperbole to make your information work for
you. One system. One language. One manual. One solution. Learn Hyperbole
and start moving further, faster.</p>
<h2 id="installation">Installation</h2>
<p>Once you have Emacs set up at your site, GNU Hyperbole may be
installed by using the Emacs Package Manager. If you are not familiar
with it, see the Packages section of the GNU Emacs Manual, <a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html">Emacs
Packages</a>.</p>
<p>If you have Hyperbole 5.10 or higher already installed and simply
want to upgrade it, invoke the Emacs Package Manager with {M-x
list-packages RET}, then use the {U} key followed by the {x} key to
upgrade all out-of-date packages, Hyperbole among them. Then skip the
text below and move on to the next section, <a
href="#invocation">Invocation</a>.</p>
<p>Otherwise, to download and install the Hyperbole package, you should
add several lines to your personal Emacs initialization file, typically
"~/.emacs". For further details, see <a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html">Emacs
Init File</a>.</p>
<p>Below are the lines to add:</p>
<pre><code>(require 'package)
(setq package-enable-at-startup nil) ;; Prevent double loading of libraries
(package-initialize)
(unless (package-installed-p 'hyperbole)
(package-refresh-contents)
(package-install 'hyperbole))
(hyperbole-mode 1)</code></pre>
<hr />
<p>Now save the file and then restart Emacs. Hyperbole will then be
downloaded and compiled for use with your version of Emacs; give it a
minute or two. You may see a bunch of compilation warnings but these can
be safely ignored and have no impact on Hyperbole's performance.</p>
<h2 id="invocation">Invocation</h2>
<p>Once Hyperbole has been installed for use at your site and loaded
into your Emacs session, it is ready for use. You will see a Hyperbole
menu on your menubar and 'Hypb' in the minor-mode section of your
modeline. {C-h h} will display a Hyperbole menu in the minibuffer for
quick keyboard-based selection.</p>
<p>You can invoke Hyperbole commands in one of three ways:</p>
<p>use the Hyperbole menu on your menubar;</p>
<p><img src="man/im/menu-hyperbole.png"
alt="Hyperbole Menubar Menu" /></p>
<p>type {C-h h} or {M-x hyperbole RET} to bring up the Hyperbole main
menu in the minibuffer window, for fast keyboard or mouse-based
selection; select an item from this menu by typing the item's first
letter; use {q} to quit from the menu.</p>
<p>use a specific Hyperbole command such as an Action Key click {M-RET}
on a pathname to display the associated file or directory.</p>
<p>Use {C-h h d d} for an interactive demonstration of standard
Hyperbole button capabilities.</p>
<p><img src="man/im/demo.png"
alt="Hyperbole screenshot of the DEMO" /></p>
<p>{C-h h k e} offers an interactive demonstration of the Koutliner,
Hyperbole's multi-level autonumbered hypertextual outliner.</p>
<p><img src="man/im/koutliner.png"
alt="Hyperbole screenshot of the Koutliner" /></p>
<p>To try out HyControl, Hyperbole's interactive frame and window
control system, use {C-h h s w} for window control or {C-h h s f} for
frame control. {t} switches between window and frame control once in one
of them. Hyperbole also binds {C-c } for quick access to HyControl's
window control menu if it was not already bound prior to Hyperbole's
initialization. A long video demonstrating many of HyControl's features
is available at <a
href="https://youtu.be/M3-aMh1ccJk">https://youtu.be/M3-aMh1ccJk</a>.</p>
<p>The above are the best interactive ways to learn about Hyperbole.
Hyperbole also includes the Hyperbole Manual, a full reference manual,
not a simple introduction. It is included in the "man/" subdirectory of
the Hyperbole package directory in four forms:</p>
<p><a href="man/hyperbole.info">hyperbole.info</a> - online Info browser
version<br />
<a href="man/hyperbole.html">hyperbole.html</a> - web HTML version<br />
<a href="man/hyperbole.pdf">hyperbole.pdf</a> - printable version<br />
<a href="man/hyperbole.texi">hyperbole.texi</a> - source form</p>
<p>The Hyperbole package installation places the Info version of this
manual where needed and adds an entry for Hyperbole into the Info
directory under the Emacs category. {C-h h d i} will let you browse the
manual. For web browsing, point your browser at
"${hyperb:dir}/man/hyperbole.html", wherever the Hyperbole package
directory is on your system; often this is:
"~/.emacs.d/elpa/hyperbole-${hyperb:version}/".</p>
<h2 id="mailing-lists">Mailing Lists</h2>
<ul>
<li><p><strong><a
href="mailto:[email protected]">[email protected]</a></strong>
- User list for GNU Hyperbole</p>
<p><a href="http://lists.gnu.org/mailman/listinfo/hyperbole-users">info
and subscription</a> <a
href="http://lists.gnu.org/pipermail/hyperbole-users/">web
archive</a></p></li>
<li><p><strong><a
href="mailto:[email protected]">[email protected]</a></strong> -
List for bug reporting</p>
<p><a href="http://lists.gnu.org/mailman/listinfo/bug-hyperbole">info
and subscription</a> <a
href="http://lists.gnu.org/archive/html/bug-hyperbole/">web
archive</a></p></li>
</ul>
<h2 id="ftp-and-git-repository-downloads">Ftp and Git Repository
Downloads</h2>
<p>To inspect the Hyperbole source code online rather than installing it
for use (which will also give you the source code), open a web page
to:</p>
<ul>
<li><a
href="https://git.savannah.gnu.org/cgit/hyperbole.git/tree/">https://git.savannah.gnu.org/cgit/hyperbole.git/tree/</a></li>
</ul>
<p>Alternatively, you may download a tar.gz source archive from
either:</p>
<ul>
<li><p><a
href="ftp://ftp.gnu.org/gnu/hyperbole/">ftp://ftp.gnu.org/gnu/hyperbole/</a></p></li>
<li><p><a
href="http://ftpmirror.gnu.org/hyperbole/">http://ftpmirror.gnu.org/hyperbole/</a></p></li>
</ul>
<p>which will find the closest mirror of the GNU ftp site and show it to
you.</p>
<p>If you want to follow along with Hyperbole development and maintain a
copy/clone of the current version-controlled git tree, use a <a
href="https://savannah.gnu.org/git/?group=hyperbole">command listed
here</a> to clone the Hyperbole project tree.</p>
<h2 id="hyperbole-components">Hyperbole Components</h2>
<p>Hyperbole consists of six parts:</p>
<ol type="1">
<li><p><strong>Buttons and Smart Keys</strong>: A set of hyperbutton
types which supply core hypertext and other behaviors. 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.</p>
<p>These actions may be links or arbitrary Lisp expressions. So for
example, you could create your own button type of Wikipedia searches
that jumped to the named Wikipedia page whenever point was within text
of the form [wp<search term>]. You define the pattern so {<search term>}
might do the same thing if you preferred. And this works within any
Emacs buffer you want it to, regardless of major or minor mode.</p>
<p>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.</p>
<p>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;</p></li>
<li><p><strong>Auto-Wiki Note Taker</strong>: HyWiki is a simple note
taking system that uses Org mode and automatically highlights and turns
each WikiWord into a hyperlink to its Wiki page or section without any
markup.</p></li>
<li><p><strong>Autonumbered Legal Outliner</strong>: The Koutliner is 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;</p></li>
<li><p><strong>Contact and Text Finder</strong>: HyRolo is a powerful,
hierarchical contact manager and fast text record search interface with
expand/collapse capabilities over search results for quick views. HyRolo
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.</p>
<p><img src="man/im/menu-rolo.png" alt="HyRolo Menubar Menu" /></p></li>
<li><p><strong>Screen Control</strong>: HyControl is 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;</p>
<p>The broader vision for HyControl is to support persistent window and
frame configurations as link targets. Then a user will be able to create
the views of information he wants and store them as links for rapid
display. Work remains to implement this feature but it helps explain the
connection of HyControl to the rest of Hyperbole;</p></li>
<li><p><strong>Programming Library</strong>: 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).</p></li>
</ol>
<p>We find Hyperbole's parts are more powerful as one package, i.e. the
sum is greater than the parts, so we don't offer them separately.
Hyperbole is free software, however, so you may modify it as you see
fit.</p>
<h2 id="hyperbole-buttons">Hyperbole Buttons</h2>
<p>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.</p>
<p>There are three categories of Hyperbole buttons:</p>
<ol type="1">
<li><p><em>Explicit Buttons</em> created by Hyperbole, accessible from
within a single document;</p></li>
<li><p><em>Global Buttons</em> created by Hyperbole, accessible anywhere
within a user's network of documents;</p></li>
<li><p><em>Implicit Buttons</em> 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.</p></li>
</ol>
<p>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).</p>
<p>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.</p>
<h2 id="important-features">Important Features</h2>
<p>Some of Hyperbole's most important features include:</p>
<ul>
<li><p>Buttons may link to information or may execute commands, such as
computing a complex value or communicating with external
programs;</p></li>
<li><p>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.</p></li>
<li><p>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;</p></li>
<li><p>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;</p></li>
<li><p>Other hypertext and information retrieval systems may be
encapsulated under a Hyperbole user interface very easily.</p></li>
</ul>
<h2 id="hyperbole-uses">Hyperbole Uses</h2>
<p>Typical Hyperbole applications include:</p>
<ul>
<li><p><em>Personal Information Management</em><br />
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.</p>
<p>A search facility locates buttons in context and permits quick
selection.</p></li>
<li><p><em>Documentation Browsing</em><br />
Embedding cross-references in a favorite documentation format.</p>
<p>Addition of a point-and-click interface to existing
documentation.</p>
<p>Linkage of code and design documents. Jumping to the definition of an
identifier from its use within code or its reference within
documentation.</p></li>
<li><p><em>Brainstorming</em><br />
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.</p></li>
<li><p><em>Help/Training Systems</em><br />
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.</p></li>
<li><p><em>Archive Managers</em><br />
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.</p></li>
</ul>
<h2 id="files">Files</h2>
<p>See the <a href="HY-ABOUT">HY-ABOUT</a> file for a description and
overview of Hyperbole.</p>
<p>See the <a href="HY-NEWS">HY-NEWS</a> file for a summary of new
features in this release.</p>
<p>See the <a href="INSTALL">INSTALL</a> file for installation and
invocation instructions.</p>
<p>See the <a href="HY-COPY">HY-COPY</a> and <a
href="COPYING">COPYING</a> files for license information.</p>
<p>See the <a href="MANIFEST">MANIFEST</a> file for summaries of
Hyperbole distribution files.</p>
<p>See <a href="FAST-DEMO">FAST-DEMO</a> for a demonstration of
Hyperbole implicit button capabilities. This is the best way to
initially interactively learn about Hyperbole after installing it.</p>
<p>Various forms of the Hyperbole are below the "man/" subdirectory.</p>
<h2 id="programmer-quick-reference">Programmer Quick Reference</h2>
<p><a href="MANIFEST">MANIFEST</a> summarizes most of the files in the
distribution.</p>
<p>See <a href="DEMO">DEMO</a> for a lengthier tutorial of standard
Hyperbole button capabilities. This is the best way to go deeper into
all of Hyperbole. The Hyperbole Manual is a reference manual, not a
simple introduction.</p>
<p>Naming conventions:</p>
<ul>
<li><p>All Hyperbole-specific code files begin with an 'h', aside from
the Koutliner files which are in the kotl/ subdirectory and begin with a
'k'.</p></li>
<li><p>Hyperbole user-interface files begin with 'hui-' or
'hmouse-'.</p></li>
<li><p>Files that define implicit button types begin with
'hib-'.</p></li>
<li><p>Encapsulations of foreign systems begin with 'hsys-'.</p></li>
</ul>
<p>Most of the standard Emacs user interface for Hyperbole is located in
<a href="hui.el">hui.el</a>. Most of the Hyperbole application
programming interface can be found in <a href="hbut.el">hbut.el</a>. <a
href="hbdata.el">hbdata.el</a> encapsulates the button attribute storage
implemented by Hyperbole. <a href="hmail.el">hmail.el</a> provides a
basic abstract interface for integrating mail readers other than Rmail
into Hyperbole.</p>
<p>See the <a href="man/hyperbole.html#Questions-and-Answers">Hyperbole
Questions and Answers</a> appendix in the Hyperbole manual for
information on how to alter the default context-sensitive Hyperbole key
bindings (Smart Keys).</p>
<h2 id="user-quotes">User Quotes</h2>
<p>Hyperbole is a wonderful package, I love the feeling of the deep,
well-thought out, poised engineering. It may be from the 90s, but it
feels like a breath of fresh air to me.</p>
<pre><code> -- de_sonnaz on reddit </code></pre>
<p>*** MAN I love Hyperbole!!! Wow! ***</p>
<pre><code> -- Ken Olstad
Cheyenne Software, Inc.</code></pre>
<hr />
<p>I <em>love</em> koutlines.</p>
<pre><code> -- Bob Glickstein
Z-Code Software Corporation</code></pre>
<hr />
<p>One of the nicest things about Hyperbole is that it's available
everywhere. Org-mode is a mode and its features are only available in
Org files. For instance if you dropped into
<code>eshell' or </code>ansi-term' and did `ls', you can move point to
any of the directory's contents, do M-RET (or Shift-Button2) and jump to
that file. And that's just one example. Note that this means that all
Hyperbole functionality is available in Org files as well. To me, except
for the Hyperbole outliner, that means complementary not conflicting.
It's Hyperbole <em>and</em> org-mode, not Hyperbole vs. org-mode.</p>
<p>Additionally, off the bat, I found it very well documented and for me
that's a proxy for the quality of a package. The maintainers are quite
responsive. There's plenty more functionality that I haven't uncovered
yet but due to the ease of installation and the quality of the
documentation, digging into it is actually fun.</p>
<pre><code> -- Aditya Siram </code></pre>
<hr />
<p>GNU Hyperbole is a game-changer for your mental model of information
management and personal productivity. Even if you don't use it you
should study one or two of the modules and compare them to how you solve
the same problem with your preferred tool of choice. It is subtle, and
subtle is one of the hardest and post powerful things to reside in your
mental landscape these days.</p>
<pre><code> -- Grant Rettke__
Org2Blog Maintainer</code></pre>
<hr />
<p>For me, Emacs isn't Emacs without Hyperbole. I have depended on
Hyperbole daily since 1992, when I first started using it to manage my
development environment. It didn't take long before I could summon
almost any information I needed directly from within my editing
environment with an implicit button. Since I almost never have to slow
down to look for things--one context-dependent button usually produces
exactly what I need --I am able to maintain focus on the task I am
working on and complete it more quickly. With its gestural interface,
seamless integration with other Emacs packages and incredibly useful set
of core features. I think that Hyperbole is one of the best designed and
most easily extensible software products I have ever come across. It is
certainly the one which has made the biggest improvement in my personal
productivity.</p>
<p>My Hyperbole button file is my start page in Emacs. It's a quickly
searchable index with links to countless resources. We also have a
library of implicit buttons that enable rapid navigation from references
in our code to our issue tracking system, so clicking a reference like
Client6502 opens the relevant conversation. Hyperbole provides a really
useful set of power tools. If Emacs is your preferred productivity
environment, it's definitely worth getting familiar with it.</p>
<pre><code> -- Chris Nuzum
Co-founder, Traction Softwarea, Inc.</code></pre>
<hr />
<p>I've found Hyperbole (in conjunction with XEmacs) to be very useful
for signal processing algorithm development.</p>
<p>For me, it has almost completely obsoleted the engineering notebook:
I keep a set of files with ideas, algorithms, and results, linked
together and to the implementation in C++ files. Using XEmacs' support
for embedding graphics, I've written a mode that accepts image tags
(formatted like HTML), and reads in GIF files to display plots. I have
another program that converts the file to HTML (not perfect, but
adequate), so I can put any aspect of development on our internal web
for others to see.</p>
<pre><code> -- Farzin Guilak
Protocol Systems, Inc., Engineer</code></pre>
<hr />
<p>I am blind and have been using Hyperbole since 1992. I used to use a
PC as a talking terminal attached to a UNIX system, but then I developed
Emacspeak which lets me use Emacs and Hyperbole from standard UNIX
workstations with an attached voice synthesizer.</p>
<p>My main uses are:</p>
<ol type="1">
<li><p>Global and implicit buttons for jumping to ftp sites.</p></li>
<li><p>The contact manager with Emacspeak support.</p></li>
<li><p>Explicit buttons as part of comments made about a structured
document. Each button jumps to the document section referred to by the
comment. This is very, very useful.</p></li>
<li><p>The Hyperbole Koutliner, which I find a very useful tool. I've
implemented Emacspeak extensions to support it.</p>
<pre><code> -- TV Raman
Google Inc.</code></pre></li>
</ol>
<hr />
<p>I've been a grateful Hyperbole user for a few years now. Hyperbole's
flexibility and ease of use is a marvel.</p>
<p>Mainly, I write easy little implicit button types (and corresponding
action types) to make my life easier. For example, I have an implicit
button type to bury certain buffers when I click at their bottoms, one
that recognizes a bug report record in various contexts and edits it,
one that links pieces of test output in a log file to the corresponding
test case source code (EXTREMELY helpful in interpreting test output),
others that support our homegrown test framework, one that handles tree
dired mode the way I'd like, one that completely handles wico menus
(I've also overloaded the wconfig actions triggered by diagonal mouse
drags with wicos actions), and a couple that support interaction with
BBDB.</p>
<p>Other than that, I keep a global button file with 30 or so explicit
buttons that do various little things, and I index saved mail messages
by putting explicit link-to-mail buttons in an outline file.</p>
<pre><code> -- Ken Olstad
Cheyenne Software, Inc.</code></pre>
<hr />
<p>In general, Hyperbole is an embeddable, highly extensible hypertext
tool. As such, I find it very useful. As it stands now, Hyperbole is
particularly helpful for organizing ill-structured or loosely coupled
information, in part because there are few tools geared for this
purpose. Hyperbole also possesses a lot of potential in supporting a
wider spectrum of structuredness, ranging from unstructured to highly
structured environments, as well as structural changes over time.</p>
<p>Major Uses:</p>
<ul>
<li><p>Menu interface to our own collaborative support environment
called CoReView: This interface brings together all top-level user
commands into a single partitioned screen, and allows the end user to
interact with the system using simple mouse-clicking instead of the
meta-x key.</p></li>
<li><p>Gateway to internet resources: this includes links to major
Internet archive sites of various types of information. Links are made
at both directory and file levels.</p></li>
<li><p>Alternative directory organizer: The hierarchical nature of the
Unix file system sometimes makes it difficult to find things quickly and
easily using directory navigational tools such as dired. Hyperbole
enables me to create various "profile" views of my directory tree, with
entries in these views referring to files anywhere in the
hierarchy.</p></li>
<li><p>Organizing and viewing online documentation: using Hyperbole
along with Hyper-man and Info makes it truly easy to look up online
documentation.</p></li>
<li><p>Other desktop organization tasks: including links to various mail
folders, saved newsgroup conversation threads, online note-taker,
emacs-command invocations, etc.</p>
<pre><code> -- Dadong Wan
University of Hawaii</code></pre></li>
</ul>
<hr />
<p>Hyperbole is the first hyper-link system I've run across that is
actually part of the environment I use regularly, namely Emacs. The
complete flexibility of the links is both impressive and expected -- the
idea of making the link itself programmable is clever, and given that
one assumes the full power of Emacs. Being able to send email with
buttons in it is a very powerful capability. Using ange-ftp mode, one
can make file references "across the world" as easily as normal file
references.</p>
<pre><code> -- Mark Eichin
Cygnus Support</code></pre>
<hr />
<p>I just wanted to say how much I enjoy using the Hyperbole Koutliner.
It is a great way to quickly construct very readable technical documents
that I can pass around to others. Thanks for the great work.</p>
<pre><code> -- Jeff Fried
Informix</code></pre>
<hr />
<p>The Hyperbole system provides a nice interface to exploring corners
of Unix that I didn't know existed before.</p>
<pre><code> -- Craig Smith </code></pre>
<h2 id="why-was-hyperbole-developed">Why was Hyperbole developed?</h2>
<p>Hyperbole was originally designed to aid in research aimed at
Personalized Information production/retrieval Environments (PIEs).
Hyperbole was a PIE Manager that provided services to PIE Tools.
PIEmail, a mail reader was the only PIE Tool developed as part of this
research but Hyperbole has greatly expanded since then and has long been
a production quality toolset.</p>
<p>An examination of many hypertext environments as background research
did not turn up any that seemed suitable for the research envisioned,
mainly due to the lack of rich, portable programmer and user
environments. We also tired of trying to manage our own distributed
information pools with standard UNIX tools. And so Hyperbole was
conceived and raved about until it got its name.</p>
<p>Since then Hyperbole has proved indispensable at improving
information access and organization in daily use over many years. Why
not start improving your information handling efficiency today?</p>
<p>-- The End --</p>