38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env ruby
|
|
|
|
base_dir = File.join(File.dirname(__FILE__),'../../..')
|
|
src_dir = File.join(base_dir, "/src/main/asciidoc")
|
|
require 'asciidoctor'
|
|
require 'optparse'
|
|
|
|
options = {}
|
|
file = "#{src_dir}/README.adoc"
|
|
|
|
OptionParser.new do |o|
|
|
o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' }
|
|
o.on('-h', '--help') { puts o; exit }
|
|
o.parse!
|
|
end
|
|
|
|
file = ARGV[0] if ARGV.length>0
|
|
|
|
# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb
|
|
doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes]
|
|
header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a
|
|
header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k }
|
|
attrs = doc.attributes
|
|
attrs['allow-uri-read'] = true
|
|
puts attrs
|
|
|
|
out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n"
|
|
doc = Asciidoctor.load_file file, safe: :unsafe, parse: false, attributes: attrs
|
|
out << doc.reader.read
|
|
|
|
unless options[:to_file]
|
|
puts out
|
|
else
|
|
File.open(options[:to_file],'w+') do |file|
|
|
file.write(out)
|
|
end
|
|
end
|