我有一个.rmd
文件,我想把它放在GitHub上。为了使结果与代码一起显示,我通过RStudio将.rmd
文件转换为.md
。
转换后,当我在GitHub上查看.md
文件时,(r-)代码不再突出显示。我注意到.md
文件中的代码块通过4次而不是3次反引号+语言定义来识别。显然,.rmd
文件中的语言定义会丢失。
我该如何解决这个问题?
注意:要重现,您只需在RStudio中打开一个新的.rmd
文件,然后将YAML标题更改为:
---
title: "TestRun"
output:
md_document:
variant: markdown_github
---
非常感谢帮助!
答案 0 :(得分:2)
缩进在YAML中非常重要。
的示例---
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突出显示引擎具有相当好的语言检测功能,因此您通常不需要标记代码块的语言。