repl render to directory w/ resources
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@import "/vendor/ibm-plex-serif/css/ibm-plex-serif-default.min.css";
|
||||
@import "/vendor/ibm-plex-sans-kr/css/ibm-plex-sans-kr-default.min.css";
|
||||
@import "/vendor/ibm-plex-math/css/ibm-plex-math-default.min.css";
|
||||
@import "deerstar.css";
|
||||
/* @import "/vendor/ibm-plex-serif/css/ibm-plex-serif-default.min.css"; */
|
||||
/* @import "/vendor/ibm-plex-sans-kr/css/ibm-plex-sans-kr-default.min.css"; */
|
||||
/* @import "/vendor/ibm-plex-math/css/ibm-plex-math-default.min.css"; */
|
||||
/* @import "deerstar.css"; */
|
||||
|
||||
html {
|
||||
font-size: 15px;
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
(ns net.deertopia.doerg.config
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[babashka.fs :as fs]
|
||||
[spec-dict.main :refer [dict]]))
|
||||
|
||||
(s/def ::config
|
||||
(s/keys :req []))
|
||||
(s/keys :req [::ibm-plex-web]))
|
||||
|
||||
(def default {})
|
||||
(def default
|
||||
{::ibm-plex-web
|
||||
(fs/file
|
||||
(or (System/getenv "IBM_PLEX_WEB")
|
||||
(some #(let [x (fs/path % "ibm-plex-web")]
|
||||
(and (fs/exists? x) x))
|
||||
(fs/split-paths (System/getenv "XDG_DATA_DIRS")))))})
|
||||
|
||||
(def ^:dynamic *cfg* default)
|
||||
|
||||
(s/def ::ibm-plex-web string?)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
(ns net.deertopia.doerg.html
|
||||
"Common HTML elements and utilities"
|
||||
(:require [clojure.java.io :as io]))
|
||||
(:require [clojure.java.io :as io]
|
||||
[net.deertopia.doerg.config :as cfg]
|
||||
[babashka.fs :as fs]))
|
||||
|
||||
#_
|
||||
(def navbar
|
||||
@@ -25,13 +27,32 @@
|
||||
(def charset
|
||||
[:meta {:charset "utf-8"}])
|
||||
|
||||
(defn external-stylesheet [href]
|
||||
[:link {:rel "stylesheet" :type "text/css" :href href}])
|
||||
|
||||
(def ibm-plex
|
||||
(for [family ["serif" "sans-kr" "math"]]
|
||||
#_
|
||||
[:style (-> cfg/*cfg* ::cfg/ibm-plex-web
|
||||
(fs/file (format "css/ibm-plex-%s-default.min.css" family))
|
||||
slurp)]
|
||||
(external-stylesheet
|
||||
(format "ibm-plex-web/css/ibm-plex-%s-default.min.css" family))))
|
||||
|
||||
(def deerstar
|
||||
(external-stylesheet "deerstar.css")
|
||||
#_
|
||||
[:style (slurp (io/resource "net/deertopia/doerg/deerstar.css"))])
|
||||
|
||||
(def tuftesque
|
||||
(external-stylesheet "tuftesque.css")
|
||||
#_
|
||||
[:link {:rel "stylesheet"
|
||||
:type "text/css"
|
||||
:href "/resources/tuftesque.css"}]
|
||||
#_
|
||||
[:style
|
||||
(slurp (io/resource "net/deertopia/doerg/tuftesque.css"))])
|
||||
|
||||
(def head
|
||||
(list viewport charset tuftesque))
|
||||
(list viewport charset ibm-plex deerstar tuftesque))
|
||||
|
||||
@@ -56,9 +56,7 @@
|
||||
[:html
|
||||
[:head
|
||||
[:title "org document"]
|
||||
doerg-html/viewport
|
||||
doerg-html/charset
|
||||
doerg-html/tuftesque]
|
||||
doerg-html/head]
|
||||
[:body
|
||||
[:article
|
||||
rendered]]]))))
|
||||
|
||||
@@ -1,14 +1,28 @@
|
||||
(ns net.deertopia.doerg.repl
|
||||
(:require [net.deertopia.doerg.element :as element]
|
||||
[net.deertopia.doerg.render :as render]
|
||||
[hiccup2.core :as h]))
|
||||
[net.deertopia.doerg.config :as cfg]
|
||||
[clojure.java.io :as io]
|
||||
[hiccup2.core :as h]
|
||||
[babashka.fs :as fs]))
|
||||
|
||||
(def some-org-file
|
||||
"/home/msyds/org/20251228003307-prerequisite_context_in_korean.org")
|
||||
|
||||
(defn- force-create-sym-link [path target]
|
||||
(fs/delete-if-exists path)
|
||||
(fs/create-sym-link path target))
|
||||
|
||||
(defn render-html [& {:keys [src dest]
|
||||
:or {src some-org-file
|
||||
dest "/tmp/t.html"}}]
|
||||
(->> (h/html (-> src
|
||||
slurp element/read-string render/org-document))
|
||||
str (spit dest)))
|
||||
dest "/tmp/doerg-test"}}]
|
||||
(fs/create-dirs dest)
|
||||
(force-create-sym-link (fs/file dest "ibm-plex-web")
|
||||
(-> cfg/*cfg* ::cfg/ibm-plex-web))
|
||||
(force-create-sym-link (fs/file dest "deerstar.css")
|
||||
(io/resource "net/deertopia/doerg/deerstar.css"))
|
||||
(force-create-sym-link (fs/file dest "tuftesque.css")
|
||||
(io/resource "net/deertopia/doerg/tuftesque.css"))
|
||||
(fs/delete-if-exists (fs/file dest "index.html"))
|
||||
(->> (h/html (-> src slurp element/read-string render/org-document))
|
||||
str (spit (fs/file dest "index.html"))))
|
||||
|
||||
Reference in New Issue
Block a user