将.Rmd转换为.md

时间:2016-01-25 11:36:41

标签: github yaml markdown r-markdown

我有一个.rmd文件,我想把它放在GitHub上。为了使结果与代码一起显示,我通过RStudio将.rmd文件转换为.md

转换后,当我在GitHub上查看.md文件时,(r-)代码不再突出显示。我注意到.md文件中的代码块通过4次而不是3次反引号+语言定义来识别。显然,.rmd文件中的语言定义会丢失。

我该如何解决这个问题?

注意:要重现,您只需在RStudio中打开一个新的.rmd文件,然后将YAML标题更改为:

---
title: "TestRun"
output: 
 md_document:
 variant: markdown_github
---

非常感谢帮助!

2 个答案:

答案 0 :(得分:2)

缩进在YAML中非常重要。

以下是R Markdown documentation

的示例
---
output:
  md_document:
    variant: markdown_github
---

此YAML文档具有键output的映射,其值为具有一个键md_document的映射,其值是具有一个键variant的映射,其值为markdown_github是标量{ "output": { "md_document": { "variant": "markdown_github" } } }

JSON中的等价物(例如)将是:

title

这是您的文档(为了清楚起见,忽略--- output: md_document: variant: markdown_github --- 键):

output

您的文档包含关键字md_document的映射,其值为包含两个键的映射,null(空值或variant值)和markdown_github(标量值为{ "output": { "md_document": null, "variant": "markdown_github" } } )。 JSON等价物将是:

cnx.Open();
            for (int i = 0; i < dataGridView1.Rows.Count ; i++)
            {
                cmd = new SqlCommand("Insert into aaa (libelle,Nom,nid,n,absence) values('" + dataGridView1.Rows[i].Cells["Column1"].Value.ToString() + "','" + dataGridView1.Rows[i].Cells["Column2"].Value.ToString() + "','" + dataGridView1.Rows[i].Cells["Column3"].Value.ToString() + "','" + dataGridView1.Rows[i].Cells["Column4"].Value.ToString() + "','" + dataGridView1.Rows[i].Cells["Column5"].Value.ToString() + "')", cnx);
                cmd.ExecuteNonQuery();    
            }
            cnx.Close();
            MessageBox.Show("good");

看到区别?

答案 1 :(得分:1)

受控代码块(反引号+语言定义)是一种标记代码块的非标准(尽管越来越常见)方式。因此,所有Markdown实现都不了解它。事实上,standard Markdown无法识别代码块的语言。在这种情况下,当转换为标准Markdown时,该信息将被适当地丢失。如果您想保留该信息,那么我建议转换为其他标准Markdown。虽然,根据另一个答案,如果您修复YAML配置,那么您将使用非标准GitHub Flavored Markdown,它支持隔离代码块。

如果您确实需要标准Markdown,那么您可能会发现JavaScript突出显示引擎可以为您提供服务。一些更好的JavaScript突出显示引擎具有相当好的语言检测功能,因此您通常不需要标记代码块的语言。