Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export slows down over time across 1000+ files #733

Open
cashpw opened this issue Dec 24, 2023 · 1 comment
Open

Export slows down over time across 1000+ files #733

cashpw opened this issue Dec 24, 2023 · 1 comment

Comments

@cashpw
Copy link

cashpw commented Dec 24, 2023

Actual Behavior

org-hugo-export-to-md slows down over time. Exporting 1493 files took 11 hours overall and slowed down over time:

image

Here's a zoom between 0-100 seconds:

image

Following the export I have to wait for a few minutes because the Emacs process because it's essentially frozen.

$ top

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                   
 967046 cashwea+  20   0 1230940 599992 113416 R 100.0   1.8     11,01 emacs 

After a little while it shows less CPU usage:

$ top

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                   
 967046 cashwea+  20   0 1230940 600248 113416 S  11.9   1.8     11,02 emacs

Expected Behavior

I expect the export time per file to remain around where it started; at 1-3 seconds per file.

How to Reproduce the Issue

Export my notes using cashpw/org-hugo-export-all:

(defun file-notify-rm-all-watches ()
  "Remove all existing file notification watches from Emacs."
  (interactive)
  (maphash
   (lambda (key _value)
     (file-notify-rm-watch key))
   file-notify-descriptors))

(defun cashpw/org-hugo-export-all (&optional directory)
  "Export all hugo files in DIRECTORY."
  (interactive)
  (let* ((directory (or directory
                        (s-lex-format "${cashpw/path--home-dir}/proj/notes")))
         (org-roam-directory directory)
         (files-to-ignore `(
                            ;; ,(s-lex-format "${directory}/unread.org")
                            ;; ,(s-lex-format "${directory}/todos.org")
                            ))
         (files-to-export (seq-difference (directory-files
                                           directory
                                           ;; full
                                           t
                                           ;; match
                                           ".org$")
                                          files-to-ignore))
         ;; For debugging
         ;; (files-to-export (-slice files-to-export 1015))
         (count-files-to-export (length
                                 files-to-export))
         ;; Last updated: 2023-12-05
         (recent-run-file-count 1467)
         (recent-run-seconds 7791)
         (seconds-per-file (/ recent-run-seconds
                              recent-run-file-count))
         (calc-remaining-minutes (lambda (current-file-number)
                                   (let ((files-left (- count-files-to-export current-file-number)))
                                     (/ (* seconds-per-file
                                           files-left)
                                        60))))
         (run-time-estimate (org-duration-from-minutes (funcall calc-remaining-minutes 0)))
         (log-file-path "/tmp/hugo-export.log")
         (last-percent-start-time nil)
         (should-run (y-or-n-p (s-lex-format
                                "Found ${count-files-to-export} nodes in ${directory}. Export estimate: ${run-time-estimate}."))))
    (when should-run
      (let* ((progress-reporter (make-progress-reporter "Exporting roam notes"
                                                        0
                                                        (length files-to-export)))
             (start-time (current-time))
             (org-id-extra-files (org-roam-list-files))
             (i 0))
        ;; Speed up the export
        ;; (advice-add 'org-id-find :override 'org-roam-id-find)
        ;; (memoize 'org-roam-node-id)
        ;; (memoize 'org-roam-node-file)
        (save-excursion
          (mapc
           (lambda (filepath)
             (let ((inner-start-time (current-time))
                   (inhibit-message t)
                   (roam-file-buffer (find-file-noselect filepath))
                   (start-time (current-time)))
               (when (= 0 (% i 10))
                 (message "[cashpw] fix cannot redirect stderr too many open files")
                 ;; Prevent `Error: (file-error "Cannot redirect stderr" "Too many open files" "/dev/null")'
                 (cashpw/kill-all-markdown-buffers)
                 (file-notify-rm-all-watches))
               (message "cashpw/org-hugo-export-all (%d/%d) exporting [%s]"
                        (1+ i)
                        count-files-to-export
                        filepath)
               (with-current-buffer roam-file-buffer
                 (org-hugo-export-to-md))
               (kill-buffer roam-file-buffer)
               (message "cashpw/org-hugo-export-all (%d/%d) exported [%s] %.06f"
                        (1+ i)
                        count-files-to-export
                        filepath
                        (float-time (time-since inner-start-time)))
               (let* ((log-file-path "/tmp/hugo-export.log")
                      (end-time (current-time))
                      (file-number (1+ i))
                      (time-string (format-time-string "%Y-%m-%d %H:%M:%S"))
                      (export-duration-in-seconds (float-time (subtract-time end-time
                                                                             start-time))))
                 (append-to-file (s-lex-format "${time-string}: ${file-number}/${count-files-to-export} ${filepath} (duration: ${export-duration-in-seconds})\n")
                                 nil
                                 log-file-path)))
             (progress-reporter-update progress-reporter
                                       i
                                       (concat "Remaining time (estimate): "
                                               (org-duration-from-minutes
                                                (funcall calc-remaining-minutes
                                                         i))))
             (setq i (1+ i)))
           files-to-export))
        (progress-reporter-done progress-reporter)
        ;; Remove speed-up changes
        ;; (advice-remove 'org-id-find 'org-roam-id-find)
        ;; (memoize-restore 'org-roam-node-id)
        ;; (memoize-restore 'org-roam-node-file)

        (message "cashpw/org-hugo-export-all %.06f" (float-time (time-since start-time)))))))

