livetext 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|