| 
					
				 | 
			
			
				@@ -1290,7 +1290,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pre-block? (:block/pre-block? block) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         properties (if pre-block? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                      (dissoc properties :title :filters) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     properties)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     properties) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        properties (sort properties)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (seq properties) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       [:div.blocks-properties.text-sm.opacity-80.my-1.p-2 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1994,168 +1995,190 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      [:div.ml-4.text-lg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (markup-elements-cp config result)]])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; TODO: move to mldoc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; (defn- convert-md-src-to-custom-block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;   [item] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;   (let [{:keys [language options lines] :as options} (second item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;         lang (string/lower-case (or language ""))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;     (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       (= lang "quote") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       (let [content (string/trim (string/join "\n" lines))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;         ["Quote" (first (mldoc/->edn content (mldoc/default-config :markdown)))]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       (contains? #{"query" "note" "tip" "important" "caution" "warning" "pinned"} lang) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       (let [content (string/trim (string/join "\n" lines))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;         ["Custom" lang nil (first (mldoc/->edn content (mldoc/default-config :markdown))) content]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       :else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;       ["Src" options]))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defn markup-element-cp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [{:keys [html-export?] :as config} item] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (match item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Properties" m] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      [:div.properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (let [format (:block/format config)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (for [[k v] (dissoc m :roam_alias :roam_tags)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           (when (and (not (and (= k :macros) (empty? v))) ; empty macros 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      (not (= k :title)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      (not (= k :filters))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             [:div.property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              [:span.font-medium.mr-1 (str (name k) ": ")] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (if (coll? v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (let [vals (for [item v] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             (if (coll? v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               (let [config (if (= k :alias) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                              (assoc config :block/alias? true))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 (page-cp config {:block/name item})) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               (inline-text format item)))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  (interpose [:span ", "] vals)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (inline-text format v))])))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Paragraph" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ;; TODO: speedup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if (re-find #"\"Export_Snippet\" \"embed\"" (str l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (->elem :div (map-inline config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (->elem :div.is-paragraph (map-inline config l))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Horizontal_Rule"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when-not (:slide? config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:hr]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Heading" h] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (block-container config h) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["List" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let [lists (divide-lists l)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (if (= 1 (count lists)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (let [l (first lists)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             (list-element l) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             (map #(list-item config %) l))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          [:div.list-group 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           (for [l lists] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let [format (or (:block/format config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   :markdown)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (match item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Properties" m] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       [:div.properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (for [[k v] (dissoc m :roam_alias :roam_tags)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          (when (and (not (and (= k :macros) (empty? v))) ; empty macros 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     (not (= k :title)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     (not (= k :filters))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            [:div.property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             [:span.font-medium.mr-1 (str (name k) ": ")] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             (if (coll? v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (let [vals (for [item v] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            (if (coll? v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              (let [config (if (= k :alias) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                             (assoc config :block/alias? true))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                (page-cp config {:block/name item})) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              (inline-text format item)))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 (interpose [:span ", "] vals)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (inline-text format v))]))] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Paragraph" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ;; TODO: speedup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (if (re-find #"\"Export_Snippet\" \"embed\"" (str l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (->elem :div (map-inline config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (->elem :div.is-paragraph (map-inline config l))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Horizontal_Rule"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (when-not (:slide? config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         [:hr]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Heading" h] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (block-container config h) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["List" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (let [lists (divide-lists l)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (if (= 1 (count lists)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (let [l (first lists)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               (list-element l) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (map #(list-item config %) l)))])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Table" t] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (table config t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Math" s] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/html-export s true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/latex (str (dc/squuid)) s true true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Example" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      [:pre.pre-wrap-white-space 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (join-lines l)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Src" options] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let [{:keys [language options lines pos_meta]} options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            attr (if language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   {:data-lang language}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            code (join-lines lines)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (highlight/html-export attr code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          :else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (let [language (if (contains? #{"edn" "clj" "cljc" "cljs" "clojure"} language) "text/x-clojure" language)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (if (:slide? config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (highlight/highlight (str (medley/random-uuid)) {:data-lang language} code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              [:div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               (lazy-editor/editor config (str (dc/squuid)) attr code pos_meta) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               (when (and (= language "text/x-clojure") (contains? (set options) ":results")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                 (sci/eval-result code))])))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Quote" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       :blockquote 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (markup-elements-cp config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Raw_Html" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when (not html-export?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:div.raw_html {:dangerouslySetInnerHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {:__html content}}]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Export" "html" options content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when (not html-export?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:div.export_html {:dangerouslySetInnerHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                           {:__html content}}]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Hiccup" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (ui/catch-error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       [:div.warning {:title "Invalid hiccup"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (-> (safe-read-string content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           (security/remove-javascript-links-in-href))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Export" "latex" options content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/html-export content true false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/latex (str (dc/squuid)) content true false)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "query" _options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (let [query (reader/read-string content)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (custom-query config query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (catch js/Error e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (println "read-string error:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (js/console.error e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          [:div.warning {:title "Invalid query"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           content])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "note" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "note" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "tip" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "tip" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "important" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "important" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "caution" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "caution" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "warning" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "warning" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" "pinned" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (admonition config "pinned" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Custom" name options l content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       :div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       {:class name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (markup-elements-cp config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Latex_Fragment" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      [:p.latex-fragment 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (inline config ["Latex_Fragment" l])] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Latex_Environment" name option content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let [content (latex-environment-content name option content)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (latex/html-export content true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (latex/latex (str (dc/squuid)) content true true))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Displayed_Math" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/html-export content true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (latex/latex (str (dc/squuid)) content true true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ["Footnote_Definition" name definition] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let [id (util/url-encode name)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:div.footdef 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         [:div.footpara 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (conj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           (markup-element-cp config ["Paragraph" definition]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           [:a.ml-1 {:id (str "fn." id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     :style {:font-size 14} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     :class "footnum" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     :on-click #(route-handler/jump-to-anchor! (str "fnr." id))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            [:sup.fn (str name "↩︎")]])]]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (map #(list-item config %) l))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           [:div.list-group 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (for [l lists] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (list-element l) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (map #(list-item config %) l)))])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Table" t] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (table config t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Math" s] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/html-export s true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/latex (str (dc/squuid)) s true true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Example" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       [:pre.pre-wrap-white-space 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (join-lines l)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Quote" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :blockquote 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (markup-elements-cp config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Raw_Html" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (when (not html-export?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         [:div.raw_html {:dangerouslySetInnerHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         {:__html content}}]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Export" "html" options content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (when (not html-export?) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         [:div.export_html {:dangerouslySetInnerHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            {:__html content}}]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Hiccup" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (ui/catch-error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [:div.warning {:title "Invalid hiccup"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (-> (safe-read-string content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (security/remove-javascript-links-in-href))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Export" "latex" options content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/html-export content true false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/latex (str (dc/squuid)) content true false)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "query" _options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (let [query (reader/read-string content)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (custom-query config query)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (catch js/Error e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (println "read-string error:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (js/console.error e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           [:div.warning {:title "Invalid query"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "note" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "note" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "tip" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "tip" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "important" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "important" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "caution" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "caution" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "warning" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "warning" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" "pinned" options result content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (admonition config "pinned" options result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Custom" name options l content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (->elem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {:class name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (markup-elements-cp config l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Latex_Fragment" l] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       [:p.latex-fragment 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (inline config ["Latex_Fragment" l])] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Latex_Environment" name option content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (let [content (latex-environment-content name option content)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (latex/html-export content true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (latex/latex (str (dc/squuid)) content true true))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Displayed_Math" content] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (if html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/html-export content true true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (latex/latex (str (dc/squuid)) content true true)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Footnote_Definition" name definition] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (let [id (util/url-encode name)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         [:div.footdef 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          [:div.footpara 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (conj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (markup-element-cp config ["Paragraph" definition]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            [:a.ml-1 {:id (str "fn." id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :style {:font-size 14} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :class "footnum" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :on-click #(route-handler/jump-to-anchor! (str "fnr." id))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             [:sup.fn (str name "↩︎")]])]]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ["Src" options] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (when options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (let [{:keys [language options lines pos_meta]} options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               attr (if language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      {:data-lang language}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               code (join-lines lines)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             html-export? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             (highlight/html-export attr code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      :else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (catch js/Error e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (println "Convert to html failed, error: " e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ""))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             :else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             (let [language (if (contains? #{"edn" "clj" "cljc" "cljs" "clojure"} language) "text/x-clojure" language)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (highlight/highlight (str (medley/random-uuid)) {:data-lang language} code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;; (if (:slide? config) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;;   (highlight/highlight (str (medley/random-uuid)) {:data-lang language} code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;;   [:div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;;    (lazy-editor/editor config (str (dc/squuid)) attr code pos_meta) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;;    (when (and (= language "text/x-clojure") (contains? (set options) ":results")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               ;;      (sci/eval-result code))]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               )))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       :else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (catch js/Error e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (println "Convert to html failed, error: " e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       "")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defn markup-elements-cp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [config col] 
			 |