From 4ffeaa75301cdebfcd7daef0583b0bea9e7d052c Mon Sep 17 00:00:00 2001
From: bw
Date: Tue, 7 Jul 2026 18:21:59 -0400
Subject: [PATCH 1/3] hsys-youtube-end-format - Fix so at least plays from
start time
End time is no longer supported in URLs by YouTube.
---
ChangeLog | 4 ++++
hsys-youtube.el | 10 ++++++----
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7e6f1caf..e847f038 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2026-07-07 Bob Weiner
+* 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
diff --git a/hsys-youtube.el b/hsys-youtube.el
index 78562dad..e51a2720 100644
--- a/hsys-youtube.el
+++ b/hsys-youtube.el
@@ -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
;;
@@ -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
@@ -247,4 +250,3 @@ START-TIME-STRING format is invalid, return it unchanged."
(provide 'hsys-youtube)
;;; hsys-youtube.el ends here
-
From 38a64820315cd5ae6585b690a3506b4e1dfcac29 Mon Sep 17 00:00:00 2001
From: bw
Date: Tue, 7 Jul 2026 18:24:05 -0400
Subject: [PATCH 2/3] hui-mouse.el (hkey-alist) - Push missed change from prior
commit
---
hui-mouse.el | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/hui-mouse.el b/hui-mouse.el
index bc660072..5355a76d 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -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
;;
@@ -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)
@@ -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)
From 1a7611e6d818021ceaf6e92762eded955d91eb8d Mon Sep 17 00:00:00 2001
From: bw
Date: Tue, 7 Jul 2026 18:27:57 -0400
Subject: [PATCH 3/3] man/hyperbole.texi - Small doc updates
FAST-DEMO, README.md - Add video and article link to "HyWiki: Zero
Markup Hypertext".
---
FAST-DEMO | 64 ++++++++++++++++++++++++----------------------
README.md | 4 +++
README.md.html | 4 +++
README.toc.md | 4 +++
hproperty.el | 11 ++++----
man/hyperbole.texi | 33 ++++++++++++++----------
6 files changed, 70 insertions(+), 50 deletions(-)
diff --git a/FAST-DEMO b/FAST-DEMO
index 9faf25fc..8d469d00 100644
--- a/FAST-DEMO
+++ b/FAST-DEMO
@@ -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]> | |
- |-----------------------------------------------------+-----------------------------------------|
- | <[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]> | |
+ |-----------------------------------------------------+----------------------------------------|
+ | <[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
diff --git a/README.md b/README.md
index 9896a7f9..8176c3ba 100644
--- a/README.md
+++ b/README.md
@@ -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/)
@@ -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)
diff --git a/README.md.html b/README.md.html
index 3af2c6be..1f110cd2 100644
--- a/README.md.html
+++ b/README.md.html
@@ -62,6 +62,8 @@ Videos
Introduction
Top 10 ways
Hyperbole amps up Emacs
+HyWiki: Zero Markup
+Hypertext
Introduction to
Buttons
Linking
@@ -87,6 +89,8 @@ Articles
The
Emacs Hyperbole
+HyWiki:
+Zero Markup Hypertext
HyWiki: My
Favorite Part of Hyperbole
Edition 9.0.2pre
-Printed July 6, 2026.
+Printed July 7, 2026.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -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.
@@ -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}.
@@ -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
@@ -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
@@ -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;