Function: hywiki-make-referent-hasht
hywiki-make-referent-hasht is a byte-compiled function defined in
hywiki.el.
Signature
(hywiki-make-referent-hasht)
Documentation
Rebuld referent hasht from list of HyWiki page files and non-page entries.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hywiki.el
(defun hywiki-make-referent-hasht ()
"Rebuld referent hasht from list of HyWiki page files and non-page entries."
(setq hywiki--any-wikiword-regexp-list nil
hywiki--pages-directory hywiki-directory)
;; Try to load from a .hywiki.eld cache file if up-to-date
(let* ((cache-file (hywiki-cache-default-file))
(cache-buffer (when (file-readable-p cache-file)
(find-file-noselect cache-file)))
(hywiki-loaded-flag (when cache-buffer
(with-current-buffer cache-buffer
(widen)
(goto-char (point-min))
;; Skip past initial comments
(when (re-search-forward "^(" nil t)
(goto-char (1- (point)))
(condition-case ()
(progn (eval (read (buffer-string)))
t)
(error nil)))))))
(if (and hywiki-loaded-flag (not (hywiki-directory-modified-p)))
;; Rebuild from loaded data
(prog1 (setq hywiki--referent-hasht (hash-make hywiki--referent-alist t))
(setq hywiki--referent-alist nil))
;; Read `hywiki-directory' for current page files and merge with
;; non-page referents
(let* ((page-files (hywiki-get-page-files))
(non-page-elts (when (hash-table-p hywiki--referent-hasht)
(delq nil
(hash-map 'hywiki-non-page-elt
hywiki--referent-hasht))))
(non-page-hasht (hash-make non-page-elts))
(key)
(page-elts (delq nil (mapcar (lambda (file)
(setq key (file-name-sans-extension file))
(unless (hash-get key non-page-hasht)
(cons (cons 'page file) key)))
page-files))))
(setq hywiki--referent-hasht
(if non-page-elts
(hash-merge non-page-hasht
(hash-make page-elts))
(hash-make page-elts)))))))