class MarkupEmail::Render
Public Class Methods
new(file, sanitize=false)
click to toggle source
# File lib/markup_email/convert.rb, line 13 def initialize file, sanitize=false @file = file @sanitize = sanitize end
Public Instance Methods
body()
click to toggle source
# File lib/markup_email/convert.rb, line 18 def body exit 1 unless package_tester unfiltered = File.read(@file) #GitHub::Markup.render @file, File.read(@file) # Use me :'( # ^^^^^ IN THE FUTURE, WHEN `HTML::Pipeline` HAS FIXED THEIR SHIT AND DON'T USE # ^^^^^ A HUNDRED YEAR OLD VERSION OF `github-linguist` I WILL BE ABLE TO SUPPORT # ^^^^^ ALL THE MARKUPS LISTED IN THE `--help` SECTION... context = { :asset_root => "https://assets-cdn.github.com/images/icons", :gfm => true } filters = [ Pipeline::MarkdownFilter, Pipeline::SanitizationFilter, Pipeline::TableOfContentsFilter, #Pipeline::CamoFilter, TaskList::Filter, Pipeline::EmojiFilter, Pipeline::AutolinkFilter, Pipeline::SyntaxHighlightFilter ] filters.delete(Pipeline::SanitizationFilter) unless @sanitize pipeline = Pipeline.new filters, context return pipeline.call(unfiltered)[:output].to_s end
package_tester()
click to toggle source
# File lib/markup_email/convert.rb, line 57 def package_tester if %w(.markdown .md .mdown .mkdn).include? File.extname(@file) require_test 'commonmarker' return true end if File.extname(@file) == '.textile' require_test 'RedCloth' return true end if File.extname(@file) == '.rdoc' require_test 'rdoc' return true end if File.extname(@file) == '.org' require_test 'org-ruby' return true end if File.extname(@file) == '.creole' require_test 'creole' return true end if %w(.mediawiki .wiki).include? File.extname(@file) require_test 'wikicloth' return true end if File.extname(@file) == '.rst' begin %x(python3 --version) rescue puts "python3 (Python version 3) not installed, please install `python3`!" exit 1 end unless %x(python3 -c "import sphinx" 2>&1).empty? puts "python3 `sphinx` module not installed for .rst markup!\nSee `--help` for more information on installing the package." exit 1 end return true end if %w(.asciidoc .adoc .asc).include? File.extname(@file) require_test 'asciidoctor' return true end if File.extname(@file) == '.pod' begin %x(perl -v) rescue puts "Perl not installed! Please install Perl" exit 1 end unless %x(perl -v)[%x(perl -v).index('(v') + 2, 4].to_f >= 5.10 puts "Your perl version is not up to date (Perl must be >= 5.10)." puts "your perl version is #{%x(perl -v)[%x(perl -v).index('(v'), 9]}." exit 1 end return true # comes with perl end return true end
require_test(package)
click to toggle source
# File lib/markup_email/convert.rb, line 44 def require_test(package) begin require "#{package}" rescue LoadError puts "`#{package}` not installed for you chosen markup!\nSee `--help` for more information on installing the package." exit 1 else puts "`#{package}` installed!" ensure nil end end