Fix hugo-compile so it works again
This commit is contained in:
parent
3d0ea8fedb
commit
6353891e14
@ -671,25 +671,35 @@ See https://emacs.stackexchange.com/questions/2538/how-to-define-additional-mode
|
||||
(defun hugo-dir-above (dir)
|
||||
"Return path of Hugo project root above or at DIR.
|
||||
Return nil if DIR is not in a hugo project at all."
|
||||
(named-let hda-internal ((dir dir))
|
||||
(if (eq dir nil) nil
|
||||
(if (file-exists-p (expand-file-name "config.toml" dir)) dir
|
||||
(hda-internal (file-name-directory (string-trim-right dir "/")))))))
|
||||
(defun hugo-compile (dir)
|
||||
(require 'subr-x)
|
||||
(let ((thisdir dir))
|
||||
(let ((lexical-binding t))
|
||||
(if (eq thisdir nil) nil
|
||||
(if (file-exists-p (expand-file-name "config.toml" thisdir))
|
||||
thisdir
|
||||
(let ((updir (file-name-directory (string-trim-right thisdir "/"))))
|
||||
(hugo-dir-above updir)))))))
|
||||
;; (hugo-dir-above "~/.local/git/mitchmarq42.github.io/content-org/")
|
||||
(defun hugo-compile (&optional dir)
|
||||
(interactive)
|
||||
(if (bound-and-true-p dir) nil
|
||||
(setq dir default-directory))
|
||||
(let ((hugo-dir (hugo-dir-above dir)))
|
||||
(if hugo-dir
|
||||
(if (string-match-p default-directory "/content-org$")
|
||||
(org-hugo-export-wim-to-md-after-save)
|
||||
(progn
|
||||
(if (string-match-p (rx bol (* any) "/content-org" (opt "/") eol)
|
||||
default-directory)
|
||||
(org-hugo-export-wim-to-md-after-save))
|
||||
(let* ((default-directory hugo-dir)
|
||||
(buffer (get-buffer-create "*hugo*")))
|
||||
(with-current-buffer buffer
|
||||
(compilation-mode)
|
||||
(if (zerop (let ((inhibit-read-only t))
|
||||
(shell-command "hugo" buffer)))
|
||||
;; (compilation-mode)
|
||||
(let* ((inhibit-read-only t)
|
||||
(status-code (call-process-shell-command "hugo" nil buffer)))
|
||||
(if (zerop status-code)
|
||||
(message "Hugo re-generated!")
|
||||
(error "Hugo Failed, better change something!"))))))))
|
||||
(add-hook 'after-save-hook
|
||||
(lambda () (hugo-compile default-directory))))
|
||||
(error "Hugo exited %s, better change something!" status-code)))))))))
|
||||
(add-hook 'after-save-hook #'hugo-compile))
|
||||
|
||||
;; fake indentation, other than the other fake indentation
|
||||
;; (elpaca-use-package adaptive-wrap
|
||||
|
Loading…
Reference in New Issue
Block a user