Example Org File

My notes.

Generated Markdown File or Error

No errors. It's just slow.

Result of M-x list-processes:

emacsql-sqlite  974855  run      *emacsql-sqlite*         --           Main         /home/cashweaver/.config/emacs/.local/straight/build-28.2/emacsql/sqlite/emacsql-sqlite /home/cashweaver/proj/notes/org-roam.db
ispell          967119  run     --                        --           Main         aspell -a -m -B -p /home/cashweaver/.config/emacs/.local/etc/ispell/.pws --encoding=utf-8 --sug-mode=ultra --run-together
server          --      listen  --                        --           Main         (network server on /run/user/451570/emacs/server)

Results of M-x list-buffers:

    config-personal.org         310998 Org              ~/proj/dotfiles/config/doom/config-personal.org
 %  *Warnings*                    3276 Special          
 %  *doom*                        2107 DOOM v3.0.0-pre  
    *scratch*                        0 Fundamental      
 %* *Messages*                   31201 Messages         
  * *ESS*                           29 Fundamental      
  * *Async-native-compile-log*     682 Fundamental      
 %* *Native-compile-Log*          1647 LIMPLE           
  * *Org-Babel Error Output*        83 Compilation      
    zotero.md                      998 Markdown         ~/proj/notes.cashpw.com/content/posts/zotero.md
    zvi_mowshowitz.md              600 Markdown         ~/proj/notes.cashpw.com/content/posts/zvi_mowshowitz.md
    zvi_mowshowitz_book_review_the_elephant_in_the_brain.md    2072 Markdown         ~/proj/notes.cashpw.com/content/posts/zvi_mowshowitz_book_review_the_elephant_in_the_brain.md

Ox-Hugo Debug Information

Debug Info

Debug information for ox-hugo

Emacs Version

GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.16.0)
 of 2023-06-20, modified by Debian

Org Version

Org mode version 9.6.1 (9.6.1-??-fe92a3c @ /home/cashweaver/.config/emacs/.local/straight/build-28.2/org/)

Hugo Version

hugo v0.121.1-00b46fed8e47f7bb0a85d7cfc2d9f1356379b740 linux/amd64 BuildDate=2023-12-08T08:47:45Z VendorInfo=gohugoio

Org load-path shadows

Warning: Possible mixed installation of Org

