feat: implement Gemini export and deployment
This commit is contained in:
18
export.el
18
export.el
@@ -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!")
|
||||
|
||||
Reference in New Issue
Block a user