Конвертер Jekyll для R Markdown
Я пытаюсь написать Jekyll-конвертер для файлов R Markdown. Я создал RMarkdownConverter.rb
и поместил его в каталог _plugins
. Я проверил, что другие плагины работают, но этого нет. Я также не вижу сообщений об ошибках, включая те, которые я вложил в себя. Кажется, это не используется. Однако Jekyll генерирует HTML файл для моего файла .Rmd
, но просто обрабатывает патрон R в качестве кодового патрона. Любая помощь или мысли были бы оценены.
RMarkdownConverter.rb
файл:
module Jekyll
class RMarkdownConverter < Converter
safe true
priority :low
def setup
STDERR.puts "Setting up R Markdown..."
return if @setup
require 'rinruby'
@setup = true
rescue
STDERR.puts 'do `gem install rinruby`'
raise FatalException.new("Missing dependency: rinruby")
end
def matches(ext)
ext =~ /Rmd/i
end
def output_ext(ext)
'.html'
end
def convert(content)
setup
STDERR.puts "Using R Markdown..."
R.eval "require(knitr)"
R.eval "render_markdown(strict=TRUE)"
R.assign "content", content
STDERR.puts content
R.eval "out <- knit(text=content)"
R.eval "print(out)"
end
end
end
Содержимое моей первой записи R Markdown:
---
layout: post
title: Using (R) Markdown, Jekyll, and Github for Blogging
published: true
tags: R R-Bloggers Jekyll github
type: post
status: publish
---
First, we need to install [RinRuby](https://sites.google.com/a/ddahl.org/rinruby-users/) to call R from Ruby. In the terminal, execute:
gem install rinruby
First R chuck:
```{r}
2 + 2
```
Ответы
Ответ 1
Попробуйте заменить последние несколько строк следующим
R.assign "content", content
R.eval "knitr::render_markdown(strict = TRUE)"
R.pull "(knitr::knit2html(text = content, fragment.only = TRUE))"
Мне кажется, вам нужно R.pull
скопировать содержимое вывода R в Ruby. Более того, я бы рекомендовал прямое преобразование из Rmd в html. Я успешно использовал эту стратегию при работе с Ruhoh, которая является другой платформой для ведения блогов на основе Ruby.
UPDATE. Это очень странно, но использование расширения rmd, похоже, конфликтует с md. Я изменил его случайным образом на ram
, и jekyll, похоже, правильно его подбирает. Я не уверен, почему.