Skip to content

Explicit Buttons

Hyperbole creates and manages explicit buttons which perform specific actions when activated (typically through a button press). They look like this ‘<(fake button)>’. They are quickly recognizable, yet relatively non-distracting as you scan the text in which they are embedded. The text between the ‘<(’ and ‘)>’ delimiters is called the button label or button name. Spacing between words within a button label is irrelevant to Hyperbole. Button labels may wrap across several lines without causing a problem; just be sure to select the first line of the button to activate it.

Explicit buttons may be added to any editable buffer including temporary buffers without any attached files (such buttons will last only the length of a single Emacs session). For source code files, simply place Hyperbole explicit buttons within comments. Buttons that you use for quick navigation to websites or other things you do often should be added to your personal button file. See Button Files.

Explicit buttons may be freely moved about within the buffer in which they are created. (No present support exists for moving buttons between buffers). A single button may also appear multiple times within the same buffer; simply copy the button label with its delimiters to a new location if you need another copy of it.

For details on how to create, activate, delete or edit explicit buttons, see Utilizing Explicit Buttons.

Each explicit button is assigned an action type that determines the actions it performs. Hyperbole includes its own set of useful action types but any named, interactive Emacs Lisp command may be used. For example, Link action types connect buttons to particular types of referents, the targets of their links. Link action type names all begin with link-. Link action button referents are displayed when such buttons are activated with a press or a click. See Action Types, for a list of Hyperbole action types, including link types.

Hyperbole does not manage referent data; this is left to the applications that generate the data. This means that Hyperbole provides in-place linking and does not require reformatting data to integrate it with Hyperbole.

Hyperbole stores the button data that gives an explicit button its behavior, separately from the button label, in a file named .hypb (_hypb under MS Windows) within the same directory as the file in which the button is created. Thus, all files in the same directory share a common button data file. Button data is comprised of individual button attribute values. A user never sees this data in its raw form but may see a formatted version by asking for help on a button.