/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-dot hides /usr/share/emacs/28.2/lisp/org/ob-dot
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-js hides /usr/share/emacs/28.2/lisp/org/ob-js
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-id hides /usr/share/emacs/28.2/lisp/org/org-id
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-irc hides /usr/share/emacs/28.2/lisp/org/ol-irc
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-forth hides /usr/share/emacs/28.2/lisp/org/ob-forth
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-calc hides /usr/share/emacs/28.2/lisp/org/ob-calc
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-python hides /usr/share/emacs/28.2/lisp/org/ob-python
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-icalendar hides /usr/share/emacs/28.2/lisp/org/ox-icalendar
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-list hides /usr/share/emacs/28.2/lisp/org/org-list
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-bibtex hides /usr/share/emacs/28.2/lisp/org/ol-bibtex
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-koma-letter hides /usr/share/emacs/28.2/lisp/org/ox-koma-letter
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-docview hides /usr/share/emacs/28.2/lisp/org/ol-docview
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-keys hides /usr/share/emacs/28.2/lisp/org/org-keys
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-R hides /usr/share/emacs/28.2/lisp/org/ob-R
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-maxima hides /usr/share/emacs/28.2/lisp/org/ob-maxima
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-plot hides /usr/share/emacs/28.2/lisp/org/org-plot
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-eshell hides /usr/share/emacs/28.2/lisp/org/ob-eshell
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-w3m hides /usr/share/emacs/28.2/lisp/org/ol-w3m
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-table hides /usr/share/emacs/28.2/lisp/org/org-table
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-octave hides /usr/share/emacs/28.2/lisp/org/ob-octave
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-org hides /usr/share/emacs/28.2/lisp/org/ob-org
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-md hides /usr/share/emacs/28.2/lisp/org/ox-md
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-pcomplete hides /usr/share/emacs/28.2/lisp/org/org-pcomplete
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-duration hides /usr/share/emacs/28.2/lisp/org/org-duration
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-ruby hides /usr/share/emacs/28.2/lisp/org/ob-ruby
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-num hides /usr/share/emacs/28.2/lisp/org/org-num
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-perl hides /usr/share/emacs/28.2/lisp/org/ob-perl
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-attach-git hides /usr/share/emacs/28.2/lisp/org/org-attach-git
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-tangle hides /usr/share/emacs/28.2/lisp/org/ob-tangle
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/oc-biblatex hides /usr/share/emacs/28.2/lisp/org/oc-biblatex
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-bbdb hides /usr/share/emacs/28.2/lisp/org/ol-bbdb
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-exp hides /usr/share/emacs/28.2/lisp/org/ob-exp
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-scheme hides /usr/share/emacs/28.2/lisp/org/ob-scheme
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob hides /usr/share/emacs/28.2/lisp/org/ob
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-indent hides /usr/share/emacs/28.2/lisp/org/org-indent
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-tempo hides /usr/share/emacs/28.2/lisp/org/org-tempo
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-ditaa hides /usr/share/emacs/28.2/lisp/org/ob-ditaa
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-eshell hides /usr/share/emacs/28.2/lisp/org/ol-eshell
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-C hides /usr/share/emacs/28.2/lisp/org/ob-C
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-crypt hides /usr/share/emacs/28.2/lisp/org/org-crypt
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-java hides /usr/share/emacs/28.2/lisp/org/ob-java
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-groovy hides /usr/share/emacs/28.2/lisp/org/ob-groovy
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-mouse hides /usr/share/emacs/28.2/lisp/org/org-mouse
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-man hides /usr/share/emacs/28.2/lisp/org/ox-man
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-haskell hides /usr/share/emacs/28.2/lisp/org/ob-haskell
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-latex hides /usr/share/emacs/28.2/lisp/org/ox-latex
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-publish hides /usr/share/emacs/28.2/lisp/org/ox-publish
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-habit hides /usr/share/emacs/28.2/lisp/org/org-habit
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-css hides /usr/share/emacs/28.2/lisp/org/ob-css
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-src hides /usr/share/emacs/28.2/lisp/org/org-src
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-macro hides /usr/share/emacs/28.2/lisp/org/org-macro
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-archive hides /usr/share/emacs/28.2/lisp/org/org-archive
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-info hides /usr/share/emacs/28.2/lisp/org/ol-info
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org hides /usr/share/emacs/28.2/lisp/org/org
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-inlinetask hides /usr/share/emacs/28.2/lisp/org/org-inlinetask
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-makefile hides /usr/share/emacs/28.2/lisp/org/ob-makefile
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-ref hides /usr/share/emacs/28.2/lisp/org/ob-ref
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-odt hides /usr/share/emacs/28.2/lisp/org/ox-odt
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/oc-basic hides /usr/share/emacs/28.2/lisp/org/oc-basic
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-ocaml hides /usr/share/emacs/28.2/lisp/org/ob-ocaml
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol hides /usr/share/emacs/28.2/lisp/org/ol
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-org hides /usr/share/emacs/28.2/lisp/org/ox-org
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-beamer hides /usr/share/emacs/28.2/lisp/org/ox-beamer
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-shell hides /usr/share/emacs/28.2/lisp/org/ob-shell
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-table hides /usr/share/emacs/28.2/lisp/org/ob-table
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-attach hides /usr/share/emacs/28.2/lisp/org/org-attach
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-lua hides /usr/share/emacs/28.2/lisp/org/ob-lua
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-clojure hides /usr/share/emacs/28.2/lisp/org/ob-clojure
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-mobile hides /usr/share/emacs/28.2/lisp/org/org-mobile
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-agenda hides /usr/share/emacs/28.2/lisp/org/org-agenda
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-fortran hides /usr/share/emacs/28.2/lisp/org/ob-fortran
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-man hides /usr/share/emacs/28.2/lisp/org/ol-man
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-timer hides /usr/share/emacs/28.2/lisp/org/org-timer
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-macs hides /usr/share/emacs/28.2/lisp/org/org-macs
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-footnote hides /usr/share/emacs/28.2/lisp/org/org-footnote
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-element hides /usr/share/emacs/28.2/lisp/org/org-element
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-texinfo hides /usr/share/emacs/28.2/lisp/org/ox-texinfo
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-gnuplot hides /usr/share/emacs/28.2/lisp/org/ob-gnuplot
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-plantuml hides /usr/share/emacs/28.2/lisp/org/ob-plantuml
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/oc hides /usr/share/emacs/28.2/lisp/org/oc
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-protocol hides /usr/share/emacs/28.2/lisp/org/org-protocol
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-faces hides /usr/share/emacs/28.2/lisp/org/org-faces
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/oc-csl hides /usr/share/emacs/28.2/lisp/org/oc-csl
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-entities hides /usr/share/emacs/28.2/lisp/org/org-entities
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-screen hides /usr/share/emacs/28.2/lisp/org/ob-screen
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-refile hides /usr/share/emacs/28.2/lisp/org/org-refile
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-html hides /usr/share/emacs/28.2/lisp/org/ox-html
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-julia hides /usr/share/emacs/28.2/lisp/org/ob-julia
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-feed hides /usr/share/emacs/28.2/lisp/org/org-feed
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-matlab hides /usr/share/emacs/28.2/lisp/org/ob-matlab
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-compat hides /usr/share/emacs/28.2/lisp/org/org-compat
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-capture hides /usr/share/emacs/28.2/lisp/org/org-capture
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-gnus hides /usr/share/emacs/28.2/lisp/org/ol-gnus
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-lint hides /usr/share/emacs/28.2/lisp/org/org-lint
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-sql hides /usr/share/emacs/28.2/lisp/org/ob-sql
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-rmail hides /usr/share/emacs/28.2/lisp/org/ol-rmail
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-clock hides /usr/share/emacs/28.2/lisp/org/org-clock
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-ctags hides /usr/share/emacs/28.2/lisp/org/org-ctags
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-eval hides /usr/share/emacs/28.2/lisp/org/ob-eval
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox hides /usr/share/emacs/28.2/lisp/org/ox
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-goto hides /usr/share/emacs/28.2/lisp/org/org-goto
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-lisp hides /usr/share/emacs/28.2/lisp/org/ob-lisp
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-processing hides /usr/share/emacs/28.2/lisp/org/ob-processing
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-sqlite hides /usr/share/emacs/28.2/lisp/org/ob-sqlite
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-emacs-lisp hides /usr/share/emacs/28.2/lisp/org/ob-emacs-lisp
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-latex hides /usr/share/emacs/28.2/lisp/org/ob-latex
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-core hides /usr/share/emacs/28.2/lisp/org/ob-core
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-comint hides /usr/share/emacs/28.2/lisp/org/ob-comint
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-lilypond hides /usr/share/emacs/28.2/lisp/org/ob-lilypond
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-lob hides /usr/share/emacs/28.2/lisp/org/ob-lob
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ox-ascii hides /usr/share/emacs/28.2/lisp/org/ox-ascii
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-awk hides /usr/share/emacs/28.2/lisp/org/ob-awk
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/oc-natbib hides /usr/share/emacs/28.2/lisp/org/oc-natbib
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-sass hides /usr/share/emacs/28.2/lisp/org/ob-sass
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-colview hides /usr/share/emacs/28.2/lisp/org/org-colview
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-mhe hides /usr/share/emacs/28.2/lisp/org/ol-mhe
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ob-sed hides /usr/share/emacs/28.2/lisp/org/ob-sed
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/ol-eww hides /usr/share/emacs/28.2/lisp/org/ol-eww
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-datetree hides /usr/share/emacs/28.2/lisp/org/org-datetree
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-version hides /usr/share/emacs/28.2/lisp/org/org-version
/home/cashweaver/.config/emacs/.local/straight/build-28.2/org/org-loaddefs hides /usr/share/emacs/28.2/lisp/org/org-loaddefs

