branch: externals/hyperbole
commit 81a0619202fa48f88aa471b897965d69362114ef
Author: bw <[email protected]>
Commit: bw <[email protected]>
Add TagFind to HyWiki and HyRolo menus and more updates
Support "file.info#ref" pathnames for Info references/links.
Make "hyperbole.html#Smart Keys" display local Hyperbole manual html
section in a web browser.
hsys-org.el (hsys-org-enable-smart-keys): Change 'buttons option to :buttons
so don't have to quote and works in assq/rassq lookups.
hui-mini.el (hui:menus): In HyWiki> menu, change Toggle to ModeToggle so
can add TagFind item.
hyperbole.el: Require Emacs 27.2 minimum.
---
ChangeLog | 38 ++++++++++
HY-ABOUT | 2 +-
HY-TALK/HYPERORG.org | 4 +-
Makefile | 2 +-
README.md | 114 +++++++++++++++---------------
README.md.html | 125 ++++++++++++++++-----------------
README.toc.md | 134 ++++++++++++++++--------------------
hactypes.el | 16 +++--
hbut.el | 11 +--
hibtypes.el | 179 ++++++++++++++++++++++++++++--------------------
hpath.el | 15 +++-
hui-menu.el | 33 ++++-----
hui-mini.el | 44 +++++++++---
hui-mouse.el | 6 +-
hyperbole.el | 8 +--
hyrolo-menu.el | 5 +-
man/hyperbole.html | 68 +++++++++++++-----
man/hyperbole.info | Bin 652687 -> 653988 bytes
man/hyperbole.texi | 47 +++++++++----
test/demo-tests.el | 2 +-
test/kcell-tests.el | 4 +-
test/smart-org-tests.el | 8 +--
22 files changed, 508 insertions(+), 357 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8c5a236c28..e8572ff1d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+2024-08-24 Bob Weiner <[email protected]>
+
+* hpath.el (hpath:to-Info-ref): Add.
+ (hpath:is-p, hpath:at-p):
+ hactypes.el (link-to-Info-node):
+ hibtypes.el (Info-node): Add support for Info refs in a regular
+ pathname format, e.g. "hyperbole.info#Smart Keys".
+ hibtypes.el (pathname): Exclude Info paths without parens handled
+ by Info-node, e.g. "emacs.info#Windows".
+
+2024-08-23 Bob Weiner <[email protected]>
+
+* hibtypes.el (hyp-html-manual): Add new ibtype to display Hyperbole HTML
+ manual sections using syntax: "hyperbole.html#section".
+
+* hbut.el (ibut:label-p): Handle when lbl is nil.
+
+* hyperbole.el: Require Emacs 27.2 minimum.
+
+2024-08-19 Bob Weiner <[email protected]>
+
+* README.md: Add HyWiki description.
+
+* man/hyperbole.texi (HyRolo Searching, HyRolo Menu): Add TagFind menu item.
+
+* hyrolo-menu.el: Add "Tag-Find".
+ hui-menu.el (infodock-hyperbole-menu):
+ hui-mini.el (hui:menus): In HyWiki> menu, change Toggle to ModeToggle so
+ can add TagFind item.
+ (hui:menu-read-from-minibuffer): Add to allow customization
+ of minibuffer read arguments such as 'initial-content' that minibuffer
+ menus generate.
+ (hui:menu-rolo): Add TagFind.
+ man/hyperbole.texi (HyWiki Menu): Add TagFind menu item doc.
+
+* hsys-org.el (hsys-org-enable-smart-keys): Change 'buttons option to :buttons
+ so don't have to quote and works in assq/rassq lookups.
+
2024-08-18 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-at-wikiword-beginning): Fix to handle word
diff --git a/HY-ABOUT b/HY-ABOUT
index 4e6d130421..da0954216c 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -11,7 +11,7 @@
GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
an efficient and programmable hypertextual information management
system implemented as a GNU Emacs package. It works well on GNU Emacs
-27.1 or above. (See also: "HY-WHY.kotl" for Hyperbole uses).
+27.2 or above. (See also: "HY-WHY.kotl" for Hyperbole uses).
Hyperbole includes easy-to-use, powerful hypertextual buttons without
the need to learn a markup language; a hierarchical, record-based
diff --git a/HY-TALK/HYPERORG.org b/HY-TALK/HYPERORG.org
index 592133ea1e..a49f594928 100644
--- a/HY-TALK/HYPERORG.org
+++ b/HY-TALK/HYPERORG.org
@@ -283,11 +283,11 @@ Variable name values can also be displayed.
This <<variable>> sets the Org mode contexts where Hyperbole's
Action/Assist keys are active. By default, these 'Smart Keys'
work only on hyperbuttons (Hyperbole's and Org's) when the variable
-is set to 'buttons.
+is set to :buttons.
<hsys-org-enable-smart-keys>
- <setq hsys-org-enable-smart-keys 'buttons>
+ <setq hsys-org-enable-smart-keys :buttons>
Set this to 't to enable the Smart Keys in all Org contexts
(nil to disable):
diff --git a/Makefile b/Makefile
index e05f7cf8ee..1246a05bb6 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,7 @@
#
# To interactively run a docker version of Emacs with Hyperbole:
# make docker-run - default to running master
-# make docker-run version=27.1 - run Emacs V27.1
+# make docker-run version=27.2 - run Emacs V27.2
#
# To build and test a dockerized version of Emacs with Hyperbole:
# make docker - defaults: version=master
targets='clean bin test'
diff --git a/README.md b/README.md
index f7358550b6..9fb84e7230 100644
--- a/README.md
+++ b/README.md
@@ -135,7 +135,7 @@ 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.
-Hyperbole works well on GNU Emacs 27.1 or above. It is designed and written
+Hyperbole works well on GNU Emacs 27.2 or above. It is designed and written
by Bob Weiner. It is maintained by him and Mats Lidell. Its main
distribution site is: <https://www.gnu.org/software/hyperbole/>. If any
term in here is new or unfamiliar to you, you can look it up in the
@@ -148,38 +148,6 @@ 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.
-## Mailing Lists
-
- - **[email protected]** - User list for GNU Hyperbole
-
- [info and
subscription](http://lists.gnu.org/mailman/listinfo/hyperbole-users)
- [web archive](http://lists.gnu.org/pipermail/hyperbole-users/)
-
- - **[email protected]** - List for bug reporting
-
- [info and
subscription](http://lists.gnu.org/mailman/listinfo/bug-hyperbole)
- [web archive](http://lists.gnu.org/archive/html/bug-hyperbole/)
-
-## Ftp and Git Repository Downloads
-
-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:
-
- - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
-
-Alternatively, you may download a tar.gz source archive from either:
-
- - ftp://ftp.gnu.org/gnu/hyperbole/
-
- - http://ftpmirror.gnu.org/hyperbole/
-
-which will find the closest mirror of the GNU ftp site and show it to you.
-
-If you want to follow along with Hyperbole development and maintain a
-copy/clone of the current version-controlled git tree, use a
-[command listed here](https://savannah.gnu.org/git/?group=hyperbole)
-to clone the Hyperbole project tree.
-
## Installation
Once you have Emacs set up at your site, GNU Hyperbole may be
@@ -272,9 +240,41 @@ wherever the Hyperbole package directory is on your
system; often this is:
"~/.emacs.d/elpa/hyperbole-${hyperb:version}/".
+## Mailing Lists
+
+ - **[email protected]** - User list for GNU Hyperbole
+
+ [info and
subscription](http://lists.gnu.org/mailman/listinfo/hyperbole-users)
+ [web archive](http://lists.gnu.org/pipermail/hyperbole-users/)
+
+ - **[email protected]** - List for bug reporting
+
+ [info and
subscription](http://lists.gnu.org/mailman/listinfo/bug-hyperbole)
+ [web archive](http://lists.gnu.org/archive/html/bug-hyperbole/)
+
+## Ftp and Git Repository Downloads
+
+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:
+
+ - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
+
+Alternatively, you may download a tar.gz source archive from either:
+
+ - ftp://ftp.gnu.org/gnu/hyperbole/
+
+ - http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+If you want to follow along with Hyperbole development and maintain a
+copy/clone of the current version-controlled git tree, use a
+[command listed here](https://savannah.gnu.org/git/?group=hyperbole)
+to clone the Hyperbole project tree.
+
## Hyperbole Components
-Hyperbole consists of five parts:
+Hyperbole consists of six parts:
1. **Buttons and Smart Keys**: A set of hyperbutton types which supply
core hypertext and other behaviors. Buttons may be added to
@@ -306,23 +306,33 @@ Hyperbole consists of five parts:
complex operations without having to use a different key for each
operation. Just press a Smart Key and the right thing happens;
- 2. **Contact and Text Finder**: an interactive textual information
- management interface, including fast, flexible file and text
- finding commands. A powerful, hierarchical contact manager,
- HyRolo, which anyone can use is also included. It 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.
+ 2. **Auto-Wiki Note Taker**: 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.
+
+ 3. **Autonumbered Legal Outliner**: 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;
+
+ 4. **Contact and Text Finder**: 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.

- 3. **Screen Control**: Hyperbole includes HyControl, 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;
+ 5. **Screen Control**: 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;
The broader vision for HyControl is to support persistent
window and frame configurations as link targets. Then a user
@@ -331,13 +341,7 @@ Hyperbole consists of five parts:
implement this feature but it helps explain the connection of
HyControl to the rest of Hyperbole;
- 4. **The Koutliner**: 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;
-
- 5. **Programming Library**: a set of programming library classes for
+ 6. **Programming Library**: 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.
diff --git a/README.md.html b/README.md.html
index 822381a10e..09c86cc806 100644
--- a/README.md.html
+++ b/README.md.html
@@ -12,11 +12,11 @@ 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="#installation">Installation</a></li>
-<li><a href="#invocation">Invocation</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>
@@ -158,46 +158,6 @@ 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="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="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
@@ -276,8 +236,48 @@ 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 five parts:</p>
+<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
@@ -303,30 +303,33 @@ 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>Contact and Text Finder</strong>: an interactive textual
-information management interface, including fast, flexible file and text
-finding commands. A powerful, hierarchical contact manager, HyRolo,
-which anyone can use is also included. It 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>
+<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>: Hyperbole includes HyControl,
-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>
+<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>The Koutliner</strong>: 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>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
diff --git a/README.toc.md b/README.toc.md
index 2cd5312122..9fb84e7230 100644
--- a/README.toc.md
+++ b/README.toc.md
@@ -4,25 +4,7 @@
send us a thank you or a testimonial describing your usage if you like
Hyperbole (mailto:[email protected])].
-
-
-- [GNU Hyperbole 9.0.2pre - The Everyday Hypertextual Information
Manager](#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager)
- - [Videos](#videos)
- - [Summary](#summary)
- - [Mailing Lists](#mailing-lists)
- - [Ftp and Git Repository Downloads](#ftp-and-git-repository-downloads)
- - [Installation](#installation)
- - [Invocation](#invocation)
- - [Hyperbole Components](#hyperbole-components)
- - [Hyperbole Buttons](#hyperbole-buttons)
- - [Important Features](#important-features)
- - [Hyperbole Uses](#hyperbole-uses)
- - [Files](#files)
- - [Programmer Quick Reference](#programmer-quick-reference)
- - [User Quotes](#user-quotes)
- - [Why was Hyperbole developed?](#why-was-hyperbole-developed)
-
-
+[TOC]

@@ -153,7 +135,7 @@ 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.
-Hyperbole works well on GNU Emacs 27.1 or above. It is designed and written
+Hyperbole works well on GNU Emacs 27.2 or above. It is designed and written
by Bob Weiner. It is maintained by him and Mats Lidell. Its main
distribution site is: <https://www.gnu.org/software/hyperbole/>. If any
term in here is new or unfamiliar to you, you can look it up in the
@@ -166,38 +148,6 @@ 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.
-## Mailing Lists
-
- - **[email protected]** - User list for GNU Hyperbole
-
- [info and
subscription](http://lists.gnu.org/mailman/listinfo/hyperbole-users)
- [web archive](http://lists.gnu.org/pipermail/hyperbole-users/)
-
- - **[email protected]** - List for bug reporting
-
- [info and
subscription](http://lists.gnu.org/mailman/listinfo/bug-hyperbole)
- [web archive](http://lists.gnu.org/archive/html/bug-hyperbole/)
-
-## Ftp and Git Repository Downloads
-
-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:
-
- - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
-
-Alternatively, you may download a tar.gz source archive from either:
-
- - ftp://ftp.gnu.org/gnu/hyperbole/
-
- - http://ftpmirror.gnu.org/hyperbole/
-
-which will find the closest mirror of the GNU ftp site and show it to you.
-
-If you want to follow along with Hyperbole development and maintain a
-copy/clone of the current version-controlled git tree, use a
-[command listed here](https://savannah.gnu.org/git/?group=hyperbole)
-to clone the Hyperbole project tree.
-
## Installation
Once you have Emacs set up at your site, GNU Hyperbole may be
@@ -290,9 +240,41 @@ wherever the Hyperbole package directory is on your
system; often this is:
"~/.emacs.d/elpa/hyperbole-${hyperb:version}/".
+## Mailing Lists
+
+ - **[email protected]** - User list for GNU Hyperbole
+
+ [info and
subscription](http://lists.gnu.org/mailman/listinfo/hyperbole-users)
+ [web archive](http://lists.gnu.org/pipermail/hyperbole-users/)
+
+ - **[email protected]** - List for bug reporting
+
+ [info and
subscription](http://lists.gnu.org/mailman/listinfo/bug-hyperbole)
+ [web archive](http://lists.gnu.org/archive/html/bug-hyperbole/)
+
+## Ftp and Git Repository Downloads
+
+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:
+
+ - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
+
+Alternatively, you may download a tar.gz source archive from either:
+
+ - ftp://ftp.gnu.org/gnu/hyperbole/
+
+ - http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+If you want to follow along with Hyperbole development and maintain a
+copy/clone of the current version-controlled git tree, use a
+[command listed here](https://savannah.gnu.org/git/?group=hyperbole)
+to clone the Hyperbole project tree.
+
## Hyperbole Components
-Hyperbole consists of five parts:
+Hyperbole consists of six parts:
1. **Buttons and Smart Keys**: A set of hyperbutton types which supply
core hypertext and other behaviors. Buttons may be added to
@@ -324,23 +306,33 @@ Hyperbole consists of five parts:
complex operations without having to use a different key for each
operation. Just press a Smart Key and the right thing happens;
- 2. **Contact and Text Finder**: an interactive textual information
- management interface, including fast, flexible file and text
- finding commands. A powerful, hierarchical contact manager,
- HyRolo, which anyone can use is also included. It 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.
+ 2. **Auto-Wiki Note Taker**: 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.
+
+ 3. **Autonumbered Legal Outliner**: 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;
+
+ 4. **Contact and Text Finder**: 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.

- 3. **Screen Control**: Hyperbole includes HyControl, 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;
+ 5. **Screen Control**: 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;
The broader vision for HyControl is to support persistent
window and frame configurations as link targets. Then a user
@@ -349,13 +341,7 @@ Hyperbole consists of five parts:
implement this feature but it helps explain the connection of
HyControl to the rest of Hyperbole;
- 4. **The Koutliner**: 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;
-
- 5. **Programming Library**: a set of programming library classes for
+ 6. **Programming Library**: 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.
diff --git a/hactypes.el b/hactypes.el
index 6627f7b4ec..8f1fc614ae 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -499,15 +499,17 @@ suffix."
(defact link-to-Info-node (string)
"Display an Info node given by STRING.
If not found, try to display it as an Info index item.
-STRING must be a string of the form \"(filename)name\". During
-button creation, completion for both filename and node names is
-available. Filename may be given without the .info suffix."
+STRING must be a string of the form \"(filename)name\" or
+\"filename.info#name\". During button creation, completion for both
+filename and node names is available. Filename may be given without
+the .info suffix in the format with parentheses."
(interactive "+IInfo (file)nodename to link to: ")
(require 'info)
- (when (stringp string)
- ;; Remove any tabs or newlines that might be in string.
- (setq string (replace-regexp-in-string "[ \t\n\r\f]+" " " string t t)))
- (if (and (stringp string) (string-match "^(\\([^\)]+\\))\\(.*\\)" string))
+ (if (and (stringp string)
+ ;; Remove any tabs or newlines that might be in string.
+ (setq string (replace-regexp-in-string "[ \t\n\r\f]+" " " string t t)
+ string (hpath:to-Info-ref string))
+ (string-match "\\`(\\([^\)]+\\))\\(.*\\)" string))
(id-info string)
(hypb:error "(link-to-Info-node): Invalid Info node: `%s'" string)))
diff --git a/hbut.el b/hbut.el
index e55d4ab742..7f342f87ff 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 18-Sep-91 at 02:57:09
-;; Last-Mod: 16-Aug-24 at 00:56:16 by Bob Weiner
+;; Last-Mod: 23-Aug-24 at 21:38:08 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -2324,10 +2324,11 @@ lines."
(setq lbl (if (listp result) (car result) result))
;; Ensure match does not contain delimiters, as it may have run
;; past the beginning of another button.
- (unless (string-match (concat (regexp-quote start-delim) "\\|"
- (regexp-quote end-delim))
- lbl)
- result))))
+ (when lbl
+ (unless (string-match (concat (regexp-quote start-delim) "\\|"
+ (regexp-quote end-delim))
+ lbl)
+ result)))))
(defun ibut:label-set (label &optional start end)
"Set current implicit button label attributes.
diff --git a/hibtypes.el b/hibtypes.el
index faeaac5ea9..150c6532d7 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -76,6 +76,8 @@
(declare-function htype:def-symbol "hact")
(declare-function hui:help-ebut-highlight "hui")
(declare-function hyperb:stack-frame "hversion")
+(declare-function hywiki-page-exists-p "hywiki")
+
(declare-function set:member "set")
(declare-function symset:add "hact")
(declare-function symtable:add "hact")
@@ -282,78 +284,80 @@ display options."
(path (hpath:at-p))
elisp-suffix
full-path)
- (if path
- (cond ((and (not (string-empty-p path))
- (= (aref path 0) ?-)
- (or (setq elisp-suffix (string-match
"\\`[^\\\\/~]+\\.el[cn]?\\(\\.gz\\)?\\'" path))
- (string-match "\\`[^.\\/\t\n\r\f]+\\'" path))
- (string-match hpath:prefix-regexp path))
- (setq path (substring path (match-end 0))
- full-path (locate-library path elisp-suffix))
- (cond (full-path
- (setq path (concat "-" path))
- (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
- (hact 'hpath:find path))
- (elisp-suffix
- (hact 'error "(pathname): \"%s\" not found in
`load-path'" path))
- ;; Don't match as a pathname ibut; could be a Lisp
- ;; symbol or something else starting with a '-'.
- (t nil)))
- (t (when (string-match "\\`file://" path)
- (setq path (substring path (match-end 0))))
- (if (or (> (cl-count ?: orig-path) 2)
- (> (cl-count ?\; orig-path) 2))
- ;; PATH-like set of values; select just the one point is
on
- (apply #'ibut:label-set path (hpath:start-end path))
- ;; Otherwise, use the unchanged orig-path
- (apply #'ibut:label-set orig-path (hpath:start-end
orig-path)))
- (hact 'link-to-file path)))
- ;;
- ;; Match PATH-related Environment and Lisp variable names and
- ;; Emacs Lisp and Info files without any directory component.
- (when (setq path orig-path)
- (cond ((and (string-match hpath:path-variable-regexp path)
- (setq path (match-string-no-properties 1 path))
- (hpath:is-path-variable-p path))
- (setq path (if (or assist-flag (hyperb:stack-frame
'(hkey-help)))
- path
- (hpath:choose-from-path-variable path "Display")))
- (unless (or (null path) (string-blank-p path)
- ;; Could be a shell command from a semicolon
- ;; separated list; ignore if so.
- (and (string-match "\\`\\s-*\\([^; ]+\\)"
path)
- (executable-find (match-string-no-properties
1 path))))
- (apply #'ibut:label-set path (hpath:start-end path))
- (hact 'link-to-file path)))
- ((setq elisp-suffix (string-match
"\\`[^\\\\/~]+\\.el[cn]?\\(\\.gz\\)?\\'" path))
- (cond ((string-match hpath:prefix-regexp path)
- (apply #'ibut:label-set path (hpath:start-end path))
- (hact 'hpath:find path))
- ((setq full-path
- (let ((load-suffixes '(".el")))
- (locate-library path elisp-suffix)))
- (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
- (hact 'link-to-file full-path))
- (elisp-suffix
- (hact 'error "(pathname): \"%s\" not found in
`load-path'" path))
- ;; Don't match as a pathname ibut; could be a Lisp
- ;; symbol or something else starting with a '-'.
- (t nil)))
- ;; Match only if "(filename)" references a valid Info file
- ;; and point is within the filename, not on any delimiters
- ;; so that delimited thing matches trigger later.
- ((and (not (looking-at "[\"()]"))
- (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" path)
- (save-match-data (require 'info))
- (Info-find-file (match-string-no-properties 1 path) t))
- (apply #'ibut:label-set orig-path (hpath:start-end orig-path))
- (hact 'link-to-Info-node (format "%sTop" path)))
- ((string-match hpath:info-suffix path)
- (apply #'ibut:label-set orig-path (hpath:start-end orig-path))
- (hact 'link-to-Info-node (format "(%s)Top" path)))
- ;; Otherwise, fall through and allow other implicit
- ;; button types to handle this context.
- ))))))
+ ;; If an Info path without parens, don't handle it here, use the
`Info-node' ibtype
+ (unless (and path (string-match-p ".+\\.info\\([.#]\\|\\'\\)" path))
+ (if path
+ (cond ((and (not (string-empty-p path))
+ (= (aref path 0) ?-)
+ (or (setq elisp-suffix (string-match
"\\`[^\\\\/~]+\\.el[cn]?\\(\\.gz\\)?\\'" path))
+ (string-match "\\`[^.\\/\t\n\r\f]+\\'" path))
+ (string-match hpath:prefix-regexp path))
+ (setq path (substring path (match-end 0))
+ full-path (locate-library path elisp-suffix))
+ (cond (full-path
+ (setq path (concat "-" path))
+ (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
+ (hact 'hpath:find path))
+ (elisp-suffix
+ (hact 'error "(pathname): \"%s\" not found in
`load-path'" path))
+ ;; Don't match as a pathname ibut; could be a Lisp
+ ;; symbol or something else starting with a '-'.
+ (t nil)))
+ (t (when (string-match "\\`file://" path)
+ (setq path (substring path (match-end 0))))
+ (if (or (> (cl-count ?: orig-path) 2)
+ (> (cl-count ?\; orig-path) 2))
+ ;; PATH-like set of values; select just the one point
is on
+ (apply #'ibut:label-set path (hpath:start-end path))
+ ;; Otherwise, use the unchanged orig-path
+ (apply #'ibut:label-set orig-path (hpath:start-end
orig-path)))
+ (hact 'link-to-file path)))
+ ;;
+ ;; Match PATH-related Environment and Lisp variable names and
+ ;; Emacs Lisp and Info files without any directory component.
+ (when (setq path orig-path)
+ (cond ((and (string-match hpath:path-variable-regexp path)
+ (setq path (match-string-no-properties 1 path))
+ (hpath:is-path-variable-p path))
+ (setq path (if (or assist-flag (hyperb:stack-frame
'(hkey-help)))
+ path
+ (hpath:choose-from-path-variable path
"Display")))
+ (unless (or (null path) (string-blank-p path)
+ ;; Could be a shell command from a semicolon
+ ;; separated list; ignore if so.
+ (and (string-match "\\`\\s-*\\([^; ]+\\)"
path)
+ (executable-find
(match-string-no-properties 1 path))))
+ (apply #'ibut:label-set path (hpath:start-end path))
+ (hact 'link-to-file path)))
+ ((setq elisp-suffix (string-match
"\\`[^\\\\/~]+\\.el[cn]?\\(\\.gz\\)?\\'" path))
+ (cond ((string-match hpath:prefix-regexp path)
+ (apply #'ibut:label-set path (hpath:start-end path))
+ (hact 'hpath:find path))
+ ((setq full-path
+ (let ((load-suffixes '(".el")))
+ (locate-library path elisp-suffix)))
+ (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
+ (hact 'link-to-file full-path))
+ (elisp-suffix
+ (hact 'error "(pathname): \"%s\" not found in
`load-path'" path))
+ ;; Don't match as a pathname ibut; could be a Lisp
+ ;; symbol or something else starting with a '-'.
+ (t nil)))
+ ;; Match only if "(filename)" references a valid Info file
+ ;; and point is within the filename, not on any delimiters
+ ;; so that delimited thing matches trigger later.
+ ((and (not (looking-at "[\"()]"))
+ (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" path)
+ (save-match-data (require 'info))
+ (Info-find-file (match-string-no-properties 1 path) t))
+ (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
+ (hact 'link-to-Info-node (format "%sTop" path)))
+ ((string-match hpath:info-suffix path)
+ (apply #'ibut:label-set orig-path (hpath:start-end
orig-path))
+ (hact 'link-to-Info-node (format "(%s)Top" path)))
+ ;; Otherwise, fall through and allow other implicit
+ ;; button types to handle this context.
+ )))))))
;;; ========================================================================
;;; Follows URLs by invoking a web browser.
@@ -361,6 +365,27 @@ display options."
(load "hsys-www")
+;;; ========================================================================
+;;; Uses web browser to display links to Hyperbole HTML manual sections
+;;; Links are of the form "hyperbole.html#Smart Keys"
+;;; ========================================================================
+
+(defib hyp-html-manual ()
+ "When on a \"hyperbole.html\" manual path, display it in a web browser.
+For example, display \"hyperbole.html#Smart Keys\" using the local
+html version of the Hyperbole manual."
+ (let* ((path-start-end (hargs:delimited "\"" "\"" nil nil t))
+ (path (nth 0 path-start-end))
+ (start (nth 1 path-start-end))
+ (end (nth 2 path-start-end)))
+ (when (stringp path)
+ (setq path (string-trim path))
+ (when (string-match "\\`hyperbole.html\\(#.*\\)?\\'" path)
+ (ibut:label-set path start end)
+ ;; Any spaces in #section must be replaced with dashes to match html ids
+ (setq path (replace-regexp-in-string "\\s-+" "-" path))
+ (hact 'www-url (concat "file://" (expand-file-name path (hpath:expand
"${hyperb:dir}/man/"))))))))
+
;;; ========================================================================
;;; Handles internal references within an annotated bibliography, delimiters=[]
;;; ========================================================================
@@ -1408,10 +1433,11 @@ GNUS is a news and mail reader."
(defib Info-node ()
"Make a \"(filename)nodename\" button display the associated Info node.
-Also make a \"(filename)itemname\" button display the associated Info index
item.
-Examples are \"(hyperbole)Implicit Buttons\" and ``(hyperbole)C-c /''.
-
-Activates only if point is within the first line of the Info-node name."
+Also make a \"(filename)itemname\" button display the associated Info
+index item. Examples are \"(hyperbole)Implicit Buttons\" and
+``(hyperbole)C-c /''. Pathname formats like:
+\"hyperbole.info#Implicit Buttons\" are also accepted. Activates only
+if point is within the first line of the Info reference."
(let* ((node-ref-and-pos (or ;; HTML
(hbut:label-p t """ """ t t)
;; Embedded double quotes
@@ -1429,6 +1455,7 @@ Activates only if point is within the first line of the
Info-node name."
(hbut:label-p t "`" "'" t t)))
(ref (car node-ref-and-pos))
(node-ref (and (stringp ref)
+ (setq ref (hpath:to-Info-ref ref))
(or (string-match-p "\\`([^\): \t\n\r\f]+)\\'" ref)
(string-match-p "\\`([^\): \t\n\r\f]+)[^ :;\"'`]"
ref))
;; Below handle decoding of Info node names in
diff --git a/hpath.el b/hpath.el
index a6050b3b42..253143cc53 100644
--- a/hpath.el
+++ b/hpath.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 1-Nov-91 at 00:44:23
-;; Last-Mod: 13-Aug-24 at 22:29:46 by Bob Weiner
+;; Last-Mod: 24-Aug-24 at 01:31:41 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -1085,7 +1085,8 @@ Make any existing path within a file buffer absolute
before returning."
(file-name-absolute-p expanded-path) ;; absolute path
(string-match-p hpath:variable-regexp expanded-path)
;; path with var
(string-match-p "\\`([^\):]+)" expanded-path)))) ;;
Info node
- (when (or non-exist (file-exists-p expanded-path))
+ (when (or non-exist (file-exists-p expanded-path)
+ (string-match-p ".+\\.info\\([.#]\\|\\'\\)" expanded-path))
(concat prefix mode-prefix expanded-path suffix)))))))
(defun hpath:is-path-variable-p (path-var)
@@ -1827,6 +1828,7 @@ form is what is returned for PATH."
(or
;; Info or remote
path, so don't check for.
(string-match-p
"[()]" path)
+ (string-match-p
".+\\.info\\([.#]\\|\\'\\)" path)
(hpath:remote-p path)
(setq suffix
(hpath:exists-p path t))
;; Don't allow
spaces in non-existent pathnames
@@ -2162,6 +2164,15 @@ Return LINKNAME unchanged if it is not a symbolic link
but is a pathname."
(setq referent (expand-file-name referent dirname))))
referent)
+(defun hpath:to-Info-ref (path)
+ "Reformat Info PATH \"file.info#ref\" into \"(file)ref\" format.
+Leave any other format unchanged and return the resulting path."
+ (if (string-match
"\\(.+\\)\\.info\\(-[0-9]+\\)?\\(\\.gz\\|\\.Z\\|-z\\)?\\(#\\(.+\\)\\)?\\'" path)
+ (format "(%s)%s"
+ (match-string 1 path)
+ (or (match-string 5 path) ""))
+ path))
+
(defun hpath:to-line (line-num)
"Move point to the start of an absolute LINE-NUM or the last line.
This ignores any buffer narrowing (aside from Koutlines) when
diff --git a/hui-menu.el b/hui-menu.el
index 799ee50486..77a3dd2aa9 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 28-Oct-94 at 10:59:44
-;; Last-Mod: 18-Aug-24 at 15:33:29 by Bob Weiner
+;; Last-Mod: 19-Aug-24 at 23:28:31 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -210,18 +210,18 @@ Return t if cutoff, else nil."
t))
(defconst hui-menu-org-meta-return-options
- '("Org-M-RETURN"
+ '("Org M-RET Overrides"
"----"
"----"
- ["All-Programmed-Contexts"
+ ["All-Hyperbole-Contexts"
(customize-save-variable 'hsys-org-enable-smart-keys t)
:style radio :selected (when (boundp 'hsys-org-enable-smart-keys)
(eq hsys-org-enable-smart-keys t))]
["Hyperbole-Buttons-Only"
- (customize-save-variable 'hsys-org-enable-smart-keys 'buttons)
+ (customize-save-variable 'hsys-org-enable-smart-keys :buttons)
:style radio :selected (when (boundp 'hsys-org-enable-smart-keys)
- (eq hsys-org-enable-smart-keys 'buttons))]
- ["Ignored-by-Hyperbole"
+ (memq hsys-org-enable-smart-keys '(:buttons
buttons)))]
+ ["None"
(customize-save-variable 'hsys-org-enable-smart-keys nil)
:style radio :selected (when (boundp 'hsys-org-enable-smart-keys)
(eq hsys-org-enable-smart-keys nil))])
@@ -448,18 +448,19 @@ REBUILD-FLAG is non-nil, in which case the menu is
rebuilt."
["Link" hui:gbut-link-directly t]
["Rename" hui:gbut-rename t])
(list "HyWiki"
- ["Manual" (id-info "(hyperbole)HyWiki") t]
+ ["Manual" (id-info "(hyperbole)HyWiki") t]
"----"
- ["Activate" hywiki-word-activate t]
- ["Create" hywiki-add-page-and-display t]
- ["Edit" hywiki-find-page t]
- ["Grep-Consult" hywiki-consult-grep t]
- ["Help" hkey-help t]
- ["Link" hywiki-add-link t]
+ ["Activate" hywiki-word-activate t]
+ ["Create" hywiki-add-page-and-display t]
+ ["Edit" hywiki-find-page t]
+ ["Grep-Consult" hywiki-consult-grep t]
+ ["Help" hkey-help t]
+ ["Link" hywiki-add-link t]
hui-menu-org-meta-return-options
- ["Publish" hywiki-publish-to-html t]
- ["Toggle-HyWiki-Mode" hywiki-mode t]
- ["WikiWord-Consult" hywiki-word-consult-grep t])
+ ["HyWiki-Mode-Toggle" hywiki-mode t]
+ ["Publish" hywiki-publish-to-html t]
+ ["Tag-Find" hywiki-tags-view t]
+ ["WikiWord-Consult" hywiki-word-consult-grep t])
'("Implicit-Button"
["Manual" (id-info "(hyperbole)Implicit Buttons") t]
"----"
diff --git a/hui-mini.el b/hui-mini.el
index 9b0522626c..280a861f18 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 15-Oct-91 at 20:13:17
-;; Last-Mod: 18-Aug-24 at 15:33:00 by Bob Weiner
+;; Last-Mod: 19-Aug-24 at 23:29:29 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -389,12 +389,31 @@ or if there are none, then its first character."
(aref item 0)))
(defun hui:menu-item-keys (menu-alist)
- "Return ordered list of keys that activate Hypb minibuffer MENU-ALIST items.
+ "Return ordered list of keys that activate Hypb minibuffer MENU-A[LIST items.
For each item, the key is either the first capital letter in item
or if there are none, then its first character."
(mapcar (lambda (item) (hui:menu-item-key item))
(mapcar 'car (cdr menu-alist))))
+(defun hui:menu-read-from-minibuffer (prompt &optional initial-contents keymap
read
+ hist default-value inherit-input-method)
+ "Hyperbole minibuffer menu replacement for `read-from-minibuffer'.
+Allows custom handling of menu lines before selecting an item."
+ (when (and (stringp initial-contents)
+ (string-prefix-p "Org M-RET" initial-contents))
+ (let* ((org-m-ret-options (cddr (assq 'cust-org hui:menus)))
+ (option-lookups (mapcar (lambda (option)
+ (cons (car (last (nth 1 option)))
+ (car option)))
+ org-m-ret-options))
+ (current-name (cdr (assq hsys-org-enable-smart-keys
option-lookups))))
+ (when (and (stringp current-name) (stringp initial-contents))
+ (setq initial-contents (string-replace current-name
+ (concat "==" current-name "==")
+ initial-contents)))))
+ (read-from-minibuffer prompt initial-contents keymap read
+ hist default-value inherit-input-method))
+
(defun hui:menu-choose (menu-alist &optional doc-flag help-string-flag)
"Prompt user to choose the first capitalized char of any item from
MENU-ALIST.
Return the Lisp form associated with the selected item, which may be
@@ -424,7 +443,7 @@ documentation, not the full text."
(hargs:reading-type 'hmenu))
(while (not (memq (setq key (upcase
(string-to-char
- (read-from-minibuffer
+ (hui:menu-read-from-minibuffer
"" menu-line hui:menu-mode-map nil t))))
keys))
(beep)
@@ -749,13 +768,13 @@ command instead. Typically prevents clashes over
{\\`C-c' /}."
("WinControl" (hui:bind-key #'hycontrol-enable-windows-mode))
;; {C-c \}
))
'(cust-org .
- (("Org M-RETURN>")
- ("All-Smart-Org-Contexts" (customize-save-variable
'hsys-org-enable-smart-keys t)
+ (("Org M-RET Overrides>")
+ ("All-Hyperbole-Contexts" (customize-save-variable
'hsys-org-enable-smart-keys t)
"Smart Keys override Org M-RET in all Org mode Smart Key contexts
(see `smart-org').")
- ("Hyperbole-Buttons-Only" (customize-save-variable
'hsys-org-enable-smart-keys 'buttons)
+ ("Hyperbole-Buttons-Only" (customize-save-variable
'hsys-org-enable-smart-keys :buttons)
"Smart Keys override Org M-RET only when on a Hyperbole recognized
button.")
- ("Ignored-by-Hyperbole" (customize-save-variable
'hsys-org-enable-smart-keys nil)
- "Org M-RET always overrides the Smart Keys within Org mode.")))
+ ("None" (customize-save-variable
'hsys-org-enable-smart-keys nil)
+ "Smart Keys never override Org M-RET operation.")))
'(cust-referents .
(("Ref Display>")
("Any-Frame" (setq hpath:display-where 'other-frame))
@@ -857,13 +876,15 @@ command instead. Typically prevents clashes over
{\\`C-c' /}."
"Display Hyperbole manual section on HyWiki.")
("Link" hywiki-add-link
"Prompt for and add a link at point to a HyWiki page.")
+ ("ModeToggle" hywiki-mode
+ "Toggle whether HyWikiWords are highlighted and active in buffers
outside of the HyWiki page directory.")
("Org-M-RET/" (menu . cust-org)
"Set how much of Hyperbole Smart Key behavior is enabled in Org
mode.")
("Publish" hywiki-publish-to-html
"Publish modified pages in the HyWiki to HTML; prefix arg to publish
all pages.")
- ("Toggle" hywiki-mode
- "Toggle whether HyWikiWords are highlighted and active in buffers
outside of the HyWiki page directory.")
- ("WikiWordConsult" hywiki-word-consult-grep
+ ("TagFind" hywiki-tags-view
+ "Find HyWiki Org tags.")
+ ("WikiWordConsult" hywiki-word-consult-grep
"Use `hywiki-consult-grep' to show occurrences of a prompted for
HyWikiWord.")))
'(ibut .
(("IButton>")
@@ -990,6 +1011,7 @@ command instead. Typically prevents clashes over {\\`C-c'
/}."
'("Order" hyrolo-sort "Order rolo entries
in a file.")
'("RegexFind" hyrolo-grep "Find entries
containing a regexp.")
'("StringFind" hyrolo-fgrep "Find entries
containing a string.")
+ '("TagFind" hyrolo-tags-view "Find HyRolo Org
tags.")
'("WordFind" hyrolo-word "Find entries
containing words.")
'("Yank" hyrolo-yank "Find an entry
containing a string and insert it at point.")))
"*Hyperbole minibuffer Rolo menu items of the form:
diff --git a/hui-mouse.el b/hui-mouse.el
index b73e9f6f21..50e15c35cf 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 04-Feb-89
-;; Last-Mod: 18-Aug-24 at 22:03:38 by Bob Weiner
+;; Last-Mod: 19-Aug-24 at 22:17:10 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -1813,7 +1813,7 @@ When the Action Key is pressed and
`hsys-org-enable-smart-keys' is t:
3. On an Org agenda view item, jump to the item for editing.
When the Action Key is pressed and `hsys-org-enable-smart-keys' is
-either t or \\='buttons:
+either `t' or `:buttons':
4. Within a radio or internal target or a link to it, jump between
the target and the first link to it, allowing two-way navigation.
@@ -1934,7 +1934,7 @@ handled by the separate implicit button type,
`org-link-outside-org-mode'."
(t
;; Continue with any further Smart Key non-Org contexts
nil)))
- ((eq hsys-org-enable-smart-keys 'buttons)
+ ((memq hsys-org-enable-smart-keys '(:buttons buttons))
(cond ((hsys-org-radio-target-def-at-p)
(hact 'org-radio-target-link)
t)
diff --git a/hyperbole.el b/hyperbole.el
index f207f925ab..eed5a3a9d3 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -6,15 +6,15 @@
;; Author: Robert Weiner <[email protected]>
;; Authors: Robert Weiner <[email protected]>, Mats Lidell <[email protected]>
-;; Maintainer: Mats Lidell <[email protected]>
+;; Maintainer: Robert Weiner <[email protected]>
;; Maintainers: Robert Weiner <[email protected]>, Mats Lidell <[email protected]>
;; Created: 06-Oct-92 at 11:52:51
-;; Last-Mod: 2-Jun-24 at 13:22:35 by Bob Weiner
+;; Last-Mod: 23-Aug-24 at 22:36:12 by Bob Weiner
;; Released: 10-Mar-24
;; Version: 9.0.2pre
;; Keywords: comm, convenience, files, frames, hypermedia, languages,
mail, matching, mouse, multimedia, outlines, tools, wp
;; Package: hyperbole
-;; Package-Requires: ((emacs "27.1"))
+;; Package-Requires: ((emacs "27.2"))
;; URL: http://www.gnu.org/software/hyperbole
;; See the "HY-COPY" file for license information.
@@ -490,7 +490,7 @@ frame, those functions by default still return the prior
frame."
(cond ((car-safe (get 'hsys-org-enable-smart-keys
'customized-value)))
((car-safe (get 'hsys-org-enable-smart-keys
'saved-value)))
((hsys-org-meta-return-shared-p)
- 'buttons)
+ :buttons)
(t))))
;;
;; This next function call must be run before any tests involving Org
diff --git a/hyrolo-menu.el b/hyrolo-menu.el
index 0d988dcd61..437406aa48 100644
--- a/hyrolo-menu.el
+++ b/hyrolo-menu.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 28-Oct-94 at 10:59:44
-;; Last-Mod: 10-Dec-23 at 19:07:10 by Bob Weiner
+;; Last-Mod: 19-Aug-24 at 23:29:52 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -55,7 +55,8 @@
["Search-for-Regexp" (id-tool-invoke 'hyrolo-grep) t]
["Search-for-String" (id-tool-invoke 'hyrolo-fgrep) t]
["Search-for-Word" (id-tool-invoke 'hyrolo-word) t]
- ["Sort-Entries" (id-tool-invoke 'hyrolo-sort)
t])))
+ ["Sort-Entries" (id-tool-invoke 'hyrolo-sort) t]
+ ["Tag-Find" (id-tool-invoke 'hyrolo-tags-view)
t])))
(defconst hyrolo-menu-common-body
'(
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 2f89605616..4faf4a9fda 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -108,7 +108,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 9.0.2pre
-Printed August 17, 2024.
+Printed August 19, 2024.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -2243,7 +2243,7 @@ that set or if final done keyword, remove it.
</li><li> On an Org agenda view item, jump to the item for editing.
<p>When the Action Key is pressed and <code>hsys-org-enable-smart-keys</code>
-is either ‘<samp>t</samp>’ or ‘<samp>'buttons</samp>’:
+is either ‘<samp>t</samp>’ or ‘<samp>:buttons</samp>’:
</p>
</li><li> Within a radio or internal target or a link to it, jump between
the target and the first link to it, allowing two-way navigation.
@@ -2305,6 +2305,8 @@ through views of the whole buffer outline.
<span id="index-disable-org_002dmode-support"></span>
<span id="index-inhibit-org_002dmode-support"></span>
<span id="index-menu-item_002c-Cust_002fOrg_002dM_002dRET"></span>
+<span id="index-customize-Org-M_002dRET"></span>
+<span id="index-Org-M_002dRET-customize"></span>
<span id="index-Org-M_002dRET-override"></span>
<span id="index-override-Org-M_002dRET"></span>
<span id="index-C_002dh-h-c-o"></span>
@@ -2322,7 +2324,7 @@ this setting.
<pre
class="example">|--------------+-------------------+------------------+----------+------------------|
| This Setting | Smart Key Context | Hyperbole Button | Org Link | Fallback
Command |
|--------------+-------------------+------------------+----------+------------------|
-| buttons | Ignore | Activate | Activate |
org-meta-return |
+| :buttons | Ignore | Activate | Activate |
org-meta-return |
| nil | Ignore | Ignore | Ignore |
org-meta-return |
| t | Activate | Activate | Activate | None
|
|--------------+-------------------+------------------+----------+------------------|
@@ -4467,23 +4469,23 @@ HyWikiWords.
<span id="index-override-Org-M_002dRET-1"></span>
<span id="index-C_002dh-h-h-o-a"></span>
<span id="index-C_002dh-h-h-c"></span>
-<span
id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fAll_002dSmart_002dOrg_002dContexts"></span>
+<span
id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fAll_002dHyperbole_002dContexts"></span>
<p>The Action Key can create new HyWiki pages when on an undefined
HyWikiWord if you change the setting that controls the Org mode
<kbd>{M-<span class="key">RET</span>}</kbd> binding. Have Hyperbole override
Org’s control of
that key in all Action and Assist Key contexts with the
-‘<samp>All-Smart-Org-Contexts</samp>’ setting bound to <kbd>{C-h h
h o a}</kbd>.
+‘<samp>All-Hyperbole-Contexts</samp>’ setting bound to <kbd>{C-h h
h o a}</kbd>.
</p>
<span id="index-activate-HyWiki-link"></span>
<span id="index-link_002c-HyWikiWord"></span>
<span id="index-C_002dh-h-h-a"></span>
<span id="index-C_002dh-h-h-o-i"></span>
-<span
id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fIgnored_002dby_002dHyperbole"></span>
+<span id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fNone"></span>
<p>To jump to a HyWiki page, simply move point onto any highlighted
HyWikiWord and press the Action Key <kbd>{M-<span
class="key">RET</span>}</kbd>. This also
highlights any other instances of HyWikiWords across all visible Emacs
windows. If you have set the Org <kbd>{M-<span class="key">RET</span>}</kbd>
option to
-‘<samp>Ignored-by-Hyperbole</samp>’ with <kbd>{C-h h h o i}</kbd>,
then you will have to
+‘<samp>None</samp>’ with <kbd>{C-h h h o i}</kbd>, then you will
have to
use the HyWiki Act menu command <kbd>{C-h h h a}</kbd> instead to jump to
HyWiki
pages.
</p>
@@ -4635,7 +4637,7 @@ Previous: <a href="#Publish-HyWiki" accesskey="p"
rel="prev">Publish HyWiki</a>,
It looks like this:
</p>
<div class="example">
-<pre class="example">HyWiki> Act Create Edit GrepConsult Help Info Link
Org-M-RET/ Publish Toggle WikiWordConsult
+<pre class="example">HyWiki> Act Create Edit GrepConsult Help Info Link
ModeToggle Org-M-RET/ Publish TagFind WikiWordConsult
</pre></div>
<p>Below are descriptions of each menu item.
@@ -4664,26 +4666,40 @@ It looks like this:
</p></dd>
<dt><span>Link</span></dt>
<dd><p>Prompt for and add a link at point to a HyWiki page.
+<span id="index-hywiki_002dmode-2"></span>
+<span id="index-HyWiki-mode"></span>
+<span id="index-HyWikiWords-outside-hywiki_002ddirectory"></span>
+</p></dd>
+<dt><span>ModeToggle</span></dt>
+<dd><p>Toggle global minor mode <code>hywiki-mode</code> that enables
HyWikiWord hyperlinks
+in buffers outside of <code>hywiki-directory</code>.
<span id="index-C_002dh-h-h-o"></span>
<span id="index-HyWiki_002c-C_002dh-h-h-o"></span>
<span id="index-C_002dh-h-h-c-1"></span>
<span id="index-HyWiki_002c-C_002dh-h-h-c"></span>
<span id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET"></span>
<span
id="index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fHyperbole_002dButtons_002dOnly"></span>
-<span id="index-customize-Org-M_002dRET"></span>
-<span id="index-Org-M_002dRET-customize"></span>
+<span id="index-customize-Org-M_002dRET-1"></span>
+<span id="index-Org-M_002dRET-customize-1"></span>
+<span id="index-override-Org-M_002dRET-3"></span>
+<span id="index-Org-M_002dRET-override-2"></span>
</p></dd>
<dt><span>Org-M-RET/</span></dt>
<dd><p>Menu to customize contexts in which Hyperbole Action and Assist Keys
override Org’s <kbd>{M-<span class="key">RET</span>}</kbd> command. The
default is
-when on ‘<samp>Hyperbole-Buttons-Only</samp>’. Use
‘<samp>All-Smart-Org-Contexts</samp>’ to
+when on ‘<samp>Hyperbole-Buttons-Only</samp>’. Use
‘<samp>All-Hyperbole-Contexts</samp>’ to
make the Action Key create new HyWiki pages when pressed on as-yet
undefined HyWikiWords; otherwise, you must use <kbd>{C-h h h c}</kbd> to
create a
-new HyWiki page instead. Use ‘<samp>Ignored-by-Hyperbole</samp>’
if you want to
+new HyWiki page instead. Use ‘<samp>None</samp>’ if you want to
use Org’s <kbd>{M-<span class="key">RET</span>}</kbd> command in every
context within Org mode.
</p></dd>
<dt><span>Publish</span></dt>
<dd><p>Publish modified pages in the HyWiki to HTML; prefix arg to publish all
pages.
+<span id="index-HyWiki-tag-search"></span>
+<span id="index-search_002c-HyWiki-tag"></span>
+</p></dd>
+<dt><span>TagFind</span></dt>
+<dd><p>Find a matching Org tag across all HyWiki pages.
</p></dd>
<dt><span>WikiWordConsult</span></dt>
<dd><p>Use <code>hywiki-consult-grep</code> to show occurrences of a prompted
for HyWikiWord.
@@ -6839,6 +6855,7 @@ set of commands as the menubar Rolo menu but with more
concise labels.
<span id="index-hyrolo_002dsort"></span>
<span id="index-hyrolo_002dgrep"></span>
<span id="index-hyrolo_002dfgrep"></span>
+<span id="index-hyrolo_002dtags_002dview"></span>
<span id="index-hyrolo_002dword"></span>
<span id="index-hyrolo_002dyank"></span>
<p>The minibuffer Rolo/ menu offers the following commands (ConsultFind
@@ -6864,6 +6881,7 @@ RegexFind hyrolo-grep Finds all entries
containing
StringFind hyrolo-fgrep Finds all entries containing
a string (or logical
expression)
+TagFind hyrolo-tags-view Finds HyWiki Org tags
WordFind hyrolo-word Finds all entries containing
a string of whole words
Yank hyrolo-yank Inserts the first matching
@@ -6915,6 +6933,7 @@ Next: <a href="#HyRolo-Keys" accesskey="n"
rel="next">HyRolo Keys</a>, Previous:
<span id="index-menu-item_002c-RegexFind"></span>
<span id="index-menu-item_002c-WordFind"></span>
<span id="index-menu-item_002c-StringFind"></span>
+<span id="index-menu-item_002c-TagFind"></span>
<p>See <a href="#HyRolo-Menu">Rolo Menu</a>, for the list of HyRolo search
commands. In this
section, the menu item names from the minibuffer menu are used to
refer to each command.
@@ -6926,6 +6945,10 @@ and across the GNU set of tools. See <a
data-manual="emacs" href="https://www.g
Expressions</a> in <cite>the GNU Emacs Manual</cite>, for full documentation
on this
format.
</p>
+<p>The <code>TagFind</code> menu item searches through HyRolo Org files and
+finds headlines with any matching tags. An Action Key press on any
+matching line displays the line in its source buffer.
+</p>
<p>The <code>WordFind</code> menu item locates full-word matches so that if you
search for ‘<samp>product</samp>’, it won’t match to
occurrences of
‘<samp>production</samp>’. It is also handy for more precise name
matching.
@@ -12963,7 +12986,7 @@ It did not exist when Hyperbole was first developed.
<code>hsys-org-enable-smart-keys</code> customization variable to control
the Smart Keys and <kbd>{M-<span class="key">RET</span>}</kbd> when in
Org-mode with
<code>hyperbole-mode</code> active. <code>t</code> enables Smart Key support
-everywhere. The symbol, <code>buttons</code>, is the default; it means the
+everywhere. The symbol, <code>:buttons</code>, is the default; it means the
Smart Keys are active only when point is within a Hyperbole button. A
<code>nil</code> value means no Smart Key support; Hyperbole gives Org
complete control over <kbd>{M-<span class="key">RET</span>}</kbd> so that it
behaves just as it
@@ -14301,6 +14324,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dmode_002dhook">hyrolo-mode-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dsave_002dbuffers_002dafter_002duse">hyrolo-save-buffers-after-use</a>:</td><td> </td><td
valign="top"><a href="#HyRolo-Settings">HyRolo Settings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dsort"><code>hyrolo-sort</code></a>:</td><td> </td><td
valign="top"><a href="#HyRolo-Menu">HyRolo Menu</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dtags_002dview"><code>hyrolo-tags-view</code></a>:</td><td> </td><td
valign="top"><a href="#HyRolo-Menu">HyRolo Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dword"><code>hyrolo-word</code></a>:</td><td> </td><td
valign="top"><a href="#HyRolo-Menu">HyRolo Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dyank"><code>hyrolo-yank</code></a>:</td><td> </td><td
valign="top"><a href="#HyRolo-Menu">HyRolo Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyrolo_002dyank_002dreformat_002dfunction">hyrolo-yank-reformat-function</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
@@ -14319,6 +14343,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dexclude_002dmajor_002dmodes">hywiki-exclude-major-modes</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dhighlight_002dall_002din_002dprog_002dmodes">hywiki-highlight-all-in-prog-modes</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dmode-1"><code>hywiki-mode</code></a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hywiki_002dmode-2"><code>hywiki-mode</code></a>:</td><td> </td><td
valign="top"><a href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dorg_002dget_002dpublish_002dproperty"><code>hywiki-org-get-publish-property</code></a>:</td><td> </td><td
valign="top"><a href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dorg_002dlink_002dtype_002drequired">hywiki-org-link-type-required</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dorg_002dpublish_002dproject_002dalist">hywiki-org-publish-project-alist</a>:</td><td> </td><td
valign="top"><a href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
@@ -14932,7 +14957,8 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a
href="#index-customization">customization</a>:</td><td> </td><td
valign="top"><a href="#Customization">Customization</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customization-1">customization</a>:</td><td> </td><td
valign="top"><a href="#Customization">Customization</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customize">customize</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-customize-Org-M_002dRET">customize Org
M-RET</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-customize-Org-M_002dRET">customize Org
M-RET</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-customize-Org-M_002dRET-1">customize Org
M-RET</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customize_002c-rolo-additions">customize, rolo
additions</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customize_002c-rolo-datestamps">customize, rolo
datestamps</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-customize_002c-rolo-edits">customize, rolo
edits</a>:</td><td> </td><td valign="top"><a href="#HyRolo-Keys">HyRolo
Keys</a></td></tr>
@@ -15229,6 +15255,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a href="#index-HyWiki-exclude-modes">HyWiki
exclude modes</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-export-to-HTML">HyWiki
export to HTML</a>:</td><td> </td><td valign="top"><a
href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-menu">HyWiki
menu</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-HyWiki-mode">HyWiki
mode</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-Org-link-format">HyWiki
Org link format</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-Org-publish">HyWiki Org
publish</a>:</td><td> </td><td valign="top"><a
href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-programming-modes">HyWiki
programming modes</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
@@ -15236,12 +15263,14 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a
href="#index-HyWiki-publishing-directory">HyWiki publishing
directory</a>:</td><td> </td><td valign="top"><a
href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyWiki-publishing-function">HyWiki publishing
function</a>:</td><td> </td><td valign="top"><a
href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWiki-section-link">HyWiki
section link</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-HyWiki-tag-search">HyWiki tag
search</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hywiki_002dmode">hywiki-mode</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyWikiWord">HyWikiWord</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWikiWord-contexts">HyWikiWord
contexts</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-HyWikiWord-create">HyWikiWord
create</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyWikiWord-highlighting">HyWikiWord
highlighting</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-HyWikiWord_002c-outside-the-wiki">HyWikiWord, outside the
wiki</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-HyWikiWords-outside-hywiki_002ddirectory">HyWikiWords outside
hywiki-directory</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ibtype">ibtype</a>:</td><td> </td><td valign="top"><a
href="#Programmatic-Implicit-Button-Types">Programmatic Implicit Button
Types</a></td></tr>
@@ -15484,9 +15513,9 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a href="#index-menu-item_002c-GrepFile">menu
item, GrepFile</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-menu-item_002c-Hist">menu item,
Hist</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET">menu item,
HyWiki/Org-M-RET</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fAll_002dSmart_002dOrg_002dContexts">menu
item, HyWiki/Org-M-RET/All-Smart-Org-Contexts</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fAll_002dHyperbole_002dContexts">menu
item, HyWiki/Org-M-RET/All-Hyperbole-Contexts</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fHyperbole_002dButtons_002dOnly">menu
item, HyWiki/Org-M-RET/Hyperbole-Buttons-Only</a>:</td><td> </td><td
valign="top"><a href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fIgnored_002dby_002dHyperbole">menu
item, HyWiki/Org-M-RET/Ignored-by-Hyperbole</a>:</td><td> </td><td
valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-HyWiki_002fOrg_002dM_002dRET_002fNone">menu item,
HyWiki/Org-M-RET/None</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-Ibut_002fAct">menu item,
Ibut/Act</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-Ibut_002fActivate">menu item,
Ibut/Activate</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-Ibut_002fCreate">menu item,
Ibut/Create</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -15505,6 +15534,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-Rolo_002fToggle_002dRolo_002dDates">menu item,
Rolo/Toggle-Rolo-Dates</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Keys">HyRolo Keys</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-menu-item_002c-SaveLines">menu
item, SaveLines</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-menu-item_002c-StringFind">menu
item, StringFind</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu-item_002c-TagFind">menu
item, TagFind</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-Toggle_002dIsearch_002dInvisible">menu item,
Toggle-Isearch-Invisible</a>:</td><td> </td><td valign="top"><a
href="#Invisible-Text-Searches">Invisible Text Searches</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-menu-item_002c-WindowsControl">menu item,
WindowsControl</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-menu-item_002c-WordFind">menu
item, WordFind</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
@@ -15638,9 +15668,11 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a href="#index-Org-link_002c-HyWiki">Org link,
HyWiki</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-link_002c-outside-Org">Org
link, outside Org</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-link_002c-outside-Org-1">Org
link, outside Org</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Org-Mode">Smart Key - Org Mode</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-customize">Org
M-RET customize</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-customize">Org
M-RET customize</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-customize-1">Org
M-RET customize</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-override">Org
M-RET override</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-override-1">Org
M-RET override</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Org-M_002dRET-override-2">Org
M-RET override</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-mode">Org
mode</a>:</td><td> </td><td valign="top"><a href="#HyRolo-Concepts">HyRolo
Concepts</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-mode-1">Org
mode</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Org-Mode">Smart Key - Org Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Org-publish">Org
publish</a>:</td><td> </td><td valign="top"><a
href="#Publish-HyWiki">Publish HyWiki</a></td></tr>
@@ -15691,6 +15723,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a href="#index-override-Org-M_002dRET">override
Org M-RET</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-override-Org-M_002dRET-1">override Org
M-RET</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-override-Org-M_002dRET-2">override Org
M-RET</a>:</td><td> </td><td valign="top"><a
href="#HyWikiWords">HyWikiWords</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-override-Org-M_002dRET-3">override Org
M-RET</a>:</td><td> </td><td valign="top"><a href="#HyWiki-Menu">HyWiki
Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-overview">overview</a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-P">P</th><td></td><td></td></tr>
@@ -15811,6 +15844,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function, Variable and Fi
<tr><td></td><td valign="top"><a
href="#index-search">search</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-search-1">search</a>:</td><td> </td><td valign="top"><a
href="#Invisible-Text-Searches">Invisible Text Searches</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-search-engines-menu">search
engines menu</a>:</td><td> </td><td valign="top"><a
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-search_002c-HyWiki-tag">search,
HyWiki tag</a>:</td><td> </td><td valign="top"><a
href="#HyWiki-Menu">HyWiki Menu</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-searching-the-web">searching the
web</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-searching-the-web-1">searching
the web</a>:</td><td> </td><td valign="top"><a
href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-searching_002c-rolo">searching,
rolo</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index ac25c12138..4e4a5d30b7 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 25ddbf110a..1cd2b9db86 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -159,7 +159,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 9.0.2pre
-Printed August 17, 2024.
+Printed August 19, 2024.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -201,7 +201,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@example
Edition 9.0.2pre
-August 17, 2024
+August 19, 2024
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -524,7 +524,7 @@ Smart Keyboard Keys
@chapter Introduction
This edition of the GNU Hyperbole Manual is for use with any version
-9.0.1 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 27.1
+9.0.2pre or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 27.2
or higher. It will trigger an error if your Emacs is older.
This chapter summarizes the structure of the rest of the manual,
@@ -2344,7 +2344,7 @@ On an Org agenda view item, jump to the item for editing.
@noindent
When the Action Key is pressed and @code{hsys-org-enable-smart-keys}
-is either @samp{t} or @samp{'buttons}:
+is either @samp{t} or @samp{:buttons}:
@item
Within a radio or internal target or a link to it, jump between
@@ -2422,6 +2422,8 @@ through views of the whole buffer outline.
@cindex disable org-mode support
@cindex inhibit org-mode support
@cindex menu item, Cust/Org-M-RET
+@cindex customize Org M-RET
+@cindex Org M-RET customize
@cindex Org M-RET override
@cindex override Org M-RET
@kindex C-h h c o
@@ -2438,7 +2440,7 @@ The following table summarizes the effect of this option
setting.
|--------------+-------------------+------------------+----------+------------------|
| This Setting | Smart Key Context | Hyperbole Button | Org Link | Fallback
Command |
|--------------+-------------------+------------------+----------+------------------|
-| buttons | Ignore | Activate | Activate |
org-meta-return |
+| :buttons | Ignore | Activate | Activate |
org-meta-return |
| nil | Ignore | Ignore | Ignore |
org-meta-return |
| t | Activate | Activate | Activate | None
|
|--------------+-------------------+------------------+----------+------------------|
@@ -4372,23 +4374,23 @@ HyWikiWords.
@cindex override Org M-RET
@kindex C-h h h o a
@kindex C-h h h c
-@cindex menu item, HyWiki/Org-M-RET/All-Smart-Org-Contexts
+@cindex menu item, HyWiki/Org-M-RET/All-Hyperbole-Contexts
The Action Key can create new HyWiki pages when on an undefined
HyWikiWord if you change the setting that controls the Org mode
@bkbd{M-@key{RET}} binding. Have Hyperbole override Org's control of
that key in all Action and Assist Key contexts with the
-@samp{All-Smart-Org-Contexts} setting bound to @bkbd{C-h h h o a}.
+@samp{All-Hyperbole-Contexts} setting bound to @bkbd{C-h h h o a}.
@cindex activate HyWiki link
@cindex link, HyWikiWord
@kindex C-h h h a
@kindex C-h h h o i
-@cindex menu item, HyWiki/Org-M-RET/Ignored-by-Hyperbole
+@cindex menu item, HyWiki/Org-M-RET/None
To jump to a HyWiki page, simply move point onto any highlighted
HyWikiWord and press the Action Key @bkbd{M-@key{RET}}. This also
highlights any other instances of HyWikiWords across all visible Emacs
windows. If you have set the Org @bkbd{M-@key{RET}} option to
-@samp{Ignored-by-Hyperbole} with @bkbd{C-h h h o i}, then you will have to
+@samp{None} with @bkbd{C-h h h o i}, then you will have to
use the HyWiki Act menu command @bkbd{C-h h h a} instead to jump to HyWiki
pages.
@@ -4533,7 +4535,7 @@ It looks like this:
@smallexample
@noindent
-HyWiki> Act Create Edit GrepConsult Help Info Link Org-M-RET/ Publish Toggle
WikiWordConsult
+HyWiki> Act Create Edit GrepConsult Help Info Link ModeToggle Org-M-RET/
Publish TagFind WikiWordConsult
@end smallexample
@noindent
@@ -4557,6 +4559,12 @@ Report on a HyWikiWord's attributes.
Display Hyperbole manual section on HyWiki.
@item Link
Prompt for and add a link at point to a HyWiki page.
+@findex hywiki-mode
+@cindex HyWiki mode
+@cindex HyWikiWords outside hywiki-directory
+@item ModeToggle
+Toggle global minor mode @code{hywiki-mode} that enables HyWikiWord hyperlinks
+in buffers outside of @code{hywiki-directory}.
@kindex C-h h h o
@kindex HyWiki, C-h h h o
@kindex C-h h h c
@@ -4565,16 +4573,22 @@ Prompt for and add a link at point to a HyWiki page.
@cindex menu item, HyWiki/Org-M-RET/Hyperbole-Buttons-Only
@cindex customize Org M-RET
@cindex Org M-RET customize
+@cindex override Org M-RET
+@cindex Org M-RET override
@item Org-M-RET/
Menu to customize contexts in which Hyperbole Action and Assist Keys
override Org's @bkbd{M-@key{RET}} command. The default is
-when on @samp{Hyperbole-Buttons-Only}. Use @samp{All-Smart-Org-Contexts} to
+when on @samp{Hyperbole-Buttons-Only}. Use @samp{All-Hyperbole-Contexts} to
make the Action Key create new HyWiki pages when pressed on as-yet
undefined HyWikiWords; otherwise, you must use @bkbd{C-h h h c} to create a
-new HyWiki page instead. Use @samp{Ignored-by-Hyperbole} if you want to
+new HyWiki page instead. Use @samp{None} if you want to
use Org's @bkbd{M-@key{RET}} command in every context within Org mode.
@item Publish
Publish modified pages in the HyWiki to HTML; prefix arg to publish all pages.
+@cindex HyWiki tag search
+@cindex search, HyWiki tag
+@item TagFind
+Find a matching Org tag across all HyWiki pages.
@item WikiWordConsult
Use @code{hywiki-consult-grep} to show occurrences of a prompted for
HyWikiWord.
@end table
@@ -6435,6 +6449,7 @@ set of commands as the menubar Rolo menu but with more
concise labels.
@findex hyrolo-sort
@findex hyrolo-grep
@findex hyrolo-fgrep
+@findex hyrolo-tags-view
@findex hyrolo-word
@findex hyrolo-yank
The minibuffer Rolo/ menu offers the following commands (ConsultFind
@@ -6461,6 +6476,7 @@ RegexFind hyrolo-grep Finds all entries
containing
StringFind hyrolo-fgrep Finds all entries containing
a string (or logical
expression)
+TagFind hyrolo-tags-view Finds HyWiki Org tags
WordFind hyrolo-word Finds all entries containing
a string of whole words
Yank hyrolo-yank Inserts the first matching
@@ -6510,6 +6526,7 @@ containing "Staffer" at any level in a hierarchy, like so:
@cindex menu item, RegexFind
@cindex menu item, WordFind
@cindex menu item, StringFind
+@cindex menu item, TagFind
@xref{HyRolo Menu}, for the list of HyRolo search commands. In this
section, the menu item names from the minibuffer menu are used to
refer to each command.
@@ -6521,6 +6538,10 @@ and across the GNU set of tools. @xref{Regexps,,Syntax
of Regular
Expressions, emacs, the GNU Emacs Manual}, for full documentation on this
format.
+The @code{TagFind} menu item searches through HyRolo Org files and
+finds headlines with any matching tags. An Action Key press on any
+matching line displays the line in its source buffer.
+
The @code{WordFind} menu item locates full-word matches so that if you
search for @samp{product}, it won't match to occurrences of
@samp{production}. It is also handy for more precise name matching.
@@ -11923,7 +11944,7 @@ Smart Key support for Org-mode is already in Hyperbole.
Use the
@code{hsys-org-enable-smart-keys} customization variable to control
the Smart Keys and @bkbd{M-@key{RET}} when in Org-mode with
@code{hyperbole-mode} active. @code{t} enables Smart Key support
-everywhere. The symbol, @code{buttons}, is the default; it means the
+everywhere. The symbol, @code{:buttons}, is the default; it means the
Smart Keys are active only when point is within a Hyperbole button. A
@code{nil} value means no Smart Key support; Hyperbole gives Org
complete control over @bkbd{M-@key{RET}} so that it behaves just as it
diff --git a/test/demo-tests.el b/test/demo-tests.el
index eebfe3b6bd..3df7483821 100644
--- a/test/demo-tests.el
+++ b/test/demo-tests.el
@@ -250,7 +250,7 @@
(should (looking-at "## Why was Hyperbole developed\\?")))
(hy-test-helpers:kill-buffer "README.md")))
-(ert-deftest demo-implicit-button-line-and-column-test ()
+(ert-deftest demo-implicit-button-line-and-column-rtest ()
(unwind-protect
(with-temp-buffer
(insert (format "\"%s%s\"" (expand-file-name "HY-ABOUT" hyperb:dir)
":5:46"))
diff --git a/test/kcell-tests.el b/test/kcell-tests.el
index d44be6a3d9..5d4ddeba58 100644
--- a/test/kcell-tests.el
+++ b/test/kcell-tests.el
@@ -7,14 +7,14 @@
;; e-mail: [email protected]
;;
;; orig-date: 16-Feb-22 at 23:28:49
-;; last-mod: 10-Mar-24 at 12:43:58 by Bob Weiner
+;; last-mod: 23-Aug-24 at 13:27:11 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
;; Copyright (C) 2021-2024 Free Software Foundation, Inc.
;; Licensed under the GNU General Public License, version 3.
;;
-;; This file is not part of Emacs. It requires Emacs 27.1 or above.
+;; This file is not part of Emacs. It requires Emacs 27.2 or above.
;; This file is part of Hyperbole.
;;
;;; Commentary:
diff --git a/test/smart-org-tests.el b/test/smart-org-tests.el
index 9c11f77f3d..3e9fe4c469 100644
--- a/test/smart-org-tests.el
+++ b/test/smart-org-tests.el
@@ -3,7 +3,7 @@
;; Author: Mats Lidell <[email protected]>
;;
;; Orig-Date: 23-Apr-21 at 22:21:00
-;; Last-Mod: 22-May-22 at 15:04:44 by Bob Weiner
+;; Last-Mod: 19-Aug-24 at 22:00:29 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -70,7 +70,7 @@
(ert-deftest smart-org-mode-with-smart-keys-buttons-on-hypb-button-activates ()
"With smart keys as buttons on hypb button activates the button."
(with-temp-buffer
- (let ((hsys-org-enable-smart-keys 'buttons))
+ (let ((hsys-org-enable-smart-keys :buttons))
(org-mode)
(insert "/tmp")
(goto-char 2)
@@ -93,7 +93,7 @@
(ert-deftest
smart-org-mode-with-smart-keys-buttons-on-delimited-thing-calls-org-meta-return
()
"With smart keys as buttons on delimited falls back to `org-meta-return'."
(with-temp-buffer
- (let ((hsys-org-enable-smart-keys 'buttons))
+ (let ((hsys-org-enable-smart-keys :buttons))
(org-mode)
(insert "(hy per bo le)\n")
(goto-char 14)
@@ -105,7 +105,7 @@
(ert-deftest smart-org-mode-with-smart-keys-buttons-on-org-link-activates ()
"With smart keys as buttons on `org-mode' link activates link."
(with-temp-buffer
- (let ((hsys-org-enable-smart-keys 'buttons))
+ (let ((hsys-org-enable-smart-keys :buttons))
(org-mode)
(insert "[[/tmp][desc]]")
(goto-char 9)