#!/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