livetext 0.8.72 → 0.8.73
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/formatline.rb +8 -3
- data/lib/functions.rb +0 -5
- data/lib/livetext.rb +28 -102
- data/lib/processor.rb +71 -0
- data/lib/standard.rb +24 -30
- data/lib/userapi.rb +0 -2
- data/plugin/pyggish.rb +4 -4
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 11a401c968f4dc90a9f9ba1fa0ef1afd8ef678f4067f55fb7830d092d8d44856
|
|
4
|
+
data.tar.gz: 82d4dee17fd2c7cbfc441c1fb0626e94ae382b028a50a6feb3c40219be0046bb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8756eb6c73ba416da0674a255ef0106eed222a1b8dabb6aa4c867a2e1c3a085d919bf7b4984aa404a4a5fa4e80f070467fadbac2a5604f28e8b17166c9b781c2
|
|
7
|
+
data.tar.gz: c846b970b0af22e0160c8503366969dccac7e195177e958ee86cf3384f8b87f787511f507e1a85ad4198d21bb57ba7bdfd72c0858f91f4021c195f3f17f2b168
|
data/lib/formatline.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
class FormatLine
|
|
2
|
+
|
|
2
3
|
EOL = :eol
|
|
3
4
|
Alpha = /[a-z]/
|
|
4
5
|
Alpha2 = /[a-z0-9_]/
|
|
@@ -49,8 +50,8 @@ class FormatLine
|
|
|
49
50
|
self.send("func_" + name.to_s, param)
|
|
50
51
|
else
|
|
51
52
|
fobj = ::Livetext::Functions.new
|
|
52
|
-
::Livetext::Functions.param = param
|
|
53
|
-
::Livetext::Functions.context = @context #
|
|
53
|
+
::Livetext::Functions.param = param # is this
|
|
54
|
+
::Livetext::Functions.context = @context # screwed up???
|
|
54
55
|
fobj.send(name)
|
|
55
56
|
end
|
|
56
57
|
end
|
|
@@ -65,6 +66,9 @@ class FormatLine
|
|
|
65
66
|
@fname, @param = "", ""
|
|
66
67
|
end
|
|
67
68
|
|
|
69
|
+
# FIXME Much of this should be done via CSS
|
|
70
|
+
# FIXME In particular, strike is deprecated.
|
|
71
|
+
|
|
68
72
|
def bold
|
|
69
73
|
d0, d1 = SimpleFormats[:b]
|
|
70
74
|
@buffer << "#{d0}#@substr#{d1}"
|
|
@@ -98,10 +102,11 @@ class FormatLine
|
|
|
98
102
|
@fname = ""
|
|
99
103
|
@vname = ""
|
|
100
104
|
@param = ""
|
|
105
|
+
|
|
106
|
+
# FIXME - refactor, generalize, clarify
|
|
101
107
|
|
|
102
108
|
loop do # starting state
|
|
103
109
|
char = peek
|
|
104
|
-
# puts "char = #{char.inspect}"
|
|
105
110
|
case char
|
|
106
111
|
when "\\"
|
|
107
112
|
char = skip
|
data/lib/functions.rb
CHANGED
|
@@ -31,11 +31,6 @@ class Livetext::Functions # Functions will go here... user-def AND pre-def??
|
|
|
31
31
|
"<br>"*n
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
# def asset
|
|
35
|
-
# param = self.class.param
|
|
36
|
-
# # FIXME how should this work?
|
|
37
|
-
# end
|
|
38
|
-
|
|
39
34
|
def yt
|
|
40
35
|
param = self.class.param
|
|
41
36
|
"https://www.youtube.com/watch?v=#{param}"
|
data/lib/livetext.rb
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
class Livetext
|
|
2
|
-
VERSION = "0.8.
|
|
2
|
+
VERSION = "0.8.73"
|
|
3
3
|
Path = File.expand_path(File.join(File.dirname(__FILE__)))
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
-
$Livetext = Livetext
|
|
7
|
-
|
|
8
6
|
require 'fileutils'
|
|
9
7
|
|
|
10
|
-
|
|
11
8
|
$: << Livetext::Path
|
|
12
9
|
|
|
13
10
|
require 'functions'
|
|
14
11
|
require 'userapi'
|
|
15
12
|
require 'standard'
|
|
16
13
|
require 'formatline'
|
|
14
|
+
require 'processor'
|
|
17
15
|
|
|
18
16
|
Plugins = File.expand_path(File.join(File.dirname(__FILE__), "../plugin"))
|
|
19
17
|
|
|
@@ -26,81 +24,13 @@ class Livetext
|
|
|
26
24
|
attr_accessor :no_puts
|
|
27
25
|
attr_accessor :body
|
|
28
26
|
|
|
27
|
+
# FIXME - phase out stupid 'parameters' method
|
|
28
|
+
|
|
29
29
|
class << self
|
|
30
30
|
attr_accessor :parameters # from outside world (process_text)
|
|
31
31
|
attr_accessor :output # both bad solutions?
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
class Processor
|
|
35
|
-
include Livetext::Standard
|
|
36
|
-
include Livetext::UserAPI
|
|
37
|
-
|
|
38
|
-
Disallowed = [:nil?, :===, :=~, :!~, :eql?, :hash, :<=>,
|
|
39
|
-
:class, :singleton_class, :clone, :dup, :taint, :tainted?,
|
|
40
|
-
:untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?,
|
|
41
|
-
:to_s, :inspect, :methods, :singleton_methods, :protected_methods,
|
|
42
|
-
:private_methods, :public_methods, :instance_variables,
|
|
43
|
-
:instance_variable_get, :instance_variable_set,
|
|
44
|
-
:instance_variable_defined?, :remove_instance_variable,
|
|
45
|
-
:instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send,
|
|
46
|
-
:respond_to?, :extend, :display, :method, :public_method,
|
|
47
|
-
:singleton_method, :define_singleton_method, :object_id, :to_enum,
|
|
48
|
-
:enum_for, :pretty_inspect, :==, :equal?, :!, :!=, :instance_eval,
|
|
49
|
-
:instance_exec, :__send__, :__id__, :__binding__]
|
|
50
|
-
|
|
51
|
-
def initialize(parent, output = nil)
|
|
52
|
-
@parent = parent
|
|
53
|
-
@_nopass = false
|
|
54
|
-
@_nopara = false
|
|
55
|
-
# Meh?
|
|
56
|
-
@output = ::Livetext.output = (output || File.open("/dev/null", "w"))
|
|
57
|
-
@sources = []
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def output=(io)
|
|
61
|
-
@output = io
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def _error!(err, abort=true, trace=false)
|
|
65
|
-
where = @sources.last || @save_location
|
|
66
|
-
STDERR.puts "Error: #{err} (at #{where[1]} line #{where[2]})"
|
|
67
|
-
STDERR.puts err.backtrace if trace && err.respond_to?(:backtrace)
|
|
68
|
-
exit if abort
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def _disallowed?(name)
|
|
72
|
-
Disallowed.include?(name.to_sym)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def source(enum, file, line)
|
|
76
|
-
@sources.push([enum, file, line])
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def peek_nextline
|
|
80
|
-
@sources.last[0].peek
|
|
81
|
-
rescue StopIteration
|
|
82
|
-
@sources.pop
|
|
83
|
-
nil
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def nextline
|
|
87
|
-
return nil if @sources.empty?
|
|
88
|
-
line = @sources.last[0].next
|
|
89
|
-
@sources.last[2] += 1
|
|
90
|
-
line
|
|
91
|
-
rescue StopIteration
|
|
92
|
-
@sources.pop
|
|
93
|
-
nil
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def grab_file(fname)
|
|
97
|
-
File.read(fname)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
####
|
|
103
|
-
|
|
104
34
|
Space = " "
|
|
105
35
|
|
|
106
36
|
def initialize(output = ::STDOUT)
|
|
@@ -129,27 +59,10 @@ class Livetext
|
|
|
129
59
|
end
|
|
130
60
|
end
|
|
131
61
|
|
|
132
|
-
# def transform_line(line, context=nil)
|
|
133
|
-
# context ||= binding
|
|
134
|
-
# @context = context
|
|
135
|
-
# sigil = "." # Can't change yet
|
|
136
|
-
# nomarkup = true
|
|
137
|
-
# # FIXME inefficient
|
|
138
|
-
# scomment = rx(sigil, Livetext::Space) # apply these in order
|
|
139
|
-
# sname = rx(sigil)
|
|
140
|
-
# if line =~ scomment
|
|
141
|
-
# handle_scomment(line)
|
|
142
|
-
# elsif line =~ sname
|
|
143
|
-
# handle_sname(line)
|
|
144
|
-
# else
|
|
145
|
-
# @body << line
|
|
146
|
-
# end
|
|
147
|
-
# result
|
|
148
|
-
# end
|
|
149
|
-
|
|
150
62
|
def process(text)
|
|
151
63
|
enum = text.each_line
|
|
152
|
-
|
|
64
|
+
front = text.match(/.*?\n/).to_a.first.chomp
|
|
65
|
+
@main.source(enum, "STDIN: '#{front}...'", 0)
|
|
153
66
|
loop do
|
|
154
67
|
line = @main.nextline
|
|
155
68
|
break if line.nil?
|
|
@@ -160,7 +73,8 @@ class Livetext
|
|
|
160
73
|
def transform(text)
|
|
161
74
|
@output = ::Livetext.output
|
|
162
75
|
enum = text.each_line
|
|
163
|
-
|
|
76
|
+
front = text.match(/.*?\n/).to_a.first.chomp
|
|
77
|
+
@main.source(enum, "STDIN: '#{front}...'", 0)
|
|
164
78
|
loop do
|
|
165
79
|
line = @main.nextline
|
|
166
80
|
break if line.nil?
|
|
@@ -169,11 +83,14 @@ class Livetext
|
|
|
169
83
|
@body
|
|
170
84
|
end
|
|
171
85
|
|
|
86
|
+
## FIXME don't need process *and* process_text
|
|
87
|
+
|
|
172
88
|
def process_text(text)
|
|
173
89
|
text = text.split("\n") if text.is_a? String
|
|
174
90
|
enum = text.each
|
|
175
91
|
@backtrace = false
|
|
176
|
-
|
|
92
|
+
front = text.match(/.*?\n/).to_a.first.chomp
|
|
93
|
+
@main.source(enum, "(text): '#{front}...'", 0)
|
|
177
94
|
loop do
|
|
178
95
|
line = @main.nextline
|
|
179
96
|
break if line.nil?
|
|
@@ -186,11 +103,14 @@ class Livetext
|
|
|
186
103
|
puts err.backtrace.join("\n")
|
|
187
104
|
end
|
|
188
105
|
|
|
106
|
+
## FIXME process_file[!] should call process[_text]
|
|
107
|
+
|
|
189
108
|
def process_file(fname, context=nil)
|
|
190
109
|
context ||= binding
|
|
191
110
|
@context = context
|
|
192
111
|
raise "No such file '#{fname}' to process" unless File.exist?(fname)
|
|
193
|
-
|
|
112
|
+
text = File.readlines(fname)
|
|
113
|
+
enum = text.each
|
|
194
114
|
@backtrace = false
|
|
195
115
|
@main.source(enum, fname, 0)
|
|
196
116
|
loop do
|
|
@@ -223,10 +143,7 @@ class Livetext
|
|
|
223
143
|
def handle_scomment(line, sigil=".")
|
|
224
144
|
end
|
|
225
145
|
|
|
226
|
-
def
|
|
227
|
-
name, data = line.split(" ", 2)
|
|
228
|
-
name = name[1..-1] # chop off sigil
|
|
229
|
-
@main.data = data
|
|
146
|
+
def _check_name(name)
|
|
230
147
|
@main._error! "Name '#{name}' is not permitted" if @main._disallowed?(name)
|
|
231
148
|
name = "_def" if name == "def"
|
|
232
149
|
name = "_include" if name == "include"
|
|
@@ -234,13 +151,22 @@ class Livetext
|
|
|
234
151
|
name
|
|
235
152
|
end
|
|
236
153
|
|
|
154
|
+
def _get_name(line, sigil=".")
|
|
155
|
+
name, data = line.split(" ", 2)
|
|
156
|
+
name = name[1..-1] # chop off sigil
|
|
157
|
+
@main.data = data
|
|
158
|
+
name = _check_name(name)
|
|
159
|
+
end
|
|
160
|
+
|
|
237
161
|
def handle_sname(line, sigil=".")
|
|
238
162
|
name = _get_name(line, sigil)
|
|
239
|
-
|
|
163
|
+
result = nil
|
|
164
|
+
if @main.respond_to?(name)
|
|
165
|
+
result = @main.send(name)
|
|
166
|
+
else
|
|
240
167
|
@main._error! "Name '#{name}' is unknown"
|
|
241
168
|
return
|
|
242
169
|
end
|
|
243
|
-
result = @main.send(name)
|
|
244
170
|
result
|
|
245
171
|
rescue => err
|
|
246
172
|
@main._error!(err)
|
data/lib/processor.rb
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
class Livetext
|
|
2
|
+
|
|
3
|
+
class Processor
|
|
4
|
+
include Livetext::Standard
|
|
5
|
+
include Livetext::UserAPI
|
|
6
|
+
|
|
7
|
+
Disallowed = [:nil?, :===, :=~, :!~, :eql?, :hash, :<=>,
|
|
8
|
+
:class, :singleton_class, :clone, :dup, :taint, :tainted?,
|
|
9
|
+
:untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?,
|
|
10
|
+
:to_s, :inspect, :methods, :singleton_methods, :protected_methods,
|
|
11
|
+
:private_methods, :public_methods, :instance_variables,
|
|
12
|
+
:instance_variable_get, :instance_variable_set,
|
|
13
|
+
:instance_variable_defined?, :remove_instance_variable,
|
|
14
|
+
:instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send,
|
|
15
|
+
:respond_to?, :extend, :display, :method, :public_method,
|
|
16
|
+
:singleton_method, :define_singleton_method, :object_id, :to_enum,
|
|
17
|
+
:enum_for, :pretty_inspect, :==, :equal?, :!, :!=, :instance_eval,
|
|
18
|
+
:instance_exec, :__send__, :__id__, :__binding__]
|
|
19
|
+
|
|
20
|
+
def initialize(parent, output = nil)
|
|
21
|
+
@parent = parent
|
|
22
|
+
@_nopass = false
|
|
23
|
+
@_nopara = false
|
|
24
|
+
# Meh?
|
|
25
|
+
@output = ::Livetext.output = (output || File.open("/dev/null", "w"))
|
|
26
|
+
@sources = []
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def output=(io)
|
|
30
|
+
@output = io
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def _error!(err, abort=true, trace=false)
|
|
34
|
+
where = @sources.last || @save_location
|
|
35
|
+
STDERR.puts "Error: #{err} (at #{where[1]} line #{where[2]})"
|
|
36
|
+
STDERR.puts err.backtrace if trace && err.respond_to?(:backtrace)
|
|
37
|
+
exit if abort
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def _disallowed?(name)
|
|
41
|
+
Disallowed.include?(name.to_sym)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def source(enum, file, line)
|
|
45
|
+
@sources.push([enum, file, line])
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def peek_nextline
|
|
49
|
+
@sources.last[0].peek
|
|
50
|
+
rescue StopIteration
|
|
51
|
+
@sources.pop
|
|
52
|
+
nil
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def nextline
|
|
56
|
+
return nil if @sources.empty?
|
|
57
|
+
line = @sources.last[0].next
|
|
58
|
+
@sources.last[2] += 1
|
|
59
|
+
line
|
|
60
|
+
rescue StopIteration
|
|
61
|
+
@sources.pop
|
|
62
|
+
nil
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def grab_file(fname)
|
|
66
|
+
File.read(fname)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
data/lib/standard.rb
CHANGED
|
@@ -206,18 +206,17 @@ module Livetext::Standard
|
|
|
206
206
|
def copy
|
|
207
207
|
file = @_args.first
|
|
208
208
|
_check_existence(file, "No such file '#{file}' to copy")
|
|
209
|
-
|
|
209
|
+
_out grab_file(file)
|
|
210
210
|
_optional_blank_line
|
|
211
211
|
end
|
|
212
212
|
|
|
213
213
|
def r
|
|
214
|
-
|
|
215
|
-
_puts @_data # No processing at all
|
|
214
|
+
_out @_data # No processing at all
|
|
216
215
|
end
|
|
217
216
|
|
|
218
217
|
def raw
|
|
219
218
|
# No processing at all (terminate with __EOF__)
|
|
220
|
-
|
|
219
|
+
_out _raw_body
|
|
221
220
|
end
|
|
222
221
|
|
|
223
222
|
def debug
|
|
@@ -263,57 +262,55 @@ module Livetext::Standard
|
|
|
263
262
|
end
|
|
264
263
|
|
|
265
264
|
def newpage
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
_out '<p style="page-break-after:always;"></p>'
|
|
266
|
+
_out "<p/>"
|
|
268
267
|
end
|
|
269
268
|
|
|
270
269
|
def invoke(str)
|
|
271
270
|
end
|
|
272
271
|
|
|
273
272
|
def mono
|
|
274
|
-
|
|
275
|
-
_body(true) {|line|
|
|
276
|
-
|
|
273
|
+
_out "<pre>"
|
|
274
|
+
_body(true) {|line| _out line }
|
|
275
|
+
_out "</pre>"
|
|
277
276
|
_optional_blank_line
|
|
278
277
|
end
|
|
279
278
|
|
|
280
279
|
def dlist
|
|
281
280
|
delim = _args.first
|
|
282
|
-
|
|
281
|
+
_out "<dl>"
|
|
283
282
|
_body do |line|
|
|
284
283
|
line = _formatting(line)
|
|
285
284
|
term, defn = line.split(delim)
|
|
286
|
-
|
|
287
|
-
|
|
285
|
+
_out "<dt>#{term}</dt>"
|
|
286
|
+
_out "<dd>#{defn}</dd>"
|
|
288
287
|
end
|
|
289
|
-
|
|
288
|
+
_out "</dl>"
|
|
290
289
|
end
|
|
291
290
|
|
|
292
291
|
def old_dlist
|
|
293
292
|
delim = _args.first
|
|
294
|
-
|
|
293
|
+
_out "<table>"
|
|
295
294
|
_body do |line|
|
|
296
295
|
line = _formatting(line)
|
|
297
296
|
term, defn = line.split(delim)
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
297
|
+
_out "<tr>"
|
|
298
|
+
_out "<td width=3%><td width=10%>#{term}</td><td>#{defn}</td>"
|
|
299
|
+
_out "</tr>"
|
|
301
300
|
end
|
|
302
|
-
|
|
301
|
+
_out "</table>"
|
|
303
302
|
end
|
|
304
303
|
|
|
305
304
|
def link
|
|
306
305
|
url = _args.first
|
|
307
306
|
text = _args[2..-1].join(" ")
|
|
308
|
-
|
|
307
|
+
_out "<a href='#{url}'>#{text}</a>"
|
|
309
308
|
end
|
|
310
309
|
|
|
311
310
|
def xtable # Borrowed from bookish - FIXME
|
|
312
|
-
# @table_num ||= 0
|
|
313
|
-
# @table_num += 1
|
|
314
311
|
title = @_data
|
|
315
312
|
delim = " :: "
|
|
316
|
-
|
|
313
|
+
_out "<br><center><table border=1 width=90% cellpadding=5>"
|
|
317
314
|
lines = _body(true)
|
|
318
315
|
maxw = nil
|
|
319
316
|
lines.each do |line|
|
|
@@ -330,23 +327,20 @@ module Livetext::Standard
|
|
|
330
327
|
|
|
331
328
|
lines.each do |line|
|
|
332
329
|
cells = line.split(delim)
|
|
333
|
-
|
|
330
|
+
_out "<tr>"
|
|
334
331
|
cells.each.with_index do |cell, i|
|
|
335
|
-
|
|
332
|
+
_out " <td valign=top>#{cell}</td>"
|
|
336
333
|
end
|
|
337
|
-
|
|
334
|
+
_out "</tr>"
|
|
338
335
|
end
|
|
339
|
-
|
|
340
|
-
# @toc << "#{_nbsp(8)}<b>Table #@chapter.#@table_num</b> #{title}<br>"
|
|
341
|
-
# _next_output(_slug("table_#{title}"))
|
|
342
|
-
# _puts "<b>Table #@chapter.#@table_num #{title}</b></center><br>"
|
|
336
|
+
_out "</table></center>"
|
|
343
337
|
end
|
|
344
338
|
|
|
345
339
|
def br
|
|
346
340
|
n = _args.first || "1"
|
|
347
341
|
out = ""
|
|
348
342
|
n.to_i.times { out << "<br>" }
|
|
349
|
-
|
|
343
|
+
_out out
|
|
350
344
|
end
|
|
351
345
|
|
|
352
346
|
end
|
data/lib/userapi.rb
CHANGED
|
@@ -105,9 +105,7 @@ module Livetext::UserAPI
|
|
|
105
105
|
|
|
106
106
|
def _passthru(line, context = nil)
|
|
107
107
|
return if @_nopass
|
|
108
|
-
# p [@_nopara, line]
|
|
109
108
|
_out "<p>" if line == "\n" and ! @_nopara
|
|
110
|
-
# _out "<p>" if line == "" and ! @_nopara
|
|
111
109
|
_formatting(line, context)
|
|
112
110
|
_out line
|
|
113
111
|
end
|
data/plugin/pyggish.rb
CHANGED
|
@@ -145,7 +145,7 @@ def ruby
|
|
|
145
145
|
|
|
146
146
|
_process_code(code)
|
|
147
147
|
html = _colorize(code, :ruby)
|
|
148
|
-
|
|
148
|
+
_out "\n#{html}\n "
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
def elixir
|
|
@@ -159,7 +159,7 @@ def elixir
|
|
|
159
159
|
|
|
160
160
|
_process_code(code)
|
|
161
161
|
html = _colorize(code, :elixir)
|
|
162
|
-
|
|
162
|
+
_out "\n#{html}\n "
|
|
163
163
|
end
|
|
164
164
|
|
|
165
165
|
def fragment
|
|
@@ -176,12 +176,12 @@ def fragment
|
|
|
176
176
|
text ||= "ERROR IN HIGHLIGHTER"
|
|
177
177
|
_debug "text = \n#{text.inspect}\n-----"
|
|
178
178
|
# PygmentFix.pyg_finalize(text, lexer)
|
|
179
|
-
|
|
179
|
+
_out text + "\n<br>"
|
|
180
180
|
end
|
|
181
181
|
|
|
182
182
|
def code # FIXME ?
|
|
183
183
|
text = ""
|
|
184
|
-
_body {|line|
|
|
184
|
+
_body {|line| _out " " + line }
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
def mono
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: livetext
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.73
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hal Fulton
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-04-
|
|
11
|
+
date: 2019-04-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: A smart text processor extensible in Ruby
|
|
14
14
|
email: rubyhacker@gmail.com
|
|
@@ -23,6 +23,7 @@ files:
|
|
|
23
23
|
- lib/formatline.rb
|
|
24
24
|
- lib/functions.rb
|
|
25
25
|
- lib/livetext.rb
|
|
26
|
+
- lib/processor.rb
|
|
26
27
|
- lib/standard.rb
|
|
27
28
|
- lib/userapi.rb
|
|
28
29
|
- livetext.gemspec
|