livetext 0.9.21 → 0.9.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/README.lt3 +8 -8
  3. data/bin/livetext +57 -40
  4. data/imports/bookish.rb +89 -90
  5. data/imports/calibre.rb +3 -3
  6. data/imports/livemagick.rb +17 -17
  7. data/imports/markdown.rb +10 -10
  8. data/imports/pyggish.rb +15 -47
  9. data/imports/tutorial.rb +18 -18
  10. data/lib/cmdargs.rb +10 -6
  11. data/lib/{errors.rb → livetext/errors.rb} +1 -1
  12. data/lib/{formatline.rb → livetext/formatline.rb} +69 -125
  13. data/lib/livetext/funcall.rb +84 -0
  14. data/lib/{functions.rb → livetext/functions.rb} +16 -3
  15. data/lib/livetext/global_helpers.rb +37 -0
  16. data/lib/livetext/handler/import.rb +44 -0
  17. data/lib/livetext/handler/mixin.rb +37 -0
  18. data/lib/livetext/handler.rb +3 -0
  19. data/lib/{helpers.rb → livetext/helpers.rb} +89 -67
  20. data/lib/{html.rb → livetext/html.rb} +3 -2
  21. data/lib/{parser → livetext/parser}/general.rb +0 -3
  22. data/lib/{parser → livetext/parser}/set.rb +1 -6
  23. data/lib/{parser → livetext/parser}/string.rb +2 -2
  24. data/lib/{parser.rb → livetext/parser.rb} +0 -1
  25. data/lib/livetext/parsing.rb +29 -0
  26. data/lib/livetext/paths.rb +13 -0
  27. data/lib/livetext/processor.rb +89 -0
  28. data/lib/livetext/reopen.rb +12 -0
  29. data/lib/livetext/skeleton.rb +17 -0
  30. data/lib/{standard.rb → livetext/standard.rb} +152 -122
  31. data/lib/livetext/userapi.rb +153 -0
  32. data/lib/livetext/version.rb +6 -0
  33. data/lib/livetext.rb +66 -27
  34. data/plugin/bookish.rb +85 -85
  35. data/plugin/calibre.rb +3 -3
  36. data/plugin/livemagick.rb +17 -17
  37. data/plugin/markdown.rb +10 -10
  38. data/plugin/pyggish.rb +131 -162
  39. data/plugin/tutorial.rb +15 -16
  40. data/test/all.rb +6 -0
  41. data/test/snapshots/def_method/expected-output.txt +2 -0
  42. data/test/snapshots/def_method/source.lt3 +4 -2
  43. data/test/snapshots/error_inc_line_num/OUT +17 -0
  44. data/test/snapshots/error_inc_line_num/README.txt +20 -0
  45. data/test/snapshots/error_inc_line_num/expected-output.txt +0 -6
  46. data/test/snapshots/error_inc_line_num/match-error.txt +1 -1
  47. data/test/snapshots/error_line_num/match-error.txt +1 -1
  48. data/test/snapshots/error_missing_end/expected-output.txt +0 -1
  49. data/test/snapshots/error_name_not_permitted/expected-output.txt +4 -0
  50. data/test/snapshots/error_name_not_permitted/match-error.txt +1 -1
  51. data/test/snapshots/error_no_such_copy/duh +26 -0
  52. data/test/snapshots/error_no_such_copy/expected-output.txt +1 -0
  53. data/test/snapshots/error_no_such_copy/match-error.txt +1 -1
  54. data/test/snapshots/error_no_such_copy/mystery.txt +36 -0
  55. data/test/snapshots/error_no_such_inc/match-error.txt +1 -1
  56. data/test/snapshots/error_no_such_mixin/expected-output.txt +1 -0
  57. data/test/snapshots/error_no_such_mixin/match-error.txt +1 -1
  58. data/test/snapshots/error_no_such_mixin/source.lt3 +1 -1
  59. data/test/snapshots/example_alpha/source.lt3 +2 -2
  60. data/test/snapshots/example_alpha2/expected-output.txt +0 -2
  61. data/test/snapshots/example_alpha2/source.lt3 +5 -4
  62. data/test/snapshots/{icanhaz → import}/expected-output.txt +2 -1
  63. data/test/snapshots/import/match-error.txt +1 -0
  64. data/test/snapshots/{icanhaz → import}/simple_import.rb +1 -1
  65. data/test/snapshots/{icanhaz → import}/source.lt3 +2 -2
  66. data/test/snapshots/{icanhaz2 → import2}/expected-error.txt +0 -0
  67. data/test/snapshots/{icanhaz2 → import2}/expected-output.txt +3 -1
  68. data/test/snapshots/{icanhaz2/simple_canhaz.rb → import2/simple_import.rb} +1 -1
  69. data/test/snapshots/import2/source.lt3 +8 -0
  70. data/test/snapshots/import_bookish/expected-error.txt +0 -0
  71. data/test/snapshots/import_bookish/expected-output.txt +10 -0
  72. data/test/snapshots/import_bookish/source.lt3 +7 -0
  73. data/test/snapshots/import_bookish/toc.tmp +0 -0
  74. data/test/snapshots/mixin_bookish/expected-error.txt +0 -0
  75. data/test/snapshots/mixin_bookish/expected-output.txt +10 -0
  76. data/test/snapshots/mixin_bookish/source.lt3 +7 -0
  77. data/test/snapshots/mixin_bookish/toc.tmp +0 -0
  78. data/test/snapshots/more_functions/expected-error.txt +0 -0
  79. data/test/snapshots/more_functions/expected-output.txt +37 -0
  80. data/test/snapshots/more_functions/source.lt3 +40 -0
  81. data/test/snapshots/raw_lines/expected-output.txt +0 -2
  82. data/test/snapshots/simple_import/expected-output.txt +2 -0
  83. data/test/snapshots/simple_import/simple_import.rb +1 -1
  84. data/test/snapshots/simple_import/source.lt3 +3 -1
  85. data/test/snapshots/simple_mixin/simple_mixin.rb +1 -1
  86. data/test/snapshots/single_raw_line/expected-output.txt +0 -2
  87. data/test/snapshots/subset.txt +14 -14
  88. data/test/snapshots.rb +30 -13
  89. data/test/unit/formatline.rb +253 -134
  90. data/test/unit/html.rb +2 -3
  91. data/test/unit/parser/general.rb +1 -2
  92. data/test/unit/parser/mixin.rb +1 -3
  93. data/test/unit/parser/set.rb +8 -12
  94. data/test/unit/parser/string.rb +6 -6
  95. data/test/unit/parser.rb +0 -1
  96. data/test/unit/standard.rb +0 -2
  97. metadata +47 -30
  98. data/imports/markdown_importable.rb +0 -45
  99. data/lib/handler/icanhaz.rb +0 -35
  100. data/lib/handler.rb +0 -1
  101. data/lib/livetext/importable.rb +0 -2
  102. data/lib/parser/file.rb +0 -8
  103. data/lib/parser/import.rb +0 -15
  104. data/lib/parser/mixin.rb +0 -38
  105. data/lib/processor.rb +0 -83
  106. data/lib/userapi.rb +0 -160
  107. data/test/snapshots/icanhaz/match-error.txt +0 -1
  108. data/test/snapshots/icanhaz2/source.lt3 +0 -6
  109. data/test/unit/parser/importable.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90efd2fa7302e61cfe5ed140c8f954afd2b7c699ec705d8ff0c1d36bd6641fa4
