;; Set the package installation directory so that packages aren't stored in the ;; ~/.emacs.d/elpa path. (require 'package) (setq package-user-dir (expand-file-name "./.packages")) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("elpa" . "https://elpa.gnu.org/packages/"))) ;; Initialize the package system (package-initialize) (unless package-archive-contents (package-refresh-contents)) ;; Install dependencies (package-install 'htmlize) (package-install 'f) ;; Load the publishing system (require 'ox-publish) (require 'f) ;; Customize the HTML output (setq org-html-validation-link nil ;; Don't show validation link org-html-head-include-scripts nil ;; Use our own scripts org-html-head-include-default-style nil ;; Use our own styles ;; org-html-head "") ;; @TODO fix favicon link ;; @TODO ) (defvar novelli-html-head "") (defvar novelli-html-head-nested-1 (replace-regexp-in-string "../assets" "../../assets" novelli-html-head)) ;; Read assets lio.txt (defvar novelli-header-menu (concat "
" (f-read "assets/lio.txt" 'utf-8) "
" (f-read "assets/menu.html" ) "
SL / EN
")) (defvar novelli-header-menu-en (concat "
" (f-read "assets/lio.txt" 'utf-8) "
" (f-read "assets/menu-en.html" ) "
SL / EN
")) (defvar novelli-header-menu-nested-1 (replace-regexp-in-string "href=\"" "href=\"..\/" novelli-header-menu)) ;; https://www.danliden.com/posts/20211203-this-site.html ;; https://thibaultmarin.github.io/blog/posts/2016-11-13-Personal_website_in_org.html#orgace8e3d (defun lio/org-publish-org-sitemap-format (entry style project) "Custom sitemap entry formatting: add date" (cond ((not (directory-name-p entry)) (format "[[file:%s][(%s) %s]]" entry (format-time-string "%Y-%m-%d" (org-publish-find-date entry project)) (org-publish-find-title entry project))) ((eq style 'tree) ;; Return only last subdir. (file-name-nondirectory (directory-file-name entry))) (t entry))) ;; Define the publishing project (setq org-publish-project-alist (list (list "org-site:main" :recursive t :base-directory "./content" :publishing-function 'org-html-publish-to-html :publishing-directory "./public" :with-author nil ;; Don't include author name :with-creator t ;; Include Emacs and Org versions in footer :with-toc t ;; Include a table of contents :section-numbers nil ;; Don't include section numbers :html-head novelli-html-head :html-preamble novelli-header-menu ;; :auto-preamble t :auto-sitemap t :sitemap-filename "sitemap.org" :sitemap-title "Pregled strani" :sitemap-sans-extension t :sitemap-style 'tree :sitemap-file-entry-format "%t" :html-postamble "
" :time-stamp-file nil) (list "blog" :base-directory "./content/blog" :base-extension "org" :publishing-directory "./public/blog" :publishing-function 'org-html-publish-to-html :section-numbers nil :with-toc nil :html-head novelli-html-head-nested-1 ;; :html-head-extra ;; "" :html-preamble novelli-header-menu-nested-1 :auto-sitemap t :sitemap-title "Objave" :sitemap-filename "index.org" :sitemap-format-entry 'lio/org-publish-org-sitemap-format ;; :html-postamble ,nico-website-html-postamble ;; :sitemap-filename "sitemap.org" ;; :sitemap-sort-files 'anti-chronologically ) (list "org-site:en" :recursive t :base-directory "./en" :publishing-function 'org-html-publish-to-html :publishing-directory "./public/en" :with-author nil ;; Don't include author name :with-creator t ;; Include Emacs and Org versions in footer :with-toc t ;; Include a table of contents :section-numbers nil ;; Don't include section numbers :html-head novelli-html-head-nested-1 :html-preamble novelli-header-menu-en :time-stamp-file nil :auto-sitemap t :sitemap-filename "sitemap.org" :sitemap-title "Sitemap" :sitemap-sans-extension t :sitemap-style 'tree ) (list "org-site:assets" :base-directory "./assets" :publishing-function 'org-publish-attachment :base-extension "css\\|js\\|ttf\\|woff2\\|ico" :publishing-directory "./public/assets" :recursive t ) )) ;; Don't include time stamp in file ;; Generate the site output (org-publish-all t) (message "Build complete!")