From 8b3bde40a191d547b2f498bca8b66e43d09994ed Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Sun, 8 Nov 2020 12:29:37 +0800 Subject: [PATCH] feat: add `embed youtube video` command --- src/main/frontend/commands.cljs | 4 +++- src/main/frontend/components/block.cljs | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/frontend/commands.cljs b/src/main/frontend/commands.cljs index b73582cda..f9c16dc75 100644 --- a/src/main/frontend/commands.cljs +++ b/src/main/frontend/commands.cljs @@ -100,7 +100,7 @@ ["Deadline" [[:editor/clear-current-slash] [:editor/show-date-picker]]] ["Scheduled" [[:editor/clear-current-slash] - [:editor/show-date-picker]]] + [:editor/show-date-picker]]] ["Draw" [[:editor/input "/draw "] [:editor/show-input [{:command :draw :id :title @@ -125,6 +125,8 @@ ["Image Link" link-steps] (when (state/logged?) ["Upload an image" [[:editor/click-hidden-file-input :id]]]) + ["Embed Youtube Video" [[:editor/input "{{{youtube }}}" {:last-pattern slash + :backward-pos 3}]]] ["Html Inline " (->inline "html")] ;; TODO: diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index 0f4787242..c7b85a9ae 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -578,6 +578,27 @@ [title]) arguments)] (cond + (= name "youtube") + (let [url (first arguments)] + (when-let [youtube-id (cond + (string/starts-with? url "https://youtu.be/") + (string/replace url "https://youtu.be/" "") + + (string? url) + url + + :else + nil)] + (when-not (string/blank? youtube-id) + [:iframe + {:allowfullscreen "allowfullscreen" + :allow + "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + :frameborder "0" + :src (str "https://www.youtube.com/embed/" youtube-id) + :height "315" + :width "560"}]))) + (= name "embed") (let [a (first arguments)] (cond