zenml-slide 1.0.2 → 1.1.0
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/source/zenml/slide.rb +1 -1
- data/source/zenml/slide/converter.rb +32 -10
- data/source/zenml/slide/resource/script.js +28 -0
- data/source/zenml/slide/resource/template.html +14 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f62c999fa7c6c65551a0f86aeb2ef5ae23b937ab694241303cc7f0d58e06a0c1
|
4
|
+
data.tar.gz: 315cb39a7434912b14e7037eaf01e0b2b0f1fab15a3de72aa80f73843882d843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f1f73aefd08ff49652df3b0aea59ff2b6f484289a9e535da8adc9fc75c6cfb622b26b94bc77ab58f149ba3c5e66f3658b561bd0065be0a9353ff29fb1449448
|
7
|
+
data.tar.gz: 25c339d308f0e732eca237eda687fb18f8cf6e2231b0ac6b85bbcc52b5a28ec3c6039b4d16cd74ff047dd5ec62f7a78cc104926566a109fef0dcaa0222fabdfd
|
data/source/zenml/slide.rb
CHANGED
@@ -3,9 +3,14 @@
|
|
3
3
|
|
4
4
|
class Zenithal::Slide::WholeSlideConverter
|
5
5
|
|
6
|
+
TEMPLATE = File.read(File.join(File.dirname(__FILE__), "resource/template.html"))
|
7
|
+
SCRIPT = File.read(File.join(File.dirname(__FILE__), "resource/script.js"))
|
8
|
+
|
6
9
|
def initialize(args)
|
7
10
|
@mode, @open = nil, false
|
8
11
|
@dirs = {:output => "out", :document => "document", :template => "template"}
|
12
|
+
@asset_paths = {:style => ["style/style.css"]}
|
13
|
+
@title = "Slide"
|
9
14
|
@image_size = [1920, 1080]
|
10
15
|
options, rest_args = args.partition{|s| s =~ /^\-\w$/}
|
11
16
|
if options.include?("-i")
|
@@ -59,8 +64,12 @@ class Zenithal::Slide::WholeSlideConverter
|
|
59
64
|
@parser.update(File.read(path))
|
60
65
|
document = @parser.run
|
61
66
|
@converter.update(document)
|
62
|
-
|
67
|
+
header_string = ""
|
68
|
+
main_string = @converter.convert
|
63
69
|
count = @converter.variables[:slide_count].to_i.to_s
|
70
|
+
header_string << "<script type=\"text/javascript\">#{SCRIPT}</script>\n"
|
71
|
+
header_string << @asset_paths[:style].map{|s| "<link rel=\"stylesheet\" type=\"text/css\" href=\"../#{s}\">\n"}.join
|
72
|
+
output = TEMPLATE.gsub(/#\{(.*?)\}/){instance_eval($1)}.gsub(/\r/, "")
|
64
73
|
File.write(output_path, output)
|
65
74
|
File.write(count_path, count)
|
66
75
|
when "scss"
|
@@ -76,18 +85,22 @@ class Zenithal::Slide::WholeSlideConverter
|
|
76
85
|
end
|
77
86
|
|
78
87
|
def convert_image(path)
|
88
|
+
extension = File.extname(path).gsub(/^\./, "")
|
79
89
|
page_path = path.gsub(@dirs[:document], @dirs[:output]).then(&method(:modify_extension))
|
80
90
|
output_path = path.gsub(@dirs[:document], @dirs[:output]).gsub("slide", "image").gsub(".zml", "")
|
81
91
|
count_path = path.gsub(@dirs[:document], @dirs[:output]).gsub("slide", "image").gsub(".zml", ".txt")
|
82
92
|
output_dir = File.dirname(output_path)
|
83
|
-
count = File.read(count_path).to_i
|
84
93
|
FileUtils.mkdir_p(output_dir)
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
@driver.
|
90
|
-
@driver.
|
94
|
+
case extension
|
95
|
+
when "zml"
|
96
|
+
count = File.read(count_path).to_i
|
97
|
+
@driver.navigate.to("file:///#{File.join(Dir.pwd, page_path)}")
|
98
|
+
@driver.manage.window.resize_to(*@image_size)
|
99
|
+
@driver.execute_script("document.body.classList.add('simple');")
|
100
|
+
count.times do |index|
|
101
|
+
@driver.execute_script("document.querySelectorAll('*[class$=\\'slide\\']')[#{index}].scrollIntoView();")
|
102
|
+
@driver.save_screenshot("#{output_path}-#{index}.png")
|
103
|
+
end
|
91
104
|
end
|
92
105
|
end
|
93
106
|
|
@@ -103,8 +116,9 @@ class Zenithal::Slide::WholeSlideConverter
|
|
103
116
|
dirs << File.join(@dirs[:document], "slide")
|
104
117
|
if @mode == :normal
|
105
118
|
dirs << File.join(@dirs[:document], "asset")
|
106
|
-
|
107
|
-
|
119
|
+
@asset_paths[:style].each do |style_path|
|
120
|
+
paths << File.join(@dirs[:document], style_path)
|
121
|
+
end
|
108
122
|
end
|
109
123
|
dirs.each do |dir|
|
110
124
|
Dir.each_child(dir) do |entry|
|
@@ -182,6 +196,14 @@ class Zenithal::Slide::WholeSlideConverter
|
|
182
196
|
@dirs[:template] = dir
|
183
197
|
end
|
184
198
|
|
199
|
+
def script_paths=(paths)
|
200
|
+
@asset_paths[:script] = paths
|
201
|
+
end
|
202
|
+
|
203
|
+
def title=(title)
|
204
|
+
@title = title
|
205
|
+
end
|
206
|
+
|
185
207
|
def image_size=(image_size)
|
186
208
|
@image_size = image_size
|
187
209
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
//
|
2
|
+
|
3
|
+
|
4
|
+
let index = 0;
|
5
|
+
|
6
|
+
function prepare() {
|
7
|
+
let size = document.querySelectorAll("*[class$='slide']").length;
|
8
|
+
document.addEventListener("keydown", (event) => {
|
9
|
+
if (event.key === "ArrowLeft" || event.key === "ArrowUp" || event.key === "Backspace") {
|
10
|
+
if (index > 0) {
|
11
|
+
index --;
|
12
|
+
}
|
13
|
+
scroll();
|
14
|
+
} else if (event.key === "ArrowRight" || event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") {
|
15
|
+
if (index < size - 1) {
|
16
|
+
index ++;
|
17
|
+
}
|
18
|
+
scroll();
|
19
|
+
}
|
20
|
+
});
|
21
|
+
}
|
22
|
+
|
23
|
+
function scroll() {
|
24
|
+
document.querySelectorAll("*[class$='slide']")[index].scrollIntoView();
|
25
|
+
console.log("Page: " + index);
|
26
|
+
}
|
27
|
+
|
28
|
+
window.onload = prepare;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zenml-slide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ziphil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sassc
|
@@ -49,6 +49,8 @@ extra_rdoc_files: []
|
|
49
49
|
files:
|
50
50
|
- source/zenml/slide.rb
|
51
51
|
- source/zenml/slide/converter.rb
|
52
|
+
- source/zenml/slide/resource/script.js
|
53
|
+
- source/zenml/slide/resource/template.html
|
52
54
|
homepage: https://github.com/Ziphil/ZenithalSlide
|
53
55
|
licenses:
|
54
56
|
- MIT
|