asciidoctor 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of asciidoctor might be problematic. Click here for more details.

data/README.md CHANGED
@@ -5,16 +5,19 @@ Asciidoctor is a pure-ruby processor for turning
5
5
  [Asciidoc](http://www.methods.co.nz/asciidoc/index.html) documents
6
6
  into HTML (and, eventually, other formats perhaps).
7
7
 
8
- Currently, asciidoctor uses some simple built-in ERB templates to
9
- style the output in a way tht roughly matches the default HTML output
10
- of the native Python processor.
8
+ Asciidoctor uses simple built-in ERB templates to style the output in
9
+ a way that roughly matches the default HTML output of the native
10
+ Python processor. You can override this behavior by providing
11
+ [Tilt]-compatible templates. See the Usage section for more details.
11
12
 
12
13
  Asciidoctor currently works with Ruby 1.8.7 and 1.9.3, though I don't
13
14
  know of any reason it shouldn't work with more exotic Ruby versions,
14
15
  and would welcome help in testing that out.
15
16
 
16
- The initial code on which asciidoctor is based was from the Git SCM
17
- site repo, [gitscm-next](https://github.com/github/gitscm-next).
17
+ The initial code from which asciidoctor started was from the [Git SCM
18
+ site repo][gitscm-next].
19
+
20
+ [gitscm-next]: https://github.com/github/gitscm-next
18
21
 
19
22
  # Installation
20
23
 
@@ -49,12 +52,11 @@ Render an Asciidoc-formatted string
49
52
 
50
53
  Asciidoctor allows you to override the default template used to render
51
54
  almost any individual Asciidoc elements. If you provide a directory of
52
- [Tilt](https://github.com/rtomayko/tilt)-compatible templates, named
53
- in a way Asciidoctor can figure out which template goes with which
54
- element, Asciidoctor will use the templates in this directory instead
55
- of its built-in templates for any elements for which it finds a
56
- matching template. It will use its default templates for everything
57
- else.
55
+ [Tilt]-compatible templates, named in a way Asciidoctor can figure out
56
+ which template goes with which element, Asciidoctor will use the
57
+ templates in this directory instead of its built-in templates for any
58
+ elements for which it finds a matching template. It will use its
59
+ default templates for everything else.
58
60
 
59
61
  doc = Asciidoctor::Document.new("*This* is it.", :template_dir => 'templates')
60
62
  puts doc.render
@@ -72,6 +74,8 @@ with an ERB template you'd put a file called
72
74
 
73
75
  For more usage examples, see the test suite.
74
76
 
77
+ [Tilt]: https://github.com/rtomayko/tilt
78
+
75
79
  ## Contributing
76
80
  In the spirit of [free software][free-sw], **everyone** is encouraged to help
77
81
  improve this project.
data/asciidoctor.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'asciidoctor'
16
- s.version = '0.0.2'
16
+ s.version = '0.0.3'
17
17
  s.date = '2012-08-03'
18
18
  s.rubyforge_project = 'asciidoctor'
19
19
 
@@ -30,17 +30,17 @@ class Asciidoctor::Document
30
30
  @elements = []
31
31
  @options = options
32
32
 
33
- reader = Reader.new(data, &block)
33
+ @reader = Reader.new(data, &block)
34
34
 
35
35
  # pseudo-delegation :)
36
- @defines = reader.defines
37
- @references = reader.references
36
+ @defines = @reader.defines
37
+ @references = @reader.references
38
38
 
39
39
  # Now parse @lines into elements
40
- while reader.has_lines?
41
- reader.skip_blank
40
+ while @reader.has_lines?
41
+ @reader.skip_blank
42
42
 
43
- @elements << Lexer.next_block(reader, self) if reader.has_lines?
43
+ @elements << Lexer.next_block(@reader, self) if @reader.has_lines?
44
44
  end
45
45
 
46
46
  Asciidoctor.debug "Found #{@elements.size} elements in this document:"
@@ -58,6 +58,11 @@ class Asciidoctor::Document
58
58
 
59
59
  end
60
60
 
61
+ # Make the raw source for the Document available.
62
+ def source
63
+ @reader.source if @reader
64
+ end
65
+
61
66
  # We need to be able to return some semblance of a title
62
67
  def title
63
68
  return @title if @title
@@ -72,6 +77,7 @@ class Asciidoctor::Document
72
77
 
73
78
  @title
74
79
  end
80
+ alias :name :title
75
81
 
76
82
  def splain
77
83
  if @header
@@ -91,19 +97,24 @@ class Asciidoctor::Document
91
97
  nil
92
98
  end
93
99
 
94
- def renderer
100
+ def renderer(options = {})
95
101
  return @renderer if @renderer
96
102
  render_options = {}
103
+ # Load up relevant Document @options
97
104
  if @options[:template_dir]
98
105
  render_options[:template_dir] = @options[:template_dir]
99
106
  end
107
+ # Override Document @option settings with options passed in
108
+ render_options.merge! options
109
+
100
110
  @renderer = Renderer.new(render_options)
101
111
  end
102
112
 
103
113
  # Public: Render the Asciidoc document using erb templates
104
114
  #
105
- def render
106
- html = renderer.render('document', self, :header => @header, :preamble => @preamble)
115
+ def render(options = {})
116
+ r = renderer(options)
117
+ html = r.render('document', self, :header => @header, :preamble => @preamble)
107
118
  end
108
119
 
109
120
  def content
@@ -148,7 +148,7 @@ class Asciidoctor::Lexer
148
148
  reader.get_line if reader.has_lines? && reader.peek_line.strip.empty?
149
149
 
150
150
  dd_segment = Reader.new(list_item_segment(reader, :alt_ending => this_dlist))
151
- while dd_segment.any?
151
+ while dd_segment.has_lines?
152
152
  dd.blocks << next_block(dd_segment, block)
153
153
  end
154
154
 
@@ -602,7 +602,7 @@ class Asciidoctor::Lexer
602
602
 
603
603
  if !section.anchor.nil?
604
604
  anchor_id = section.anchor.match(/^\[(.*)\]/) ? $1 : section.anchor
605
- @references[anchor_id] = section.anchor
605
+ parent.document.references[anchor_id] = section.anchor
606
606
  section.anchor = anchor_id
607
607
  end
608
608
 
@@ -633,7 +633,7 @@ class Asciidoctor::Lexer
633
633
  section_lines << this_line
634
634
  section_lines.concat reader.grab_lines_until {|line| line.match( REGEXP[:listing] ) }
635
635
  # Also grab the last line, if there is one
636
- this_line = lines.shift
636
+ this_line = reader.get_line
637
637
  section_lines << this_line unless this_line.nil?
638
638
  else
639
639
  section_lines << this_line
@@ -46,6 +46,8 @@ class Asciidoctor::Reader
46
46
  @defines = {}
47
47
  @references = {}
48
48
 
49
+ data = data.split("\n") if data.is_a? String
50
+
49
51
  include_regexp = /^include::([^\[]+)\[\]\s*\n?\z/
50
52
 
51
53
  data.each do |line|
@@ -1,3 +1,3 @@
1
1
  module Asciidoctor
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: