middleman-asciidoc 1.0.0.rc.2 → 1.0.0.rc.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  require 'asciidoctor' unless defined? Asciidoctor
2
+ require 'active_support/core_ext/time/zones' unless Time.respond_to? :zone
2
3
 
3
4
  module Middleman
4
5
  module AsciiDoc
@@ -16,10 +17,13 @@ module Middleman
16
17
  'middleman-version' => ::Middleman::VERSION
17
18
  }
18
19
 
19
- option :attributes, [], 'Custom AsciiDoc attributes (Hash or Array)'
20
- option :backend, :html5, 'Moniker used to select output format (Symbol)'
21
- option :base_dir, nil, 'Base directory to use for the current AsciiDoc document; if nil, defaults to docdir (String)'
22
- option :safe, :safe, 'Safe mode level (Symbol)'
20
+ AttributeReferenceRx = /\\?\{(\w+(?:[\-]\w+)*)\}/
21
+
22
+ option :attributes, [], 'Custom AsciiDoc attributes passed to all AsciiDoc-based pages. Defaults to empty Array. (Hash or Array)'
23
+ option :backend, :html5, 'Moniker used to select output format for AsciiDoc-based pages. Defaults to :html5. (Symbol)'
24
+ option :base_dir, :docdir, 'Base directory to use for the current AsciiDoc document. Defaults to :docdir (tracks directory of document). (String)'
25
+ option :safe, :safe, 'Safe mode level for AsciiDoc processor. Defaults to :safe. (Symbol)'
26
+ option :layout, nil, 'Name of layout to use for AsciiDoc-based pages (not blog articles) (String or Symbol)'
23
27
 
24
28
  def initialize app, options_hash = {}, &block
25
29
  super
@@ -30,100 +34,231 @@ module Middleman
30
34
 
31
35
  # NOTE options passed to activate take precedence (e.g., activate :asciidoc, attributes: ['foo=bar'])
32
36
  def after_configuration
33
- if app.config.setting(:asciidoc).value_set?
37
+ # Match behavior of middleman blog extension
38
+ # Make sure ActiveSupport's TimeZone stuff has something to work with,
39
+ # allowing people to set their desired time zone via Time.zone or
40
+ # set :time_zone
41
+ if app.config[:time_zone]
42
+ ::Time.zone = app.config[:time_zone]
43
+ else
44
+ ::Time.zone ||= 'UTC'
45
+ end
46
+ zone_default = ::Time.find_zone! ::Time.zone
47
+ raise 'Value assigned to time_zone not recognized.' unless zone_default
48
+ ::Time.zone_default = zone_default
49
+
50
+ if (app.config.setting :asciidoc).value_set?
34
51
  warn 'Using `set :asciidoc` to define options is deprecated. Please define options on `activate :asciidoc` instead.'
35
52
  end
36
53
  app.config[:asciidoc].tap do |cfg|
