File tree Expand file tree Collapse file tree 4 files changed +50
-0
lines changed Expand file tree Collapse file tree 4 files changed +50
-0
lines changed Original file line number Diff line number Diff line change 1818require "qiita/markdown/embed/speeker_deck"
1919require "qiita/markdown/embed/docswell"
2020require "qiita/markdown/embed/figma"
21+ require "qiita/markdown/embed/stack_blitz"
2122require "qiita/markdown/transformers/filter_attributes"
2223require "qiita/markdown/transformers/filter_script"
2324require "qiita/markdown/transformers/filter_iframe"
Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ module Qiita
4+ module Markdown
5+ module Embed
6+ module StackBlitz
7+ SCRIPT_HOST = "stackblitz.com"
8+ end
9+ end
10+ end
11+ end
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ class FilterIframe
1111 Embed ::Docswell ::SCRIPT_HOSTS ,
1212 Embed ::Figma ::SCRIPT_HOST ,
1313 Embed ::GoogleDrive ::SCRIPT_HOST ,
14+ Embed ::StackBlitz ::SCRIPT_HOST ,
1415 ] . flatten . freeze
1516
1617 def self . call ( **args )
Original file line number Diff line number Diff line change 17471747 end
17481748 end
17491749
1750+ context "with HTML embed code for StackBlitz" do
1751+ shared_examples "embed code stackblitz example" do
1752+ let ( :markdown ) do
1753+ <<~MARKDOWN
1754+ <iframe src="#{ url } " width="800" height="600" frameborder="0" allowfullscreen="true"></iframe>
1755+ MARKDOWN
1756+ end
1757+ let ( :url ) { "#{ scheme } //stackblitz.com/embed/example" }
1758+
1759+ if allowed
1760+ it "does not sanitize embed code" do
1761+ should eq <<~HTML
1762+ < iframe src ="#{ url } " width="800" height="600" frameborder="0" allowfullscreen="true"> </ iframe>
1763+ HTML
1764+ end
1765+ else
1766+ it "forces width attribute on iframe" do
1767+ should eq <<~HTML
1768+ < iframe src ="#{ url } " width="100%" height="600" frameborder="0" allowfullscreen="true"> </ iframe>
1769+ HTML
1770+ end
1771+ end
1772+ end
1773+
1774+ context "with scheme" do
1775+ let ( :scheme ) { "https:" }
1776+
1777+ include_examples "embed code stackblitz example"
1778+ end
1779+
1780+ context "without scheme" do
1781+ let ( :scheme ) { "" }
1782+
1783+ include_examples "embed code stackblitz example"
1784+ end
1785+ end
1786+
17501787 context "with embed code for Tweet" do
17511788 let ( :markdown ) do
17521789 <<-MARKDOWN . strip_heredoc
You can’t perform that action at this time.
0 commit comments