jekyll_asciidoctor_pdf 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a4b11ffb4ac2be03a16972ded5242a70584fa5cd01c7d2b89be82dd723fa1805
4
+ data.tar.gz: b2f9ab8fb396f227940e2f3bae283f2ef7c5ffd3d88f389a32877594cadf67aa
5
+ SHA512:
6
+ metadata.gz: 66de845ade0747136063df8d6021187ec0324df2749730b3f7c2afa9fdf2e6a36bb71f3a748766543b4ad9eceebb964b2a7ed3fa5a5813f5716521471716ba70
7
+ data.tar.gz: e273e68ad8847f1d4ac3f4b8264111595a41b65d2def3fdb7d5b0d3f46207ee0192ba58697cf698f76a4d129bee719bb6691690a3dce52a8525603ed5cff5a95
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.swo
11
+ *.swp
12
+ *~
@@ -0,0 +1,11 @@
1
+ sudo: false
2
+ dist: trusty
3
+ group: deprecated-2017Q4 # To fix NPM timeout errors
4
+ language: ruby
5
+ rvm:
6
+ - 2.4.3
7
+ before_install:
8
+ - gem update --system && gem install bundler && gem update bundler
9
+ script:
10
+ - bundle exec rake test
11
+ - bundle exec rake build
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ #git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in jekyll_asciidocor_pdf.gemspec
6
+ gemspec
@@ -0,0 +1,10 @@
1
+ = Jekyll PDF Generator using AsciiDoctor
2
+ :gem-name: rake_jekyll_asciidoctor_pdf
3
+ :gh-branch: master
4
+ :badge-style: flat
5
+
6
+ image:https://img.shields.io/gem/v/{gem-name}.svg?style={badge-style}[Gem Version, link="https://rubygems.org/gems/{gem-name}"]
7
+
8
+ toc::[]
9
+
10
+
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["test/**/*_test.rb"]
8
+ end
9
+
10
+ task :default => :test
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'jekyll_asciidoctor_pdf'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'jekyll_asciidoctor_pdf/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'jekyll_asciidoctor_pdf'
9
+ spec.version = JekyllAsciidoctorPdf::VERSION
10
+ spec.authors = ['Guido Genzone']
11
+ spec.email = ['guido.genzone@netapp.com']
12
+
13
+ spec.summary = 'Rake tasks to convert *.adoc files from Jekyll to PDF using asciidoctor-pdf'
14
+ spec.description = 'Rake tasks to convert *.adoc files from Jekyll to PDF using asciidoctor-pdf'
15
+ spec.homepage = 'https://github.com/ggenzone/jekyll_asciidoctor_pdf'
16
+ spec.license = 'MIT'
17
+
18
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
20
+ #if spec.respond_to?(:metadata)
21
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
22
+ #else
23
+ # raise 'RubyGems 2.0 or newer is required to protect against ' \
24
+ # 'public gem pushes.'
25
+ #end
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
28
+ f.match(%r{^(test|spec|features)/})
29
+ end
30
+ spec.bindir = 'exe'
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ['lib']
33
+
34
+ spec.required_ruby_version = '>= 2.0'
35
+
36
+ spec.add_development_dependency 'bundler', '~> 2.1.4'
37
+ spec.add_development_dependency 'minitest', '~> 5.0'
38
+ spec.add_development_dependency 'rubocop', '~> 0.52'
39
+
40
+ #spec.add_runtime_dependency 'rake', '>= 12.3.3'
41
+
42
+ #We shoudn't use this version for a security issue
43
+ spec.add_runtime_dependency 'rake', '>= 10.0'
44
+ spec.add_runtime_dependency 'fileutils', '>= 1.1'
45
+ spec.add_runtime_dependency 'safe_yaml', '>= 1.0.5'
46
+ spec.add_runtime_dependency 'asciidoctor-pdf', '>= 1.5.1'
47
+
48
+ end
@@ -0,0 +1,13 @@
1
+ require 'yaml'
2
+ require 'jekyll_asciidoctor_pdf/version'
3
+ require 'jekyll_asciidoctor_pdf/commands'
4
+
5
+
6
+ # JekyllAsciidoctorPdf
7
+ #
8
+ # Empty module being initialized.
9
+ # This RubyGem holds examples of how to make Rake tasks for Rake using a
10
+ # RubyGem and some custom stuff. It helps clean up the Rakefile later.
11
+ module JekyllAsciidoctorPdf
12
+
13
+ end
@@ -0,0 +1,368 @@
1
+ require 'rake'
2
+ require 'rake/tasklib'
3
+ require 'tmpdir'
4
+
5
+ require 'yaml'
6
+ require 'fileutils'
7
+ require 'asciidoctor-pdf'
8
+ require 'asciidoctor'
9
+ require 'jekyll_asciidoctor_pdf/tree'
10
+
11
+
12
+ # Do not touch, this REGEXP is taken from Jekyll source code
13
+ YAML_FRONT_MATTER_REGEXP = /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
14
+
15
+
16
+ module JekyllAsciidoctorPdf
17
+
18
+
19
+ class BuildTask < ::Rake::TaskLib
20
+
21
+ ##
22
+ # @private
23
+ # Defines attribute accessor with optional default value.
24
+ # When attribute's value is a +Proc+ with arity 0, then the attribute
25
+ # reader calls it and returns the result.
26
+ #
27
+ # @param attr_name [#to_s] name of the attribute to define.
28
+ # @param default_value [Object] the default value (optional).
29
+ # @yield When the block is given, then it's used as a default value.
30
+ # It takes precedence over the +default_value+. It's evaluated in an
31
+ # instance context.
32
+ def self.callable_attr(attr_name, default_value = nil, &default_block)
33
+ var_name = "@#{attr_name}".sub('?', '').to_sym
34
+
35
+ define_method attr_name do
36
+ value = instance_variable_get(var_name)
37
+
38
+ if value.nil? && default_block
39
+ do_in_working_dir { instance_eval &default_block }
40
+ elsif value.nil?
41
+ default_value
42
+ elsif value.is_a?(Proc) && value.arity.zero?
43
+ do_in_working_dir &value
44
+ else
45
+ value
46
+ end
47
+ end
48
+
49
+ attr_writer attr_name.to_s.sub('?', '')
50
+ end
51
+
52
+ # @return [#to_sym] name of the task.
53
+ attr_accessor :name
54
+
55
+ # @return [#to_s] description of the task.
56
+ attr_accessor :description
57
+
58
+ attr_accessor :parameters
59
+
60
+ attr_reader :absolute_temp_path
61
+ attr_reader :absolute_working_path
62
+ attr_reader :absolute_source_path
63
+ attr_reader :absolute_assets_list
64
+ attr_reader :absolute_config_file
65
+ attr_reader :absolute_sidebar_file
66
+ attr_reader :absolute_output_path
67
+
68
+ attr_reader :assets_list
69
+ attr_reader :quiet
70
+
71
+ callable_attr :jekyll_config_file, '_config.yml'
72
+
73
+ def initialize(name = :build_pdf)
74
+ @name = name
75
+ @description = 'Generate PDF files for each *.adoc in the source_list '
76
+
77
+ @absolute_working_path = Dir.pwd
78
+ @absolute_temp_path = Dir.mktmpdir
79
+
80
+ @quiet = { verbose: true }
81
+
82
+ #file = __FILE__
83
+ #file = File.readlink(file) if File.symlink?(file)
84
+ #@base_dir = File.dirname(file)
85
+
86
+ #puts @base_dir
87
+
88
+ yield self if block_given?
89
+
90
+ @absolute_config_file = File.join(@absolute_working_path, jekyll_config_file);
91
+
92
+ do_jekyll_config_ok? do |t|
93
+ @absolute_source_path = File.join(@absolute_working_path, @parameters['source_path']);
94
+ @absolute_output_path = File.join(@absolute_working_path, @parameters['output_path']);
95
+ @absolute_sidebar_file = File.join(@absolute_working_path, @parameters['sidebar_file']);
96
+
97
+ files = []
98
+ FileList[@parameters['assets_list']].each do |file|
99
+ files << File.join(@absolute_working_path,file)
100
+ end
101
+
102
+ @absolute_assets_list = files
103
+
104
+ define_task!
105
+ end
106
+ end
107
+
108
+
109
+
110
+ def define_task!
111
+
112
+ desc "Print information variables"
113
+ task :info do
114
+ print_variables
115
+ end
116
+
117
+ desc "Cleaning files & directories"
118
+ task :clean do
119
+ clean
120
+ end
121
+
122
+
123
+ # We can improve it using replace inline and cp
124
+ desc "Rewriting *.adoc files and generating auxiliary files without front matter"
125
+ task :generateTempFiles => [ :clean ] do
126
+ generate_temp_files
127
+ end
128
+
129
+ desc "Generating PDFs files for each page"
130
+ task :generatePdf => [:clean, :generateTempFiles] do
131
+ generate_pdf
132
+ end
133
+
134
+ desc "Generate the fullsite.adoc file"
135
+ file 'fullsite.adoc' => ['generateTempFiles'] do
136
+
137
+ generate_fullsite_adoc
138
+ end
139
+
140
+ desc "Generate the fullsite.pdf file"
141
+ file 'fullsite.pdf' => 'fullsite.adoc' do
142
+
143
+ generate_fullsite_pdf
144
+ end
145
+
146
+
147
+ desc description
148
+ task name.to_sym => [:generatePdf, 'fullsite.pdf'] do
149
+ remove_entry absolute_temp_path
150
+ end
151
+
152
+
153
+
154
+
155
+ end
156
+
157
+ ##
158
+ # Check if Jekyll configuration is Okay
159
+ #
160
+ def do_jekyll_config_ok?
161
+ config = YAML.load_file(absolute_config_file)
162
+
163
+ assert_key(config, 'jap_config', "Expected key 'jap_config' to exist, but does not")
164
+
165
+ @parameters = config['jap_config']
166
+
167
+ assert_key(@parameters, 'source_path' , "Expected key 'jap_config.source_path' to exist, but does not")
168
+ assert_key(@parameters, 'assets_list' , "Expected key 'jap_config.assets_list' to exist, but does not")
169
+ assert_key(@parameters, 'output_path' , "Expected key 'jap_config.output_path' to exist, but does not")
170
+ assert_key(@parameters, 'sidebar_file', "Expected key 'jap_config.sidebar_file' to exist, but does not")
171
+
172
+ yield
173
+ end
174
+
175
+ def assert_key(array, key, message)
176
+ if not array.has_key? key
177
+ output(message)
178
+ exit 1
179
+ end
180
+ end
181
+
182
+
183
+ def print_variables
184
+ output("Current directory: " + absolute_working_path)
185
+ output("Jekyll Config File: " + absolute_config_file)
186
+ output("Source directory: " + absolute_source_path)
187
+ output("Assets files: " + absolute_assets_list.join("\n"))
188
+ output("Temporary directory: " + absolute_temp_path)
189
+ output("Building directory: " + absolute_output_path)
190
+ end
191
+
192
+ def clean
193
+ output_pages = File.join(absolute_output_path, '/pages')
194
+ output("Removing files & ouput directories ...")
195
+ rm_rf(absolute_output_path, quiet)
196
+ mkdir_p(absolute_output_path, quiet)
197
+ mkdir_p(output_pages,quiet)
198
+ end
199
+
200
+ def generate_temp_files
201
+ temp_pages = File.join(absolute_temp_path, '/pages')
202
+ temp_links = File.join(absolute_temp_path, '/links')
203
+
204
+ output("Creating Temporary Folders and Ouput Directories ...")
205
+ mkdir_p(temp_pages,quiet)
206
+ mkdir_p(temp_links, quiet)
207
+
208
+ FileList[absolute_assets_list].each do |file|
209
+ cp_r(file, temp_pages, quiet)
210
+ end
211
+
212
+ output("Rewriting *.adoc files and generating auxiliary files without front matter ...")
213
+ FileList[absolute_source_path + "/*.adoc"].each do |file|
214
+
215
+ filename = SafeYAML.load_file(file)
216
+ front_matter = {}
217
+
218
+ content = File.read(file)
219
+ if content =~ YAML_FRONT_MATTER_REGEXP
220
+ #content = $POSTMATCH
221
+ front_matter = SafeYAML.load(Regexp.last_match(1))
222
+ end
223
+
224
+ result = content.gsub(YAML_FRONT_MATTER_REGEXP, '')
225
+
226
+ if front_matter.key?('permalink')
227
+ output = File.join(temp_links, front_matter['permalink'] + '.adoc')
228
+ else
229
+ output = File.join(temp_links, File.basename(file))
230
+ end
231
+ # Write the auxiliary file for combine later in the full pdf file
232
+ File.write(output, result)
233
+
234
+ # Write the auxiliary file for individual pages
235
+ output = File.join(temp_pages, File.basename(file))
236
+ File.write(output, result)
237
+ end
238
+ end
239
+
240
+ def generate_pdf
241
+ output("Generating PDFs files for each page ...")
242
+ temp_pages = File.join(absolute_temp_path, '/pages')
243
+ pdf_pages = File.join(absolute_output_path, '/pages')
244
+
245
+ FileList[temp_pages + "/*.adoc"].each do |file|
246
+ Asciidoctor.convert_file file, backend: 'pdf', doctype: 'article', to_dir: pdf_pages , mkdirs: true, safe: :safe
247
+ end
248
+ end
249
+
250
+ def generate_fullsite_adoc
251
+
252
+ output("Generating fullside.adoc ...")
253
+ toc = YAML.load_file(absolute_sidebar_file)
254
+
255
+ tree = create_from_menu('Root', toc['entries'], true)
256
+
257
+ Tree.printTree(tree,2)
258
+
259
+ #tree.traverse_subtree do |node|
260
+ # children = node.children.map { |child| child.title}
261
+ # puts "#{node.title}: #{children}"
262
+ #end
263
+
264
+ temp_links = File.join(absolute_temp_path, '/links')
265
+ output = File.join(absolute_temp_path,'fullsite.adoc')
266
+ File.write(output, Tree.updateContent(tree, temp_links))
267
+
268
+ output("Full site AsciiDoc generated in [ " + output +" ]")
269
+
270
+ end
271
+
272
+ def generate_fullsite_pdf
273
+
274
+ FileList[absolute_assets_list].each do |file|
275
+ cp_r(file, absolute_temp_path, quiet)
276
+ end
277
+
278
+ output = File.join(absolute_output_path,'fullsite_template.pdf')
279
+ #cp(File.join('fullsite_template.adoc'),build_fullsite_output , quiet)
280
+ cd(absolute_temp_path)
281
+ File.open("pdf-theme.yml", "w") { |file| file.write(getPdfTheme() ) }
282
+ File.open("fullsite_template.adoc", "w") { |file| file.write(getFullsiteTemplate() ) }
283
+ #content = getFullsiteTemplate()
284
+
285
+ Asciidoctor.convert_file 'fullsite_template.adoc', backend: 'pdf', mkdirs: true, safe: :safe
286
+ cp_r('fullsite_template.pdf',absolute_output_path, quiet)
287
+ output("Full site PDF generated in [ " + output +" ]")
288
+
289
+ end
290
+
291
+ def assert(condition, message)
292
+ if not condition
293
+ output(message)
294
+ exit 1
295
+ end
296
+ end
297
+
298
+
299
+ # Print functionallity
300
+ def output(string)
301
+ puts ' * ' + string
302
+ end
303
+
304
+ def getFullsiteTemplate()
305
+ fullsite_config = parameters['fullsite']
306
+
307
+ title = fullsite_config['title']
308
+ subtitle = fullsite_config['subtitle']
309
+ authors = fullsite_config['authors']
310
+ revision = fullsite_config['revision']
311
+ background_image = fullsite_config['background_image']
312
+
313
+ text = <<~TEXT
314
+ = #{title} : #{subtitle}
315
+ #{authors}
316
+ #{revision}
317
+ :doctype: book
318
+ :experimental:
319
+ :reproducible:
320
+ :icons: font
321
+ :listing-caption: Listing
322
+ :sectnums:
323
+ :imagesdir: ./media/
324
+ :toc:
325
+ :toclevels: 2
326
+ ifeval::["{asciidoctor-version}" < "1.5.7"]
327
+ :legacy-footnoteref:
328
+ endif::[]
329
+ ifdef::backend-pdf[]
330
+ :pdf-theme: pdf-theme.yml
331
+ :title-page:
332
+ :title-page-background-image: image:#{background_image}[fit=none,pdfwidth=100%,position=top]
333
+ :source-highlighter: rouge
334
+ //:rouge-style: github
335
+ endif::[]
336
+ :chapter-label:
337
+
338
+ :leveloffset: +1
339
+ include::fullsite.adoc[]
340
+ :leveloffset: -1
341
+ TEXT
342
+
343
+ return text
344
+ end
345
+
346
+ def getPdfTheme()
347
+ return parameters['pdf_theme'].to_yaml
348
+ end
349
+
350
+ def create_from_menu(name, children, root)
351
+ root_node = Tree::Node.new(name, '','',root)
352
+ children.each do |child|
353
+ if child.key?('entries')
354
+ root_node.add_child(create_from_menu(child['title'], child['entries'],false))
355
+ else
356
+ if child['url'].downcase.start_with?('http:') or child['url'].downcase.start_with?('https:')
357
+ output("Absolute links are not supported!")
358
+ else
359
+ root_node.add_child(Tree::Node.new(child['title'],child['url'], '', false))
360
+ end
361
+ end
362
+ end
363
+
364
+ return root_node
365
+ end
366
+
367
+ end
368
+ end
@@ -0,0 +1,71 @@
1
+ require 'yaml'
2
+ require 'fileutils'
3
+
4
+ module Tree
5
+
6
+ class Node
7
+ attr_reader :children, :content, :page, :title, :root
8
+
9
+ def initialize(title, page, content, root)
10
+ @children = []
11
+ @root = root
12
+ @page = page
13
+ @title = title
14
+ @content = content
15
+ end
16
+
17
+ def add_content(content)
18
+ @content << "\n"
19
+ @content << content
20
+ end
21
+
22
+ def add_child(child)
23
+ @children << child
24
+ end
25
+
26
+
27
+ def traverse_subtree(&block)
28
+ node_queue = [self] # Step 1
29
+ until node_queue.empty? # Step 2
30
+ node = node_queue.shift # Step 3
31
+ yield node # Step 4
32
+ node_queue = node.children.concat(node_queue) # Step 5
33
+ end
34
+ end
35
+
36
+ end
37
+
38
+ def self.updateContent(tree, temp_dir)
39
+ if tree.page.length > 0
40
+ file = File.join(temp_dir, tree.page + '.adoc')
41
+ tree.add_content(File.read(file))
42
+ else
43
+ if not tree.root
44
+ tree.add_content("= " + tree.title)
45
+ end
46
+ end
47
+
48
+ if not tree.root
49
+ tree.add_content(":leveloffset: +1 \n")
50
+ end
51
+
52
+ if tree.children.length > 0
53
+ tree.children.map { |child| tree.add_content(updateContent(child, temp_dir)) }
54
+ end
55
+
56
+ if not tree.root
57
+ tree.add_content(":leveloffset: -1 \n")
58
+ end
59
+ return tree.content
60
+ end
61
+ def self.printTree(tree, level)
62
+ puts str = ("-" * level) + tree.title
63
+ if tree.children.length > 0
64
+ tree.children.map { |child| printTree(child, level + 1) }
65
+ end
66
+ end
67
+
68
+ end
69
+
70
+
71
+
@@ -0,0 +1,3 @@
1
+ module JekyllAsciidoctorPdf
2
+ VERSION = '0.0.14'
3
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll_asciidoctor_pdf
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.14
5
+ platform: ruby
6
+ authors:
7
+ - Guido Genzone
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-03-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.1.4
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.1.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.52'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.52'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: fileutils
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '1.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '1.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: safe_yaml
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.5
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.5
97
+ - !ruby/object:Gem::Dependency
98
+ name: asciidoctor-pdf
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 1.5.1
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 1.5.1
111
+ description: Rake tasks to convert *.adoc files from Jekyll to PDF using asciidoctor-pdf
112
+ email:
113
+ - guido.genzone@netapp.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".travis.yml"
120
+ - Gemfile
121
+ - README.adoc
122
+ - Rakefile
123
+ - bin/console
124
+ - bin/setup
125
+ - jekyll_asciidoctor_pdf.gemspec
126
+ - lib/jekyll_asciidoctor_pdf.rb
127
+ - lib/jekyll_asciidoctor_pdf/commands.rb
128
+ - lib/jekyll_asciidoctor_pdf/tree.rb
129
+ - lib/jekyll_asciidoctor_pdf/version.rb
130
+ homepage: https://github.com/ggenzone/jekyll_asciidoctor_pdf
131
+ licenses:
132
+ - MIT
133
+ metadata: {}
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '2.0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ requirements: []
149
+ rubyforge_project:
150
+ rubygems_version: 2.7.6
151
+ signing_key:
152
+ specification_version: 4
153
+ summary: Rake tasks to convert *.adoc files from Jekyll to PDF using asciidoctor-pdf
154
+ test_files: []