livetext 0.8.1 → 0.8.2
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/README.ltx +87 -72
- data/README.md +259 -292
- data/bin/livetext +11 -8
- data/dsl/markdown.rb +11 -3
- data/dsl/tutorial.rb +2 -33
- data/lib/livetext.rb +12 -2
- data/lib/standard.rb +1 -1
- data/test/test.rb +6 -2
- data/test/testfiles/lines.txt +8 -0
- metadata +1 -1
data/bin/livetext
CHANGED
@@ -4,28 +4,31 @@ require_relative '../lib/livetext'
|
|
4
4
|
|
5
5
|
def handle_ltx(src)
|
6
6
|
abort "Unknown file extension" unless src =~ /.ltx$/
|
7
|
-
x = Livetext.new
|
8
|
-
x.process_file(src)
|
9
7
|
end
|
10
8
|
|
11
9
|
# Main
|
12
10
|
|
11
|
+
x = Livetext.new
|
12
|
+
|
13
13
|
case ARGV.first
|
14
14
|
when "-v", "--version"
|
15
15
|
puts "#{Livetext::VERSION}\n "
|
16
|
-
|
16
|
+
when "-t", "--test"
|
17
|
+
dir = File.dirname(__FILE__)
|
18
|
+
system("ruby #{dir}/../test/test.rb")
|
19
|
+
when "-s", "--stdin"
|
20
|
+
src = STDIN.read
|
21
|
+
x.process(src)
|
17
22
|
when nil
|
18
23
|
puts <<-EOF
|
19
24
|
Usage:
|
20
25
|
livetext -v
|
21
26
|
livetext --version
|
22
27
|
livetext filename
|
23
|
-
|
24
28
|
EOF
|
25
|
-
|
26
|
-
|
29
|
+
puts
|
30
|
+
when Object
|
27
31
|
src = ARGV.first
|
32
|
+
x.process_file(src)
|
28
33
|
end
|
29
34
|
|
30
|
-
handle_ltx(src)
|
31
|
-
|
data/dsl/markdown.rb
CHANGED
@@ -13,6 +13,14 @@ def h4; _puts "#### #{@_data}"; end
|
|
13
13
|
def h5; _puts "##### #{@_data}"; end
|
14
14
|
def h6; _puts "###### #{@_data}"; end
|
15
15
|
|
16
|
+
def title
|
17
|
+
h1
|
18
|
+
end
|
19
|
+
|
20
|
+
def section
|
21
|
+
h3
|
22
|
+
end
|
23
|
+
|
16
24
|
def bq # block quote
|
17
25
|
_body {|line| _puts "> #{line}" }
|
18
26
|
end
|
@@ -23,13 +31,13 @@ def list
|
|
23
31
|
_body {|line| _puts " * #{line}" }
|
24
32
|
end
|
25
33
|
|
26
|
-
alias nlist olist
|
27
|
-
|
28
34
|
def olist # Doesn't handle paragraphs yet
|
29
35
|
n = 0
|
30
36
|
_body do |line|
|
31
37
|
n += 1
|
32
|
-
_puts "#{n}. #{line}"
|
38
|
+
_puts "#{n}. #{_formatting(line)}"
|
33
39
|
end
|
34
40
|
end
|
35
41
|
|
42
|
+
alias nlist olist
|
43
|
+
|
data/dsl/tutorial.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'cgi'
|
2
2
|
|
3
3
|
def title
|
4
|
-
|
4
|
+
h1
|
5
5
|
end
|
6
6
|
|
7
7
|
def section
|
8
|
-
|
8
|
+
h3
|
9
9
|
end
|
10
10
|
|
11
11
|
def code
|
@@ -18,33 +18,6 @@ def rx(str)
|
|
18
18
|
::Regexp.compile(::Regexp.escape(str))
|
19
19
|
end
|
20
20
|
|
21
|
-
def list
|
22
|
-
puts "<ul>"
|
23
|
-
_body {|line| puts "<li>#{_formatting(line)}</li>" }
|
24
|
-
_puts "</ul>"
|
25
|
-
end
|
26
|
-
|
27
|
-
def nlist
|
28
|
-
puts "<ol>"
|
29
|
-
_body {|line| puts "<li>#{_formatting(line)}</li>" }
|
30
|
-
_puts "</ol>"
|
31
|
-
end
|
32
|
-
|
33
|
-
def dlist
|
34
|
-
delim = "~~"
|
35
|
-
_puts "<table>"
|
36
|
-
_body do |line|
|
37
|
-
# @tty.puts "Line = #{line}"
|
38
|
-
line = _formatting(line)
|
39
|
-
# @tty.puts "Line = #{line}\n "
|
40
|
-
term, defn = line.split(delim)
|
41
|
-
_puts "<tr>"
|
42
|
-
_puts "<td width=3%><td width=10%>#{term}</td><td>#{defn}</td>"
|
43
|
-
_puts "</tr>"
|
44
|
-
end
|
45
|
-
_puts "</table>"
|
46
|
-
end
|
47
|
-
|
48
21
|
def inout
|
49
22
|
src, out = _args
|
50
23
|
t1 = ::File.readlines(src) rescue (abort "t1 = #{src}")
|
@@ -52,8 +25,6 @@ def inout
|
|
52
25
|
# To pacify markdown for README (FIXME later)
|
53
26
|
t1 = t1.map {|x| " " + x.sub(/ +$/,"").gsub(/_/, "\\_") }.join
|
54
27
|
t2 = t2.map {|x| " " + x.sub(/ +$/,"").gsub(/_/, "\\_") }.join
|
55
|
-
# t1 = ::CGI.escape_html(t1)
|
56
|
-
# t2 = ::CGI.escape_html(t2)
|
57
28
|
|
58
29
|
puts <<-HTML
|
59
30
|
<center>
|
@@ -103,11 +74,9 @@ end
|
|
103
74
|
|
104
75
|
def testcase
|
105
76
|
name = _args.first
|
106
|
-
# _puts "\n<b>Test: <tt>#{name.gsub(/_/, "\\_")}</tt></b><br>"
|
107
77
|
_puts "\n<font size=+1><b>Test: </font><font size=+2><tt>#{name}</tt></font></b></h3><br>"
|
108
78
|
src, exp = "test/testfiles/#{name}/source.ltx", "test/testfiles/#{name}/expected-output.txt"
|
109
79
|
@_args = [src, exp] # Better way to do this??
|
110
|
-
# inout # Weird - only place I've done this yet.
|
111
80
|
put_table(src, exp)
|
112
81
|
_puts "<br>"
|
113
82
|
end
|
data/lib/livetext.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Livetext
|
2
|
-
VERSION = "0.8.
|
2
|
+
VERSION = "0.8.2"
|
3
3
|
end
|
4
4
|
|
5
5
|
require 'fileutils'
|
@@ -109,8 +109,8 @@ class Livetext
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def process_file(fname)
|
112
|
-
enum = File.readlines(fname).each
|
113
112
|
raise "No such file '#{fname}' to process" unless File.exist?(fname)
|
113
|
+
enum = File.readlines(fname).each
|
114
114
|
@main.source(enum, fname, 0)
|
115
115
|
loop do
|
116
116
|
line = @main.nextline
|
@@ -119,6 +119,16 @@ class Livetext
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
|
+
def process(text)
|
123
|
+
enum = text.each_line
|
124
|
+
@main.source(enum, "STDIN", 0)
|
125
|
+
loop do
|
126
|
+
line = @main.nextline
|
127
|
+
break if line.nil?
|
128
|
+
process_line(line)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
122
132
|
def rx(str, space=nil)
|
123
133
|
Regexp.compile("^" + Regexp.escape(str) + "#{space}")
|
124
134
|
end
|
data/lib/standard.rb
CHANGED
data/test/test.rb
CHANGED
@@ -26,8 +26,12 @@ class TestingLivetext < MiniTest::Test
|
|
26
26
|
define_method("test_formatting_#{i}") do
|
27
27
|
x = FormatLine.new
|
28
28
|
actual = x.parse(src)
|
29
|
-
|
30
|
-
|
29
|
+
if exp[0] == "/" # regex!
|
30
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
31
|
+
assert_match(exp, actual, msg)
|
32
|
+
else
|
33
|
+
assert_equal(exp, actual, msg)
|
34
|
+
end
|
31
35
|
end
|
32
36
|
end
|
33
37
|
|
data/test/testfiles/lines.txt
CHANGED
@@ -274,3 +274,11 @@ Escape brackets inside ~
|
|
274
274
|
There are brackets ~[\[\]] here
|
275
275
|
There are brackets <strike>[]</strike> here
|
276
276
|
|
277
|
+
Check output of $$date
|
278
|
+
Today is $$date, I guess
|
279
|
+
/Today is \d\d\d\d-\d\d-\d\d, I guess/
|
280
|
+
|
281
|
+
Check output of $$time
|
282
|
+
Tick tock, it's $$time right now
|
283
|
+
/Tick tock, it's \d\d:\d\d:\d\d right now/
|
284
|
+
|