Tôi đang cố gắng viết trình chuyển đổi Jekyll cho các tệp R Markdown. Tôi đã tạo RMarkdownConverter.rb
và đặt nó trong thư mục _plugins
của tôi. Tôi đã xác minh rằng các plugin khác đang hoạt động nhưng plugin này không hoạt động. Tôi cũng không thấy bất kỳ thông báo lỗi nào, kể cả những thông điệp tôi tự đặt vào. Có vẻ như điều này không được sử dụng. Tuy nhiên, Jekyll đang tạo một tệp HTML cho tệp .Rmd
của tôi nhưng chỉ đơn giản là xử lý các mâm cặp R như mã chuck. Bất kỳ trợ giúp hoặc suy nghĩ nào sẽ được đánh giá cao.Chuyển đổi Jekyll cho R Markdown
RMarkdownConverter.rb
file:
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
Nội dung của bài R Markdown đầu tiên của tôi:
---
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
```
Nó cũng xuất hiện nếu bạn thêm 'markdown_ext: markdown' vào' _config.yml' Jekyll sẽ xử lý tệp 'rmd'. Tuy nhiên, nó cũng có nghĩa là các tập tin 'md' sẽ không được xử lý. Không phải là một vấn đề lớn đối với tôi vì tôi đã sử dụng phần mở rộng tập tin '.markdown'. – jbryer
Nên có cách để thực hiện điều này mà không cần gọi 'rinruby' được biết là chậm. Tôi đang khám phá cách sử dụng một lệnh shell trực tiếp để xử lý các tệp Rmd, tuy nhiên các backticks được sử dụng bởi các chuyến đi đan xen lên việc thực thi shell. – Ramnath