#!/usr/bin/ruby # # = bluecloth # # Format one or more text files with the markdown formatter. # # = Synopsis # # bluecloth [OPTIONS] [FILES] # # # BEGIN { require 'bluecloth' require 'optparse' } DocumentWrapper = %{ %s %s } def main fragment = false destination = '.' ARGV.options do |oparser| oparser.banner = "Usage: #$0 [OPTIONS] FILES" # Debug mode oparser.on( "--debug", "-d", TrueClass, "Turn debugging output on" ) { $DEBUG = true } # 'Fragment' mode oparser.on( "--fragment", "-f", TrueClass, "Output HTML fragments instead of whole documents" ) { fragment = true } # Output destination #oparser.on( "--output=DESTINATION", "-o DESTINATION", String, # "Write output to DESTINATION instead of the current directory" ) {|arg| # destination = arg #} oparser.parse! end # Filter mode if no arguments ARGV.push( "-" ) if ARGV.empty? ARGV.each {|file| if file == '-' contents = $stdin.readlines(nil) else contents = File::readlines( file, nil ) end bc = BlueCloth::new( contents.join ) if fragment $stdout.puts bc.to_html else $stdout.puts DocumentWrapper % [ file, bc.to_html ] end } rescue => err $stderr.puts "Aborting: Fatal error: %s" % err.message exit 255 end main