feat: implement Gemini export and deployment

This commit is contained in:
2023-05-14 14:34:23 +02:00
parent 23bbcfabe3
commit 4f0aee4c62
34 changed files with 237 additions and 82 deletions

View File

@@ -2,12 +2,15 @@
(require 'org)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
(package-refresh-contents)
(unless package-archive-contents
(package-refresh-contents))
(package-install 'f)
(package-install 'ox-gfm)
(package-vc-install '(ox-gemini . (:url "https://labs.phundrak.com/phundrak/ox-gemini.git")))
(require 'f)
(require 'ox-gfm)
(require 'ox-gemini)
(require 'ox-publish)
(setq org-confirm-babel-evaluate nil
@@ -18,12 +21,19 @@
(defvar project-root
(file-name-as-directory (expand-file-name "content" default-directory)))
(message "Emacs directory: %s" (f-full user-emacs-directory))
(dolist (file (f-files project-root (lambda (file) (f-ext-p file "org")) t))
(message "====== Exporting %s" (f-relative file))
(with-temp-buffer
(find-file file)
(org-export-to-file 'gfm (concat (f-no-ext file) ".md"))))
(org-export-to-file 'gfm (concat (f-no-ext file) ".md"))
(org-export-to-file 'gemini (concat (f-no-ext file) ".gmi"))))
(defvar gemini-root-dir "gemini")
(dolist (subdir '("" "en" "lfn"))
(f-mkdir (f-join gemini-root-dir subdir)))
(f-mkdir gemini-root-dir)
(dolist (file (mapcar #'f-relative (f-files "." (lambda (file) (f-ext-p file "gmi")) t)))
(let ((new-place (f-join gemini-root-dir (apply #'f-join (cdr (f-split file))))))
(f-move file new-place)))
(message "Project generated!")