repl render to directory w/ resources

This commit is contained in:
2026-02-03 14:40:43 -07:00
parent cc9c74ed64
commit 5dce0a143a
5 changed files with 58 additions and 16 deletions

View File

@@ -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;

View File

@@ -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?)

View File

@@ -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))

View File

@@ -56,9 +56,7 @@
[:html
[:head
[:title "org document"]
doerg-html/viewport
doerg-html/charset
doerg-html/tuftesque]
doerg-html/head]
[:body
[:article
rendered]]]))))

View File

@@ -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"))))