4
- data.tar.gz: b551f8a5dc4eda7435fe73b4680604c8468a59417286c01194672d319bdaf411
3
+ metadata.gz: 3f447e149e6724975184b8db2c51ff59c58752c3cb5b4037bb86fb1f355015a6
4
+ data.tar.gz: 9740fc3b2bb98e92c91c523656f270a66132d882fbcaa9b1a803294d1e10a65a
5
5
  SHA512:
6
- metadata.gz: 213f8d126a548e54a34ce1c4f551d9f4ab208df618bb4e1d069ee5c6f430d03daeef6054c71e205dc1431b1bea6c6bb05d9362985c8be280ed982781b139b047
7
- data.tar.gz: ef50d633131bf82ac06c7807ea53edbc11ba032e0ea3db7eade09afed2e5e954656515872ead7fb38a798c7079fb0d73e742a18b4b258d29baab13de6b8e28d5
6
+ metadata.gz: 1ee34071fde07e45b13d8f13aa9889d2b060651901acd8e3876071121ea5222c8bc4b83162c30f772c53fe92e07ea7bada3f28be0c75994f1ad21bcdacbb2905
7
+ data.tar.gz: ce9ed1ac2cd624818b775d19681a406f0a4c43c2a0b9a7f6f8c1f8fb9834b91301a2b65c10d1faa0c4b664a1abcb741c570d1745d996537f4d438e97b65e3f56
data/README.lt3 CHANGED
@@ -1,5 +1,5 @@
1
- .icanhaz tutorial
2
- .icanhaz markdown
1
+ .import tutorial
2
+ .import markdown
3
3
 
