1
0
Fork 0
mirror of synced 2024-06-03 03:04:58 +12:00
FiraCode/clojure/regen_classes.clj

26 lines
940 B
Clojure

;; clj -m regen-classes
(ns regen-classes
(:require
[clojure.string :as str]
[glyphs :as glyphs]
[flatland.ordered.map :refer [ordered-map]]))
(defn -main [& args]
(let [path (or (first args) "FiraCode.glyphs")
font (glyphs/load path)
not-spaces (->> (:glyphs font)
(remove #(re-find #"^\.|space$|space\." (:glyphname %)))
(remove #(= "0" (:export %))))
_ (println "Generating class:NotSpace with" (count not-spaces) "glyphs")
class (ordered-map
:code (str/join " " (map :glyphname not-spaces))
:name "NotSpace")
classes (->> (:classes font)
(remove #(= "NotSpace" (:name %)))
(cons class))
font' (assoc font :classes classes)
_ (glyphs/save! path font')
_ (println)]))
; (-main)