Fixing a few issues
This commit is contained in:
@@ -176,40 +176,6 @@ Created with %c on <a href=\"https://www.archlinux.org/\">Arch</a> <a href=\"htt
|
||||
(defvar z/build-full-rebuild t
|
||||
"If non-nil, generate expensive artifacts like search-index.json.")
|
||||
|
||||
(defun z/generate-all-files-page ()
|
||||
"Generate all-files.org from search-index.json."
|
||||
(let* ((json-file "~/master-folder/org_files/org_roam/output/search-index.json")
|
||||
(out-file "~/master-folder/org_files/org_roam/all-files.org")
|
||||
(data (append (json-read-file json-file) nil)))
|
||||
|
||||
(message "🔎 Loaded %d entries from search-index.json" (length data))
|
||||
|
||||
(with-temp-file out-file
|
||||
(insert "#+title: All Files\n")
|
||||
(insert "#+options: toc:nil\n\n")
|
||||
(insert "A complete alphabetical index of all published pages.\n\n")
|
||||
|
||||
(setq data
|
||||
(sort data
|
||||
(lambda (a b)
|
||||
(string-lessp
|
||||
(downcase (cdr (assoc 'title a)))
|
||||
(downcase (cdr (assoc 'title b)))))))
|
||||
|
||||
(let ((current-letter nil))
|
||||
(dolist (entry data)
|
||||
(let* ((title (cdr (assoc 'title entry)))
|
||||
(raw-url (cdr (assoc 'url entry)))
|
||||
(id (cdr (assoc 'id entry)))
|
||||
(letter (upcase (substring title 0 1))))
|
||||
|
||||
(unless (equal letter current-letter)
|
||||
(setq current-letter letter)
|
||||
(insert (format "* %s\n" letter)))
|
||||
|
||||
(insert (format "- [[id:%s][%s]]\n" id title))))))))
|
||||
|
||||
|
||||
;; Babel language support
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
@@ -281,41 +247,6 @@ Created with %c on <a href=\"https://www.archlinux.org/\">Arch</a> <a href=\"htt
|
||||
(setq org-html-link-home "")
|
||||
(setq org-html-link-up "")
|
||||
|
||||
(defun z/generate-search-index (&rest _)
|
||||
"Generate search-index.json with title, url, and id."
|
||||
(when z/build-full-rebuild
|
||||
(message "Generating search-index.json...")
|
||||
(let* ((org-dir "~/master-folder/org_files/org_roam/")
|
||||
(out-file "~/master-folder/org_files/org_roam/output/search-index.json")
|
||||
(files
|
||||
(seq-filter
|
||||
(lambda (f)
|
||||
(not (string-match-p "/\\.#[^/]+\\.org$" f)))
|
||||
(directory-files-recursively org-dir "\\.org$")))
|
||||
(index '()))
|
||||
(dolist (file files)
|
||||
(with-current-buffer (find-file-noselect file)
|
||||
(let ((id (org-id-get nil)))
|
||||
(when id
|
||||
(push `((title . ,(or (org-get-title) "Untitled"))
|
||||
(url . ,(concat "/" (file-name-base file) ".html"))
|
||||
(id . ,id))
|
||||
index)))))
|
||||
;; De-duplicate by ID
|
||||
(setq index
|
||||
(cl-remove-duplicates
|
||||
index
|
||||
:key (lambda (e) (cdr (assoc 'id e)))
|
||||
:test #'string=))
|
||||
(with-temp-file out-file
|
||||
(insert (json-encode index)))
|
||||
(message "search-index.json generated (%d entries)." (length index)))))
|
||||
|
||||
|
||||
(add-hook 'org-publish-after-publishing-hook
|
||||
#'z/generate-search-index)
|
||||
|
||||
|
||||
|
||||
|
||||
(setq org-publish-project-alist
|
||||
@@ -353,7 +284,6 @@ Created with %c on <a href=\"https://www.archlinux.org/\">Arch</a> <a href=\"htt
|
||||
(interactive)
|
||||
(setq z/build-full-rebuild t)
|
||||
(org-id-update-id-locations)
|
||||
(z/generate-all-files-page)
|
||||
(org-publish "org-roam" t)
|
||||
(org-publish "org-static" t)
|
||||
(message "✅ Full rebuild complete"))
|
||||
@@ -362,7 +292,6 @@ Created with %c on <a href=\"https://www.archlinux.org/\">Arch</a> <a href=\"htt
|
||||
"Fast rebuild: Org + assets only (no JSON)."
|
||||
(interactive)
|
||||
(setq z/build-full-rebuild nil)
|
||||
(z/generate-all-files-page)
|
||||
(org-publish "org-roam" t)
|
||||
(org-publish "org-static" t)
|
||||
(message "⚡ Fast rebuild complete (no search index)"))
|
||||
|
||||
Reference in New Issue
Block a user