717fc20

Pinchord · pinchord.git · Tickets · Changelog

Branches > build-process > 717fc20 > files / setup.cfg

Extract javelin dictionary generation code

Grahp, 2026-09-05

Commit: 717fc20bb0c9a214d989b79aea717cee1f5b5bce
Parent: c968ca0

1 changed file:

src/org/pinchord/generate.clj modified (view file)

@@ -52,28 +52,30 @@          :vowels   (with-gaps-filled :vowels chords)          :finals   (with-gaps-filled :finals chords))) +(defn build-javelin-dictionary [chords]+  {:name (str "Pinchord Base " (:version chords))+   :maximumOutlineLength 1+   :starters [{:stroke "#+" :definition "{^}{-|}" :mask "#+"}+              {:stroke "" :definition "{}" :mask ""}]+   :letters (->> (reduce (fn [acc [bank entries]]+                           (if-let [bank-keys ((:banks chords) bank)]+                             (into acc (mapv (fn [[stroke translation]]+                                               {:stroke stroke :data translation :order (bank->priority bank)+                                                :avoidMask (str (when (= bank :finals)+                                                                  "-")+                                                                (mask stroke bank-keys))})+                                             entries))+                             (into acc (mapv (fn [[stroke translation]]+                                               {:stroke stroke :data translation :order (bank->priority bank)})+                                             entries))))+                         #{} (select-keys chords banks))+                 (sort-by (comp - count :stroke)))})+ (defn -main [& _args]   (let [chords (-> (edn/read-string (slurp "chords.edn"))                    fill-gaps-in-banks                    (update :finals finalize)                    (update :suffixes finalize))-        chord-banks (:banks chords)-        dict {:name (str "Pinchord Base " (:version chords))-              :maximumOutlineLength 1-              :starters [{:stroke "#+" :definition "{^}{-|}" :mask "#+"}-                         {:stroke "" :definition "{}" :mask ""}]-              :letters (->> (reduce (fn [acc [bank entries]]-                                      (if-let [bank-keys (chord-banks bank)]-                                        (into acc (mapv (fn [[stroke translation]]-                                                          {:stroke stroke :data translation :order (bank->priority bank)-                                                           :avoidMask (str (when (= bank :finals)-                                                                             "-")-                                                                           (mask stroke bank-keys))})-                                                        entries))-                                        (into acc (mapv (fn [[stroke translation]]-                                                          {:stroke stroke :data translation :order (bank->priority bank)})-                                                        entries))))-                                    #{} (select-keys chords banks))-                            (sort-by (comp - count :stroke)))}+        dict (build-javelin-dictionary chords)         dict-path (str "pinchord-javelin-dictionary-" (:version chords) ".yaml")]     (spit dict-path (yaml/generate-string dict))))