4
4
  . copy basic.css
5
5
 
@@ -186,7 +186,7 @@ the text. Here's an example.
186
186
 
187
187
  . This is also a comment, by the way.
188
188
  .def chapter
189
- params = _args
189
+ params = api.args
190
190
  raise "chapter: expecting at least two args" unless params.size > 1
191
191
  num, *title = params # Chapter number + title
192
192
  title = title.join(" ") # Join all words into one string
@@ -195,7 +195,7 @@ the text. Here's an example.
195
195
  <h2>#{title}</h2>
196
196
  <hr>
197
197
  HTML
198
- _puts text
198
+ api.puts text
199
199
  .end
200
200
  . Now let's invoke it...
201
201
  .chapter 1 Why I Went to the Woods
@@ -270,16 +270,16 @@ in here (and nothing else).
270
270
  # File: mylib.rb
271
271
 
272
272
  def alpha
273
- cols = _args.first
273
+ cols = api.args.first
274
274
  cols = "1" if cols == ""
275
275
  cols = cols.to_i
276
276
  raise "Columns must be 1-5" unless cols.between?(1,5)
277
- text = _body.join
277
+ text = api.body.join
278
278
  text.gsub!(/\n/, " ")
279
279
  words = text.split.sort
280
280
  words.each_slice(cols) do |row|
281
- row.each {|w| _print '%-15s' % w }
282
- _puts
281
+ row.each {|w| api.print '%-15s' % w }
282
+ api.puts
283
283
  end
284
284
  end
285
285
  .end
data/bin/livetext CHANGED
@@ -4,12 +4,8 @@ require 'rubygems'
4
4
 
5
5
  require_relative '../lib/livetext'
6
6
 
7
- def handle_lt3(src)
8
- abort "Unknown file extension" unless src =~ /.lt3$/
9
- end
10
-
11
7
  def usage
12
- puts <<-EOF
8
+ STDERR.puts <<~EOF
13
9
  Usage:
14
10
  livetext filename
15
11
 
@@ -41,50 +37,71 @@ def usage
41
37
  Install plugin:
42
38
  livetext -i filename.rb
43
39
  livetext -install filename.rb
40
+
44
41
  EOF
45
- puts
46
42
  exit
47
43
  end
48
44
 
49
- # Main
45
+ def version
46
+ puts "#{Livetext::VERSION}\n "
47
+ end
50
48
 
51
- x = Livetext.new
49
+ def testing
50
+ file = "#{Livetext::Path}/../test/test.rb"
51
+ flag = @backtrace ? "-back" : ""
52
+ cmd = "ruby #{file} cmdline#{flag}"
53
+ puts cmd
54
+ system(cmd)
55
+ end
52
56
 
53
- @backtrace = false
57
+ def mixin_flag
58
+ mod = ARGV.shift
59
+ @live.mixin(ARGV.shift)
60
+ end
61
+
62
+ def read_stdin
63
+ src = STDIN.read
64
+ @live.process(src)
65
+ end
66
+
67
+ def install_plugin
68
+ lib = ARGV.shift
69
+ system("cp #{lib} #{Livetext::Path}/../plugin/")
70
+ end
54
71
 
55
- usage if ARGV.empty?
56
-
57
- loop do
58
- arg = ARGV.shift
59
- break if arg.nil?
60
- case arg
61
- when "-v", "--version"
62
- puts "#{Livetext::VERSION}\n "
63
- when "-t", "--test"
64
- file = "#{Livetext::Path}/../test/test.rb"
65
- flag = @backtrace ? "-back" : ""
66
- cmd = "ruby #{file} cmdline#{flag}"
67
- puts cmd
68
- system(cmd)
69
- when "-p", "--path"
70
- puts Livetext::Path
71
- when "-b", "--backtrace"
72
- @backtrace = true
72
+ def parse_command_line
73
+ usage if ARGV.empty?
74
+ success = true
75
+ loop do
76
+ arg = ARGV.shift
77
+ break if arg.nil?
78
+ case arg
79
+ when "-v", "--version"; version
80
+ when "-t", "--test"; testing
81
+ when "-p", "--path"; puts Livetext::Path
82
+ when "-b", "--backtrace"; @backtrace = true
73
83
  when "-m", "--mixin"
