Fixed glyphs file serializer to match Glyphs nuances

pull/855/head
Nikita Prokopov 2019-09-09 17:15:37 +03:00
rodzic 6a9cfb866f
commit d385788ff6
2 zmienionych plików z 14 dodań i 9 usunięć

Wyświetl plik

@ -1,7 +1,7 @@
{
.appVersion = "1131";
DisplayStrings = (
"flask\012Flask\012fiber\012fj\012/f_l.liga lflask\012Tla\012/f_t.liga"
"flask\012Flask\012fiber\012fji\012Tla"
);
classes = (
{
@ -97,7 +97,6 @@ value = 1;
{
name = fsType;
value = (
);
},
{
@ -114923,7 +114922,6 @@ unitsPerEm = 1950;
userData = {
GSDimensionPlugin.Dimensions = {
"B67F0F2D-EC95-4CB8-966E-23AE86958A69" = {
};
"BF448B58-7A35-489E-A1C9-12628F60690C" = {
HH = 141;
@ -114947,4 +114945,4 @@ oV = 98;
};
versionMajor = 1;
versionMinor = 207;
}
}

Wyświetl plik

@ -109,7 +109,7 @@
(def escape-re #"[\n\"\\]")
(defn serialize [form]
(defn- serialize-impl [form]
(cond
(string? form) (if (re-matches #"[a-zA-Z0-9._/]+" form)
form
@ -118,14 +118,21 @@
(number? form) (str form)
(instance? clojure.lang.MapEntry form)
(str
(serialize (key form))
(serialize-impl (key form))
" = "
(if (= ".appVersion" (key form)) ;; https://github.com/googlefonts/glyphsLib/issues/209
(str \" (val form) \")
(serialize (val form)))
(serialize-impl (val form)))
";")
(sequential? form) (str "(\n" (str/join ",\n" (map serialize form)) "\n)")
(map? form) (str "{\n" (str/join "\n" (map serialize form)) "\n}")))
(sequential? form) (if (empty? form)
"(\n)"
(str "(\n" (str/join ",\n" (map serialize-impl form)) "\n)"))
(map? form) (if (empty? form)
"{\n}"
(str "{\n" (str/join "\n" (map serialize-impl form)) "\n}"))))
(defn serialize [font]
(str (serialize-impl font) "\n"))
; (-> (slurp "FiraCode.glyphs") parse serialize (->> (spit "FiraCode_saved.glyphs")))