|  | @@ -12,7 +12,7 @@
 | 
	
		
			
				|  |  |  (defn loaded? []
 | 
	
		
			
				|  |  |    js/window.katex)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -(defonce *loading? (atom true))
 | 
	
		
			
				|  |  | +(defonce *loading? (atom false))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (defn render!
 | 
	
		
			
				|  |  |    [state]
 | 
	
	
		
			
				|  | @@ -31,7 +31,7 @@
 | 
	
		
			
				|  |  |      (do
 | 
	
		
			
				|  |  |        (reset! *loading? false)
 | 
	
		
			
				|  |  |        (render! state))
 | 
	
		
			
				|  |  | -    (do
 | 
	
		
			
				|  |  | +    (when-not @*loading?
 | 
	
		
			
				|  |  |        (reset! *loading? true)
 | 
	
		
			
				|  |  |        (loader/load
 | 
	
		
			
				|  |  |         (config/asset-uri "/static/js/katex.min.js")
 | 
	
	
		
			
				|  | @@ -48,21 +48,24 @@
 | 
	
		
			
				|  |  |                  (render! state))))))
 | 
	
		
			
				|  |  |         state))))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +(defn- state-&-load-and-render!
 | 
	
		
			
				|  |  | +  [state]
 | 
	
		
			
				|  |  | +  (js/setTimeout #(load-and-render! state) 10)
 | 
	
		
			
				|  |  | +  state)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  (rum/defc latex < rum/reactive
 | 
	
		
			
				|  |  | -  {:did-mount (fn [state]
 | 
	
		
			
				|  |  | -                (js/setTimeout #(load-and-render! state) 0)
 | 
	
		
			
				|  |  | -                state)
 | 
	
		
			
				|  |  | -   :did-update load-and-render!}
 | 
	
		
			
				|  |  | +  {:did-mount  state-&-load-and-render!
 | 
	
		
			
				|  |  | +   :did-update state-&-load-and-render!}
 | 
	
		
			
				|  |  |    [id s block? _display?]
 | 
	
		
			
				|  |  |    (let [loading? (rum/react *loading?)]
 | 
	
		
			
				|  |  | -    (when loading?
 | 
	
		
			
				|  |  | -      (ui/loading "Loading"))
 | 
	
		
			
				|  |  | -    (let [element (if block?
 | 
	
		
			
				|  |  | -                    :div.latex
 | 
	
		
			
				|  |  | -                    :span.latex-inline)]
 | 
	
		
			
				|  |  | -      [element {:id id
 | 
	
		
			
				|  |  | -                :class (if loading? "hidden" "initial")}
 | 
	
		
			
				|  |  | -       s])))
 | 
	
		
			
				|  |  | +    (if loading?
 | 
	
		
			
				|  |  | +      (ui/loading "Loading")
 | 
	
		
			
				|  |  | +      (let [element (if block?
 | 
	
		
			
				|  |  | +                      :div.latex
 | 
	
		
			
				|  |  | +                      :span.latex-inline)]
 | 
	
		
			
				|  |  | +        [element {:id    id
 | 
	
		
			
				|  |  | +                  :class "initial"}
 | 
	
		
			
				|  |  | +         [:span.opacity-0 s]]))))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (defn html-export
 | 
	
		
			
				|  |  |    [s block? display?]
 |