74
- mod = ARGV.shift
75
- x.mixin(ARGV.shift)
84
+ mixin_flag
76
85
  next
77
- when "-s", "--stdin"
78
- src = STDIN.read
79
- x.process(src)
80
- when "-h", "--help"
81
- usage
82
- when "-i", "--install"
83
- lib = ARGV.shift
84
- system("cp #{lib} #{Livetext::Path}/../plugin/")
85
- when Object
86
- x.process_file(arg, true) # , @backtrace)
86
+ when "-s", "--stdin"; read_stdin
87
+ when "-h", "--help"; usage
88
+ when "-i", "--install"; install_plugin
89
+ when Object; @live.process_file(arg, true) # , @backtrace)
90
+ else
91
+ success = false
92
+ STDERR.puts "Command line - #{arg.inspect} is unknown"
93
+ end
87
94
  end
95
+ @live.dump if success
96
+ # rescue => err
97
+ # STDERR.puts "Unexpected error! #{err.inspect}"
88
98
  end
89
99
 
90
- puts x.body
100
+ # Main
101
+
102
+ @live = Livetext.new
103
+
104
+ @backtrace = false
105
+
106
+ parse_command_line
107
+
data/imports/bookish.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Bookish
2
2
  def hardbreaks(args = nil, body = nil)
3
3
  @hard = false
4
- @hard = true unless @_args.first == "off"
4
+ @hard = true unless api.args.first == "off"
5
5
  end
6
6
 
7
7
  def hardbreaks?
@@ -14,29 +14,25 @@ module Bookish
14
14
 
15
15
  # These are duplicated. Remove safely
16
16
 
17
- def h1; _out "<h1>#{@_data}</h1>"; end
18
- def h2; _out "<h2>#{@_data}</h2>"; end
19
- def h3; _out "<h3>#{@_data}</h3>"; end
17
+ def h1; api.out "<h1>#{api.data}</h1>"; end
18
+ def h2; api.out "<h2>#{api.data}</h2>"; end
19
+ def h3; api.out "<h3>#{api.data}</h3>"; end
20
20
 
21
21
  def alpha_columns(args = nil, body = nil)
22
- n = @_args.first.to_i # FIXME: what if missing?
22
+ n = api.args.first.to_i # FIXME: what if missing?
23
23
  words = []
24
- _body do |line|
24
+ api.body do |line|
25
25
  words << line.chomp
26
26
  end
27
27
  words.sort!
28
- _out "<table cellpadding=2>"
28
+ api.out "<table cellpadding=2>"
29
29
  words.each_slice(n) do |w|
30
30
  items = w.map {|x| "<tt>#{x}</tt>" }
31
- _out "<tr><td width=5% valign=top></td><td>" + items.join("</td><td>") + "</td></tr>"
31
+ api.out "<tr><td width=5% valign=top></td><td>" + items.join("</td><td>") + "</td></tr>"
32
32
  end
33
- _out "</table>"
33
+ api.out "</table>"
34
34
  end
35
35
 
36
- # def comment
37
- # _body { } # ignore body
38
- # end
39
-
40
36
  def _errout(*args)
41
37
  ::STDERR.puts *args
42
38
  end
@@ -46,37 +42,39 @@ module Bookish
46
42
  end
47
43
 
48
44
  def _slug(str)
