org-ruby 0.9.1 → 0.9.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.
data/History.txt CHANGED
@@ -1,4 +1,14 @@
1
- == 0.9.1 / 2013-02-13
1
+ == 0.9.2 / 2014-03-22
2
+
3
+ * Fix Org mode syntax for escaping html: Syntax actually now is @@html:<text>@@
4
+
5
+ * Fix '#+TITLE:' to render as a h1 headline
6
+
7
+ * Remove rewriting links to '.org' files as '.html'
8
+
9
+ * Implement :exports options for code blocks
10
+
11
+ == 0.9.1 / 2014-02-13
2
12
 
3
13
  * Backport CGI::escapeHTML function from Ruby to have same output among different Ruby versions
4
14
 
data/README.rdoc CHANGED
@@ -1,11 +1,9 @@
1
- = org-ruby
2
- <em>Originally by Brian Dewey</em> (http://github.com/bdewey/org-ruby)
3
-
1
+ = OrgRuby
4
2
  {<img src="https://secure.travis-ci.org/wallyqs/org-ruby.png?branch=master" alt="Build Status" />}[http://travis-ci.org/wallyqs/org-ruby]
5
3
 
6
- An {org-mode}[http://orgmode.org] parser written in Ruby. The most significant thing this library does today is convert org-mode files to HTML or Textile.
7
- Currently, you cannot do much to customize the conversion. The supplied textile conversion is optimized for extracting
8
- “content” from the orgfile as opposed to “metadata.”
4
+ An {Org mode}[http://orgmode.org] parser written in Ruby.
5
+
6
+ <em>Originally by Brian Dewey</em>
9
7
 
10
8
  == Installation
11
9
 
@@ -13,47 +11,56 @@ Currently, you cannot do much to customize the conversion. The supplied textile
13
11
 
14
12
  == Usage
15
13
 
16
- From Ruby code:
14
+ From Ruby:
17
15
 
18
16
  require 'org-ruby'
19
17
 
20
18
  # Renders HTML
21
- Orgmode::Parser.new("* Hello world!).to_html
19
+ Orgmode::Parser.new("* Hello world!").to_html
22
20
  # => "<h1>Hello world!</h1>\n"
23
21
 
24
22
  # Renders Textile
25
- Orgmode::Parser.new("* Hello world!).to_textile
23
+ Orgmode::Parser.new("* Hello world!").to_textile
26
24
  # => "h1. Hello world!\n"
27
25
 
28
26
  # Renders Markdown
29
- Orgmode::Parser.new("* Hello world!).to_markdown
27
+ Orgmode::Parser.new("* Hello world!").to_markdown
30
28
  # => "# Hello world!\n"
31
29
 
32
- It can also be used from the command line:
33
-
34
- org-ruby sample.org --translate html
35
-
36
- ...will output a HTML version of sample.org.
37
-
38
- org-ruby --translate textile sample.org
39
-
40
- ...will output a textile version of sample.org.
30
+ The supported output exporters can be also called from the command line:
41
31
 
32
+ org-ruby --translate html sample.org
33
+ org-ruby --translate textile sample.org
42
34
  org-ruby --translate markdown sample.org
43
35
 
44
- ...will output a markdown version of sample.org.
36
+ == Current status
45
37
 
46
- == Features
38
+ Not all of the {Org mode features}[http://orgmode.org/manual/] are implemented yet.
39
+ Currently, the development of the gem is mostly oriented towards
40
+ giving support for exporting Org mode into other formats.
47
41
 
48
- * Converts org-mode files to HTML or Textile
42
+ Brief list of features supported:
43
+
44
+ * Converts Org mode files to HTML, Textile or Markdown.
49
45
  * Supports tables, block quotes, code blocks, and html blocks
50
46
  * Supports bold, italic, underline, strikethrough, and code inline formatting.
51
- * Supports hyperlinks that are in double-brackets
52
- * Supports definition lists
47
+ * Supports hyperlinks
48
+ * Supports lists
53
49
  * Supports footnotes
54
50
  * Supports +.org+ views in Rails through Tilt.
55
51
  * Code syntax highlight of code blocks using Pygments.rb or Coderay when available
56
52
 
53
+ == Contributing
54
+
55
+ * If you see a feature missing, please create an issue so that the maintainer considers its implementation
56
+ * Also, PRs are always welcome! Before submitting make sure to check what breaks by running <code>rake spec</code>
57
+
58
+ == Projects using it
59
+
60
+ * Used at {github/markup}[https://github.com/github/markup] for rendering +.org+ files
61
+ * The {Gollum}[https://github.com/gollum/gollum] project uses it too
62
+ * Can be used with Jekyll for building a site: {example here}[https://github.com/wallyqs/yet-another-jekyll-org-template]
63
+
57
64
  == License
58
65
 
59
66
  (The MIT License)
data/lib/org-ruby.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
2
2
 
3
3
  # internal requires
4
+ require 'org-ruby/version'
4
5
  require 'org-ruby/parser'
5
6
  require 'org-ruby/regexp_helper'
6
7
  require 'org-ruby/line'
@@ -24,7 +25,6 @@ require 'org-ruby/tilt'
24
25
  module OrgRuby
25
26
 
26
27
  # :stopdoc:
27
- VERSION = '0.9.1'
28
28
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
29
29
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
30
30
  # :startdoc:
@@ -14,37 +14,33 @@ module Orgmode
14
14
  class HtmlOutputBuffer < OutputBuffer
15
15
 
16
16
  HtmlBlockTag = {
17
- :paragraph => "p",
18
- :ordered_list => "ol",
19
- :unordered_list => "ul",
20
- :list_item => "li",
21
- :definition_list => "dl",
22
- :definition_term => "dt",
17
+ :paragraph => "p",
18
+ :ordered_list => "ol",
19
+ :unordered_list => "ul",
20
+ :list_item => "li",
21
+ :definition_list => "dl",
22
+ :definition_term => "dt",
23
23
  :definition_descr => "dd",
24
- :table => "table",
25
- :table_row => "tr",
26
- :quote => "blockquote",
27
- :example => "pre",
28
- :src => "pre",
29
- :inline_example => "pre",
30
- :center => "div",
31
- :heading1 => "h1",
32
- :heading2 => "h2",
33
- :heading3 => "h3",
34
- :heading4 => "h4",
35
- :heading5 => "h5",
36
- :heading6 => "h6"
24
+ :table => "table",
25
+ :table_row => "tr",
26
+ :quote => "blockquote",
27
+ :example => "pre",
28
+ :src => "pre",
29
+ :inline_example => "pre",
30
+ :center => "div",
31
+ :heading1 => "h1",
32
+ :heading2 => "h2",
33
+ :heading3 => "h3",
34
+ :heading4 => "h4",
35
+ :heading5 => "h5",
36
+ :heading6 => "h6",
37
+ :title => "h1"
37
38
  }
38
39
 
39
40
  attr_reader :options
40
41
 
41
42
  def initialize(output, opts = {})
42
43
  super(output)
43
- if opts[:decorate_title] then
44
- @title_decoration = " class=\"title\""
45
- else
46
- @title_decoration = ""
47
- end
48
44
  @buffer_tag = "HTML"
49
45
  @options = opts
50
46
  @new_paragraph = :start
@@ -71,8 +67,8 @@ module Orgmode
71
67
  " class=\"example\""
72
68
  when mode == :center
73
69
  " style=\"text-align: center\""
74
- else
75
- @title_decoration
70
+ when @options[:decorate_title]
71
+ " class=\"title\""
76
72
  end
77
73
 
78
74
  add_paragraph unless @new_paragraph == :start
@@ -81,7 +77,7 @@ module Orgmode
81
77
  @logger.debug "#{mode}: <#{HtmlBlockTag[mode]}#{css_class}>"
82
78
  @output << "<#{HtmlBlockTag[mode]}#{css_class}>"
83
79
  # Entering a new mode obliterates the title decoration
84
- @title_decoration = ""
80
+ @options[:decorate_title] = nil
85
81
  end
86
82
  end
87
83
  end
@@ -138,7 +134,7 @@ module Orgmode
138
134
  @buffer.gsub!(/\A\n/, "") if @new_paragraph == :start
139
135
  @new_paragraph = true
140
136
  else
141
- # *NOTE* Don't use escape_buffer! through its sensitivity to @<text> forms
137
+ # *NOTE* Don't use escape_string! through its sensitivity to @@html:<text>@@ forms
142
138
  @buffer = escapeHTML @buffer
143
139
  end
144
140
 
@@ -171,8 +167,6 @@ module Orgmode
171
167
  push_mode(:definition_descr, indent)
172
168
  @output << inline_formatting(d[2].strip + d[3])
173
169
  @new_paragraph = nil
174
- # FIXME: Need to restore tags once again (this should be done in escape_buffer!)
175
- @output.gsub!(/@(<[^<>\n]*>)/, "\\1")
176
170
 
177
171
  when :horizontal_rule
178
172
  add_paragraph unless @new_paragraph == :start
@@ -232,22 +226,22 @@ module Orgmode
232
226
  mode == :table_separator or mode == :table_header)
233
227
  end
234
228
 
235
- # Escapes any HTML content in the output accumulation buffer @buffer.
236
- def escape_buffer!
237
- @buffer.gsub!(/&/, "&amp;")
229
+ # Escapes any HTML content in string
230
+ def escape_string! str
231
+ str.gsub!(/&/, "&amp;")
238
232
  # Escapes the left and right angular brackets but construction
239
- # @<text> which is formatted to <text>
240
- @buffer.gsub! /<([^<>\n]*)/ do |match|
241
- if $`[-1..-1] == "@" and $'[0..0] == ">" then $&
242
- else "&lt;#{$1}"
243
- end
233
+ # @@html:<text>@@ which is formatted to <text>
234
+ str.gsub! /<([^<>\n]*)/ do |match|
235
+ ($`[-7..-1] == "@@html:" and $'[0..2] == ">@@") ? $& : "&lt;#{$1}"
244
236
  end
245
- @buffer.gsub! /([^<>\n]*)>/ do |match|
246
- if $`[-2..-1] == "@<" then $&
247
- else "#{$1}&gt;"
248
- end
237
+ str.gsub! /([^<>\n]*)>/ do |match|
238
+ $`[-8..-1] == "@@html:<" ? $& : "#{$1}&gt;"
249
239
  end
250
- @buffer.gsub!(/@(<[^<>\n]*>)/, "\\1")
240
+ str.gsub! /@@html:(<[^<>\n]*>)@@/, "\\1"
241
+ end
242
+
243
+ def quote_tags str
244
+ str.gsub /(<[^<>\n]*>)/, "@@html:\\1@@"
251
245
  end
252
246
 
253
247
  def buffer_indentation
@@ -277,23 +271,25 @@ module Orgmode
277
271
  s = escapeHTML s
278
272
  "<#{Tags[marker][:open]}>#{s}</#{Tags[marker][:close]}>"
279
273
  else
280
- "@<#{Tags[marker][:open]}>#{s}@</#{Tags[marker][:close]}>"
274
+ quote_tags("<#{Tags[marker][:open]}>") + s +
275
+ quote_tags("</#{Tags[marker][:close]}>")
281
276
  end
282
277
  end
278
+
283
279
  if @options[:use_sub_superscripts] then
284
280
  @re_help.rewrite_subp str do |type, text|
285
281
  if type == "_" then
286
- "@<sub>#{text}@</sub>"
282
+ quote_tags("<sub>") + text + quote_tags("</sub>")
287
283
  elsif type == "^" then
288
- "@<sup>#{text}@</sup>"
284
+ quote_tags("<sup>") + text + quote_tags("</sup>")
289
285
  end
290
286
  end
291
287
  end
288
+
292
289
  @re_help.rewrite_links str do |link, defi|
293
290
  [link, defi].compact.each do |text|
294
291
  # We don't support search links right now. Get rid of it.
295
292
  text.sub!(/\A(file:[^\s]+)::[^\s]*?\Z/, "\\1")
296
- text.sub!(/\A(file:[^\s]+)\.org\Z/i, "\\1.html")
297
293
  text.sub!(/\Afile:(?=[^\s]+\Z)/, "")
298
294
  end
299
295
 
@@ -302,38 +298,44 @@ module Orgmode
302
298
  defi ||= link unless link =~ @re_help.org_image_file_regexp
303
299
 
304
300
  if defi =~ @re_help.org_image_file_regexp
305
- defi = "@<img src=\"#{defi}\" alt=\"#{defi}\" />"
301
+ defi = quote_tags "<img src=\"#{defi}\" alt=\"#{defi}\" />"
306
302
  end
307
303
 
308
304
  if defi
309
305
  link = @options[:link_abbrevs][link] if @options[:link_abbrevs].has_key? link
310
- "@<a href=\"#{link}\">#{defi}@</a>"
306
+ quote_tags("<a href=\"#{link}\">") + defi + quote_tags("</a>")
311
307
  else
312
- "@<img src=\"#{link}\" alt=\"#{link}\" />"
308
+ quote_tags "<img src=\"#{link}\" alt=\"#{link}\" />"
313
309
  end
314
310
  end
311
+
315
312
  if @output_type == :table_row
316
- str.gsub!(/^\|\s*/, "@<td>")
317
- str.gsub!(/\s*\|$/, "@</td>")
318
- str.gsub!(/\s*\|\s*/, "@</td>@<td>")
313
+ str.gsub! /^\|\s*/, quote_tags("<td>")
314
+ str.gsub! /\s*\|$/, quote_tags("</td>")
315
+ str.gsub! /\s*\|\s*/, quote_tags("</td><td>")
319
316
  end
317
+
320
318
  if @output_type == :table_header
321
- str.gsub!(/^\|\s*/, "@<th>")
322
- str.gsub!(/\s*\|$/, "@</th>")
323
- str.gsub!(/\s*\|\s*/, "@</th>@<th>")
319
+ str.gsub! /^\|\s*/, quote_tags("<th>")
320
+ str.gsub! /\s*\|$/, quote_tags("</th>")
321
+ str.gsub! /\s*\|\s*/, quote_tags("</th><th>")
324
322
  end
323
+
325
324
  if @options[:export_footnotes] then
326
325
  @re_help.rewrite_footnote str do |name, defi|
327
326
  # TODO escape name for url?
328
327
  @footnotes[name] = defi if defi
329
- "@<sup>@<a class=\"footref\" name=\"fnr.#{name}\" href=\"#fn.#{name}\">#{name}@</a>@</sup>"
328
+ quote_tags("<sup><a class=\"footref\" name=\"fnr.#{name}\" href=\"#fn.#{name}\">") +
329
+ name + quote_tags("</a></sup>")
330
330
  end
331
331
  end
332
+
332
333
  # Two backslashes \\ at the end of the line make a line break without breaking paragraph.
333
334
  if @output_type != :table_row and @output_type != :table_header then
334
- str.sub!(/\\\\$/, "@<br />")
335
+ str.sub! /\\\\$/, quote_tags("<br />")
335
336
  end
336
- escape_buffer!
337
+
338
+ escape_string! str
337
339
  Orgmode.special_symbols_to_html str
338
340
  str = @re_help.restore_code_snippets str
339
341
  end
@@ -360,9 +362,10 @@ module Orgmode
360
362
  end
361
363
 
362
364
  def strip_code_block!
363
- @code_block_indent ||= 0
364
- strip_regexp = Regexp.new("^" + " " * @code_block_indent)
365
- @buffer.gsub!(strip_regexp, "")
365
+ if @code_block_indent and @code_block_indent > 0
366
+ strip_regexp = Regexp.new("^" + " " * @code_block_indent)
367
+ @buffer.gsub!(strip_regexp, "")
368
+ end
366
369
  @code_block_indent = nil
367
370
 
368
371
  # Strip proctective commas generated by Org mode (C-c ')
data/lib/org-ruby/line.rb CHANGED
@@ -24,14 +24,14 @@ module Orgmode
24
24
  # type. This will then affect the value of +paragraph_type+.
25
25
  attr_accessor :assigned_paragraph_type
26
26
 
27
- def initialize(line, parser = nil)
27
+ def initialize(line, parser=nil, assigned_paragraph_type=nil)
28
28
  @parser = parser
29
29
  @line = line
30
30
  @indent = 0
31
31
  @line =~ /\s*/
32
+ @assigned_paragraph_type = assigned_paragraph_type
32
33
  determine_paragraph_type
33
34
  determine_major_mode
34
- @assigned_paragraph_type = nil
35
35
  @indent = $&.length unless blank?
36
36
  end
37
37
 
@@ -158,7 +158,13 @@ module Orgmode
158
158
  table_row? or table_separator? or table_header?
159
159
  end
160
160
 
161
- BlockRegexp = /^\s*#\+(BEGIN|END)_(\w*)\s*([0-9A-Za-z_\-]*)?/i
161
+ #
162
+ # 1) block delimiters
163
+ # 2) block type (src, example, html...)
164
+ # 3) switches (e.g. -n -r -l "asdf")
165
+ # 4) header arguments (:hello world)
166
+ #
167
+ BlockRegexp = /^\s*#\+(BEGIN|END)_(\w*)\s*([0-9A-Za-z_\-]*)?\s*([^\":\n]*\"[^\"\n*]*\"[^\":\n]*|[^\":\n]*)?\s*([^\n]*)?/i
162
168
 
163
169
  def begin_block?
164
170
  @line =~ BlockRegexp && $1 =~ /BEGIN/i
@@ -180,6 +186,48 @@ module Orgmode
180
186
  block_type =~ /^(EXAMPLE|SRC)$/i
181
187
  end
182
188
 
189
+ def block_switches
190
+ $4 if @line =~ BlockRegexp
191
+ end
192
+
193
+ def block_header_arguments
194
+ header_arguments = { }
195
+
196
+ if @line =~ BlockRegexp
197
+ header_arguments_string = $5
198
+ harray = header_arguments_string.split(' ')
199
+ harray.each_with_index do |arg, i|
200
+ next_argument = harray[i + 1]
201
+ if arg =~ /^:/ and not (next_argument.nil? or next_argument =~ /^:/)
202
+ header_arguments[arg] = next_argument
203
+ end
204
+ end
205
+ end
206
+
207
+ header_arguments
208
+ end
209
+
210
+ # TODO: COMMENT block should be considered here
211
+ def block_should_be_exported?
212
+ export_state = block_header_arguments[':exports']
213
+ case
214
+ when ['both', 'code', nil, ''].include?(export_state)
215
+ true
216
+ when ['none', 'results'].include?(export_state)
217
+ false
218
+ end
219
+ end
220
+
221
+ def results_block_should_be_exported?
222
+ export_state = block_header_arguments[':exports']
223
+ case
224
+ when ['results', 'both'].include?(export_state)
225
+ true
226
+ when ['code', 'none', nil, ''].include?(export_state)
227
+ false
228
+ end
229
+ end
230
+
183
231
  InlineExampleRegexp = /^\s*:\s/
184
232
 
185
233
  # Test if the line matches the "inline example" case:
@@ -224,6 +272,18 @@ module Orgmode
224
272
  end
225
273
  end
226
274
 
275
+ # #+TITLE: is special because even though that it can be
276
+ # written many times in the document, its value will be that of the last one
277
+ def title?
278
+ @assigned_paragraph_type == :title
279
+ end
280
+
281
+ ResultsBlockStartsRegexp = /^\s*#\+RESULTS:\s*$/i
282
+
283
+ def start_of_results_code_block?
284
+ @line =~ ResultsBlockStartsRegexp
285
+ end
286
+
227
287
  LinkAbbrevRegexp = /^\s*#\+LINK:\s*(\w+)\s+(.+)$/i
228
288
 
229
289
  def link_abbrev?
@@ -267,12 +327,18 @@ module Orgmode
267
327
  when metadata?
268
328
  :metadata
269
329
  when block_type
270
- case block_type.downcase.to_sym
271
- when :center, :comment, :example, :html, :quote, :src
272
- block_type.downcase.to_sym
330
+ if block_should_be_exported?
331
+ case block_type.downcase.to_sym
332
+ when :center, :comment, :example, :html, :quote, :src
333
+ block_type.downcase.to_sym
334
+ else
335
+ :comment
336
+ end
273
337
  else
274
338
  :comment
275
339
  end
340
+ when title?
341
+ :title
276
342
  when raw_text? # order is important! Raw text can be also a comment
277
343
  :raw_text
278
344
  when comment?
@@ -60,7 +60,8 @@ module Orgmode
60
60
  def insert(line)
61
61
  # Prepares the output buffer to receive content from a line.
62
62
  # As a side effect, this may flush the current accumulated text.
63
- @logger.debug "Looking at #{line.paragraph_type}(#{current_mode}) : #{line.to_s}"
63
+ @logger.debug "Looking at #{line.paragraph_type}|#{line.assigned_paragraph_type}(#{current_mode}) : #{line.to_s}"
64
+
64
65
  # We try to get the lang from #+BEGIN_SRC blocks
65
66
  @block_lang = line.block_lang if line.begin_block?
66
67
  unless should_accumulate_output?(line)
@@ -70,6 +71,10 @@ module Orgmode
70
71
 
71
72
  # Adds the current line to the output buffer
72
73
  case
74
+ when line.assigned_paragraph_type == :comment
75
+ # Don't add to buffer
76
+ when line.title?
77
+ @buffer << line.output_text
73
78
  when line.raw_text?
74
79
  @buffer << "\n" << line.output_text if line.raw_text_tag == @buffer_tag
75
80
  when preserve_whitespace?
@@ -187,7 +192,7 @@ module Orgmode
187
192
  # Special case: Only end-block line closes block
188
193
  pop_mode if line.end_block? and line.paragraph_type == current_mode
189
194
 
190
- unless line.paragraph_type == :blank
195
+ unless line.paragraph_type == :blank or line.assigned_paragraph_type == :comment
191
196
  if (@list_indent_stack.empty? or
192
197
  @list_indent_stack.last <= line.indent or
193
198
  mode_is_block? current_mode)
@@ -167,7 +167,7 @@ module Orgmode
167
167
  @link_abbrevs[link_abbrev_data[0]] = link_abbrev_data[1]
168
168
  end
169
169
 
170
- mode = :normal if line.end_block? and mode == line.paragraph_type
170
+ mode = :normal if line.end_block? and [line.paragraph_type, :comment].include?(mode)
171
171
  mode = :normal if line.property_drawer_end_block? and mode == :property_drawer
172
172
 
173
173
  case mode
@@ -183,6 +183,8 @@ module Orgmode
183
183
  table_header_set = false if !line.table?
184
184
 
185
185
  when :example, :html, :src
186
+ set_mode_for_results_block_contents(previous_line, line) if previous_line
187
+
186
188
  # As long as we stay in code mode, force lines to be code.
187
189
  # Don't try to interpret structural items, like headings and tables.
188
190
  line.assigned_paragraph_type = :code
@@ -196,7 +198,21 @@ module Orgmode
196
198
  end
197
199
 
198
200
  mode = line.paragraph_type if line.begin_block?
199
- mode = :property_drawer if previous_line and previous_line.property_drawer_begin_block?
201
+
202
+ if previous_line
203
+ set_mode_for_results_block_contents(previous_line, line)
204
+
205
+ mode = :property_drawer if previous_line.property_drawer_begin_block?
206
+ end
207
+
208
+ # We treat the results code block differently since the exporting can be omitted
209
+ if line.begin_block?
210
+ if line.results_block_should_be_exported?
211
+ @next_results_block_should_be_exported = true
212
+ else
213
+ @next_results_block_should_be_exported = false
214
+ end
215
+ end
200
216
  end
201
217
 
202
218
  if mode == :property_drawer and @current_headline
@@ -258,6 +274,15 @@ module Orgmode
258
274
  include_data
259
275
  end
260
276
 
277
+ def set_mode_for_results_block_contents(previous_line, line)
278
+ if previous_line.start_of_results_code_block? \
279
+ or previous_line.assigned_paragraph_type == :comment
280
+ unless @next_results_block_should_be_exported or line.paragraph_type == :blank
281
+ line.assigned_paragraph_type = :comment
282
+ end
283
+ end
284
+ end
285
+
261
286
  # Creates a new parser from the data in a given file
262
287
  def self.load(fname)
263
288
  lines = IO.readlines(fname)
@@ -301,22 +326,22 @@ module Orgmode
301
326
  def to_html
302
327
  mark_trees_for_export
303
328
  export_options = {
304
- :decorate_title => @in_buffer_settings["TITLE"],
329
+ :decorate_title => @in_buffer_settings["TITLE"],
305
330
  :export_heading_number => export_heading_number?,
306
- :export_todo => export_todo?,
307
- :use_sub_superscripts => use_sub_superscripts?,
308
- :export_footnotes => export_footnotes?,
309
- :link_abbrevs => @link_abbrevs
331
+ :export_todo => export_todo?,
332
+ :use_sub_superscripts => use_sub_superscripts?,
333
+ :export_footnotes => export_footnotes?,
334
+ :link_abbrevs => @link_abbrevs
310
335
  }
311
336
  export_options[:skip_tables] = true if not export_tables?
312
337
  output = ""
313
338
  output_buffer = HtmlOutputBuffer.new(output, export_options)
314
339
 
315
- if @in_buffer_settings["TITLE"] then
340
+ if @in_buffer_settings["TITLE"]
316
341
 
317
342
  # If we're given a new title, then just create a new line
318
343
  # for that title.
319
- title = Line.new(@in_buffer_settings["TITLE"], self)
344
+ title = Line.new(@in_buffer_settings["TITLE"], self, :title)
320
345
  translate([title], output_buffer)
321
346
  end
322
347
  translate(@header_lines, output_buffer) unless skip_header_lines?
@@ -0,0 +1,3 @@
1
+ module OrgRuby
2
+ VERSION = '0.9.2'
3
+ end
metadata CHANGED
@@ -1,19 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: org-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Dewey
9
+ - Waldemar Quevedo
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-02-13 00:00:00.000000000 Z
13
+ date: 2014-03-22 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rubypants
16
- requirement: !ruby/object:Gem::Requirement
17
+ requirement: &70189716079180 !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ! '>='
@@ -21,23 +22,9 @@ dependencies:
21
22
  version: 0.2.0
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: 0.2.0
30
- description: ! 'An org-mode parser written in Ruby. This gem contains Ruby routines
31
- for parsing org-mode files.The most
32
-
33
- significant thing this library does today is convert org-mode files to
34
-
35
- HTML or textile. Currently, you cannot do much to customize the
36
-
37
- conversion. The supplied textile conversion is optimized for
38
-
39
- extracting "content" from the orgfile as opposed to "metadata." '
40
- email: bdewey@gmail.com
25
+ version_requirements: *70189716079180
26
+ description: An Org mode parser written in Ruby.
27
+ email: waldemar.quevedo@gmail.com
41
28
  executables:
42
29
  - org-ruby
43
30
  extensions: []
@@ -61,13 +48,12 @@ files:
61
48
  - lib/org-ruby/textile_output_buffer.rb
62
49
  - lib/org-ruby/textile_symbol_replace.rb
63
50
  - lib/org-ruby/tilt.rb
64
- homepage: https://github.com/bdewey/org-ruby
51
+ - lib/org-ruby/version.rb
52
+ homepage: https://github.com/wallyqs/org-ruby
65
53
  licenses:
66
54
  - MIT
67
55
  post_install_message:
68
- rdoc_options:
69
- - --main
70
- - README.rdoc
56
+ rdoc_options: []
71
57
  require_paths:
72
58
  - lib
73
59
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -84,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
70
  version: '0'
85
71
  requirements: []
86
72
  rubyforge_project: org-ruby
87
- rubygems_version: 1.8.24
73
+ rubygems_version: 1.8.10
88
74
  signing_key:
89
75
  specification_version: 3
90
76
  summary: This gem contains Ruby routines for parsing org-mode files.