2012-12-10 22 views
11

के लिए जैकील कनवर्टर मैं आर मार्कडाउन फ़ाइलों के लिए जेकिल कनवर्टर लिखने की कोशिश कर रहा हूं। मैंने RMarkdownConverter.rb बनाया और इसे मेरे _plugins निर्देशिका में रखा। मैंने सत्यापित किया है कि अन्य प्लगइन काम कर रहे हैं लेकिन यह नहीं है। मुझे अपने द्वारा रखे गए किसी भी त्रुटि संदेश भी दिखाई नहीं देते हैं। ऐसा लगता है कि इसका उपयोग नहीं किया जा रहा है। हालांकि, जेकिल मेरी .Rmd फ़ाइल के लिए एक HTML फ़ाइल जेनरेट कर रहा है लेकिन आर चक को कोड चक के रूप में बस संसाधित करता है। किसी भी मदद या विचारों की बहुत सराहना की जाएगी।आर मार्कडाउन

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 

मेरी पहली आर 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 
``` 

उत्तर

4

निम्नलिखित

R.assign "content", content 
R.eval "knitr::render_markdown(strict = TRUE)" 
R.pull "(knitr::knit2html(text = content, fragment.only = TRUE))" 

के साथ पिछले कुछ लाइनों के बजाय ऐसे मुझे तुम्हारी जरूरत है लगता है रूबी में आर आउटपुट की सामग्री की प्रतिलिपि बनाने के लिए R.pull। इसके अलावा, मैं सीधे आरएमडी से एचटीएमएल में कनवर्ट करने की सिफारिश करता हूं। मैंने Ruhoh के साथ काम करने में सफलतापूर्वक इस रणनीति का उपयोग किया है जो एक और रूबी आधारित ब्लॉगिंग प्लेटफार्म है।

अद्यतन। यह बहुत अजीब है लेकिन विस्तार आरएमडी का उपयोग एमडी के साथ संघर्ष लगता है। मैंने इसे ram में यादृच्छिक रूप से बदल दिया और जेकिल इसे सही तरीके से चुनने लगता है। मुझे यकीन नहीं है क्यों।

+0

यह भी प्रतीत होता है कि यदि आप 'markdown_ext: markdown' को' _config.yml' में जोड़ते हैं तो जैकिल 'rmd' फ़ाइलों को संसाधित करेगा। हालांकि, इसका मतलब यह भी है कि 'md' फ़ाइलों को संसाधित नहीं किया जाएगा। मेरे लिए एक बड़ा सौदा नहीं है क्योंकि मैं '.markdown' फ़ाइल एक्सटेंशन का उपयोग कर रहा हूं। – jbryer

+0

'rinruby' का आह्वान किए बिना ऐसा करने का एक तरीका होना चाहिए जो धीमा होने के लिए जाना जाता है। मैं खोज रहा हूं कि आरएमडी फाइलों को संसाधित करने के लिए सीधे शेल कमांड का उपयोग कैसे करें, हालांकि बुनाई द्वारा उपयोग की जाने वाली बैकटिक्स खोल निष्पादन की यात्रा करती है। – Ramnath

संबंधित मुद्दे