49
- s2 = str.chomp.strip.gsub(/[?:,()'"\/]/,"").gsub(/ /, "-").downcase
50
- # _errout "SLUG: #{str} => #{s2}"
51
- s2
45
+ str2 = str.chomp.strip
46
+ str2 = str2.gsub(/[?:,()'"\/]/,"")
47
+ str2 = str2.gsub(/ /, "-")
48
+ str2.downcase!
49
+ str2
52
50
  end
53
51
 
54
-
55
52
  # FIXME duplicated?
53
+
56
54
  def image(args = nil, body = nil)
57
- name = @_args[0]
58
- _out "<img src='#{name}'></img>"
55
+ name = api.args[0]
56
+ api.out "<img src='#{name}'></img>"
59
57
  end
60
58
 
61
59
  def figure(args = nil, body = nil)
62
- name = @_args[0]
63
- num = @_args[1]
64
- title = @_args[2..-1].join(" ")
65
- title = _format(title)
66
- _out "<img src='#{name}'></img>"
67
- _out "<center><b>Figure #{num}</b> #{title}</center>"
60
+ name = api.args[0]
61
+ num = api.args[1]
62
+ title = api.args[2..-1].join(" ")
63
+ title = api.format(title)
64
+ api.out "<img src='#{name}'></img>"
65
+ api.out "<center><b>Figure #{num}</b> #{title}</center>"
68
66
  end
69
67
 
70
68
  def chapter(args = nil, body = nil)
71
69
  # _errout("chapter")
72
- @chapter = @_args.first.to_i
70
+ @chapter = api.args.first.to_i
73
71
  @sec = @sec2 = 0
74
- title = @_data.split(" ",2)[1]
72
+ title = api.data.split(" ",2)[1]
75
73
  @toc << "<br><b>#@chapter</b> #{title}<br>"
76
- @_data = _slug(title)
74
+ api.data = _slug(title)
77
75
  next_output
78
- _out "<title>#{@chapter}. #{title}</title>"
79
- _out <<-HTML
76
+ api.out "<title>#{@chapter}. #{title}</title>"
77
+ api.out <<-HTML
80
78
  <h2>Chapter #{@chapter}</h2>
81
79
  <h1>#{title}</h1>
82
80
 
@@ -86,13 +84,13 @@ module Bookish
86
84
  def chapterN(args = nil, body = nil)
87
85
  @chapter += 1
88
86
  @sec = @sec2 = 0
89
- title = @_data # .split(" ",2)[1]
87
+ title = api.data # .split(" ",2)[1]
90
88
  _errout("Chapter #@chapter: #{title}")
91
89
  @toc << "<br><b>#@chapter</b> #{title}<br>"
92
- @_data = _slug(title)
90
+ api.data = _slug(title)
93
91
  next_output
94
- _out "<title>#{@chapter}. #{title}</title>"
95
- _out <<-HTML
92
+ api.out "<title>#{@chapter}. #{title}</title>"
93
+ api.out <<-HTML
96
94
  <h2>Chapter #{@chapter}</h2>
97
95
  <h1>#{title}</h1>
98
96
 
@@ -103,80 +101,79 @@ module Bookish
103
101
  @sec += 1
104
102
  @sec2 = 0
105
103
  @section = "#@chapter.#@sec"
106
- title = @_data.dup
104
+ title = api.data.dup
107
105
  @toc << "#{_nbsp(3)}<b>#@section</b> #{title}<br>"
108
- @_data = _slug(@_data)
106
+ api.data = _slug(api.data)
109
107
  next_output
110
- _out "<h3>#@section #{title}</h3>\n"
108
+ api.out "<h3>#@section #{title}</h3>\n"
111
109
  rescue => err
112
- STDERR.puts "#{err}\n#{err.backtrace}"
110
+ ::STDERR.puts "#{err}\n#{err.backtrace}"
113
111
  exit
114
112
  end
115
113
 
116
114
  def subsec(args = nil, body = nil)
117
115
  @sec2 += 1
118
116
  @subsec = "#@chapter.#@sec.#@sec2"
119
- title = @_data.dup
117
+ title = api.data.dup
120
118
  @toc << "#{_nbsp(6)}<b>#@subsec</b> #{title}<br>"
121
- @_data = _slug(@_data)
119
+ api.data = _slug(api.data)
122
120
  next_output
123
- _out "<h3>#@subsec #{title}</h3>\n"
121
+ api.out "<h3>#@subsec #{title}</h3>\n"
124
122
  end
125
123
 
126
124
  def definition_table(args = nil, body = nil)
127
- title = @_data
125
+ title = api.data
128
126
  wide = "95"
129
127
  delim = " :: "
130
- _out "<br><center><table width=#{wide}% cellpadding=5>"
131
- lines = _body(true)
132
- lines.map! {|line| _format(line) }
128
+ api.out "<br><center><table width=#{wide}% cellpadding=5>"
129
+ lines = api.body(true)
130
+ lines.map! {|line| api.format(line) }
133
131
 
134
132
  lines.each do |line|
135
133
  cells = line.split(delim)
136
- _out "<tr>"
134
+ api.out "<tr>"
137
135
  cells.each.with_index do |cell, i|
138
136
  width = (i == 0) ? "width=15%" : ""
139
- _out " <td #{width} valign=top>#{cell}</td>"
137
+ api.out " <td #{width} valign=top>#{cell}</td>"
140
138
  end
141
- _out "</tr>"
139
+ api.out "</tr>"
142
140
  end
143
- _out "</table></center><br><br>"
141
+ api.out "</table></center><br><br>"
144
142
 
145
- _optional_blank_line
143
+ api.optional_blank_line
146
144
  end
147
145
 
148
146
  def table2(args = nil, body = nil)
149
- title = @_data
147
+ title = api.data
150
148
  wide = "90"
151
- extra = _args[2]
149
+ extra = api.args[2]
152
150
  delim = " :: "
153
- _out "<br><center><table width=#{wide}% cellpadding=5>"
154
- lines = _body(true)
155
- lines.map! {|line| _format(line) }
151
+ api.out "<br><center><table width=#{wide}% cellpadding=5>"
152
+ lines = api.body(true)
153
+ lines.map! {|line| api.format(line) }
156
154
 
157
155
  lines.each do |line|
158
156
  cells = line.split(delim)
159
157
  percent = (100/cells.size.to_f).round
160
- _out "<tr>"
158
+ api.out "<tr>"
161
159
  cells.each do |cell|
162
- _out " <td width=#{percent}% valign=top " +
160
+ api.out " <td width=#{percent}% valign=top " +
163
161
  "#{extra}>#{cell}</td>"
164
162
  end
165
- _out "</tr>"
163
+ api.out "</tr>"
166
164
  end
167
- _out "</table></center><br><br>"
168
-
169
- _optional_blank_line
165
+ api.out "</table></center><br><br>"
166
+ api.optional_blank_line
170
167
  end
171
168
 
172
169
  def simple_table(args = nil, body = nil)
173
- title = @_data
170
+ title = api.data
174
171
  delim = " :: "
175
- _out "<table cellpadding=2>"
176
- lines = _body(true)
172
+ api.out "<table cellpadding=2>"
173
+ lines = api.body(true)
177
174
  maxw = nil
178
175
  lines.each do |line|
179
- _format(line)
176
+ api.format(line)
180
177
  cells = line.split(delim)
181
178
  wide = cells.map {|x| x.length }
182
179
  maxw = [0] * cells.size
@@ -188,26 +185,27 @@ module Bookish
188
185
 
189
186
  lines.each do |line|
190
187
  cells = line.split(delim)
191
- _out "<tr>"
188
+ api.out "<tr>"
192
189
  cells.each.with_index do |cell, i|
193
- _out " <td width=#{maxw}% valign=top>" +
190
+ api.out " <td width=#{maxw}% valign=top>" +
194
191
  "#{cell}</td>"
195
192
  end
196
- _out "</tr>"
193
+ api.out "</tr>"
197
194
  end
198
- _out "</table>"
195
+ api.out "</table>"
196
+ api.optional_blank_line
199
197
  end
200
198
 
201
199
  def table(args = nil, body = nil)
202
200
  @table_num ||= 0
203
201
  @table_num += 1
204
- title = @_data
202
+ title = api.data
205
203
  delim = " :: "
206
- _out "<br><center><table width=90% cellpadding=5>"
207
- lines = _body(true)
204
+ api.out "<br><center><table width=90% cellpadding=5>"
205
+ lines = api.body(true)
208
206
  maxw = nil
209
207
  lines.each do |line|
210
- _format(line)
208
+ api.format(line)
211
209
  cells = line.split(delim)
212
210
  wide = cells.map {|x| x.length }
213
211
  maxw = [0] * cells.size
@@ -219,17 +217,18 @@ module Bookish
219
217
 
220
218
  lines.each do |line|
221
219
  cells = line.split(delim)
222
- _out "<tr>"
220
+ api.out "<tr>"
223
221
  cells.each.with_index do |cell, i|
224
- _out " <td width=#{maxw}% valign=top>" +
222
+ api.out " <td width=#{maxw}% valign=top>" +
225
223
  "#{cell}</td>"
226
224
  end
227
- _out "</tr>"
225
+ api.out "</tr>"
228
226
  end
229
- _out "</table>"
227
+ api.out "</table>"
230
228
  @toc << "#{_nbsp(8)}<b>Table #@chapter.#@table_num</b> #{title}<br>"
231
229
  # _next_output(_slug("table_#{title}"))
232
- _out "<b>Table #@chapter.#@table_num &nbsp;&nbsp; #{title}</b></center><br>"
230
+ api.out "<b>Table #@chapter.#@table_num &nbsp;&nbsp; #{title}</b></center><br>"
231
+ api.optional_blank_line
233
232
  end
234
233
 
235
234
  def toc!(args = nil, body = nil)
@@ -242,7 +241,7 @@ module Bookish
242
241
  end
243
242
 
244
243
  def toc2(args = nil, body = nil)
245
- file = @_args[0]
244
+ file = api.args[0]
246
245
  @toc.close
247
246
  ::File.write(file, <<-EOS)
248
247
  <p style="page-break-after:always;"></p>
@@ -255,28 +254,28 @@ module Bookish
255
254
  end
256
255
 
257
256
  def missing(args = nil, body = nil)
258
- @toc << "#{_nbsp(8)}<font color=red>TBD: #@_data</font><br>"
259
- stuff = @_data.empty? ? "" : ": #@_data"
260
- _out "<br><font color=red><i>[Material missing#{stuff}]</i></font><br>\n "
257
+ @toc << "#{_nbsp(8)}<font color=red>TBD: #{api.data}</font><br>"
258
+ stuff = api.data.empty? ? "" : ": #{api.data}"
259
+ api.out "<br><font color=red><i>[Material missing#{stuff}]</i></font><br>\n "
261
260
  end
262
261
 
263
262
  def TBC(args = nil, body = nil)
264
263
  @toc << "#{_nbsp(8)}<font color=red>To be continued...</font><br>"
265
- _out "<br><font color=red><i>To be continued...</i></font><br>"
264
+ api.out "<br><font color=red><i>To be continued...</i></font><br>"
266
265
  end
267
266
 
268
267
  def note(args = nil, body = nil)
269
- _out "<br><font color=red><i>Note: "
270
- _out @_data
271
- _out "</i></font><br>\n "
268
+ api.out "<br><font color=red><i>Note: "
269
+ api.out api.data
270
+ api.out "</i></font><br>\n "
272
271
  end
273
272
 
274
273
  def quote(args = nil, body = nil)
275
- _out "<blockquote>"
276
- _body {|line| _out line }
277
- _out "</blockquote>"
274
+ api.out "<blockquote>"
275
+ api.body {|line| api.out line }
276
+ api.out "</blockquote>"
278
277
  rescue => err
279
- STDERR.puts "#{err}\n#{err.backtrace}"
278
+ ::STDERR.puts "#{err}\n#{err.backtrace}"
280
279
  exit
281
280
  end
282
281
 
data/imports/calibre.rb CHANGED
@@ -2,9 +2,9 @@ require 'fileutils'
2
2
 
3
3
  module Calibre
4
4
  def epub!(args = nil, body = nil)
5
- out = _format(@_args[0])
6
- src = @_args[1]
7
- @cover = @_args[2]
5
+ out = api.format(api.args[0])
6
+ src = api.args[1]
7
+ @cover = api.args[2]
8
8
  if ::File.directory?(src)
9
9
  files = ::Dir["#{src}/*"].grep /\.html$/
10
10
  files = files.sort # why is this necessary now?
@@ -4,24 +4,24 @@ module Livemagick # FIXME auto-mangle names
4
4
  include ::Magick
5
5
 
6
6
  def image(args = nil, body = nil)
7
- xx, yy, bg = _args
7
+ xx, yy, bg = api.args
8
8
  xx, yy = xx.to_i, yy.to_i
9
9
  @image = Image.new(xx,yy) { self.background_color = bg }
10
- _optional_blank_line
10
+ api.optional_blank_line
11
11
  end
12
12
 
13
13
  def canvas(args = nil, body = nil)
14
- color, width, opacity = _args
14
+ color, width, opacity = api.args
15
15
  opacity, width = opacity.to_i, width.to_i
16
16
  @canvas = Draw.new
17
17
  @canvas.fill_opacity(0)
18
18
  @canvas.stroke('black')
19
19
  @canvas.stroke_width(1)
20
- _optional_blank_line
20
+ api.optional_blank_line
21
21
  end
22
22
 
23
23
  def rectangle(args = nil, body = nil)
24
- xy, wxh, stroke_color, stroke_width = _args
24
+ xy, wxh, stroke_color, stroke_width = api.args
25
25
  x, y = xy.split(",").map(&:to_i)
26
26
  width, height = wxh.split("x").map(&:to_i)
27
27
  stroke_width = stroke_width.to_i
@@ -32,19 +32,19 @@ module Livemagick # FIXME auto-mangle names
32
32
  end
33
33
 
34
34
  def pen(args = nil, body = nil)
35
- @fill, @stroke = _args
35
+ @fill, @stroke = api.args
36
36
  @stroke = "black" if @stroke.nil? || @stroke.empty?
37
37
  _debug "pen: fill=#@fill stroke=#@stroke"
38
- _optional_blank_line
38
+ api.optional_blank_line
39
39
  end
40
40
 
41
41
  def font(args = nil, body = nil)
42
- size, font = _args
42
+ size, font = api.args
43
43
  font = "Helvetica" if font.nil? || font.empty?
44
44
  size = "32" if size.nil? || size.empty?
45
45
  @size, @font = size.to_i, font
46
46
  _debug "font: size=#@size font=#@font"
47
- _optional_blank_line
47
+ api.optional_blank_line
48
48
  end
49
49
 
50
50
  def _text(xy, wxh, str, weight, gravity)
@@ -62,34 +62,34 @@ module Livemagick # FIXME auto-mangle names
62
62
  end
63
63
 
64
64
  def text(args = nil, body = nil)
65
- xy, wxh, str = _data.split
65
+ xy, wxh, str = api.data.split
66
66
  weight, gravity = BoldWeight, CenterGravity
67
67
  _text(xy, wxh, str, weight, gravity)
68
- _optional_blank_line
68
+ api.optional_blank_line
69
69
  end
70
70
 
71
71
  def text!(args = nil, body = nil)
72
- xy, wxh = _data.split
73
- str = _body_text # .join
72
+ xy, wxh = api.data.split
73
+ str = api.body_text # .join
74
74
  weight, gravity = BoldWeight, CenterGravity
75
75
  _text(xy, wxh, str, weight, gravity)
76
- _optional_blank_line
76
+ api.optional_blank_line
77
77
  end
78
78
 
79
79
  def draw(args = nil, body = nil)
80
80
  @canvas.draw(@image)
81
- _optional_blank_line
81
+ api.optional_blank_line
82
82
  end
83
83
 
84
84
  def save(args = nil, body = nil)
85
85
  @image.write(_args.first)
86
- _optional_blank_line
86
+ api.optional_blank_line
87
87
  end
88
88
 
89
89
  def save!(args = nil, body = nil)
90
90
  save
91
91
  system("open #{_args.first}")
92
- _optional_blank_line
92
+ api.optional_blank_line
93
93
  end
94
94
  end
95
95
  =begin
data/imports/markdown.rb CHANGED
@@ -9,12 +9,12 @@ module Markdown
9
9
  SimpleFormats[:s] = %w[<strike> </strike>]
10
10
 
11
11
 
12
- def h1(args = nil, body = nil); _out "# #{Livetext.interpolate(@_data)}"; _optional_blank_line end # atx style for now
13
- def h2(args = nil, body = nil); _out "## #{Livetext.interpolate(@_data)}"; _optional_blank_line end
14
- def h3(args = nil, body = nil); _out "### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
15
- def h4(args = nil, body = nil); _out "#### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
16
- def h5(args = nil, body = nil); _out "##### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
17
- def h6(args = nil, body = nil); _out "###### #{Livetext.interpolate(@_data)}"; _optional_blank_line end
12
+ def h1(args = nil, body = nil); api.out "# #{Livetext.interpolate(api.data)}"; api.optional_blank_line end # atx style for now
13
+ def h2(args = nil, body = nil); api.out "## #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
14
+ def h3(args = nil, body = nil); api.out "### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
15
+ def h4(args = nil, body = nil); api.out "#### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
16
+ def h5(args = nil, body = nil); api.out "##### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
17
+ def h6(args = nil, body = nil); api.out "###### #{Livetext.interpolate(api.data)}"; api.optional_blank_line end
18
18
 
19
19
  def title(args = nil, body = nil)
20
20
  h1
@@ -25,18 +25,18 @@ module Markdown
25
25
  end
26
26
 
27
27
  def bq(args = nil, body = nil) # block quote
28
- _body {|line| _out "> #{line}" }
28
+ api.body {|line| api.out "> #{line}" }
29
29
  end
30
30
 
31
31
  def list(args = nil, body = nil)
32
- _body {|line| _out " * #{line}" }
32
+ api.body {|line| api.out " * #{line}" }
33
33
  end
34
34
 
35
35
  def olist(args = nil, body = nil) # Doesn't handle paragraphs yet
36
36
  n = 0
37
- _body do |line|
37
+ api.body do |line|
38
38
  n += 1
39
- _out "#{n}. #{_format(line)}"
39
+ api.out "#{n}. #{_format(line)}"
40
40
  end
41
41
  end
42
42