term-slides 0.18.0 → 0.19.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 +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
|