Study the output of M-x list-load-path-shadows.

ox-hugo defcustoms

org-hugo-section “posts”
org-hugo-use-code-for-kbd nil
org-hugo-preserve-filling t
org-hugo-delete-trailing-ws t
org-hugo-prefer-hyphen-in-tags t
org-hugo-allow-spaces-in-tags nil
org-hugo-tag-processing-functions (cashpw/org-hugo–tag-processing-fn-roam-tags org-hugo–tag-processing-fn-replace-with-spaces-maybe org-hugo–tag-processing-fn-replace-with-hyphens-maybe)
org-hugo-auto-set-lastmod nil
org-hugo-export-with-toc nil
org-hugo-export-with-section-numbers nil
org-hugo-front-matter-format “toml”
org-hugo-default-static-subdirectory-for-externals “ox-hugo”
org-hugo-external-file-extensions-allowed-for-copying (“jpg” “jpeg” “tiff” “png” “svg” “gif” “mp4” “pdf” “odt” “doc” “ppt” “xls” “docx” “pptx” “xlsx”)
org-hugo-date-format “%Y-%m-%dT%T%z”
org-hugo-paired-shortcodes “”
org-hugo-suppress-lastmod-period 0.0
org-hugo-front-matter-format “toml”
@cashpw
Copy link
Author

cashpw commented Dec 24, 2023

(remove-hook 'before-save-hook 'org-encrypt-entries t)
(setq org-element-use-cache nil)

These appear to have no affect on export time. The duration of the first 400 files matched up nearly 1:1 with the full run I did earlier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant