Fixing a few issues

This commit is contained in:
2026-01-03 00:10:12 +00:00
parent 53f279f7d6
commit be7841bbb7
9 changed files with 64 additions and 82 deletions

View File

@@ -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)"))