Skip to content

Commit 7ce41bd

Browse files
committed
feat: Google Drive Video ifrmae support
fix: rubocop related lint fix
1 parent e0480a3 commit 7ce41bd

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

lib/qiita/markdown.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
require "qiita/markdown/embed/tweet"
1313
require "qiita/markdown/embed/asciinema"
1414
require "qiita/markdown/embed/youtube"
15+
require "qiita/markdown/embed/google_drive"
1516
require "qiita/markdown/embed/slide_share"
1617
require "qiita/markdown/embed/google_slide"
1718
require "qiita/markdown/embed/speeker_deck"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
module Qiita
4+
module Markdown
5+
module Embed
6+
module GoogleDrive
7+
SCRIPT_HOST = "drive.google.com"
8+
end
9+
end
10+
end
11+
end

lib/qiita/markdown/transformers/filter_iframe.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class FilterIframe
1010
Embed::GoogleSlide::SCRIPT_HOST,
1111
Embed::Docswell::SCRIPT_HOSTS,
1212
Embed::Figma::SCRIPT_HOST,
13+
Embed::GoogleDrive::SCRIPT_HOST,
1314
].flatten.freeze
1415

1516
def self.call(**args)

spec/qiita/markdown/processor_spec.rb

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,6 +1520,42 @@
15201520
end
15211521
end
15221522

1523+
context "with HTML embed code for Google Drive" do
1524+
shared_examples "embed code googledrive example" do
1525+
let(:markdown) do
1526+
<<-MARKDOWN.strip_heredoc
1527+
<iframe src="#{url}" width="640" height="480" frameborder="0" allowfullscreen="true"></iframe>
1528+
MARKDOWN
1529+
end
1530+
let(:file_id) { "DRIVE_FILE_ID_EXAMPLE" }
1531+
let(:url) { "#{scheme}//drive.google.com/file/d/#{file_id}/preview" }
1532+
1533+
if allowed
1534+
it "does not sanitize embed code" do
1535+
should eq <<-HTML.strip_heredoc
1536+
<iframe src="#{url}" width="640" height="480" frameborder="0" allowfullscreen="true"></iframe>
1537+
HTML
1538+
end
1539+
else
1540+
it "forces width attribute on iframe" do
1541+
should eq <<-HTML.strip_heredoc
1542+
<iframe src="#{url}" width="100%" height="480" frameborder="0" allowfullscreen="true"></iframe>
1543+
HTML
1544+
end
1545+
end
1546+
end
1547+
1548+
context "with scheme" do
1549+
let(:scheme) { "https:" }
1550+
include_examples "embed code googledrive example"
1551+
end
1552+
1553+
context "without scheme" do
1554+
let(:scheme) { "" }
1555+
include_examples "embed code googledrive example"
1556+
end
1557+
end
1558+
15231559
context "with HTML embed code for SlideShare" do
15241560
shared_examples "embed code slideshare example" do
15251561
let(:markdown) do

0 commit comments

Comments
 (0)