jekyll-pdf-embed 1.1.2 → 1.1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jekyll-pdf-embed/pdf-tag.rb +84 -90
- data/lib/jekyll-pdf-embed/version.rb +7 -7
- data/lib/jekyll-pdf-embed.rb +9 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d06b611d6f7cf682294c57fee183629534b4370cdb0f00abcf51c8e582c7686
|
4
|
+
data.tar.gz: d6f9de223e5598cca77006411dafd94116a6430f7ff7346cb981a962d61e9597
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b70f37431269b124c2889f24989128114c59582721902e56e45a58aac6ae09585a46e59da9963c57de0909e4b63daa0ec4095ff60bac2e9141b18db6f61fa25c
|
7
|
+
data.tar.gz: 5abe32bb2cd60e71f5aa9d0e8fcc7a02d0a6aebc41e19b79647a47c91fe8fe4a8215e0e98a35beb4ce50b6608cee8e0b6c3f3b141b92dd639b668f2f40de6205
|
@@ -1,90 +1,84 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'jekyll'
|
4
|
-
require 'securerandom'
|
5
|
-
|
6
|
-
class JekyllPDFEmbed < Liquid::Tag
|
7
|
-
|
8
|
-
NO_LINK_ARG = 'no_link'
|
9
|
-
|
10
|
-
def initialize(tag_name, content, tokens)
|
11
|
-
super
|
12
|
-
@content = content
|
13
|
-
|
14
|
-
# define allowed extensions
|
15
|
-
@allowed_files = %w[.pdf .ppt .pptx]
|
16
|
-
|
17
|
-
# current container uuid
|
18
|
-
@uuid = SecureRandom.uuid
|
19
|
-
end
|
20
|
-
|
21
|
-
def render(context)
|
22
|
-
@parsed_content = Liquid::Template.parse(@content).render(context)
|
23
|
-
@args = @parsed_content.split(/ /)
|
24
|
-
|
25
|
-
@link_raw = @args.first
|
26
|
-
@link = @link_raw.tr('\"', '')
|
27
|
-
|
28
|
-
@no_link = @args.include? NO_LINK_ARG
|
29
|
-
@extension = File.extname(@link)
|
30
|
-
@is_allowed = @allowed_files.include? @extension
|
31
|
-
|
32
|
-
@other_args_raw = @parsed_content.clone
|
33
|
-
@other_args_raw.slice! @link_raw
|
34
|
-
@other_args_raw.slice! NO_LINK_ARG
|
35
|
-
@other_args_raw.strip!
|
36
|
-
|
37
|
-
@other_args_array = @other_args_raw.split(/ /)
|
38
|
-
|
39
|
-
@other_args = hash_from_args(@other_args_array)
|
40
|
-
@width = @other_args['width']
|
41
|
-
@height = @other_args['height']
|
42
|
-
|
43
|
-
# default width and height values
|
44
|
-
@width = '100%' if @width.nil?
|
45
|
-
@height = '650px' if @height.nil?
|
46
|
-
|
47
|
-
raise ArgumentError, "ERROR:file_not_allowed -> #{@link}" unless @is_allowed
|
48
|
-
|
49
|
-
@label = ''
|
50
|
-
|
51
|
-
case @extension
|
52
|
-
when '.pdf'
|
53
|
-
@label = 'View PDF'
|
54
|
-
when '.ppt', '.pptx'
|
55
|
-
@label = 'View presentation'
|
56
|
-
# checks if the presentation is not on remote address
|
57
|
-
if !@link.include? 'http://' and !@link.include? 'https://'
|
58
|
-
# get base url and append file location to it
|
59
|
-
@baseurl = context.registers[:site].config['url'].to_s
|
60
|
-
@link = "https://view.officeapps.live.com/op/embed.aspx?src=#{@baseurl}#{@link}"
|
61
|
-
# locally, this will not work
|
62
|
-
# but once the Jekyll site is hosted remotely, the baseurl will not be 'localhost'
|
63
|
-
else
|
64
|
-
@link = "https://view.officeapps.live.com/op/embed.aspx?src=#{@link}"
|
65
|
-
end
|
66
|
-
else
|
67
|
-
raise ArgumentError, "ERROR:extension_not_recognized -> #{@extension} for link -> #{@link}"
|
68
|
-
end
|
69
|
-
|
70
|
-
if @no_link
|
71
|
-
%Q(<style> .pdf-embed-wrap-#{@uuid} { display:flex; flex-direction: column; width: #{@width}; height: #{@height}; } .pdf-embed-container-#{@uuid} { height: 100%; } .pdf-embed-container-#{@uuid} iframe { width: 100%; height: 100%; } </style> <div class="pdf-embed-wrap-#{@uuid}"> <div class="pdf-embed-container-#{@uuid}"> <iframe src="#{@link}" frameborder="0" allowfullscreen></iframe> </div> </div>)
|
72
|
-
else
|
73
|
-
%Q(<style> .pdf-embed-wrap-#{@uuid} { display:flex; flex-direction: column; width: #{@width}; height: #{@height}; } .pdf-embed-container-#{@uuid} { height: 100%; } .pdf-link-#{@uuid} { background-color: white; text-align: center; border-style: solid; } .pdf-embed-container-#{@uuid} iframe { width: 100%; height: 100%; } </style> <div class="pdf-embed-wrap-#{@uuid}"> <div class="pdf-link-#{@uuid}"> <a href="#{@link}" target="_blank">#{@label}</a> </div> <div class="pdf-embed-container-#{@uuid}"> <iframe src="#{@link}" frameborder="0" allowfullscreen></iframe> </div> </div>)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
# Transform 'a=b c=d' into hash
|
78
|
-
def hash_from_args(args_array)
|
79
|
-
keys_values = args_array.map { |item| item.split
|
80
|
-
Hash[keys_values]
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
str = str.slice(1..-1) if str.start_with?('"')
|
86
|
-
str = str.slice(0..-2) if str.end_with?('"')
|
87
|
-
end
|
88
|
-
|
89
|
-
Liquid::Template.register_tag('pdf', self)
|
90
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'jekyll'
|
4
|
+
require 'securerandom'
|
5
|
+
|
6
|
+
class JekyllPDFEmbed < Liquid::Tag
|
7
|
+
|
8
|
+
NO_LINK_ARG = 'no_link'
|
9
|
+
|
10
|
+
def initialize(tag_name, content, tokens)
|
11
|
+
super
|
12
|
+
@content = content
|
13
|
+
|
14
|
+
# define allowed extensions
|
15
|
+
@allowed_files = %w[.pdf .ppt .pptx]
|
16
|
+
|
17
|
+
# current container uuid
|
18
|
+
@uuid = SecureRandom.uuid
|
19
|
+
end
|
20
|
+
|
21
|
+
def render(context)
|
22
|
+
@parsed_content = Liquid::Template.parse(@content).render(context)
|
23
|
+
@args = @parsed_content.split(/ /)
|
24
|
+
|
25
|
+
@link_raw = @args.first
|
26
|
+
@link = @link_raw.tr('\"', '')
|
27
|
+
|
28
|
+
@no_link = @args.include? NO_LINK_ARG
|
29
|
+
@extension = File.extname(@link)
|
30
|
+
@is_allowed = @allowed_files.include? @extension
|
31
|
+
|
32
|
+
@other_args_raw = @parsed_content.clone
|
33
|
+
@other_args_raw.slice! @link_raw
|
34
|
+
@other_args_raw.slice! NO_LINK_ARG
|
35
|
+
@other_args_raw.strip!
|
36
|
+
|
37
|
+
@other_args_array = @other_args_raw.split(/ /)
|
38
|
+
|
39
|
+
@other_args = hash_from_args(@other_args_array)
|
40
|
+
@width = @other_args['width']
|
41
|
+
@height = @other_args['height']
|
42
|
+
|
43
|
+
# default width and height values
|
44
|
+
@width = '100%' if @width.nil?
|
45
|
+
@height = '650px' if @height.nil?
|
46
|
+
|
47
|
+
raise ArgumentError, "ERROR:file_not_allowed -> #{@link}" unless @is_allowed
|
48
|
+
|
49
|
+
@label = ''
|
50
|
+
|
51
|
+
case @extension
|
52
|
+
when '.pdf'
|
53
|
+
@label = 'View PDF'
|
54
|
+
when '.ppt', '.pptx'
|
55
|
+
@label = 'View presentation'
|
56
|
+
# checks if the presentation is not on remote address
|
57
|
+
if !@link.include? 'http://' and !@link.include? 'https://'
|
58
|
+
# get base url and append file location to it
|
59
|
+
@baseurl = context.registers[:site].config['url'].to_s
|
60
|
+
@link = "https://view.officeapps.live.com/op/embed.aspx?src=#{@baseurl}#{@link}"
|
61
|
+
# locally, this will not work
|
62
|
+
# but once the Jekyll site is hosted remotely, the baseurl will not be 'localhost'
|
63
|
+
else
|
64
|
+
@link = "https://view.officeapps.live.com/op/embed.aspx?src=#{@link}"
|
65
|
+
end
|
66
|
+
else
|
67
|
+
raise ArgumentError, "ERROR:extension_not_recognized -> #{@extension} for link -> #{@link}"
|
68
|
+
end
|
69
|
+
|
70
|
+
if @no_link
|
71
|
+
%Q(<style> .pdf-embed-wrap-#{@uuid} { display:flex; flex-direction: column; width: #{@width}; height: #{@height}; } .pdf-embed-container-#{@uuid} { height: 100%; } .pdf-embed-container-#{@uuid} iframe { width: 100%; height: 100%; } </style> <div class="pdf-embed-wrap-#{@uuid}"> <div class="pdf-embed-container-#{@uuid}"> <iframe src="#{@link}" frameborder="0" allowfullscreen></iframe> </div> </div>)
|
72
|
+
else
|
73
|
+
%Q(<style> .pdf-embed-wrap-#{@uuid} { display:flex; flex-direction: column; width: #{@width}; height: #{@height}; } .pdf-embed-container-#{@uuid} { height: 100%; } .pdf-link-#{@uuid} { background-color: white; text-align: center; border-style: solid; } .pdf-embed-container-#{@uuid} iframe { width: 100%; height: 100%; } </style> <div class="pdf-embed-wrap-#{@uuid}"> <div class="pdf-link-#{@uuid}"> <a href="#{@link}" target="_blank">#{@label}</a> </div> <div class="pdf-embed-container-#{@uuid}"> <iframe src="#{@link}" frameborder="0" allowfullscreen></iframe> </div> </div>)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# Transform 'a=b c=d' into hash
|
78
|
+
def hash_from_args(args_array)
|
79
|
+
keys_values = args_array.map { |item| item.split(/\s*=\s*/) }
|
80
|
+
Hash[keys_values]
|
81
|
+
end
|
82
|
+
|
83
|
+
Liquid::Template.register_tag('pdf', self)
|
84
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jekyll
|
4
|
-
module JekyllPDFEmbed
|
5
|
-
VERSION = '1.1.2'
|
6
|
-
end
|
7
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module JekyllPDFEmbed
|
5
|
+
VERSION = '1.1.2.1'
|
6
|
+
end
|
7
|
+
end
|
data/lib/jekyll-pdf-embed.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'jekyll-pdf-embed/version'
|
4
|
-
require 'jekyll-pdf-embed/pdf-tag'
|
5
|
-
|
6
|
-
module Jekyll
|
7
|
-
module JekyllPDFEmbed
|
8
|
-
end
|
9
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'jekyll-pdf-embed/version'
|
4
|
+
require 'jekyll-pdf-embed/pdf-tag'
|
5
|
+
|
6
|
+
module Jekyll
|
7
|
+
module JekyllPDFEmbed
|
8
|
+
end
|
9
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-pdf-embed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.2
|
4
|
+
version: 1.1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mihajlo Nesic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|
57
|
-
rubygems_version: 3.0.3
|
57
|
+
rubygems_version: 3.0.3.1
|
58
58
|
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: Jekyll plugin for embedding PDF files to any page or post
|