term-slides 0.18.0 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/term-slides.rb +26 -6
- data/lib/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9d362c970df8672173f69fae6cdc48ef8b80d2b21f8f5ea671e69799879d382a
|
4
|
+
data.tar.gz: 8e3140751d721f37b77dcab8ee80e84dd8d9c63c24d09ab9b91ff0e68ee01ffe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 707248d02a29b18c1f963ec5810543d93860411f123825f8cccf7a41705c46190e5c482ffec94d23e07b14847519e3b2e924f43976273b6b8abd7b6b5ce1aadf
|
7
|
+
data.tar.gz: 80d908633613e792e8d2d6fb4c181d103e20e6ff8dd08d46e9729b53dd8137557ba81d88bed1c4e1d67e6424e8f80c6d08661ed6521f1a017f89ce5a637ce525
|
data/lib/term-slides.rb
CHANGED
@@ -20,14 +20,18 @@ module TermSlides
|
|
20
20
|
|
21
21
|
class TTYRenderer
|
22
22
|
def render_code code
|
23
|
-
puts ::Rouge.highlight(code.content, code.format, 'terminal256')
|
23
|
+
puts center_block(code.content, ::Rouge.highlight(code.content, code.format, 'terminal256'))
|
24
24
|
end
|
25
25
|
def render_table table
|
26
26
|
puts center(TTY::Table.new(table.headers, table.rows).render(:unicode))
|
27
27
|
end
|
28
28
|
def center text
|
29
|
+
center_block text, text
|
30
|
+
end
|
31
|
+
def center_block text, text_to_display
|
29
32
|
width = HighLine.new.output_cols
|
30
|
-
text.split("\n").map { |x| x.
|
33
|
+
max = text.split("\n").map { |x| x.size }.max
|
34
|
+
text_to_display.split("\n").map { |x| " " * ((max > width ? 0 : (width - max))/2) + x }.join("\n")
|
31
35
|
end
|
32
36
|
def render_text text
|
33
37
|
puts center(text.text)
|
@@ -137,10 +141,13 @@ module TermSlides
|
|
137
141
|
end
|
138
142
|
def build
|
139
143
|
$i ||= 0
|
140
|
-
path =
|
144
|
+
path = "term_slide_graph#{$i}.png"
|
141
145
|
dot = 'dot'
|
142
146
|
if find_executable dot
|
143
|
-
|
147
|
+
dot_contents = @dot.respond_to?(:call) ? @dot.call : @dot
|
148
|
+
input_path = "/tmp/graphviz-term-slides"
|
149
|
+
File.write(input_path, dot_contents)
|
150
|
+
`#{dot} #{input_path} -Tpng > #{path}`
|
144
151
|
$i += 1
|
145
152
|
end
|
146
153
|
path
|
@@ -163,6 +170,9 @@ module TermSlides
|
|
163
170
|
|
164
171
|
class Slide
|
165
172
|
attr_accessor :name, :content, :renderer
|
173
|
+
def get_scaling_factor
|
174
|
+
@slides.scaling_factor
|
175
|
+
end
|
166
176
|
def text s
|
167
177
|
@content << Text.new(@renderer, s)
|
168
178
|
end
|
@@ -179,7 +189,8 @@ module TermSlides
|
|
179
189
|
def image src
|
180
190
|
@content << Image.new(@renderer, src)
|
181
191
|
end
|
182
|
-
def initialize renderer, name, &block
|
192
|
+
def initialize renderer, name, slides, &block
|
193
|
+
@slides = slides
|
183
194
|
@renderer = renderer
|
184
195
|
@name = name
|
185
196
|
@content = []
|
@@ -191,10 +202,12 @@ module TermSlides
|
|
191
202
|
end
|
192
203
|
|
193
204
|
class Slides
|
205
|
+
attr_accessor :scaling_factor
|
194
206
|
def slide name, &block
|
195
|
-
@slides << Slide.new(@renderer, name, &block)
|
207
|
+
@slides << Slide.new(@renderer, name, self, &block)
|
196
208
|
end
|
197
209
|
def initialize args, &block
|
210
|
+
@scaling_factor = 1
|
198
211
|
@args = args
|
199
212
|
if @args.size > 0 and @args[0] == "hovercraft"
|
200
213
|
@renderer = HovercraftRenderer.new
|
@@ -232,19 +245,26 @@ module TermSlides
|
|
232
245
|
end
|
233
246
|
return
|
234
247
|
end
|
248
|
+
print "\033[?25l"
|
235
249
|
while true
|
236
250
|
print `clear`
|
251
|
+
|
237
252
|
puts "#{i + 1}/#{@slides.size}"
|
238
253
|
@slides[i].render
|
239
254
|
s = read_char
|
240
255
|
if s == "q"
|
241
256
|
break
|
257
|
+
elsif ["+"].include?(s)
|
258
|
+
@scaling_factor *= 1.1
|
259
|
+
elsif ["-"].include?(s)
|
260
|
+
@scaling_factor *= 0.9
|
242
261
|
elsif ["p", "\e[D", "\e[A", "h", "k"].include?(s)
|
243
262
|
i -= 1 if i > 0
|
244
263
|
elsif ["n", "\e[C", "\e[B", "l", "j"].include?(s)
|
245
264
|
i += 1 if i < (@slides.size - 1)
|
246
265
|
end
|
247
266
|
end
|
267
|
+
print "\033[?25h"
|
248
268
|
end
|
249
269
|
end
|
250
270
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: term-slides
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yazgoo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -193,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
193
|
version: '0'
|
194
194
|
requirements: []
|
195
195
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.6.
|
196
|
+
rubygems_version: 2.7.6.2
|
197
197
|
signing_key:
|
198
198
|
specification_version: 4
|
199
199
|
summary: run presentations in your terminal
|