HyWikiWords
A HyWikiWord is a capitalized word that contains upper and lowercase letters only and has a corresponding HyWikiWord.org wiki page file below 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, simply delimit them with double square brackets and the ‘hy:’ prefix like so: [[hy:MyWikiWord]].
To create a new HyWikiWord, insert it into a text buffer, move point onto the word and press {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.
The Action Key can create new HyWiki pages when on an undefined HyWikiWord if you change the setting that controls the Org mode {M-RET} binding. Have Hyperbole override Org’s control of that key in all Action and Assist Key contexts with the ‘All-Hyperbole-Contexts’ setting bound to {C-h h h o a}.
To jump to a HyWiki page, simply move point onto any highlighted HyWikiWord and press the Action Key {M-RET}. This also highlights any other instances of HyWikiWords across all visible Emacs windows. If you have set the Org {M-RET} option to ‘None’ with {C-h h h o n}, then you will have to use the HyWiki Act menu command {C-h h h a} instead to jump to HyWiki pages.
HyWikiWord links can also jump to a section headline within a page by following the page name with a ’#’ character and then the full section headline name (sans any leading asterisks). For example, if your Emacs page has a "Major Modes" section, then either Emacs#Major-Modes or [[hy:Emacs#Major Modes]] will work as a link to that section. Note that without the square bracket delimiters, you must convert spaces in section names to ’-’ characters. As long as the page exists, section 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.
If you prefer Org-style links in buffers outside of hywiki-directory, use the ’hy:’ prefix, as in: [[hy:MyWikiWord]]. If you set hywiki-org-link-type-required to ‘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 {M-RET} from splitting lines and creating new headlines when on a HyWikiWord whose page has not yet been created, set hsys-org-enable-smart-keys to ‘t’ so that Hyperbole’s Action Key does the right thing in this context.
Once Hyperbole has been loaded and activated, HyWikiWords (with or without delimiters) are automatically highlighted and active based on the setting of hywiki-mode. Set it with {C-h h h m} ModeSet/. See ModeSet/, for the three settings.
Modeinto one of these three states:
{M-x hywiki-mode RET} will also toggle between disabling HyWikiWords everywhere and enabling them in all editable buffers.
——— "The default, non-nil value treats HyWikiWords in HyWiki pages as hyperlinks. A nil value disables HyWikiWord hyperlink buttons in both HyWiki pages and all other buffers (since it also disables ‘hywiki-mode’).
Outside of HyWiki pages, the global minor mode ‘hywiki-mode’ must be manually enabled for auto-HyWikiWord highlighting. Interactively, {C-h h h m a} does this; programmatically, use ‘(hywiki-mode :all)’ to enable it.
Use ‘hywiki-active-in-current-buffer-p’ to determine if HyWikiWord hyperlinks are currently active in a buffer or not.
Regardless of this flag, HyWikiWords in Org links and targets are not highlighted nor treated as hyperlinks; they are handled normally by Org." ——–
As HyWikiWords are typed, highlighting occurs after a trailing whitespace or punctuation character is added, or when the HyWikiWord is surrounded by a matching pair of characters such as curly braces or single square brackets. 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.
The custom setting, hywiki-exclude-major-modes (default = ‘nil’), is a list of major modes to exclude from HyWikiWord auto-highlighting and recognition.
Within programming modes, HyWikiWords are highlighted and hyperlinked within comments only. For programming modes in which you want HyWikiWords recognized everywhere, add them to the custom setting, hywiki-highlight-all-in-prog-modes (default = '(lisp-interaction-mode)).
HyWiki adds one implicit button type to Hyperbole: hywiki-word, which creates and displays HyWikiWord pages. This is one of the lowest priority implicit button types so that it triggers only when other types are not recognized first.