branch: externals/hyperbole commit f2fc8e5307b4cd0f42e76d36c0988c1b8f21de17 Merge: 4a30aab3b7 a968d15edb Author: Robert Weiner <r...@gnu.org> Commit: GitHub <nore...@github.com>
Merge pull request #577 from rswgnu/rsw Extend HyWiki manual chapter with Org-M-RET and Toggle menu entries --- ChangeLog | 31 +++++++++++ HY-ABOUT | 2 +- hact.el | 9 +++- hbut.el | 85 +++++++++++++++++++++-------- hsys-consult.el | 1 + hui-menu.el | 60 +++++++++++---------- hui-mini.el | 22 +++++--- hui.el | 6 +-- man/hyperbole.html | 155 +++++++++++++++++++++++++++++++++++++++-------------- man/hyperbole.info | Bin 649163 -> 652687 bytes man/hyperbole.pdf | Bin 1394636 -> 1397687 bytes man/hyperbole.texi | 132 ++++++++++++++++++++++++++++++--------------- 12 files changed, 358 insertions(+), 145 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8b6554d293..3b682e3b32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +2024-08-17 Bob Weiner <r...@gnu.org> + +* hui-mini.el (hui:menus): Org-M-RET/ Customization menu, add doc to items + and add this menu to the HyWiki menu. Also add Toggle 'hywiki-mode' item. + (hui:menus): Change Org-M-RET/All-Programmed-Contexts to + All-Smart-Org-Contexts. Add HyWiki Toggle-HyWiki-Mode. + man/hyperbole.texi (HyWiki Menu): Doc above changes in the manual. + (HyWikiWords): Explain new HyWikiWord page creation. + +* hact.el (hact): Document that this returns t instead of nil when action type + return value is nil; this ensures that implicit button types register + the performance of the action. + +* man/hyperbole.texi (HyWiki Menu): + hui-menu.el (infodock-hyperbole-menu): + hui-mini.el (hui:menus): Change 'Grep' to 'GrepConsult' and 'Search' to + 'WikiWordConsult' so know they use the Consult package. + +* hsys-consult.el (hsys-consult-grep): Add missing autoload for this function. + +2024-08-16 Bob Weiner <r...@gnu.org> + +* hbut.el (hbut:map): Remove args 'start-delim' and 'end-delim' and fix to + work for both ebuts and named ibuts. + (hbut:map-type): Create and use old logic from 'hbut:map' and + use in 'ebut:map', 'ibut:map' and 'ibut:label-map'. + 2024-08-15 Mats Lidell <ma...@gnu.org> * test/hywiki-tests.el (hywiki-tests--org-set-publish-project) @@ -7,6 +34,10 @@ 2024-08-15 Bob Weiner <r...@gnu.org> +* hui.el (hbut:alist, hbut:list): Add to match but type-specific functions. + (hui:hbut-help): Change 'hargs:read-match' completion table to use + 'hbut:alist' instead of 'ebut:alist'. + * Makefile (HYPERBOLE_FILES): Add all Org files under the hywiki dir. 2024-08-14 Bob Weiner <r...@gnu.org> diff --git a/HY-ABOUT b/HY-ABOUT index e9d9da2fed..4e6d130421 100644 --- a/HY-ABOUT +++ b/HY-ABOUT @@ -1,4 +1,4 @@ -* ABOUT GNU HYPERBOLE +* ABOUT GNU HYPERBOLE Designed and Written by Bob Weiner Maintained by Mats Lidell and Bob Weiner diff --git a/hact.el b/hact.el index 073a35a581..58019bf372 100644 --- a/hact.el +++ b/hact.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 18-Sep-91 at 02:57:09 -;; Last-Mod: 12-Jul-24 at 23:32:57 by Mats Lidell +;; Last-Mod: 17-Aug-24 at 15:09:52 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -384,7 +384,12 @@ Autoloads action function if need be to get the parameter list." (defun hact (&rest args) "Perform action formed from rest of ARGS and return the result. -The value of `hrule:action' determines what effect this has. +The value of `hrule:action' determines what effect this has. The +default for `hrule:action' is `actype:act' which returns the +result of the action unless it is nil, in which case t is +returned instead, to ensure that implicit button types register +the performance of the action. + Alternatively act as a no-op when testing implicit button type contexts. First arg may be a symbol or symbol name for either an action type or a function. Runs `action-act-hook' before performing action." diff --git a/hbut.el b/hbut.el index ce4967ce6a..e55d4ab742 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: 15-Jul-24 at 01:42:17 by Bob Weiner +;; Last-Mod: 16-Aug-24 at 00:56:16 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -378,7 +378,7 @@ to two lines." (defalias 'ebut:label-to-key #'hbut:label-to-key) (defun ebut:list (&optional file loc-p) - "Return list of button labels from in FILE or the current buffer. + "Return list of explicit button labels from in FILE or the current buffer. Remove duplicate labels if optional LOC-P is omitted. With LOC-P, return list of elements (label start end) where start and end are the buffer positions at which the button delimiter begins and ends." @@ -409,7 +409,7 @@ considered. BUT-FUNC must take precisely three arguments: the button label, the start position of the delimited button label and its end position (positions include delimiters when INCLUDE-DELIMS is non-nil)." - (hbut:map but-func nil nil regexp-match include-delims)) + (hbut:map-type but-func ebut:label-start ebut:label-end regexp-match include-delims)) (defun ebut:next-occurrence (lbl-key &optional buffer) "Move point to next occurrence of button with LBL-KEY in optional BUFFER. @@ -1121,6 +1121,11 @@ Default is the symbol hbut:current." (when (hbut:is-p hbut) (hattr:get hbut 'actype))) +(defun hbut:alist (&optional file) + "Return alist of hbuts (ebuts and named ibuts) in FILE or the current buffer. +Each element is a list of just a button label. For use as a completion table." + (mapcar #'list (hbut:list file))) + (defun hbut:at-p () "Return symbol for explicit or implicit Hyperbole button at point or nil. Then use (hbut:act) to activate the button. @@ -1501,29 +1506,67 @@ whitespace sequences with `_'." label (replace-regexp-in-string "_" "__" label nil t)) (replace-regexp-in-string "[ \t\n\r]+" "_" label nil t))) -(defun hbut:map (but-func &optional start-delim end-delim - regexp-match include-delims) +(defun hbut:list (&optional file loc-p) + "Return list of button labels from in FILE or the current buffer. +Remove duplicate labels if optional LOC-P is omitted. With LOC-P, return +list of elements (label start end) where start and end are the buffer +positions at which the button delimiter begins and ends." + (interactive) + (setq file (if file + (when (file-exists-p file) + (find-file-noselect file)) + (current-buffer))) + (when file + (set-buffer file) + (let ((buts (hbut:map (if loc-p + (lambda (lbl start end) + ;; Normalize label spacing + (list (hbut:key-to-label (hbut:label-to-key lbl)) + start end)) + (lambda (lbl _start _end) + ;; Normalize label spacing + (hbut:key-to-label (hbut:label-to-key lbl))))))) + (if loc-p buts (when buts (apply #'set:create buts)))))) + +(defun hbut:map (but-func &optional regexp-match include-delims) + "Apply BUT-FUNC to a set of hbuttons in the visible part of the current buffer. +Finds both ebuts and named ibuts that match any optional REGEXP-MATCH +(may be a partial match but must include delimiters). + +Any regexp given must have grouping 1 match the label. + +BUT-FUNC must take precisely three arguments: the button label, the start +position of the delimited button label and its end position (positions +include delimiters when INCLUDE-DELIMS is non-nil)." +(sort + (nconc + (ebut:map but-func regexp-match include-delims) + (ibut:map but-func regexp-match include-delims)) + #'string<)) + +(defun hbut:map-type (but-func start-delim end-delim + &optional regexp-match include-delims) "Apply BUT-FUNC to a set of hbuttons in the visible part of the current buffer. -The set of buttons are those whose labels are delimited by -optional START-DELIM and END-DELIM and that match any optional -REGEXP-MATCH (may be a partial match but must include delimiters). +The set of buttons are those whose labels are delimited by START-DELIM +and END-DELIM and that match any optional REGEXP-MATCH (may be a partial +match but must include delimiters). START-DELIM defaults to ebut:label-start; END-DELIM defaults to -ebut:label-end. If END-DELIM is a symbol, e.g. t, then treat -START-DELIM as a regular expression which matches an entire -button string including instance numbers and -delimiters (REGEXP-MATCH is ignored in such cases). +ebut:label-end. If END-DELIM is a symbol, e.g. t, then treat START-DELIM +as a regular expression which matches an entire button string including +instance numbers and delimiters (REGEXP-MATCH is ignored in such cases). Any regexp given must have grouping 1 match the label. -BUT-FUNC must take precisely three arguments: the button label, -the start position of the delimited button label and its end -position (positions include delimiters when INCLUDE-DELIMS is -non-nil)." - (unless start-delim - (setq start-delim ebut:label-start)) +BUT-FUNC must take precisely three arguments: the button label, the start +position of the delimited button label and its end position (positions +include delimiters when INCLUDE-DELIMS is non-nil)." + (unless (stringp start-delim) + (error "(hbut:map-type): `start-delim' must be a string, not '%s'" + start-delim)) (unless end-delim - (setq end-delim ebut:label-end)) + (error "(hbut:map-type): `end-delim' must be non-nil" end-delim)) + (let* ((match-to-start-delim (when end-delim (symbolp end-delim))) (end-char (unless match-to-start-delim (substring end-delim -1))) @@ -2227,7 +2270,7 @@ BUT-FUNC must take precisely three arguments: the button label, the start position of the delimited button label and its end position (positions include delimiters when INCLUDE-DELIMS is non-nil)." - (hbut:map but-func ibut:label-start ibut:label-end regexp-match include-delims)) + (hbut:map-type but-func ibut:label-start ibut:label-end regexp-match include-delims)) (defun ibut:label-key-match (name-key) "Return a list of implicit button label keys fully matching NAME-KEY. @@ -2373,7 +2416,7 @@ BUT-FUNC must take precisely three arguments: the button name, the start position of the delimited button name and its end position (positions include delimiters when INCLUDE-DELIMS is non-nil)." - (hbut:map but-func ibut:label-start ibut:label-end regexp-match include-delims)) + (hbut:map-type but-func ibut:label-start ibut:label-end regexp-match include-delims)) (defun ibut:name-regexp (name-key &optional no-delim) "Unnormalize ibutton NAME-KEY. diff --git a/hsys-consult.el b/hsys-consult.el index 51a9eaed63..f894fcf0c1 100644 --- a/hsys-consult.el +++ b/hsys-consult.el @@ -80,6 +80,7 @@ (unless buffer-modified (kill-buffer buf)))))) +;;;###autoload (defun hsys-consult-grep (grep-includes ripgrep-globs &optional regexp max-matches path-list) "Interactively search PATH-LIST with a consult package grep command. diff --git a/hui-menu.el b/hui-menu.el index 7e4b030102..cf19c8c443 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: 14-Aug-24 at 01:35:19 by Bob Weiner +;; Last-Mod: 17-Aug-24 at 17:44:53 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -209,6 +209,24 @@ Return t if cutoff, else nil." '(hypb:display-file-with-logo "HY-ABOUT") t)) +(defconst hui-menu-org-meta-return-options + '(("Org-M-RETURN" + "----" + "----" + ["All-Programmed-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) + :style radio :selected (when (boundp 'hsys-org-enable-smart-keys) + (eq hsys-org-enable-smart-keys 'buttons))] + ["Ignored-by-Hyperbole" + (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))])) + "Settings for Hyperbole Smart Key overrides to {M-RET} within Org mode.") + (defconst hui-menu-options (append '(["All-Hyperbole-Options" (customize-browse 'hyperbole) t] "----" @@ -252,21 +270,7 @@ Return t if cutoff, else nil." '("----") (hui-menu-browser "Display-Web-Searches-in" hyperbole-web-search-browser-function) '("----") - '(("Org-M-RETURN" - "----" - "----" - ["All-Programmed-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))] - ["Hypb-Buttons-Only" - (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))] - ["Ignore" - (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))])) + hui-menu-org-meta-return-options '("----") '(("Smart-Key-Press-at-Eol" "----" @@ -443,17 +447,19 @@ REBUILD-FLAG is non-nil, in which case the menu is rebuilt." ["Help" gbut:help t] ["Link" hui:gbut-link-directly t] ["Rename" hui:gbut-rename t]) - '("HyWiki" - ["Manual" (id-info "(hyperbole)HyWiki") t] - "----" - ["Activate" hui:ibut-act t] - ["Create" hywiki-add-page-and-display t] - ["Edit" hywiki-find-page t] - ["Grep" hywiki-consult-grep t] - ["Help" hui:hbut-help t] - ["Link" hywiki-add-link t] - ["Publish" hywiki-publish-to-html t] - ["Search" hywiki-word-search t]) + (list "HyWiki" + ["Manual" (id-info "(hyperbole)HyWiki") t] + "----" + ["Activate" hui:ibut-act t] + ["Create" hywiki-add-page-and-display t] + ["Edit" hywiki-find-page t] + ["Grep-Consult" hywiki-consult-grep t] + ["Help" hui:hbut-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-search t]) '("Implicit-Button" ["Manual" (id-info "(hyperbole)Implicit Buttons") t] "----" diff --git a/hui-mini.el b/hui-mini.el index 3e215a473d..26f1a5a0a4 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: 14-Aug-24 at 00:41:19 by Bob Weiner +;; Last-Mod: 17-Aug-24 at 17:45:49 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -722,8 +722,7 @@ command instead. Typically prevents clashes over {\\`C-c' /}." ("Msg-Toggle-Ebuts" hyperbole-toggle-messaging "Toggle Hyperbole support for explicit buttons in mail and news buffers.") ("Org-M-RET/" (menu . cust-org) - "Ses how much of Hyperbole Smart Key behavior is enabled in Org mode.") - + "Set how much of Hyperbole Smart Key behavior is enabled in Org mode.") ("Referents/" (menu . cust-referents) "Set where Hyperbole button referents are displayed.") ("Smart-Key-at-Eol/" (menu . cust-eol) @@ -751,9 +750,12 @@ command instead. Typically prevents clashes over {\\`C-c' /}." )) '(cust-org . (("Org M-RETURN>") - ("All-Programmed-Contexts" (customize-save-variable 'hsys-org-enable-smart-keys t)) - ("Hypb-Buttons-Only" (customize-save-variable 'hsys-org-enable-smart-keys 'buttons)) - ("Ignore" (customize-save-variable 'hsys-org-enable-smart-keys nil)))) + ("All-Smart-Org-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) + "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."))) '(cust-referents . (("Ref Display>") ("Any-Frame" (setq hpath:display-where 'other-frame)) @@ -846,7 +848,7 @@ command instead. Typically prevents clashes over {\\`C-c' /}." "Create and display a new HyWiki page. Shows existing page names to aid in new naming.") ("Edit" hywiki-find-page "Prompt with completion for and display a HyWiki page ready for editing.") - ("Grep" hywiki-consult-grep + ("GrepConsult" hywiki-consult-grep "Grep over HyWiki pages with interactive consult-grep.") ("Help" hui:hbut-help "Report on a HyWikiWord's attributes.") @@ -854,9 +856,13 @@ 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.") + ("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.") - ("Search" hywiki-word-search + ("Toggle" hywiki-mode + "Toggle whether HyWikiWords are highlighted and active in buffers outside of the HyWiki page directory.") + ("WikiWordConsult" hywiki-word-search "Use `hywiki-consult-grep' to show occurrences of a prompted for HyWikiWord."))) '(ibut . (("IButton>") diff --git a/hui.el b/hui.el index 769249bd92..12151bd620 100644 --- a/hui.el +++ b/hui.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 19-Sep-91 at 21:42:03 -;; Last-Mod: 14-Jul-24 at 23:32:10 by Bob Weiner +;; Last-Mod: 15-Aug-24 at 22:44:16 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -843,9 +843,9 @@ Signal an error if point is not within a button." BUT defaults to the button whose label point is within." (interactive) (setq but (or but (hbut:at-p) - (ebut:get (ebut:label-to-key + (hbut:get (hbut:label-to-key (hargs:read-match "Help for button: " - (ebut:alist) nil t nil 'ebut))))) + (hbut:alist) nil t nil 'hbut))))) (unless but (hypb:error "(hbut-help): Move point to a valid Hyperbole button")) (unless (hbut:is-p but) diff --git a/man/hyperbole.html b/man/hyperbole.html index ed04e994bf..2f89605616 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 15, 2024. +Printed August 17, 2024. Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -2300,9 +2300,13 @@ through views of the whole buffer outline. </li></ol> <span id="index-hsys_002dorg_002denable_002dsmart_002dkeys-1"></span> +<span id="index-org_002dmeta_002dreturn-1"></span> <span id="index-enable-org_002dmode-support"></span> <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-Org-M_002dRET-override"></span> +<span id="index-override-Org-M_002dRET"></span> <span id="index-C_002dh-h-c-o"></span> <p>To disable Hyperbole support within Org major and minor modes, set the custom option <code>hsys-org-enable-smart-keys</code> to <code>nil</code>. Then in @@ -2310,8 +2314,7 @@ Org modes, the Action Key will simply invoke <code>org-meta-return</code>. <kbd>{C-h h c o}</kbd> (minibuffer menu Cust/Org-M-RET) will interactively customize this setting. </p> -<p>The -following table summarizes the effect of this option setting. +<p>The following table summarizes the effect of this option setting. </p></dd> </dl> @@ -4449,38 +4452,40 @@ lowercase letters only and has a corresponding <samp>HyWikiWord.org</samp> wiki page file below <code>hywiki-directory</code>. HyWikiWords in HyWiki pages are automatically highlighted and turned into hyperlinks as soon as you type them, without the need for any delimiters. However, if -you prefer to use Org-style links, imply delimit them with double -square brackets and the ‘hy:’ prefix like so: [[hy:HyWikiWord]]. -</p> -<span id="index-HyWikiWord_002c-outside-the-wiki"></span> -<span id="index-hywiki_002dmode"></span> -<span id="index-hywiki_002dmode-1"></span> -<p>HyWikiWords can also be highlighted and treated as hyperlinks in -buffers outside of the <code>hywiki-directory</code> when the global -minor mode, <code>hywiki-mode</code> is enabled via <kbd>{M-x hywiki-mode -<span class="key">RET</span>}</kbd>. -</p> -<span id="index-hywiki_002dorg_002dlink_002dtype_002drequired"></span> -<span id="index-hsys_002dorg_002denable_002dsmart_002dkeys-2"></span> -<span id="index-override-Org-M_002dRET"></span> -<span id="index-HyWiki-Action-Key"></span> -<span id="index-Action-Key_002c-HyWiki"></span> -<p>If you set <code>hywiki-org-link-type-required</code> to ‘<samp>nil</samp>’, then -you don’t need the prefix, e.g. [[MyWikiWord]]; existing HyWiki page -names then will override Org’s standard handling of such links. To -prevent Org mode’s binding of <kbd>{M-<span class="key">RET</span>}</kbd> from splitting lines -and creating new headlines when on a HyWikiWord whose page has not -yet been created, set <code>hsys-org-enable-smart-keys</code> to ‘<samp>t</samp>’ so -that Hyperbole’s Action Key does the right thing in this context. +you prefer to use Org-style links, simply delimit them with double +square brackets and the ‘hy:’ prefix like so: [[hy:MyWikiWord]]. +</p> +<span id="index-create-a-HyWikiWord"></span> +<span id="index-HyWikiWord-create"></span> +<p>To create a new HyWikiWord, insert it into a text buffer, move point +onto the word and press <kbd>{C-h h h c}</kbd> to create a new blank HyWiki +page that you can immediately start editing. HyWiki is built for +scalability and has been tested to be performant with 10,000 +HyWikiWords. +</p> +<span id="index-Org-M_002dRET-override-1"></span> +<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> +<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>. </p> <span id="index-activate-HyWiki-link"></span> <span id="index-link_002c-HyWikiWord"></span> -<p>To create or jump to a HyWiki page, simply type out a potential -HyWikiWord or move point onto one and press the Action Key -<kbd>{M-<span class="key">RET</span>}</kbd>. This will create the associated page if it does -not exist. This also highlights any other instances of HyWikiWords -across all visible Emacs windows. HyWiki is built for scalability and -has been tested to be performant with 10,000 HyWikiWords. +<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> +<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 +use the HyWiki Act menu command <kbd>{C-h h h a}</kbd> instead to jump to HyWiki +pages. </p> <span id="index-HyWiki-section-link"></span> <span id="index-link_002c-HyWiki-section"></span> @@ -4495,6 +4500,33 @@ links are highlighted regardless of whether associated sections exist or not. When activating a link with a section reference, you will get an error if the section does not exist. </p> +<span id="index-HyWikiWord_002c-outside-the-wiki"></span> +<span id="index-hywiki_002dmode"></span> +<span id="index-toggle-hywiki_002dmode"></span> +<span id="index-hywiki_002dmode-1"></span> +<span id="index-C_002dh-h-h-t"></span> +<p>HyWikiWords can also be highlighted and treated as hyperlinks in +non-special text and programming buffers outside of the +<code>hywiki-directory</code> when the global minor mode, <code>hywiki-mode</code> +is enabled. Toggle it via <kbd>{C-h h h t}</kbd> or <kbd>{M-x hywiki-mode +<span class="key">RET</span>}</kbd>. +</p> +<span id="index-hywiki_002dorg_002dlink_002dtype_002drequired"></span> +<span id="index-hsys_002dorg_002denable_002dsmart_002dkeys-2"></span> +<span id="index-override-Org-M_002dRET-2"></span> +<span id="index-HyWiki-Action-Key"></span> +<span id="index-Action-Key_002c-HyWiki"></span> +<p>If you prefer Org-style links in buffers outside of +<code>hywiki-directory</code>, use the ’hy:’ prefix, as in: +[[hy:MyWikiWord]]. If you set <code>hywiki-org-link-type-required</code> to +‘<samp>nil</samp>’, then you don’t need the prefix, e.g. [[MyWikiWord]]; +existing HyWiki page names then will override Org’s standard handling +of such links. To prevent Org mode’s binding of <kbd>{M-<span class="key">RET</span>}</kbd> +from splitting lines and creating new headlines when on a HyWikiWord +whose page has not yet been created, set +<code>hsys-org-enable-smart-keys</code> to ‘<samp>t</samp>’ so that Hyperbole’s +Action Key does the right thing in this context. +</p> <span id="index-HyWikiWord-contexts"></span> <p>Once Hyperbole has been loaded and activated, HyWikiWords (with or without delimiters) are automatically highlighted and active in @@ -4508,11 +4540,11 @@ the following contexts: <span id="index-HyWikiWord-highlighting"></span> <p>As HyWikiWords are typed, highlighting occurs after a trailing -whitespace or punctuation character is added, or when an opening -or closing parenthesis or curly brace is added to surround the -HyWikiWord. Since Org links use double square brackets and Org -targets use double or triple angle brackets, HyWikiWords within -these delimiters are ignored once the brackets are in place. +whitespace or punctuation character is added, or when the HyWikiWord +is surrounded by a matching pair of characters such as curly braces. +Since Org links use double square brackets and Org targets use double +or triple angle brackets, HyWikiWords within these delimiters are +ignored once the brackets are in place. </p> <span id="index-hywiki_002dword_002dhighlight_002dflag"></span> <p>The custom setting, <code>hywiki-word-highlight-flag</code> (default = @@ -4603,7 +4635,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 Grep Help Info Link Publish Search +<pre class="example">HyWiki> Act Create Edit GrepConsult Help Info Link Org-M-RET/ Publish Toggle WikiWordConsult </pre></div> <p>Below are descriptions of each menu item. @@ -4621,7 +4653,7 @@ It looks like this: <dt><span>Edit</span></dt> <dd><p>Prompt with completion for and display a HyWiki page ready for editing. </p></dd> -<dt><span>Grep</span></dt> +<dt><span>GrepConsult</span></dt> <dd><p>Grep over HyWiki pages with interactive <code>hywiki-consult-grep</code>. </p></dd> <dt><span>Help</span></dt> @@ -4632,11 +4664,28 @@ 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-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> +</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 +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 +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. </p></dd> -<dt><span>Search</span></dt> +<dt><span>WikiWordConsult</span></dt> <dd><p>Use <code>hywiki-consult-grep</code> to show occurrences of a prompted for HyWikiWord. </p></dd> </dl> @@ -13492,8 +13541,15 @@ Next: <a href="#Function" accesskey="n" rel="next">Function, Variable and File I <tr><td></td><td valign="top"><a href="#index-C_002dh-h-f-w-1"><code>C-h h f w</code></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-C_002dh-h-g"><code>C-h h g</code></a>:</td><td> </td><td valign="top"><a href="#Global-Buttons">Global Buttons</a></td></tr> <tr><td></td><td valign="top"><a href="#index-C_002dh-h-g-l"><code>C-h h g l</code></a>:</td><td> </td><td valign="top"><a href="#Global-Buttons">Global Buttons</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-a"><code>C-h h h a</code></a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-c"><code>C-h h h c</code></a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-c-1"><code>C-h h h c</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-C_002dh-h-h-o"><code>C-h h h o</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-C_002dh-h-h-o-a"><code>C-h h h o a</code></a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-o-i"><code>C-h h h o i</code></a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> <tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-p"><code>C-h h h p</code></a>:</td><td> </td><td valign="top"><a href="#HyWiki">HyWiki</a></td></tr> <tr><td></td><td valign="top"><a href="#index-C_002dh-h-h-p-1"><code>C-h h h p</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-C_002dh-h-h-t"><code>C-h h h t</code></a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> <tr><td></td><td valign="top"><a href="#index-C_002dh-h-i"><code>C-h h i</code></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-C_002dh-h-i-a"><code>C-h h i a</code></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-C_002dh-h-i-c"><code>C-h h i c</code></a>:</td><td> </td><td valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr> @@ -13561,6 +13617,8 @@ Next: <a href="#Function" accesskey="n" rel="next">Function, Variable and File I <tr><td></td><td valign="top"><a href="#index-HyControl_002c-see-screen"><code>HyControl, see screen</code></a>:</td><td> </td><td valign="top"><a href="#HyControl">HyControl</a></td></tr> <tr><td></td><td valign="top"><a href="#index-HyControl_002c-see-screen-1"><code>HyControl, see screen</code></a>:</td><td> </td><td valign="top"><a href="#HyControl">HyControl</a></td></tr> <tr><td></td><td valign="top"><a href="#index-HyRolo_002c-see-rolo"><code>HyRolo, see rolo</code></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-HyWiki_002c-C_002dh-h-h-c"><code>HyWiki, C-h h h c</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_002c-C_002dh-h-h-o"><code>HyWiki, C-h h h o</code></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="Key-Index_ky_letter-I">I</th><td></td><td></td></tr> <tr><td></td><td valign="top"><a href="#index-I"><code>I</code></a>:</td><td> </td><td valign="top"><a href="#HyControl">HyControl</a></td></tr> @@ -14483,6 +14541,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ <tr><td></td><td valign="top"><a href="#index-org_002dctrl_002dc_002dctrl_002dc"><code>org-ctrl-c-ctrl-c</code></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_002ddirectory">org-directory</a>:</td><td> </td><td valign="top"><a href="#Glossary">Glossary</a></td></tr> <tr><td></td><td valign="top"><a href="#index-org_002dmeta_002dreturn"><code>org-meta-return</code></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_002dmeta_002dreturn-1"><code>org-meta-return</code></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_002droam_002ddirectory">org-roam-directory</a>:</td><td> </td><td valign="top"><a href="#Glossary">Glossary</a></td></tr> <tr><td></td><td valign="top"><a href="#index-outline_002dminor_002dmode-1"><code>outline-minor-mode</code></a>:</td><td> </td><td valign="top"><a href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline Mode</a></td></tr> <tr><td></td><td valign="top"><a href="#index-outline_002dmode-1"><code>outline-mode</code></a>:</td><td> </td><td valign="top"><a href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline Mode</a></td></tr> @@ -14856,6 +14915,7 @@ Previous: <a href="#Function" accesskey="p" rel="prev">Function, Variable and Fi <tr><td></td><td valign="top"><a href="#index-copying">copying</a>:</td><td> </td><td valign="top"><a href="#Relocating-and-Copying">Relocating and Copying</a></td></tr> <tr><td></td><td valign="top"><a href="#index-copying-things-to-kill-ring">copying things to kill ring</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-copying-things-to-registers">copying things to registers</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-create-a-HyWikiWord">create a HyWikiWord</a>:</td><td> </td><td valign="top"><a href="#HyWikiWords">HyWikiWords</a></td></tr> <tr><td></td><td valign="top"><a href="#index-create-link-button">create link button</a>:</td><td> </td><td valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr> <tr><td></td><td valign="top"><a href="#index-create_002dtime-attribute">create-time attribute</a>:</td><td> </td><td valign="top"><a href="#Cell-Attributes">Cell Attributes</a></td></tr> <tr><td></td><td valign="top"><a href="#index-creating-explicit-links">creating explicit links</a>:</td><td> </td><td valign="top"><a href="#By-Link">By Link</a></td></tr> @@ -14872,6 +14932,7 @@ 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_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> @@ -15178,6 +15239,7 @@ Previous: <a href="#Function" accesskey="p" rel="prev">Function, Variable and Fi <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 colspan="4"> <hr></td></tr> @@ -15408,6 +15470,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-Cust_002fDebug_002dToggle">menu item, Cust/Debug-Toggle</a>:</td><td> </td><td valign="top"><a href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr> <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts">menu item, Cust/Msg-Toggle-Ebuts</a>:</td><td> </td><td valign="top"><a href="#Buttons-in-Mail">Buttons in Mail</a></td></tr> <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1">menu item, Cust/Msg-Toggle-Ebuts</a>:</td><td> </td><td valign="top"><a href="#Buttons-in-News">Buttons in News</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-menu-item_002c-Cust_002fOrg_002dM_002dRET">menu item, Cust/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-menu-item_002c-Doc_002fSmartKeys">menu item, Doc/SmartKeys</a>:</td><td> </td><td valign="top"><a href="#Smart-Key-Operations">Smart Key Operations</a></td></tr> <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Ebut_002fCreate">menu item, Ebut/Create</a>:</td><td> </td><td valign="top"><a href="#By-Menu">By Menu</a></td></tr> <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Ebut_002fEdit">menu item, Ebut/Edit</a>:</td><td> </td><td valign="top"><a href="#By-Menu">By Menu</a></td></tr> @@ -15420,6 +15483,10 @@ Previous: <a href="#Function" accesskey="p" rel="prev">Function, Variable and Fi <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Gbut_002fLink">menu item, Gbut/Link</a>:</td><td> </td><td valign="top"><a href="#Global-Buttons">Global Buttons</a></td></tr> <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_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-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> @@ -15571,6 +15638,9 @@ 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-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-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> @@ -15618,7 +15688,9 @@ Previous: <a href="#Function" accesskey="p" rel="prev">Function, Variable and Fi <tr><td></td><td valign="top"><a href="#index-outliner">outliner</a>:</td><td> </td><td valign="top"><a href="#Koutliner">Koutliner</a></td></tr> <tr><td></td><td valign="top"><a href="#index-outliner-commands">outliner commands</a>:</td><td> </td><td valign="top"><a href="#Menu-Commands">Menu Commands</a></td></tr> <tr><td></td><td valign="top"><a href="#index-outliner-keys">outliner keys</a>:</td><td> </td><td valign="top"><a href="#Koutliner-Keys">Koutliner Keys</a></td></tr> -<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="#HyWikiWords">HyWikiWords</a></td></tr> +<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-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> @@ -15834,6 +15906,7 @@ Previous: <a href="#Function" accesskey="p" rel="prev">Function, Variable and Fi <tr><td></td><td valign="top"><a href="#index-toc-implicit-button-type">toc implicit button type</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-todotxt_002dmode">todotxt-mode</a>:</td><td> </td><td valign="top"><a href="#Smart-Key-_002d-Todotxt-Mode">Smart Key - Todotxt Mode</a></td></tr> <tr><td></td><td valign="top"><a href="#index-toggle-HyControl-mode">toggle HyControl mode</a>:</td><td> </td><td valign="top"><a href="#HyControl">HyControl</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-toggle-hywiki_002dmode">toggle 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-toggle-key-bindings">toggle key bindings</a>:</td><td> </td><td valign="top"><a href="#Invocation">Invocation</a></td></tr> <tr><td></td><td valign="top"><a href="#index-toggling-blank-lines">toggling blank lines</a>:</td><td> </td><td valign="top"><a href="#View-Specs">View Specs</a></td></tr> <tr><td></td><td valign="top"><a href="#index-top_002dlevel-cell">top-level cell</a>:</td><td> </td><td valign="top"><a href="#Creating-Outlines">Creating Outlines</a></td></tr> diff --git a/man/hyperbole.info b/man/hyperbole.info index 50e6010815..ac25c12138 100644 Binary files a/man/hyperbole.info and b/man/hyperbole.info differ diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf index 5b8fb12766..01f7c3b487 100644 Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ diff --git a/man/hyperbole.texi b/man/hyperbole.texi index 6da9b8a03f..25ddbf110a 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 15, 2024. +Printed August 17, 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 15, 2024 +August 17, 2024 Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -2417,9 +2417,13 @@ through views of the whole buffer outline. @end enumerate @vindex hsys-org-enable-smart-keys +@findex org-meta-return @cindex enable org-mode support @cindex disable org-mode support @cindex inhibit org-mode support +@cindex menu item, Cust/Org-M-RET +@cindex Org M-RET override +@cindex override Org M-RET @kindex C-h h c o To disable Hyperbole support within Org major and minor modes, set the custom option @code{hsys-org-enable-smart-keys} to @code{nil}. Then in @@ -2427,8 +2431,7 @@ Org modes, the Action Key will simply invoke @code{org-meta-return}. @bkbd{C-h h c o} (minibuffer menu Cust/Org-M-RET) will interactively customize this setting. -The -following table summarizes the effect of this option setting. +The following table summarizes the effect of this option setting. @end table @smallexample @@ -4354,38 +4357,40 @@ lowercase letters only and has a corresponding @file{HyWikiWord.org} wiki page file below @code{hywiki-directory}. HyWikiWords in HyWiki pages are automatically highlighted and turned into hyperlinks as soon as you type them, without the need for any delimiters. However, if -you prefer to use Org-style links, imply delimit them with double -square brackets and the `hy:' prefix like so: [[hy:HyWikiWord]]. - -@cindex HyWikiWord, outside the wiki -@cindex hywiki-mode -@findex hywiki-mode -HyWikiWords can also be highlighted and treated as hyperlinks in -buffers outside of the @code{hywiki-directory} when the global -minor mode, @code{hywiki-mode} is enabled via @bkbd{M-x hywiki-mode -@key{RET}}. - -@vindex hywiki-org-link-type-required -@vindex hsys-org-enable-smart-keys +you prefer to use Org-style links, simply delimit them with double +square brackets and the `hy:' prefix like so: [[hy:MyWikiWord]]. + +@cindex create a HyWikiWord +@cindex HyWikiWord create +To create a new HyWikiWord, insert it into a text buffer, move point +onto the word and press @bkbd{C-h h h c} to create a new blank HyWiki +page that you can immediately start editing. HyWiki is built for +scalability and has been tested to be performant with 10,000 +HyWikiWords. + +@cindex Org M-RET override @cindex override Org M-RET -@cindex HyWiki Action Key -@cindex Action Key, HyWiki -If you set @code{hywiki-org-link-type-required} to @samp{nil}, then -you don't need the prefix, e.g. [[MyWikiWord]]; existing HyWiki page -names then will override Org's standard handling of such links. To -prevent Org mode's binding of @bkbd{M-@key{RET}} from splitting lines -and creating new headlines when on a HyWikiWord whose page has not -yet been created, set @code{hsys-org-enable-smart-keys} to @samp{t} so -that Hyperbole's Action Key does the right thing in this context. +@kindex C-h h h o a +@kindex C-h h h c +@cindex menu item, HyWiki/Org-M-RET/All-Smart-Org-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}. @cindex activate HyWiki link @cindex link, HyWikiWord -To create or jump to a HyWiki page, simply type out a potential -HyWikiWord or move point onto one and press the Action Key -@bkbd{M-@key{RET}}. This will create the associated page if it does -not exist. This also highlights any other instances of HyWikiWords -across all visible Emacs windows. HyWiki is built for scalability and -has been tested to be performant with 10,000 HyWikiWords. +@kindex C-h h h a +@kindex C-h h h o i +@cindex menu item, HyWiki/Org-M-RET/Ignored-by-Hyperbole +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 +use the HyWiki Act menu command @bkbd{C-h h h a} instead to jump to HyWiki +pages. @cindex HyWiki section link @cindex link, HyWiki section @@ -4400,6 +4405,33 @@ links are highlighted regardless of whether associated sections exist or not. When activating a link with a section reference, you will get an error if the section does not exist. +@cindex HyWikiWord, outside the wiki +@cindex hywiki-mode +@cindex toggle hywiki-mode +@findex hywiki-mode +@kindex C-h h h t +HyWikiWords can also be highlighted and treated as hyperlinks in +non-special text and programming buffers outside of the +@code{hywiki-directory} when the global minor mode, @code{hywiki-mode} +is enabled. Toggle it via @bkbd{C-h h h t} or @bkbd{M-x hywiki-mode +@key{RET}}. + +@vindex hywiki-org-link-type-required +@vindex hsys-org-enable-smart-keys +@cindex override Org M-RET +@cindex HyWiki Action Key +@cindex Action Key, HyWiki +If you prefer Org-style links in buffers outside of +@code{hywiki-directory}, use the 'hy:' prefix, as in: +[[hy:MyWikiWord]]. If you set @code{hywiki-org-link-type-required} to +@samp{nil}, then you don't need the prefix, e.g. [[MyWikiWord]]; +existing HyWiki page names then will override Org's standard handling +of such links. To prevent Org mode's binding of @bkbd{M-@key{RET}} +from splitting lines and creating new headlines when on a HyWikiWord +whose page has not yet been created, set +@code{hsys-org-enable-smart-keys} to @samp{t} so that Hyperbole's +Action Key does the right thing in this context. + @cindex HyWikiWord contexts Once Hyperbole has been loaded and activated, HyWikiWords (with or without delimiters) are automatically highlighted and active in @@ -4413,11 +4445,11 @@ the following contexts: @cindex HyWikiWord highlighting As HyWikiWords are typed, highlighting occurs after a trailing -whitespace or punctuation character is added, or when an opening -or closing parenthesis or curly brace is added to surround the -HyWikiWord. Since Org links use double square brackets and Org -targets use double or triple angle brackets, HyWikiWords within -these delimiters are ignored once the brackets are in place. +whitespace or punctuation character is added, or when the HyWikiWord +is surrounded by a matching pair of characters such as curly braces. +Since Org links use double square brackets and Org targets use double +or triple angle brackets, HyWikiWords within these delimiters are +ignored once the brackets are in place. @vindex hywiki-word-highlight-flag The custom setting, @code{hywiki-word-highlight-flag} (default = @@ -4499,10 +4531,10 @@ Customize the value of this function if necessary with: The HyWiki minibuffer menu offers quick access to important HyWiki features. It looks like this: -@example +@smallexample @noindent -HyWiki> Act Create Edit Grep Help Info Link Publish Search -@end example +HyWiki> Act Create Edit GrepConsult Help Info Link Org-M-RET/ Publish Toggle WikiWordConsult +@end smallexample @noindent Below are descriptions of each menu item. @@ -4517,7 +4549,7 @@ Activate HyWikiWord link at point. Create and display a new HyWiki page. Shows existing page names to aid in new naming. @item Edit Prompt with completion for and display a HyWiki page ready for editing. -@item Grep +@item GrepConsult Grep over HyWiki pages with interactive @code{hywiki-consult-grep}. @item Help Report on a HyWikiWord's attributes. @@ -4525,9 +4557,25 @@ 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. +@kindex C-h h h o +@kindex HyWiki, C-h h h o +@kindex C-h h h c +@kindex HyWiki, C-h h h c +@cindex menu item, HyWiki/Org-M-RET +@cindex menu item, HyWiki/Org-M-RET/Hyperbole-Buttons-Only +@cindex customize Org M-RET +@cindex Org M-RET customize +@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 +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 +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. -@item Search +@item WikiWordConsult Use @code{hywiki-consult-grep} to show occurrences of a prompted for HyWikiWord. @end table