From de96a6245bab6a863cf0f3bcce3c17a30f477d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Sat, 28 Feb 2026 16:49:35 -0700 Subject: [PATCH] fix: align display math --- deps-lock.json | 162 +++++++++++++++--- .../net/deertopia/doerg/tuftesque.css | 10 ++ doerg/src/net/deertopia/doerg/element.clj | 7 + doerg/src/net/deertopia/doerg/render.clj | 6 +- 4 files changed, 162 insertions(+), 23 deletions(-) diff --git a/deps-lock.json b/deps-lock.json index 986bedb..6b26bba 100644 --- a/deps-lock.json +++ b/deps-lock.json @@ -125,6 +125,16 @@ "mvn-repo": "https://repo.clojars.org/", "hash": "sha256-dXkdZHooK97QEyeXodFSC942EiB9B8MlHUNZlbH8nvI=" }, + { + "mvn-path": "com/rpl/specter/1.1.6/specter-1.1.6.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-vqmD19/KmPN99xUGxINR1L2PzgwiUEoa+da1r39BE9U=" + }, + { + "mvn-path": "com/rpl/specter/1.1.6/specter-1.1.6.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-2Fv7Xf/j/e+vS9pjGOyCkOyQEqA+0rzjZzo3p4T2WmU=" + }, { "mvn-path": "com/unboundid/unboundid-ldapsdk/5.1.1/unboundid-ldapsdk-5.1.1.jar", "mvn-repo": "https://repo1.maven.org/maven2/", @@ -185,6 +195,16 @@ "mvn-repo": "https://repo.clojars.org/", "hash": "sha256-2OgLA0KFMl6QX1RkmhWYtoe5pKmaOk9LlO7TWXyyEEg=" }, + { + "mvn-path": "fipp/fipp/0.6.27/fipp-0.6.27.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-qK1dAlan2r+90UOm6QvnZXURhA/is4MMp9tnK20RDPc=" + }, + { + "mvn-path": "fipp/fipp/0.6.27/fipp-0.6.27.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-ugagpDW5XBNQMTr+1z3s6r5TXwbF/pw6Ffrcc4Tzlvk=" + }, { "mvn-path": "hiccup/hiccup/2.0.0-RC4/hiccup-2.0.0-RC4.jar", "mvn-repo": "https://repo.clojars.org/", @@ -215,6 +235,26 @@ "mvn-repo": "https://repo.clojars.org/", "hash": "sha256-7Vh2tzj7zXYdGd03xiyTExP/beuWSi8Nn1NmRKkw9bQ=" }, + { + "mvn-path": "lambdaisland/clj-diff/1.4.78/clj-diff-1.4.78.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-oovG5LKVI8wppHLlfm6rlYD6DQNorXvliypH6JGhRZw=" + }, + { + "mvn-path": "lambdaisland/clj-diff/1.4.78/clj-diff-1.4.78.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-2QZ6mFjx7+UGI232PUr3CzsQenqd+xcRsbqEpxs32w0=" + }, + { + "mvn-path": "lambdaisland/deep-diff2/2.12.219/deep-diff2-2.12.219.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-BkOq5C/7omo09wyTTg7nkBi6GWBmlayVsPa9mrDvCyU=" + }, + { + "mvn-path": "lambdaisland/deep-diff2/2.12.219/deep-diff2-2.12.219.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-rW/85js2hSWVc36e2BcTRmkahJHc2TjGIEfvForuToY=" + }, { "mvn-path": "medley/medley/1.4.0/medley-1.4.0.jar", "mvn-repo": "https://repo.clojars.org/", @@ -225,6 +265,26 @@ "mvn-repo": "https://repo.clojars.org/", "hash": "sha256-JhEgB4cMXujVcrvDw4n8a9bMZG1cUAdfbolYQMWGEMA=" }, + { + "mvn-path": "mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-83JROF0iDfiVHmjVJVq7UZetvL2PxrPT/KhyojOfOcg=" + }, + { + "mvn-path": "mvxcvi/arrangement/2.1.0/arrangement-2.1.0.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-fWiMhmYYFAo78Am00FcK7acJA0h7dlH7VNBHf5TT2Is=" + }, + { + "mvn-path": "mvxcvi/clj-cbor/1.1.1/clj-cbor-1.1.1.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-XqYtfq4Seg2W6Favuh2Ogm2TrZfFCgEFNvsekCgX4I8=" + }, + { + "mvn-path": "mvxcvi/clj-cbor/1.1.1/clj-cbor-1.1.1.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-SzmvI+F2QOnCPH5H6OKH124pbohIazXgPG3PhqH0VZA=" + }, { "mvn-path": "org/apache/apache/23/apache-23.pom", "mvn-repo": "https://repo1.maven.org/maven2/", @@ -282,62 +342,62 @@ }, { "mvn-path": "org/clojure/clojure/1.10.3/clojure-1.10.3.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-fxJHLa7Y9rUXSYqqKrE6ViR1w+31FHjkWBzHYemJeaM=" }, { "mvn-path": "org/clojure/clojure/1.10.3/clojure-1.10.3.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-GJwAxDNAdJai+7DsyzeQjJSVXZHq0b5IFWdE7MGBbZQ=" }, { "mvn-path": "org/clojure/clojure/1.11.0/clojure-1.11.0.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-PiH6daB+yd278bK1A1bPGAcQ0DmN6qT0TpHNYwRVWUc=" }, { "mvn-path": "org/clojure/clojure/1.11.0/clojure-1.11.0.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-SQjMS0yeYsmoFJb5PLWsb2lBd8xkXc87jOXkkavOHro=" }, { "mvn-path": "org/clojure/clojure/1.11.1/clojure-1.11.1.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-I4G26UI6tGUVFFWUSQPROlYkPWAGuRlK/Bv0+HEMtN4=" }, { "mvn-path": "org/clojure/clojure/1.11.1/clojure-1.11.1.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-IMRaGr7b2L4grvk2BQrjGgjBZ0CzL4dAuIOM3pb/y4o=" }, { "mvn-path": "org/clojure/clojure/1.11.2/clojure-1.11.2.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-iPqZkT1pIs+39kn1xGdQOHfLb8yMwW02948mSAhLqZc=" }, { "mvn-path": "org/clojure/clojure/1.11.2/clojure-1.11.2.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-FzbP/xCV4dT+/raogrut9ttB7+MV8pbw/aMtt//EExE=" }, { "mvn-path": "org/clojure/clojure/1.11.3/clojure-1.11.3.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-nDBUCTKOK5boXdK160t1gQxnt2unCuTQ9t3pvPtVsbc=" }, { "mvn-path": "org/clojure/clojure/1.11.3/clojure-1.11.3.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-DA2+Ge4NKpxXMQzr3dNWRD8NFlFMQmBHsGLjpXwNuK0=" }, { "mvn-path": "org/clojure/clojure/1.11.4/clojure-1.11.4.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-/H/xtmENDjSUp1zBHvgYEL2kAqwVcBL+TjuJlYbPQTM=" }, { "mvn-path": "org/clojure/clojure/1.11.4/clojure-1.11.4.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-a6YADmhI+Cw5y5tJqyqmo6Vi9MJNUrMeUZCuZJXwwwk=" }, { @@ -350,6 +410,46 @@ "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-KfRiqonLl2RXWEGKXwjUwagrc1yW569JgX0WqpuQgVA=" }, + { + "mvn-path": "org/clojure/clojure/1.12.1/clojure-1.12.1.jar", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-h+7qnjVdhsBFc4r0lNaD4J6RTLBGeuQNRqZrh6NsctQ=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.1/clojure-1.12.1.pom", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-JUvpyKuMzDArR9fFaj/KEUl+WcMFvxX6YFTD3/TrkZ0=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.2/clojure-1.12.2.jar", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-pYv4B+zv7K6iIri4tH4UNo7o4yy0VAs//v/4yglTSA0=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.2/clojure-1.12.2.pom", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-55suCRfnPnPCX7N5PzFV+PD4jYAvUMJf1Sl3l3rDQiA=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.3/clojure-1.12.3.jar", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-yyoaPbHCzXbvT6SlRdWmXxCxtIt/dnLwoQn1R28FcWY=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.3/clojure-1.12.3.pom", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-q2CmyyuMxXyG21ECte4p8hWsg8/20wEblV+fxb5dAZ0=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.4/clojure-1.12.4.jar", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-S4Hpum2jjEXZzFgCPGdAYrjJ8HFPM/8A3tIuapSdoXc=" + }, + { + "mvn-path": "org/clojure/clojure/1.12.4/clojure-1.12.4.pom", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-xRh5Bi5B/58hr6DkCbGZ/+nyo8aucizf7F/Z26BeQXI=" + }, { "mvn-path": "org/clojure/core.match/1.1.0/core.match-1.1.0.jar", "mvn-repo": "https://repo1.maven.org/maven2/", @@ -360,24 +460,34 @@ "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-NnHYN2UlIwq6Ah8fYmx54g86ELYrXfgXIiWJDsSv4EU=" }, + { + "mvn-path": "org/clojure/core.rrb-vector/0.2.0/core.rrb-vector-0.2.0.jar", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-ftqNXGlaxVNp3NTHN4YUMhdXuBAoG//KMMss02PRZZQ=" + }, + { + "mvn-path": "org/clojure/core.rrb-vector/0.2.0/core.rrb-vector-0.2.0.pom", + "mvn-repo": "https://repo1.maven.org/maven2/", + "hash": "sha256-t+0/8ZfxrdZOHvJS2zRY8wlhPcZXdejY4OkTlx4CRY4=" + }, { "mvn-path": "org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-/PRCveArBKhj8vzFjuaiowxM8Mlw99q4VjTwq3ERZrY=" }, { "mvn-path": "org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-AarxdIP/HHSCySoHKV1+e8bjszIt9EsptXONAg/wB0A=" }, { "mvn-path": "org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-Bu6owHC75FwVhWfkQ0OWgbyMRukSNBT4G/oyukLWy8g=" }, { "mvn-path": "org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-F3i70Ti9GFkLgFS+nZGdG+toCfhbduXGKFtn1Ad9MA4=" }, { @@ -407,7 +517,7 @@ }, { "mvn-path": "org/clojure/pom.contrib/0.3.0/pom.contrib-0.3.0.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-fxgrOypUPgV0YL+T/8XpzvasUn3xoTdqfZki6+ee8Rk=" }, { @@ -427,22 +537,22 @@ }, { "mvn-path": "org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-z2iZ+YUpjGSxPqEplGrZAo3uja3w6rmuGORVAn04JJw=" }, { "mvn-path": "org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-WhHw4eizwFLmUcSYxpRbRNs1Nb8sGHGf3PZd8fiLE+Y=" }, { "mvn-path": "org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-Z+yJjrVcZqlXpVJ53YXRN2u5lL2HZosrDeHrO5foquA=" }, { "mvn-path": "org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.pom", - "mvn-repo": "https://repo.maven.apache.org/maven2/", + "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-bY3hTDrIdXYMX/kJVi/5hzB3AxxquTnxyxOeFp/pB1g=" }, { @@ -545,6 +655,16 @@ "mvn-repo": "https://repo1.maven.org/maven2/", "hash": "sha256-Z3XeNvNR9MdFCL/+qtZAIceVhx/ZRIXsdsPhduUwU7g=" }, + { + "mvn-path": "riddley/riddley/0.1.12/riddley-0.1.12.jar", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-OY9h+kgluPhskWrlgMfhM7fEd9C3Kn07KY04EDJ0C64=" + }, + { + "mvn-path": "riddley/riddley/0.1.12/riddley-0.1.12.pom", + "mvn-repo": "https://repo.clojars.org/", + "hash": "sha256-At+3ryDvgcJTZQVfYCjoscwpBdCyaLuJzEKM2nIwo2U=" + }, { "mvn-path": "ring/ring-anti-forgery/1.4.0/ring-anti-forgery-1.4.0.jar", "mvn-repo": "https://repo.clojars.org/", diff --git a/doerg/resources/net/deertopia/doerg/tuftesque.css b/doerg/resources/net/deertopia/doerg/tuftesque.css index f09c4af..d71d1ac 100644 --- a/doerg/resources/net/deertopia/doerg/tuftesque.css +++ b/doerg/resources/net/deertopia/doerg/tuftesque.css @@ -546,3 +546,13 @@ figure.fullwidth figcaption { .latex-fragment { fill: currentColor } + +.latex-fragment.display-math +{ display: block +; width: 55% +/* Center it — do we want to do that? */ +; align-items: center +; justify-content: center +; display: flex +; max-width: 55% +} diff --git a/doerg/src/net/deertopia/doerg/element.clj b/doerg/src/net/deertopia/doerg/element.clj index 9a0b5b2..4cfebb4 100644 --- a/doerg/src/net/deertopia/doerg/element.clj +++ b/doerg/src/net/deertopia/doerg/element.clj @@ -81,6 +81,13 @@ (when-some [footnotes-headline (first (:children element))] (= "Footnotes" (:raw-value footnotes-headline))))) +(defn display-math? + "Return truthy if `element` should be considered display math." + [element] + (or (of-type? element "latex-environment") + (and (of-type? element "latex-fragment") + (-> element :contents (str/starts-with? "\\["))))) + ;;; Spec diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index 57d3239..ed6bb17 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -361,11 +361,13 @@ (str "@" key)) (defmethod org-element "latex-fragment" [{:keys [contents value] :as e}] - [:span.latex-fragment + [:span {:class (if (element/display-math? e) + "latex-fragment display-math" + "latex-fragment")} (-> e ::rendered deref)]) (defmethod org-element "latex-environment" [{:keys [value] :as e}] - [:span.latex-fragment + [:span.latex-fragment.display-math (-> e ::rendered deref)]) (defmethod org-element "example-block" [{:keys [value]}]