Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
2026-02-19 Bob Weiner <rsw@gnu.org>

* hui.el (hui:link-possible-types): Fix to include link-to-wikiword only if
an existing referent is found.

* hibtypes.el (action): Fix to check for angle bracket delimiters.

* hywiki.el (hywiki-read-page-reference): Add and use in 'interactive' calls of
several functions.
(hywiki-word-is-p): Revert to using all 'string-match' calls
to prevent any regressions.
(hywiki-page-read): Add to read only existing HyWiki page names.
Not all existing WikiWords have page names, as there are other referent types.
(hywiki-consult-file-and-line): Rename to `hywiki-consult-page-and-line'.
(hywiki-page-exists-p): Add.
(hywiki-format-reference): Fix to accept only existing page references.
(hywiki-read-reference): Delete, use 'hywiki-word-read' instead.
(hywiki-add-page): Fix a number of issues where non-page WikiWords were
allowed.
(hywiki-page-read-new): Prevent selection of non-page HyWikiWords.

* hui.el (require 'hywiki):
(hui:link-possible-types): Add 'link-to-wikiword' clause.
* hbut.el (ibut:insert-text): Add 'actypes::link-to-wikiword' clause.
* man/hyperbole.texi (By Dragging): Add HyWikiWord Reference to referent
context table.

* hywiki.el (hywiki-consult-file-and-line): Add.
(hywiki-format-reference): Add and use with above function.
(hywiki-insert-reference): Add.
(hywiki-word-is-p): Use 'string-match-p' instead of 'string-match'.
(link-to-wikiword): Add this actype.
(hywiki-insert-link): Update to search for section links to insert
when 'consult' is available.
(require 'hui): Change to an 'eval-when-compile' so does not
trigger recursive requirements during normal loading.
hui-mini.el (hui:menu-hywiki): Unify with "hui-menu.el". Replace use of
'hywiki-add-path-link' with 'hywiki-insert-link'.

2026-02-17 Bob Weiner <rsw@gnu.org>

* hasht.el (hash-make): Fix to trigger an error if key is not given as a string.

2026-02-16 Bob Weiner <rsw@gnu.org>

* hibtypes.el (markdown-follow-inline-link-p): Fix to handle URL arguments sent
when point is on the link title and not an included URL (so check if on
a URL fails).

* README.md: Add Hyperbole Articles section.

2026-02-18 Mats Lidell <matsl@gnu.org>

* hsys-org.el: require 'find-func for find-library--from-load-history.
Expand Down
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,30 @@ otherwise, skip to the next section.

- [Linking personal info with implicit buttons](https://youtu.be/TQ_fG7b1iHI)

## Articles

- [HyWiki: My Favorite Part of Hyperbole](https://kirankp.com/blog/gnu-hyperbole/)

- [Hyperbole VisionQuest Part 1](https://github.com/termitereform/JunkPile/blob/master/HyperboleNotes.org)

- [Hyperbole VisionQuest Part 2](https://github.com/termitereform/JunkPile/blob/master/HyperboleNotes2.org)

- [A Taste of Hyperbole](https://www.reddit.com/r/emacs/comments/1kty4mb/a_taste_of_hyperbole_automatically_linking_to_org/)

- [My Understanding of GNU Hyperbole](https://www.reddit.com/r/emacs/comments/nirwpk/my_understanding_of_gnu_hyperbole/)

- [What does GNU Hyperbole do?](https://tilde.town/~ramin_hal9001/articles/intro-to-hyperbole.html)

- [John Wiegley - The Philosophy Behind Hyperbole](https://mail.gnu.org/archive/html/hyperbole-users/2019-01/msg00037.html)

- [Daily ways GNU Hyperbole helps me stay in flow and reduces cognitive load](https://www.reddit.com/r/emacs/comments/jk3cn0/daily_ways_gnu_hyperbole_helps_me_stay_in_flow/)

- [Doing a Research Project and using GNU Hyperbole's Integrated Features](https://www.reddit.com/r/emacs/comments/1g2184d/doing_a_research_project_and_using_gnu_hyperboles/)

- [AI-generated Hyperbole Architectural Documentation](https://deepwiki.com/rswgnu/hyperbole)

- [Hypermedia and Hyperbole](https://www.mgmarlow.com/words/2023-10-26-hyperbole/)

## Summary

`GNU Hyperbole` (pronounced Ga-new Hi-per-bo-lee), or just `Hyperbole`, is
Expand Down
31 changes: 27 additions & 4 deletions README.toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@
send us a thank you or a testimonial describing your usage if you like
Hyperbole to [rsw@gnu.org](mailto:rsw@gnu.org)].



- [GNU Hyperbole 9.0.2pre - The Everyday Hypertextual Information Manager](#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager)
- [Reference Manual](#reference-manual)
- [Videos](#videos)
- [Articles](#articles)
- [Summary](#summary)
- [Installation](#installation)
- [Invocation](#invocation)
Expand All @@ -26,8 +25,6 @@
- [User Quotes](#user-quotes)
- [Why was Hyperbole developed?](#why-was-hyperbole-developed)



![Hyperbole screenshot of the Koutliner, DEMO file and HyRolo](man/im/hyperbole-cv.png)

## Reference Manual
Expand Down Expand Up @@ -74,6 +71,30 @@ otherwise, skip to the next section.

- [Linking personal info with implicit buttons](https://youtu.be/TQ_fG7b1iHI)

## Articles

- [HyWiki: My Favorite Part of Hyperbole](https://kirankp.com/blog/gnu-hyperbole/)

- [Hyperbole VisionQuest Part 1](https://github.com/termitereform/JunkPile/blob/master/HyperboleNotes.org)

- [Hyperbole VisionQuest Part 2](https://github.com/termitereform/JunkPile/blob/master/HyperboleNotes2.org)

- [A Taste of Hyperbole](https://www.reddit.com/r/emacs/comments/1kty4mb/a_taste_of_hyperbole_automatically_linking_to_org/)

- [My Understanding of GNU Hyperbole](https://www.reddit.com/r/emacs/comments/nirwpk/my_understanding_of_gnu_hyperbole/)

- [What does GNU Hyperbole do?](https://tilde.town/~ramin_hal9001/articles/intro-to-hyperbole.html)

- [John Wiegley - The Philosophy Behind Hyperbole](https://mail.gnu.org/archive/html/hyperbole-users/2019-01/msg00037.html)

- [Daily ways GNU Hyperbole helps me stay in flow and reduces cognitive load](https://www.reddit.com/r/emacs/comments/jk3cn0/daily_ways_gnu_hyperbole_helps_me_stay_in_flow/)

- [Doing a Research Project and using GNU Hyperbole's Integrated Features](https://www.reddit.com/r/emacs/comments/1g2184d/doing_a_research_project_and_using_gnu_hyperboles/)

- [AI-generated Hyperbole Architectural Documentation](https://deepwiki.com/rswgnu/hyperbole)

- [Hypermedia and Hyperbole](https://www.mgmarlow.com/words/2023-10-26-hyperbole/)

## Summary

`GNU Hyperbole` (pronounced Ga-new Hi-per-bo-lee), or just `Hyperbole`, is
Expand Down Expand Up @@ -255,6 +276,8 @@ 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 https://youtu.be/M3-aMh1ccJk.

## Hyperbole Manual

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
Expand Down
22 changes: 13 additions & 9 deletions hasht.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 16-Mar-90 at 03:38:48
;; Last-Mod: 30-Dec-25 at 14:42:14 by Mats Lidell
;; Last-Mod: 17-Feb-26 at 22:42:00 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -159,16 +159,20 @@ merge all the values for a given <key> instead."
key value sym)
(if reverse
(mapc (lambda (cns)
(when (consp cns)
(setq key (car cns) value (cdr cns)))
(when (setq sym (intern key))
(puthash sym value hash-table)))
(if (consp cns)
(setq key (car cns) value (cdr cns))
(setq key nil value nil))
(if (and (stringp key) (setq sym (intern key)))
(puthash sym value hash-table)
(error "(hash-make): 'key' must be a string, not %S" key)))
initializer)
(mapc (lambda (cns)
(when (consp cns)
(setq key (cdr cns) value (car cns)))
(when (setq sym (intern key))
(puthash sym value hash-table)))
(if (consp cns)
(setq key (cdr cns) value (car cns))
(setq key nil value nil))
(if (and (stringp key) (setq sym (intern key)))
(puthash sym value hash-table)
(error "(hash-make): 'key' must be a string, not %S" key)))
initializer))
hash-table))))

Expand Down
7 changes: 6 additions & 1 deletion hbut.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 18-Sep-91 at 02:57:09
;; Last-Mod: 30-Dec-25 at 23:55:08 by Mats Lidell
;; Last-Mod: 18-Feb-26 at 23:49:33 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -2722,6 +2722,11 @@ Summary of operations based on inputs (name arg from \\='hbut:current attrs):
(insert "<" arg1 ">"))))
('actypes::link-to-org-id (insert (format "\"id:%s\"" arg1)))
('actypes::link-to-rfc (insert (format "rfc%d" arg1)))
('actypes::link-to-wikiword (insert (if (and (stringp arg1)
(string-match-p "\\s-" arg1))
;; Double-quote when has a space
(format "\"%s\"" arg1)
arg1)))
('man (insert arg1))
('actypes::man-show (insert arg1))
('actypes::link-to-file-line (insert (format "\"%s:%d\""
Expand Down
Loading