fixing a lot of things and a working publish system
This commit is contained in:
parent
ee10fa5485
commit
18afcfb5b0
3 changed files with 102 additions and 184 deletions
23
README.org
23
README.org
|
|
@ -1626,17 +1626,16 @@ Org-Superstar makes the stars at the beginning of the line in =org-mode= a lot p
|
|||
*** Org Modern
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package org-modern
|
||||
:custom
|
||||
(org-modern-timestamp nil)
|
||||
(org-modern-table nil)
|
||||
(org-modern-keyword nil)
|
||||
(org-modern-star '("◉" "○" "◈" "◇" "✳"))
|
||||
:config
|
||||
|
||||
(setq org-modern-timestamp nil
|
||||
org-modern-table nil
|
||||
org-modern-star '("◉" "○" "◈" "◇" "✳"))
|
||||
|
||||
(custom-set-faces
|
||||
'(org-modern-tag ((t :background "#9aedfe" :foreground "#282a36")))
|
||||
)
|
||||
(global-org-modern-mode +1)
|
||||
)
|
||||
(global-org-modern-mode +1))
|
||||
#+END_SRC
|
||||
|
||||
*** Org Additions from Doom Emacs
|
||||
|
|
@ -2782,6 +2781,12 @@ Vertico is an alternative to Selectrum. Maybe using it will give me an even bett
|
|||
|
||||
;; A few more useful configurations...
|
||||
(use-package emacs
|
||||
:defer nil
|
||||
:bind
|
||||
(:map evil-normal-state-map
|
||||
("SPC r j" . jump-to-register)
|
||||
("SPC r s" . copy-to-register)
|
||||
("SPC r m" . bookmark-set))
|
||||
:init
|
||||
;; Add prompt indicator to `completing-read-multiple'.
|
||||
;; Alternatively try `consult-completing-read-multiple'.
|
||||
|
|
@ -2808,6 +2813,9 @@ Consult has a lot of nice functions like Ivy's Counsel functions (enhanced searc
|
|||
#+begin_src emacs-lisp
|
||||
(use-package consult
|
||||
:after vertico
|
||||
:bind
|
||||
(:map evil-normal-state-map
|
||||
("SPC s m" . consult-bookmark))
|
||||
:config
|
||||
(setq consult-narrow-key "<"
|
||||
consult-project-root-function 'projectile-project-root)
|
||||
|
|
@ -2852,7 +2860,6 @@ Consult has a lot of nice functions like Ivy's Counsel functions (enhanced searc
|
|||
"si" 'consult-imenu
|
||||
"so" 'consult-org-heading
|
||||
"sf" 'consult-fd
|
||||
"sm" 'bookmark-jump
|
||||
"sF" 'consult-flymake
|
||||
"sx" 'xref-show-xrefs
|
||||
"sy" 'consult-yank-from-kill-ring
|
||||
|
|
|
|||
23
init.el
23
init.el
|
|
@ -1127,17 +1127,16 @@ lesson file in my notes/lessons folder"
|
|||
))
|
||||
|
||||
(use-package org-modern
|
||||
:custom
|
||||
(org-modern-timestamp nil)
|
||||
(org-modern-table nil)
|
||||
(org-modern-keyword nil)
|
||||
(org-modern-star '("◉" "○" "◈" "◇" "✳"))
|
||||
:config
|
||||
|
||||
(setq org-modern-timestamp nil
|
||||
org-modern-table nil
|
||||
org-modern-star '("◉" "○" "◈" "◇" "✳"))
|
||||
|
||||
(custom-set-faces
|
||||
'(org-modern-tag ((t :background "#9aedfe" :foreground "#282a36")))
|
||||
)
|
||||
(global-org-modern-mode +1)
|
||||
)
|
||||
(global-org-modern-mode +1))
|
||||
|
||||
;;; lang/org/autoload/org.el -*- lexical-binding: t; -*-
|
||||
|
||||
|
|
@ -1968,6 +1967,12 @@ Describe everything that follows in the present tense, in response to what I typ
|
|||
|
||||
;; A few more useful configurations...
|
||||
(use-package emacs
|
||||
:defer nil
|
||||
:bind
|
||||
(:map evil-normal-state-map
|
||||
("SPC r j" . jump-to-register)
|
||||
("SPC r s" . copy-to-register)
|
||||
("SPC r m" . bookmark-set))
|
||||
:init
|
||||
;; Add prompt indicator to `completing-read-multiple'.
|
||||
;; Alternatively try `consult-completing-read-multiple'.
|
||||
|
|
@ -1990,6 +1995,9 @@ Describe everything that follows in the present tense, in response to what I typ
|
|||
|
||||
(use-package consult
|
||||
:after vertico
|
||||
:bind
|
||||
(:map evil-normal-state-map
|
||||
("SPC s m" . consult-bookmark))
|
||||
:config
|
||||
(setq consult-narrow-key "<"
|
||||
consult-project-root-function 'projectile-project-root)
|
||||
|
|
@ -2034,7 +2042,6 @@ Describe everything that follows in the present tense, in response to what I typ
|
|||
"si" 'consult-imenu
|
||||
"so" 'consult-org-heading
|
||||
"sf" 'consult-fd
|
||||
"sm" 'bookmark-jump
|
||||
"sF" 'consult-flymake
|
||||
"sx" 'xref-show-xrefs
|
||||
"sy" 'consult-yank-from-kill-ring
|
||||
|
|
|
|||
240
org-publish.el
240
org-publish.el
|
|
@ -6,6 +6,70 @@
|
|||
(require 's)
|
||||
(require 'f)
|
||||
|
||||
(defun async-export-function (chunk index)
|
||||
"A function to build a future that will export all it's chunk's files"
|
||||
(let ((func `(lambda ()
|
||||
(setq lexical-binding t)
|
||||
(shell-command (format "emacsclient -e '(message \"%s\")'" ',chunk))
|
||||
(require 's)
|
||||
(require 'org)
|
||||
(require 'ox)
|
||||
(require 'ox-html)
|
||||
(require 'htmlize)
|
||||
(require 'denote)
|
||||
(require 'denote-org)
|
||||
(cl-loop for file in ',chunk do
|
||||
(setq find-file-hook '())
|
||||
(setq org-mode-hook '())
|
||||
;; (message "%s" file)
|
||||
(shell-command (format "emacsclient -e '(message \"%s\")" file))
|
||||
(with-current-buffer (find-file file)
|
||||
(re-search-forward ".*EXPORT_FILE_NAME:" nil t)
|
||||
(beginning-of-line)
|
||||
(let* ((export-line? (search-forward "EXPORT_FILE_NAME" (line-end-position) t))
|
||||
(export-line (when export-line?
|
||||
(delete-and-extract-region
|
||||
(line-beginning-position) (line-end-position))))
|
||||
(find-file-hook '())
|
||||
(gc-cons-threshold 50000000)
|
||||
(org-mode-hook '())
|
||||
(create-lockfiles nil)
|
||||
(org-export-with-broken-links 'mark)
|
||||
(org-export-with-section-numbers nil)
|
||||
(org-html-html5-fancy t)
|
||||
(org-html-validation-link nil)
|
||||
(make-backup-files nil)
|
||||
(org-export-with-title t)
|
||||
(org-html-head-include-default-style nil)
|
||||
(org-html-head "<link rel=\"stylesheet\" href=\"../static/pico.snazzy.css\">")
|
||||
(denote-directory "/home/chris/docs/site/content")
|
||||
(export-directory
|
||||
(concat "/home/chris/"
|
||||
"docs/site/public/"
|
||||
(if (s-contains? "content/teaching" file)
|
||||
"teaching/"
|
||||
"notes/")))
|
||||
(html-file (concat export-directory
|
||||
(org-export-output-file-name ".html")))
|
||||
(org-export-coding-system org-html-coding-system))
|
||||
(denote-org-convert-links-to-file-type)
|
||||
(widen)
|
||||
(org-update-all-dblocks)
|
||||
(replace-string-in-region "../site/content/" "./"
|
||||
(point-min) (point-max))
|
||||
(org-export-to-file 'html html-file)
|
||||
(when export-line? (insert export-line))
|
||||
(save-buffer)
|
||||
(kill-buffer)))))))
|
||||
|
||||
(message "Exporting chunk %s out of %s with files: %s" index (- (length chunks) 1)
|
||||
(mapcar (lambda (file)
|
||||
(concat "\n" file)) chunk))
|
||||
|
||||
(async-start
|
||||
func
|
||||
'ignore)))
|
||||
|
||||
(defun chris/org-publish-site ()
|
||||
"Publish my website by pushing files to specific locations"
|
||||
(interactive)
|
||||
|
|
@ -18,6 +82,8 @@
|
|||
(denote-directory "~/docs/site/content")
|
||||
(current-notes (directory-files "~/docs/site/content/notes" t ".*.org$"))
|
||||
(current-lessons (directory-files "~/docs/site/content/teaching" t ".*.org$"))
|
||||
(warning-minimum-level :error)
|
||||
(inhibit-message)
|
||||
(create-lockfiles nil)
|
||||
(org-export-with-broken-links 'mark)
|
||||
(org-export-with-section-numbers nil)
|
||||
|
|
@ -72,174 +138,12 @@
|
|||
'list
|
||||
(directory-files "~/docs/site/content/notes" t ".*.org$")
|
||||
(directory-files "~/docs/site/content/teaching" t ".*.org$")))
|
||||
(counter 0))
|
||||
(cl-loop for file in files and index from 0
|
||||
do (let* ((func `(lambda ()
|
||||
(setq lexical-binding t)
|
||||
(require 's)
|
||||
(require 'org)
|
||||
(require 'ox)
|
||||
(require 'ox-html)
|
||||
(require 'htmlize)
|
||||
(require 'denote)
|
||||
(require 'denote-org)
|
||||
(setq find-file-hook '())
|
||||
(setq org-mode-hook '())
|
||||
(with-current-buffer (find-file ,file)
|
||||
(re-search-forward "EXPORT_FILE_NAME" nil t)
|
||||
(beginning-of-line)
|
||||
(let* ((export-line (delete-and-extract-region
|
||||
(line-beginning-position) (line-end-position)))
|
||||
(create-lockfiles nil)
|
||||
(org-export-with-broken-links 'mark)
|
||||
(org-export-with-section-numbers nil)
|
||||
(org-html-html5-fancy t)
|
||||
(org-html-validation-link nil)
|
||||
(make-backup-files nil)
|
||||
(org-export-with-title t)
|
||||
(org-html-head-include-default-style nil)
|
||||
(org-html-head "<link rel=\"stylesheet\" href=\"../static/pico.snazzy.css\">")
|
||||
(denote-directory "/home/chris/docs/site/content")
|
||||
(export-directory
|
||||
(concat "/home/chris/"
|
||||
"docs/site/public/"
|
||||
(if (s-contains? "content/teaching" ,file)
|
||||
"teaching/"
|
||||
"notes/")))
|
||||
(html-file (concat export-directory
|
||||
(org-export-output-file-name ".html")))
|
||||
(org-export-coding-system org-html-coding-system))
|
||||
(denote-org-convert-links-to-file-type)
|
||||
(widen)
|
||||
(org-update-all-dblocks)
|
||||
(replace-string-in-region "../site/content/" "./"
|
||||
(point-min) (point-max))
|
||||
(org-export-to-file 'html html-file)
|
||||
(insert export-line)
|
||||
(save-buffer)
|
||||
(kill-buffer))))))
|
||||
(workers 8)
|
||||
(chunks (seq-split files (ceiling (/ (length files) workers))))
|
||||
(futures (cl-loop for chunk in chunks and index from 0
|
||||
collect (async-export-function chunk index))))
|
||||
(mapcar #'async-get futures)
|
||||
(message "Finished exporting all files"))))
|
||||
|
||||
(message "Exporting %s out of %s files: %s" index (length files) file)
|
||||
(setq counter (+ counter 1))
|
||||
(while (> counter 12)
|
||||
(sit-for 0.5))
|
||||
(message "Exporting %s out of %s files: %s" index (length files) file)
|
||||
(async-start
|
||||
func
|
||||
(lambda (result)
|
||||
(message "Finished %s" index (length files) file)
|
||||
(setq counter (- counter 1))))
|
||||
|
||||
)))))
|
||||
|
||||
(defun chris/website-dynamic-block ()
|
||||
"A function to load up the links on the homepage for the website"
|
||||
(let (files (directory-files "~/docs/site/content/notes/" t ".*.org"))
|
||||
(cl-loop for file in files
|
||||
do (insert (denote--link-get-description file)))))
|
||||
|
||||
(defun org-dblock-write:chris-site-notes ()
|
||||
"A function to load up the links on the homepage for the website"
|
||||
(let (files (directory-files "~/docs/site/content/notes/" t ".*.org"))
|
||||
(cl-loop for file in files
|
||||
do (insert (denote--link-get-description file)))))
|
||||
|
||||
(let ((func (lambda ()
|
||||
(let ((lexical-binding t)
|
||||
(find-file-hook '())
|
||||
(gc-cons-threshold 50000000)
|
||||
(org-mode-hook '()))
|
||||
(require 's)
|
||||
(require 'org)
|
||||
(require 'ox)
|
||||
(require 'ox-html)
|
||||
(require 'htmlize)
|
||||
(require 'denote)
|
||||
(require 'denote-org)
|
||||
(with-current-buffer (find-file "/home/chris/docs/site/content/teaching/20260311T141831--zealots-and-cripples__lesson_project_tfc.org")
|
||||
(re-search-forward "EXPORT_FILE_NAME" nil t)
|
||||
(beginning-of-line)
|
||||
(let* ((export-line (delete-and-extract-region
|
||||
(line-beginning-position) (line-end-position)))
|
||||
(create-lockfiles nil)
|
||||
(org-export-with-broken-links 'mark)
|
||||
(org-export-with-section-numbers nil)
|
||||
(org-html-html5-fancy t)
|
||||
(org-html-validation-link nil)
|
||||
(make-backup-files nil)
|
||||
(org-export-with-title t)
|
||||
(org-html-head-include-default-style nil)
|
||||
(org-html-head "<link rel=\"stylesheet\" href=\"../static/pico.snazzy.css\">")
|
||||
(denote-directory "/home/chris/docs/site/content")
|
||||
(export-directory
|
||||
(concat "/home/chris/"
|
||||
"docs/site/public/"
|
||||
(if (s-contains? "content/teaching" "/home/chris/docs/site/content/teaching/20260311T141831--zealots-and-cripples__lesson_project_tfc.org")
|
||||
"teaching/"
|
||||
"notes/")))
|
||||
(html-file (concat export-directory
|
||||
(org-export-output-file-name ".html")))
|
||||
(org-export-coding-system org-html-coding-system))
|
||||
(denote-org-convert-links-to-file-type)
|
||||
(widen)
|
||||
(org-update-all-dblocks)
|
||||
(message "%s" html-file)
|
||||
(replace-string-in-region "../site/content/" "./"
|
||||
(point-min) (point-max))
|
||||
(org-export-to-file 'html html-file)
|
||||
(insert export-line)
|
||||
(save-buffer)
|
||||
(kill-buffer)))))))
|
||||
(save-excursion
|
||||
(funcall func)))
|
||||
;; (add-to-list 'org-dynamic-block-alist '("chris-site-notes" . chris/website-dynamic-block))
|
||||
|
||||
;; (setq org-publish-project-alist
|
||||
;; `(("home"
|
||||
;; :base-directory "~/docs/site/content"
|
||||
;; :base-extension "org"
|
||||
;; :recursive nil
|
||||
;; :html-doctype "html5"
|
||||
;; :html-html5-fancy t
|
||||
;; :html-self-link-headlines t
|
||||
;; :html-head "<link rel=\"stylesheet\" href=\"pico.snazzy.css\" type=\"text/css\"/>"
|
||||
;; :html-head "<link rel=\"stylesheet\" href=\"my.css\" type=\"text/css\"/>"
|
||||
;; :publishing-directory "~/docs/notes/site/public/"
|
||||
;; :publishing-function org-html-publish-to-html)
|
||||
;; ("posts"
|
||||
;; :base-directory "~/docs/site/content/notes"
|
||||
;; :base-extension "org"
|
||||
;; :recursive nil
|
||||
;; :html-doctype "html5"
|
||||
;; :html-html5-fancy t
|
||||
;; :html-self-link-headlines t
|
||||
;; :htmlized-source t
|
||||
;; :html-head "<link rel=\"stylesheet\" href=\"../pico.snazzy.css\" type=\"text/css\"/>"
|
||||
;; :publishing-directory "~/docs/site/public/notes/"
|
||||
;; :publishing-function org-html-publish-to-html)
|
||||
;; ("teaching"
|
||||
;; :base-directory "~/docs/site/content/teaching"
|
||||
;; :base-extension "org"
|
||||
;; :recursive nil
|
||||
;; :html-doctype "html5"
|
||||
;; :html-html5-fancy t
|
||||
;; :html-self-link-headlines t
|
||||
;; :htmlized-source t
|
||||
;; :html-head "<link rel=\"stylesheet\" href=\"../pico.snazzy.css\" type=\"text/css\"/>"
|
||||
;; :publishing-directory "~/docs/site/public/teaching/"
|
||||
;; :publishing-function org-html-publish-to-html)
|
||||
;; ("static"
|
||||
;; :base-directory "~/docs/site/assets/"
|
||||
;; :base-extension "css\\|txt\\|jpg\\|gif\\|png"
|
||||
;; :recursive t
|
||||
;; :html-doctype "html5"
|
||||
;; :html-html5-fancy t
|
||||
;; :publishing-directory "~/docs/site/public/static/"
|
||||
;; :publishing-function org-publish-attachment)
|
||||
;; ("cochrun.xyz" :components ("home" "posts" "static" "teaching"))))
|
||||
|
||||
;; (setq org-html-postamble t
|
||||
;; org-html-postamble-format '(("en"
|
||||
;; "<footer> <p>Author: %a (%e)</p></footer>")))
|
||||
(chris/org-publish-site)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue