Browse Source

fix: slide style

Resolved #835
Tienson Qin 5 years ago
parent
commit
1dfd7958d4

+ 14 - 0
resources/css/common.css

@@ -26,6 +26,7 @@
     --ls-link-ref-text-hover-color: var(--ls-link-text-hover-color);
         --ls-tag-text-color: var(--ls-link-text-color);
         --ls-tag-text-hover-color: var(--ls-link-text-hover-color);
+        --ls-slide-background-color: var(--ls-primary-background-color);
 
     --ls-block-bullet-border-color: #0f4958;
     --ls-block-bullet-color: #608e91;
@@ -70,6 +71,7 @@
     --ls-link-ref-text-hover-color: var(--ls-link-text-hover-color);
         --ls-tag-text-color: var(--ls-link-text-color);
         --ls-tag-text-hover-color: var(--ls-link-text-hover-color);
+        --ls-slide-background-color: #002b36;
 
     --ls-block-bullet-border-color: #ced9e0;
     --ls-block-bullet-color: #394b59;
@@ -1462,3 +1464,15 @@ a.tag:hover {
 .right {
     float: right;
 }
+
+.reveal {
+    background: var(--ls-slide-background-color);
+}
+
+#right-sidebar .reveal pre.code {
+    background: transparent;
+}
+
+.reveal .hljs {
+    background: none;
+}

+ 21 - 8
src/main/frontend/components/block.cljs

@@ -995,9 +995,19 @@
 (defn- pre-block-cp
   [config content format]
   (let [ast (mldoc/->edn content (mldoc/default-config format))
-        ast (map first ast)]
-    [:div.pre-block.bg-base-2.p-2
-     (markup-elements-cp (assoc config :block/format format) ast)]))
+        ast (map first ast)
+        slide? (:slide? config)
+        only-title? (and (= 1 (count ast))
+                         (= "Properties" (ffirst ast))
+                         (let [m (second (first ast))]
+                           (= (keys m) [:title])))
+        block-cp [:div.pre-block.bg-base-2.p-2
+                  (markup-elements-cp (assoc config :block/format format) ast)]]
+    (if slide?
+      [:div [:h1 (:page-name config)]
+       (when-not only-title?
+         block-cp)]
+      block-cp)))
 
 (rum/defc properties-cp
   [block]
@@ -1112,7 +1122,8 @@
 
       (when (and (seq properties)
                  (let [hidden? (text/properties-hidden? properties)]
-                   (not hidden?)))
+                   (not hidden?))
+                 (not (:slide? config)))
         (properties-cp block))
 
       (when (and (not pre-block?) (seq body))
@@ -1647,10 +1658,12 @@
 
           :else
           (let [language (if (contains? #{"edn" "clj" "cljc" "cljs" "clojure"} language) "text/x-clojure" language)]
-            [: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))])))
+            (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

+ 2 - 1
src/main/frontend/components/right_sidebar.cljs

@@ -151,7 +151,8 @@
           sections (block/build-slide-sections blocks {:id "slide-reveal-js"
                                                        :start-level 2
                                                        :slide? true
-                                                       :sidebar? true})]
+                                                       :sidebar? true
+                                                       :page-name page-name})]
       [[:a {:href (str "/page/" (util/url-encode page-name))}
         (util/capitalize-all page-name)]
        [:div.ml-2.slide.mt-2

+ 2 - 1
src/main/frontend/tools/html_export.cljs

@@ -40,7 +40,8 @@
                                                                 (merge
                                                                  config
                                                                  {:id "slide"
-                                                                  :start-level 2})
+                                                                  :start-level 2
+                                                                  :page-name page-name})
                                                                 build-block)]
                        (slide/slide-content false "" sections))
                      [:div.page