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
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
2026-07-07 Bob Weiner <rsw@gnu.org>

* hsys-youtube.el (hsys-youtube-end-format): YouTube no longer allows end times or the
embed protocol in video urls, so update this format to at least jump to the proper
start time. The end time is sent but ignored.

* hui-mouse.el (hkey-alist): Trigger 'hui-select-thing' or 'hui-select-mark-delimited-sexp'
if (point) >= any hbut end point, not just equal to it, as before. This was causing
a failure to trigger when a HyWikiWord came right before a closing double quote that
Expand Down
64 changes: 33 additions & 31 deletions FAST-DEMO
Original file line number Diff line number Diff line change
Expand Up @@ -57,37 +57,39 @@

** Hyperbole Videos

|-----------------------------------------------------+-----------------------------------------|
| GNU Hyperbole Videos | Web Links |
|-----------------------------------------------------+-----------------------------------------|
|-----------------------------------------------------+-----------------------------------------|
| <[Overview and Demo]> | https://youtu.be/WKwZHSbHmPg |
| Sections broken out in the prior table | |
|-----------------------------------------------------+-----------------------------------------|
| <[Unscripted Hyperbole Demo at EmacsATX]> | <yt-play "iuwn8GpRj7w" "0:48" "32:42"> |
|-----------------------------------------------------+-----------------------------------------|
| <[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 |
|-----------------------------------------------------+-----------------------------------------|
|-----------------------------------------------------+----------------------------------------|
| GNU Hyperbole Videos | Web Links |
|-----------------------------------------------------+----------------------------------------|
|-----------------------------------------------------+----------------------------------------|
| <[Overview and Demo]> | https://youtu.be/WKwZHSbHmPg |
| Sections broken out in the prior table | |
|-----------------------------------------------------+----------------------------------------|
| <[Unscripted Hyperbole Demo at EmacsATX]> | <yt-play "iuwn8GpRj7w" "0:48" "32:42"> |
|-----------------------------------------------------+----------------------------------------|
| <[Quick Introduction]> | https://youtu.be/K1MNUctggwI |
|-----------------------------------------------------+----------------------------------------|
| <[Top 10 ways Hyperbole amps up Emacs]> | https://youtu.be/BysjfL25Nlc |
|-----------------------------------------------------+----------------------------------------|
| <[HyWiki: Zero Markup Hypertext]> | https://youtu.be/3zG3lRmi3Zg |
|-----------------------------------------------------+----------------------------------------|
| <[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 |
|-----------------------------------------------------+----------------------------------------|


* Introduction
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ otherwise, skip to the next section.

- [Top 10 ways Hyperbole amps up Emacs](https://emacsconf.org/2023/talks/hyperamp/)

- [HyWiki: Zero Markup Hypertext](https://youtu.be/3zG3lRmi3Zg)

- [Introduction to Buttons](https://youtu.be/zoEht66N2PI)

- [Linking Personal Info with Implicit Buttons](https://emacsconf.org/2022/talks/buttons/)
Expand All @@ -63,6 +65,8 @@ otherwise, skip to the next section.

- [The Emacs Hyperbole](https://mike.hostetlerhome.com/emacs-hyperbole)

- [HyWiki: Zero Markup Hypertext](https://www.chiply.dev/post-hyperbole-hywiki)

- [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)
Expand Down
4 changes: 4 additions & 0 deletions README.md.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ <h2 id="videos">Videos</h2>
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/3zG3lRmi3Zg">HyWiki: Zero Markup
Hypertext</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
Expand All @@ -87,6 +89,8 @@ <h2 id="articles">Articles</h2>
<ul>
<li><p><a href="https://mike.hostetlerhome.com/emacs-hyperbole">The
Emacs Hyperbole</a></p></li>
<li><p><a href="https://www.chiply.dev/post-hyperbole-hywiki">HyWiki:
Zero Markup Hypertext</a></p></li>
<li><p><a href="https://kirankp.com/blog/gnu-hyperbole/">HyWiki: My
Favorite Part of Hyperbole</a></p></li>
<li><p><a
Expand Down
4 changes: 4 additions & 0 deletions README.toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ otherwise, skip to the next section.

- [Top 10 ways Hyperbole amps up Emacs](https://emacsconf.org/2023/talks/hyperamp/)

- [HyWiki: Zero Markup Hypertext](https://youtu.be/3zG3lRmi3Zg)

- [Introduction to Buttons](https://youtu.be/zoEht66N2PI)

- [Linking Personal Info with Implicit Buttons](https://emacsconf.org/2022/talks/buttons/)
Expand All @@ -84,6 +86,8 @@ otherwise, skip to the next section.

- [The Emacs Hyperbole](https://mike.hostetlerhome.com/emacs-hyperbole)

- [HyWiki: Zero Markup Hypertext](https://www.chiply.dev/post-hyperbole-hywiki)

- [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)
Expand Down
11 changes: 6 additions & 5 deletions hproperty.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 21-Aug-92
;; Last-Mod: 3-Apr-26 at 19:36:41 by Bob Weiner
;; Last-Mod: 4-Jul-26 at 17:52:30 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -176,7 +176,7 @@ the PROPERTY at the position matches VALUE."
(delete-overlay but))))

(defun hproperty:but-clear-all (&optional regexp-match)
"Remove highlighting from all named Hyperbole buttons in the current buffer.
"Remove highlighting from all current buffer delimited Hyperbole buttons.
If REGEXP-MATCH is non-nil, only buttons matching this argument are
de-highlighted."
(if regexp-match
Expand All @@ -195,8 +195,9 @@ de-highlighted."
(mapc #'delete-overlay hbut-list))

(defun hproperty:but-create (&optional regexp-match)
"Highlight all named Hyperbole buttons in buffer.
De-highlight buttons unless `hproperty:but-highlight-flag' is set.
"Highlight all named, delimited Hyperbole buttons in buffer.
Prior to highlighting, de-highlight buttons unless
`hproperty:but-highlight-flag' is set.

If REGEXP-MATCH is non-nil, only buttons matching this argument are
highlighted (all others are unhighlighted).
Expand Down Expand Up @@ -286,7 +287,7 @@ with that PROPERTY and VALUE."
"Return a list of all buttons in the current buffer between START and END.
If optional PROPERTY and non-nil VALUE are given, return only matching
buttons. No ordering is specified; the caller must sort the buttons
if an order is needed.
if an order is needed. (By default, excludes HyWikiWord buttons).

Use `hproperty:but-get-first-in-region' instead if you want only the first
matching button."
Expand Down
10 changes: 6 additions & 4 deletions hsys-youtube.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 10-Jul-22 at 18:10:56
;; Last-Mod: 19-Jan-24 at 12:11:07 by Mats Lidell
;; Last-Mod: 7-Jul-26 at 18:03:16 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -59,9 +59,12 @@ where the time string is inserted. The time string must be a
colon-separated hours:minutes:seconds string, e.g. 1:2:44 (1 hour, two
minutes, 45 seconds), where the hours and minutes are optional.")

(defvar hsys-youtube-end-format "https://www.youtube.com/embed/%s?autoplay=1&start=%s&end=%s"
;; Old format that used to work:
;; "https://www.youtube.com/embed/%s?autoplay=1&start=%s&end=%s"
(defvar hsys-youtube-end-format "https://www.youtube.com/watch?v=%s&t=%s&end=%s"
"Format string used to play a section of a Youtube video.
This requires use of the `embed' api.
This requires use of the `embed' api (but YouTube has since disallowed
this in urls, so stop end times no longer work).

The first %s is where the video id string is inserted; the second %s is
where the start time string in seconds is inserted; the third %s is
Expand Down Expand Up @@ -247,4 +250,3 @@ START-TIME-STRING format is invalid, return it unchanged."

(provide 'hsys-youtube)
;;; hsys-youtube.el ends here

10 changes: 5 additions & 5 deletions hui-mouse.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 04-Feb-89
;; Last-Mod: 4-Apr-26 at 23:19:29 by Bob Weiner
;; Last-Mod: 7-Jul-26 at 01:04:32 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -352,8 +352,8 @@ The button's attributes are stored in the symbol, `hbut:current'.")
;; character of the opening or closing tag. Ignore delimiters in
;; the middle of a Hyperbole button.
((and (if (setq hkey-at-hbut (hbut:at-p))
(or (eq (point) (hattr:get 'hbut:current 'lbl-end))
(eq (point) (hattr:get 'hbut:current 'name-end)))
(or (>= (point) (or (hattr:get 'hbut:current 'lbl-end) (1+ (point))))
(>= (point) (or (hattr:get 'hbut:current 'name-end) (1+ (point)))))
t)
(hui-select-at-delimited-thing-p))
. ((hui-select-thing) . (progn (hui-select-thing)
Expand All @@ -366,8 +366,8 @@ The button's attributes are stored in the symbol, `hbut:current'.")
;; removed someday. Ignore delimiters in the middle of a
;; Hyperbole button.
((and (if hkey-at-hbut
(or (eq (point) (hattr:get 'hbut:current 'lbl-end))
(eq (point) (hattr:get 'hbut:current 'name-end)))
(or (>= (point) (or (hattr:get 'hbut:current 'lbl-end) (1+ (point))))
(>= (point) (or (hattr:get 'hbut:current 'name-end) (1+ (point)))))
t)
(hui-select-at-delimited-sexp-p))
. ((hui-select-mark-delimited-sexp)
Expand Down
33 changes: 19 additions & 14 deletions man/hyperbole.texi
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
@c Author: Bob Weiner
@c
@c Orig-Date: 6-Nov-91 at 11:18:03
@c Last-Mod: 6-Jul-26 at 22:32:48 by Bob Weiner
@c Last-Mod: 7-Jul-26 at 18:05:08 by Bob Weiner

@c %**start of header (This is for running Texinfo on a region.)
@setfilename hyperbole.info
Expand All @@ -30,7 +30,7 @@
@set txicodequoteundirected
@set txicodequotebacktick

@set UPDATED July 6, 2026
@set UPDATED July 7, 2026
@set UPDATED-MONTH July 2026
@set EDITION 9.0.2pre
@set VERSION 9.0.2pre
Expand Down Expand Up @@ -171,7 +171,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>

<PRE>
Edition 9.0.2pre
Printed July 6, 2026.
Printed July 7, 2026.

Published by the Free Software Foundation, Inc.
Author: Bob Weiner
Expand Down Expand Up @@ -213,7 +213,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@example
Edition 9.0.2pre
July 6, 2026 @c AUTO-REPLACE-ON-SAVE
July 7, 2026 @c AUTO-REPLACE-ON-SAVE


Published by the Free Software Foundation, Inc.
Expand Down Expand Up @@ -623,12 +623,15 @@ archives, the World-Wide Web and much more.
@cindex Hyperbole demo
@cindex demo file
@cindex tutorial
@cindex videos
@cindex articles
This is a reference manual with extensive details about Hyperbole use.
If you prefer a simpler, more interactive introduction to Hyperbole,
the @file{../FAST-DEMO} file included in the Hyperbole distribution
demonstrates many of Hyperbole's standard facilities without the need
to read through this reference manual. The @file{../FAST-DEMO} is a good
way to rapidly understand some of what Hyperbole can do for you. Once
to read through this reference manual. The @file{../FAST-DEMO} is a
good way to rapidly understand some of what Hyperbole can do for you.
It includes many links to videos and articles about Hyperbole. Once
Hyperbole is installed, (@pxref{Setup}), you can access the
@file{../FAST-DEMO} with the key sequence @bkbd{C-h h d d}.

Expand Down Expand Up @@ -4749,12 +4752,9 @@ minor mode, @code{hywiki-mode}, is enabled. The @code{hywiki-mode}
variable is always in one of three states:

@enumerate
@item @samp{:pages}
HyWikiWords are active only with pages within @code{hywiki-directory}.
@item @samp{:all}
HyWikiWords are active within all text and programming buffers
@item @samp{nil}
the mode is disabled, HyWikiWords are disabled.
@item @samp{:pages} - HyWikiWords are active only with pages within @code{hywiki-directory}.
@item @samp{:all} - HyWikiWords are active within all text and programming buffers
@item @samp{nil} - the mode is disabled, HyWikiWords are disabled.
@end enumerate

@kindex C-h h h m
Expand All @@ -4777,7 +4777,7 @@ In summary, to enable @code{hywiki-mode} globally for the current
Emacs session, interactively use @bkbd{C-h h h m a}; programmatically,
use @code{(hywiki-mode :all)}. To enable it globally for all future
Emacs sessions, add this line to your Emacs initialization file:
@code{(setq hywiki-default-mode :all)}.
@code{(customize-save-variable 'hywiki-default-mode :all)}.

@cindex HyWiki programming modes
@vindex hywiki-highlight-all-in-prog-modes
Expand Down Expand Up @@ -8054,7 +8054,12 @@ optional DOC string.

When the Action Key is pressed in a buffer between the start and end
delimiters and the text in-between matches to TEXT-REGEXP, then the
button is activated and does one of four things with LINK-EXPR:
button is activated. To ensure TEXT-REGEXP matches to the full text
and not just a part, start the REGEXP with "\\`" and end it with
"\\'", to match to the start and end of string.

@noindent
When activated, the button does one of four things with LINK-EXPR:

@enumerate
@item executes it as a brace-delimited key series;
Expand Down