37
- attributes = {}
38
- if cfg.key? :attributes
39
- attributes.update(attrs_as_hash cfg[:attributes])
40
- attributes['!imagesdir'] = attributes.delete 'imagesdir!' if attributes.key? 'imagesdir!'
54
+ attributes = {
55
+ 'site-root' => app.root.to_s,
56
+ 'site-source' => app.source_dir.to_s,
57
+ 'site-destination' => (dest = (app.root_path.join app.config[:build_dir]).to_s),
58
+ 'site-environment' => app.environment.to_s
59
+ }.merge IMPLICIT_ATTRIBUTES
60
+ if !!app.extensions[:directory_indexes]
61
+ if app.config[:strip_index_file]
62
+ attributes['relfilesuffix'] = app.config[:trailing_slash] ? '/' : ''
63
+ else
64
+ attributes['relfilesuffix'] = %(/#{app.config[:index_file]})
65
+ end
66
+ attributes['relfileprefix'] = '../'
67
+ end
68
+ # NOTE handles deprecated `set :asciidoc, attributes: ...`
69
+ attributes = merge_attributes cfg[:attributes], attributes if cfg.key? :attributes
70
+ # NOTE handles `activate :asciidoc, attributes: ...`
71
+ if (options.setting :attributes).value_set?
72
+ attributes = merge_attributes options[:attributes], attributes
73
+ # NOTE handles `set :asciidoc_attributes ...`
74
+ elsif (app.config.setting :asciidoc_attributes).value_set?
75
+ attributes = merge_attributes options[:asciidoc_attributes], attributes
41
76
  end
42
- if options.setting(:attributes).value_set?
43
- attributes.update(attrs_as_hash options[:attributes])
44
- elsif app.config.setting(:asciidoc_attributes).value_set?
45
- attributes.update(attrs_as_hash app.config[:asciidoc_attributes])
77
+ imagesdir = if attributes.key? 'imagesdir'
78
+ attributes['imagesdir']
79
+ else
80
+ attributes['imagesdir'] = %(#{::File.join ((app.config[:http_prefix] || '').chomp '/'), app.config[:images_dir]}@)
46
81
  end
47
- unless (attributes.key? 'imagesdir') || (attributes.key? '!imagesdir')
48
- attributes['imagesdir'] = %(#{File.join((app.config[:http_prefix] || '/').chomp('/'), app.config[:images_dir])}@)
82
+ if imagesdir && !(attributes.key? 'imagesoutdir') && (imagesdir.start_with? '/')
83
+ attributes['imagesoutdir'] = ::File.join dest, (imagesdir.chomp '@')
84
+ end
85
+ cfg[:attributes] = attributes
86
+ case (base_dir = options[:base_dir])
87
+ when :source
88
+ cfg[:base_dir] = ::File.expand_path app.source_dir
89
+ when :docdir
90
+ cfg[:base_dir] = :docdir
91
+ else
92
+ cfg[:base_dir] = ::File.expand_path base_dir if base_dir
49
93
  end
50
- cfg[:attributes] = attributes.update IMPLICIT_ATTRIBUTES
51
- cfg[:base_dir] = (dir = options[:base_dir]) ? dir.to_s : dir if options.setting(:base_dir).value_set?
52
- # QUESTION ^ should we call expand_path on :base_dir if non-nil?
53
- cfg[:backend] = options[:backend] if options.setting(:backend).value_set?
94
+ cfg[:backend] = options[:backend] if (options.setting :backend).value_set?
54
95
  cfg[:backend] = (cfg[:backend] || :html5).to_sym
55
- cfg[:safe] = options[:safe] if options.setting(:safe).value_set?
96
+ cfg[:safe] = options[:safe] if (options.setting :safe).value_set?
56
97
  cfg[:safe] = (cfg[:safe] || :safe).to_sym
98
+ if (default_layout = options[:layout] || app.config[:layout])
99
+ # set priority to run after blog extension, which also sets a layout
100
+ app.sitemap.register_resource_list_manipulator :asciidoc_default_layout, (DefaultLayoutConfigurator.new default_layout.to_sym), 60
101
+ end
57
102
  end
58
103
  end
59
104
 
60
105
  def manipulate_resource_list resources
61
- default_page_layout = app.config[:layout] == :_auto_layout ? '' : app.config[:layout]
62
106
  asciidoc_opts = app.config[:asciidoc].merge parse_header_only: true
63
107
  asciidoc_opts[:attributes] = (asciidoc_attrs = asciidoc_opts[:attributes].merge 'skip-front-matter' => '')
64
- use_docdir_as_base_dir = asciidoc_opts[:base_dir].nil?
108
+ app.config[:asciidoc].delete :base_dir if (use_docdir_as_base_dir = asciidoc_opts[:base_dir] == :docdir)
65
109
  resources.each do |resource|
66
- next unless (path = resource.source_file).present? && (path.end_with? '.adoc')
110
+ next if resource.ignored? || (path = resource.source_file).blank? || !(path.end_with? '.adoc')
111
+
112
+ opts, page = {}, {}
67
113
 
114
+ asciidoc_attrs['page-layout'] = %(#{resource.options[:layout]}@)
115
+ opts[:base_dir] = asciidoc_opts[:base_dir] = ::File.dirname path if use_docdir_as_base_dir
68
116
  # read AsciiDoc header only to set page options and data
69
117
  # header values can be accessed via app.data.page.<name> in the layout
70
- asciidoc_attrs['page-layout'] = %(#{resource.options[:layout] || default_page_layout}@)
71
- asciidoc_opts[:base_dir] = ::File.dirname path if use_docdir_as_base_dir
72
- doc = Asciidoctor.load_file path, asciidoc_opts
73
- opts = {}
74
- page = {}
118
+ doc = ::Asciidoctor.load_file path, asciidoc_opts
75
119
 
76
- opts[:base_dir] = asciidoc_opts[:base_dir] if use_docdir_as_base_dir
120
+ if (doc.attr? 'page-ignored') && !(doc.attr? 'page-ignored', 'false')
121
+ resource.ignore!
122
+ next
123
+ end
77
124
 
78
- # NOTE page layout value cascades from site config -> front matter -> page-layout header attribute
125
+ # NOTE page layout value cascades from site config -> extension config -> front matter -> page-layout attribute
79
126
  if doc.attr? 'page-layout'
80
127
  if (layout = doc.attr 'page-layout').empty?
81
128
  opts[:layout] = :_auto_layout
129
+ opts[:layout_engine] = doc.attr 'page-layout-engine' if doc.attr? 'page-layout-engine'
82
130
  else
83
- opts[:layout] = layout
131
+ case (layout = layout.to_sym)
132
+ when :-
133
+ opts[:layout] = false
134
+ when :false
135
+ opts[:layout] = false
136
+ opts[:header_footer] = true
137
+ else
138
+ opts[:layout] = layout
139
+ opts[:layout_engine] = doc.attr 'page-layout-engine' if doc.attr? 'page-layout-engine'
140
+ end
84
141
  end
85
- opts[:layout_engine] = doc.attr 'page-layout-engine' if doc.attr? 'page-layout-engine'
86
142
  else
87
143
  opts[:layout] = false
88
144
  opts[:header_footer] = true
89
145
  end
90
146
 
91
147
  page[:title] = doc.doctitle if doc.header?
92
- ['author', 'email'].each do |key|
148
+ if doc.attr? 'author'
149
+ page[:author] = (author = doc.attr 'author')
150
+ if (num_authors = (doc.attr 'authorcount').to_i) > 1
151
+ page[:authors] = num_authors.times.map {|idx| doc.attr %(author_#{idx + 1}) }.compact
152
+ else
153
+ page[:authors] = [author]
154
+ end
155
+ end
156
+ ['email', 'keywords', 'description'].each do |key|
93
157
  page[key.to_sym] = doc.attr key if doc.attr? key
94
158
  end
95
159
  if !(page.key? :date) && (doc.attr? 'revdate')
96
160
  begin
97
- page[:date] = ::DateTime.parse(doc.attr 'revdate').to_time
161
+ page[:date] = ::Time.zone.parse (doc.attr 'revdate')
162
+ # ...or hack to use app time zone, but only if time zone is not specified
163
+ #page[:date] = ::DateTime.parse(%(#{doc.attr 'revdate'} #{::Time.zone.formatted_offset})).to_time
98
164
  rescue
99
165
  end
100
166
  end
101
167
 
102
- unless (adoc_front_matter = doc.attributes
103
- .select {|name| name != 'page-layout' && name != 'page-layout-engine' && name.start_with?('page-') }
104
- .map {|name, val| %(:#{name[5..-1]}: #{val}) }).empty?
105
- page.update(::YAML.load(adoc_front_matter * "\n"))
168
+ unless (adoc_front_matter = doc.attributes.each_with_object({}) {|(key, val), accum|
169
+ if (page_variable_name = derive_page_variable_name key)
170
+ accum[page_variable_name] = ::String === val ? (parse_yaml_value val) : val
171
+ end
172
+ }).empty?
173
+ page.update adoc_front_matter
106
174
  end
107
175
 
108
- # QUESTION should we use resource.ext == doc.outfilesuffix instead?
109
- unless resource.destination_path.end_with? doc.outfilesuffix
176
+ unless resource.ext == doc.outfilesuffix
110
177
  # NOTE we must use << or else the layout gets disabled
111
178
  resource.destination_path << doc.outfilesuffix
112
179
  end
113
180
 
181
+ # NOTE opts won't override any keys defined in global options
114
182
  resource.add_metadata options: opts, page: page
115
183
  end
116
184
  end
117
185
 
118
- def attrs_as_hash attrs
119
- if Hash === attrs
120
- attrs
186
+ def merge_attributes attrs, initial = {}
187
+ if (is_array = ::Array === attrs) || ::Hash === attrs
188
+ attrs.each_with_object(initial) {|entry, new_attrs|
189
+ key, val = is_array ? ((entry.split '=', 2) + ['', ''])[0..1] : entry
190
+ if key.start_with? '!'
191
+ new_attrs[key[1..-1]] = nil
192
+ elsif key.end_with? '!'
193
+ new_attrs[key.chop] = nil
194
+ else
195
+ new_attrs[key] = val ? (resolve_attribute_refs val, new_attrs) : nil
196
+ end
197
+ }
121
198
  else
122
- Array(attrs).inject({}) do |accum, entry|
123
- k, v = entry.split '=', 2
124
- k = %(!#{k.chop}) if k.end_with? '!'
125
- accum[k] = v || ''
126
- accum
199
+ initial
200
+ end
201
+ end
202
+
203
+ def resolve_attribute_refs text, attrs
204
+ if text.empty?
205
+ text
206
+ elsif text.include? '{'
207
+ text.gsub(AttributeReferenceRx) { ($&.start_with? '\\') ? $&[1..-1] : ((attrs.fetch $1, $&).to_s.chomp '@') }
208
+ else
209
+ text
210
+ end
211
+ end
212
+
213
+ # Derive the page variable name from the specified attribute name.
214
+ #
215
+ # Returns the page variable name as a [String] or nothing if the attribute name is not the name of a page
216
+ # attribute.
217
+ def derive_page_variable_name attribute_name
218
+ if attribute_name != 'page-layout' && attribute_name != 'page-layout-engine' && attribute_name != 'page-ignored' &&
219
+ (attribute_name.start_with? 'page-')
220
+ attribute_name.slice 5, attribute_name.length
221
+ end
222
+ end
223
+
224
+ # Parse the specified value as a single-line YAML value.
225
+ #
226
+ # Attempt to parse the specified String value as though it's a single-line YAML value (i.e., the value part of a
227
+ # YAML key/value pair). If the value fails to parse, wrap the value in single quotes (after escaping any single
228
+ # quotes in the value) and parse it as a character sequence. If the value is empty, return an empty String.
229
+ #
230
+ # val - The String value to parse.
231
+ #
232
+ # Returns an [Object] parsed from the string-based YAML value or empty [String] if the specified value is empty.
233
+ def parse_yaml_value val
234
+ if val.empty?
235
+ ''
236
+ else
237
+ begin
238
+ ::YAML.load %(--- #{val})
239
+ rescue ::StandardError, ::SyntaxError
240
+ val = val.gsub '\'', '\'\'' if val.include? '\''
241
+ ::YAML.load %(--- \'#{val}\')
242
+ end
243
+ end
244
+ end
245
+ end
246
+
247
+ # Resolves the automatic layout if no layout has been specified and this resource is not a blog article
248
+ class DefaultLayoutConfigurator
249
+ def initialize layout
250
+ @layout = layout
251
+ end
252
+
253
+ def manipulate_resource_list resources
254
+ resources.each do |resource|
255
+ next if resource.ignored? || (path = resource.source_file).blank? || !(path.end_with? '.adoc') ||
256
+ resource.options[:layout] != :_auto_layout
257
+ if (resource.respond_to? :blog_data) && (blog_layout = resource.blog_data.options[:layout]) &&
258
+ (blog_layout = blog_layout.to_sym) != :_auto_layout
259
+ resource.options[:layout] = blog_layout
260
+ else
261
+ resource.options[:layout] = @layout
127
262
  end
128
263
  end
129
264
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module AsciiDoc
3
- VERSION = '1.0.0.rc.2'
3
+ VERSION = '1.0.0.rc.3'
4
4
  end
5
5
  end
@@ -6,15 +6,23 @@ Gem::Specification.new do |s|
6
6
  s.name = 'middleman-asciidoc'
7
7
  s.version = Middleman::AsciiDoc::VERSION
8
8
  s.summary = 'AsciiDoc support for Middleman'
9
- s.description = 'AsciiDoc conversion and metadata support for Middleman'
9
+ s.description = 'Converts AsciiDoc files in the source directory to HTML pages. Allows page data to be specified using AsciiDoc attributes defined in the document header (as an alternative to YAML front matter).'
10
10
 
11
11
  s.authors = ['Dan Allen']
12
12
  s.email = ['dan.j.allen@gmail.com']
13
13
  s.homepage = 'https://github.com/middleman/middleman-asciidoc'
14
14
  s.license = 'MIT'
15
+ s.required_ruby_version = '>= 2.0.0'
16
+
17
+ files = begin
18
+ output = IO.popen('git ls-files -z', err: File::NULL) {|io| io.read }.split %(\0)
19
+ $?.success? ? output : Dir['**/*']
20
+ rescue
21
+ Dir['**/*']
22
+ end
23
+ s.files = files.grep %r/^(?:lib\/.+|Gemfile|Rakefile|(?:CHANGELOG|CONTRIBUTING|LICENSE|README)\.adoc|#{s.name}\.gemspec)$/
24
+ s.test_files = files.grep %r/^(?:features|fixtures)\/.+/
15
25
 
16
- s.files = `git ls-files -z`.split "\0"
17
- s.test_files = `git ls-files -z -- {fixtures,features}/*`.split "\0"
18
26
  s.require_paths = ['lib']
19
27
 
20
28
  s.add_runtime_dependency 'middleman-core', '~> 4.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-asciidoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc.2
4
+ version: 1.0.0.rc.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Allen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-23 00:00:00.000000000 Z
11
+ date: 2017-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -38,17 +38,15 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.5.0
41
- description: AsciiDoc conversion and metadata support for Middleman
41
+ description: Converts AsciiDoc files in the source directory to HTML pages. Allows
42
+ page data to be specified using AsciiDoc attributes defined in the document header
43
+ (as an alternative to YAML front matter).
42
44
  email:
43
45
  - dan.j.allen@gmail.com
44
46
  executables: []
45
47
  extensions: []
46
48
  extra_rdoc_files: []
47
49
  files:
48
- - ".bundle/config"
49
- - ".gitignore"
50
- - ".ruby-version"
51
- - ".travis.yml"
52
50
  - CHANGELOG.adoc
53
51
  - CONTRIBUTING.adoc
54
52
  - Gemfile
@@ -63,18 +61,25 @@ files:
63
61
  - fixtures/asciidoc-app/source/custom-attribute.adoc
64
62
  - fixtures/asciidoc-app/source/custom-imagesdir.adoc
65
63
  - fixtures/asciidoc-app/source/gallery.adoc
66
- - fixtures/asciidoc-app/source/hello-no-layout.adoc
67
64
  - fixtures/asciidoc-app/source/hello-with-extension.html.adoc
68
65
  - fixtures/asciidoc-app/source/hello-with-front-matter.adoc
69
- - fixtures/asciidoc-app/source/hello-with-layout.adoc
70
66
  - fixtures/asciidoc-app/source/hello-with-mixed-page-data.adoc
71
67
  - fixtures/asciidoc-app/source/hello-with-title.adoc
72
68
  - fixtures/asciidoc-app/source/hello.adoc
69
+ - fixtures/asciidoc-app/source/ignored.adoc
73
70
  - fixtures/asciidoc-app/source/images/tiger.gif
71
+ - fixtures/asciidoc-app/source/inspect-standard-page-data.html.erb
74
72
  - fixtures/asciidoc-app/source/layouts/default.erb
73
+ - fixtures/asciidoc-app/source/layouts/showdate.erb
74
+ - fixtures/asciidoc-app/source/link-to-page.adoc
75
75
  - fixtures/asciidoc-app/source/manual/_chapters/ch01.adoc
76
76
  - fixtures/asciidoc-app/source/manual/index.adoc
77
77
  - fixtures/asciidoc-app/source/master.adoc
78
+ - fixtures/asciidoc-app/source/page-with-date-at-zone.adoc
79
+ - fixtures/asciidoc-app/source/page-with-date.adoc
80
+ - fixtures/asciidoc-app/source/safe-mode.adoc
81
+ - fixtures/asciidoc-app/source/site-information.adoc
82
+ - fixtures/asciidoc-app/source/standard-page-data.adoc
78
83
  - lib/middleman-asciidoc.rb
79
84
  - lib/middleman-asciidoc/extension.rb
80
85
  - lib/middleman-asciidoc/middleman_extension.rb
@@ -92,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
97
  requirements:
93
98
  - - ">="
94
99
  - !ruby/object:Gem::Version
95
- version: '0'
100
+ version: 2.0.0
96
101
  required_rubygems_version: !ruby/object:Gem::Requirement
97
102
  requirements:
98
103
  - - ">"
@@ -100,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
105
  version: 1.3.1
101
106
  requirements: []
102
107
  rubyforge_project:
103
- rubygems_version: 2.5.1
108
+ rubygems_version: 2.7.2
104
109
  signing_key:
105
110
  specification_version: 4
106
111
  summary: AsciiDoc support for Middleman
@@ -113,16 +118,22 @@ test_files:
113
118
  - fixtures/asciidoc-app/source/custom-attribute.adoc
114
119
  - fixtures/asciidoc-app/source/custom-imagesdir.adoc
115
120
  - fixtures/asciidoc-app/source/gallery.adoc
116
- - fixtures/asciidoc-app/source/hello-no-layout.adoc
117
121
  - fixtures/asciidoc-app/source/hello-with-extension.html.adoc
118
122
  - fixtures/asciidoc-app/source/hello-with-front-matter.adoc
119
- - fixtures/asciidoc-app/source/hello-with-layout.adoc
120
123
  - fixtures/asciidoc-app/source/hello-with-mixed-page-data.adoc
121
124
  - fixtures/asciidoc-app/source/hello-with-title.adoc
122
125
  - fixtures/asciidoc-app/source/hello.adoc
126
+ - fixtures/asciidoc-app/source/ignored.adoc
123
127
  - fixtures/asciidoc-app/source/images/tiger.gif
128
+ - fixtures/asciidoc-app/source/inspect-standard-page-data.html.erb
124
129
  - fixtures/asciidoc-app/source/layouts/default.erb
130
+ - fixtures/asciidoc-app/source/layouts/showdate.erb
131
+ - fixtures/asciidoc-app/source/link-to-page.adoc
125
132
  - fixtures/asciidoc-app/source/manual/_chapters/ch01.adoc
126
133
  - fixtures/asciidoc-app/source/manual/index.adoc
127
134
  - fixtures/asciidoc-app/source/master.adoc
128
- has_rdoc:
135
+ - fixtures/asciidoc-app/source/page-with-date-at-zone.adoc
136
+ - fixtures/asciidoc-app/source/page-with-date.adoc
137
+ - fixtures/asciidoc-app/source/safe-mode.adoc
138
+ - fixtures/asciidoc-app/source/site-information.adoc
139
+ - fixtures/asciidoc-app/source/standard-page-data.adoc
data/.bundle/config DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- BUNDLE_PATH: rubygems
3
- BUNDLE_DISABLE_SHARED_GEMS: '1'
4
- BUNDLE_BUILD__NOKOGIRI: '--use-system-libraries'
data/.gitignore DELETED
@@ -1,5 +0,0 @@
1
- /.ruby-gemset
2
- /Gemfile.lock
3
- /pkg/
4
- /rubygems/
5
- /tmp/
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.3.0
data/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- sudo: false
2
- git:
3
- depth: 1
4
- language: ruby
5
- rvm:
6
- - 2.3.0
7
- - 2.2.4
8
- - 2.1.8
9
- - 2.0.0
10
- #- jruby-9.0.4.0
11
- script: bundle exec rake cucumber
12
- env:
13
- - NOKOGIRI_USE_SYSTEM_LIBRARIES=1 TEST=true
@@ -1,2 +0,0 @@
1
- :page-layout!:
2
- Hello, AsciiDoc!
@@ -1,2 +0,0 @@
1
- :page-layout: default
2
- Hello, AsciiDoc!