bin/commonmarker in commonmarker-0.13.0 vs bin/commonmarker in commonmarker-0.14.0

- old
+ new

@@ -1,11 +1,13 @@ #!/usr/bin/env ruby -# Usage: commonmarker [--html-renderer] [FILE..] +# Usage: commonmarker [--html-renderer] [--list-extensions] [--extension=EXTENSION] [FILE..] # Convert one or more CommonMark files to HTML and write to standard output. # If no FILE argument is provided, text will be read from STDIN. # With --html-renderer, use the HtmlRenderer renderer rather than the native C # renderer. +# With --extension=EXTENSION, EXTENSION will be used for parsing, and HTML +# output unless --html-renderer is specified. if ARGV.include?('--help') or ARGV.include?('-h') File.read(__FILE__).split("\n").grep(/^# /).each do |line| puts line[2..-1] end exit 0 @@ -20,22 +22,36 @@ end root = File.expand_path('../../', __FILE__) $:.unshift File.expand_path('lib', root) +extensions = CommonMarker.extensions +active_extensions = [] + renderer = nil ARGV.delete_if do |arg| if arg =~ /^--html-renderer$/ renderer = CommonMarker::HtmlRenderer.new true + elsif arg =~ /^--list-extensions$/ + puts extensions + exit 0 + elsif arg =~ /^--extension=(.+)$/ + if extensions.include?($1) + active_extensions << $1.intern + else + STDERR.puts "extension #$1 not found" + exit 1 + end + true else false end end -doc = CommonMarker.render_doc(ARGF.read) +doc = CommonMarker.render_doc(ARGF.read, :default, active_extensions) if renderer STDOUT.write(renderer.render(doc)) else - STDOUT.write(doc.to_html) + STDOUT.write(doc.to_html(:default, active_extensions)) end