diff --git a/src/main/frontend/extensions/html_parser.cljs b/src/main/frontend/extensions/html_parser.cljs index ee23392fe..489456fdb 100644 --- a/src/main/frontend/extensions/html_parser.cljs +++ b/src/main/frontend/extensions/html_parser.cljs @@ -21,17 +21,17 @@ (str (hiccup-without-style hiccup)))) (defn ^:large-vars/cleanup-todo hiccup->doc-inner - [format hiccup] - (let [transform-fn (fn [hiccup] - (hiccup->doc-inner format hiccup)) + [format hiccup opts] + (let [transform-fn (fn [hiccup opts] + (hiccup->doc-inner format hiccup opts)) block-pattern (if (= format :markdown) "#" (config/get-block-pattern format)) - map-join (fn [children] (apply str (map transform-fn children))) + map-join (fn [children] (apply str (map #(transform-fn % opts) children))) block-transform (fn [level children] (str (apply str (repeat level block-pattern)) " " - (->> (map transform-fn children) + (->> (map #(transform-fn % opts) children) (string/join " ")) "\n")) emphasis-transform (fn [tag attrs children] @@ -75,6 +75,9 @@ (if (string? pattern) pattern (apply str (reverse pattern)))))) wrapper (fn [tag content] (cond + (and (= tag :p) (:in-table? opts)) + content + (contains? #{:p :hr :ul :ol :dl :table :pre :blockquote :aside :canvas :center :figure :figcaption :fieldset :div :footer :header} tag) @@ -185,7 +188,7 @@ nil) :tr (str "| " - (->> (map transform-fn children) + (->> (map #(transform-fn % (assoc opts :in-table? true)) children) (string/join " | ")) " |") @@ -208,7 +211,7 @@ (defn hiccup->doc [format hiccup] - (let [s (hiccup->doc-inner format hiccup)] + (let [s (hiccup->doc-inner format hiccup {})] (if (string/blank? s) "" (-> s