From 376841ef8ee82afcfcdbfe95d196931c0b5c931e Mon Sep 17 00:00:00 2001 From: Magdalena Szweda Date: Fri, 18 Sep 2026 20:01:57 +0200 Subject: so so much stuff --- +org.el | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 +org.el (limited to '+org.el') diff --git a/+org.el b/+org.el new file mode 100644 index 0000000..fbd57db --- /dev/null +++ b/+org.el @@ -0,0 +1,104 @@ +;;; $DOOMDIR/+org.el -*- lexical-binding: t; -*- +(setq org-directory "~/org/") +(after! org + (setq + org-startup-indented t + org-pretty-entities t + org-hide-emphasis-markers t + org-capture-templates-contexts nil + org-confirm-babel-evaluate nil) + (org-babel-do-load-languages + 'org-babel-load-languages + '((emacs-lisp . t) + (python . t) + (C . t) + (lisp . t)))) + +(add-hook 'org-capture-mode-hook #'delete-other-windows) +(add-hook 'org-capture-mode-hook + (lambda () (set-window-dedicated-p (selected-window) nil))) + +(after! org-roam + (setq org-roam-directory (file-truename "~/org/")) + (org-roam-db-autosync-mode) + + (defun my/org-roam-short-id () + (let ((chars "abcdefghijklmnopqrstuvwxyz0123456789")) + (apply #'string + (cl-loop repeat 4 + collect (aref chars (random (length chars))))))) + + (setq org-roam-capture-templates + '(("d" "default" plain + "* %?" + :if-new + (file+head + (lambda () (concat (my/org-roam-short-id) ".org")) + "#+TITLE: %^{title|Untitled}\n#+FILETAGS: :%^{tags}:\n\n") + :unnarrowed t))) + + (cl-defmethod org-roam-node-file-stem ((node org-roam-node)) + (file-name-base (org-roam-node-file node))) + + (setq org-roam-node-display-template + (concat "${title:*} " (propertize "${file-stem}" 'face 'org-tag))) + + (setq org-roam-mode-sections + '(org-roam-backlinks-section + org-roam-reflinks-section + org-roam-unlinked-references-section)) + + (defun my/org-roam-check-self-link () + (when-let* ((node (org-roam-node-at-point)) + (id (org-roam-node-id node))) + (save-excursion + (goto-char (point-min)) + (while (re-search-forward org-link-any-re nil t) + (when (string-match-p (regexp-quote id) (match-string 0)) + (message "Warning: self-link detected")))))) + + (defun my/org-roam-check-dead-links () + (dolist (link (org-roam-db-query + [:select [dest] :from links + :where (= source $s1)] (org-roam-id-at-point))) + (unless (org-roam-db-query [:select id :from nodes :where (= id $s1)] (car link)) + (message "Error: dead link to %s" (car link))))) + + (add-hook 'before-save-hook + (lambda () + (when (org-roam-file-p) + (my/org-roam-check-self-link) + (my/org-roam-check-dead-links))) + nil t) + (map! + :leader + :prefix ("n r" . "roam") + :desc "Find node" "f" #'org-roam-node-find + :desc "Insert node" "i" #'org-roam-node-insert + :desc "Backlinks" "b" #'org-roam-buffer-toggle + :desc "Capture" "c" #'org-roam-capture + :desc "Graph" "g" #'org-roam-graph + :desc "Random node" "r" #'org-roam-node-random + :desc "Toggle buffer" "t" #'org-roam-buffer-toggle + :desc "Open link" "o" #'org-open-at-point + :desc "Jump back" "O" #'org-mark-ring-goto)) +(with-eval-after-load 'ox-html + (setq org-html-xml-declaration nil + org-html-doctype "html5" + org-html-html5-fancy t + org-html-head-include-default-style nil + org-html-postamble nil)) +(use-package! websocket :after org-roam) +(use-package! org-roam-ui + :after org-roam + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t)) +(use-package! org-appear + :hook (org-mode . org-appear-mode) + :config + (setq org-appear-autoemphasis t + org-appear-autolinks t + org-appear-autosubmarkers t + org-appear-autoentities t)) -- cgit v1.2.3