33 lines
599 B
Ruby
33 lines
599 B
Ruby
require 'tempfile'
|
|
|
|
module Jekyll
|
|
class RMarkdownConverter < Converter
|
|
safe :false
|
|
priority :high
|
|
|
|
def matches(ext)
|
|
ext =~ /^\.(rmd|rmarkdown)$/i
|
|
end
|
|
|
|
def output_ext(ext)
|
|
".html"
|
|
end
|
|
|
|
def convert(content)
|
|
f = File.new("temp.Rmd", "w")
|
|
f.write(content)
|
|
f.write("\n")
|
|
f.flush
|
|
|
|
# http://rubyquicktips.com/post/5862861056/execute-shell-commands
|
|
content = `_plugins/knit.r temp.Rmd`
|
|
|
|
if $?.exitstatus != 0
|
|
raise "Knitting failed"
|
|
end
|
|
|
|
content
|
|
# File.unlink f.path
|
|
end
|
|
end
|
|
end |