zenml-slide 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|