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