Sha256: b402cf499a2aaac53a35bf0a6ea4a6f94ef3c2c45000850ee87b42c62d5f1c18
Contents?: true
Size: 1.72 KB
Versions: 26
Compression:
Stored size: 1.72 KB
Contents
#!/usr/bin/env ruby require 'html/pipeline' require 'optparse' # Accept "help", too ARGV.map!{|a| a == "help" ? "--help" : a } OptionParser.new do |opts| opts.banner = <<-HELP.gsub(/^ /, '') Usage: html-pipeline [-h] [-f] html-pipeline [FILTER [FILTER [...]]] < file.md cat file.md | html-pipeline [FILTER [FILTER [...]]] HELP opts.separator "Options:" opts.on("-f", "--filters", "List the available filters") do filters = HTML::Pipeline.constants.grep(/\w+Filter$/). map{|f| f.to_s.gsub(/Filter$/,'') } # Text filter doesn't work, no call method filters -= ["Text"] abort <<-HELP.gsub(/^ /, '') Available filters: #{filters.join("\n ")} HELP end end.parse! # Default to a GitHub-ish pipeline if ARGV.empty? filters = [ HTML::Pipeline::MarkdownFilter, HTML::Pipeline::SanitizationFilter, HTML::Pipeline::ImageMaxWidthFilter, HTML::Pipeline::EmojiFilter, HTML::Pipeline::AutolinkFilter, HTML::Pipeline::TableOfContentsFilter, ] # Add syntax highlighting if linguist is present begin require 'linguist' filters << HTML::Pipeline::SyntaxHighlightFilter rescue LoadError end else def filter_named(name) case name when "Text" raise NameError # Text filter doesn't work, no call method end HTML::Pipeline.const_get("#{name}Filter") rescue NameError => e abort "Unknown filter '#{name}'. List filters with the -f option." end filters = [] until ARGV.empty? name = ARGV.shift filters << filter_named(name) end end context = { :asset_root => "/assets", :base_url => "/", :gfm => true } puts HTML::Pipeline.new(filters, context).call(ARGF.read)[:output]
Version data entries
26 entries across 26 versions & 1 rubygems