首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么命令将针织品R标记转换为堆栈-交换友好的标记?

什么命令将针织品R标记转换为堆栈-交换友好的标记?
EN

Stack Overflow用户
提问于 2012-06-17 02:56:56
回答 3查看 755关注 0票数 17

动机:我通常希望将使用R进行快速分析的结果粘贴到StackExchange站点中。这包括堆栈溢出上的r-标记交叉验证,甚至包括认知科学堆栈交换这样的站点上的特定域分析(例如,对经合组织生命指数数据的快速分析)。

默认转换的问题:默认的标记输出knitr不适合包含在StackExchange上。我能看到的主要问题是

  • 图像引用到本地硬盘驱动器。
  • 代码块不是制表符或空格缩进,而是使用github样式标记(即没有缩进)

也就是说,这些块儿看起来是这样的:

代码语言:javascript
复制
```r

一些代码

代码语言:javascript
复制

输出结果如下

代码语言:javascript
复制

一些输出

..。

代码语言:javascript
复制

还可能需要考虑其他具体问题,例如

  • 确保适当地包括表
  • 确保对支持MathJax的站点(如交叉验证和认知科学堆栈交换)正确地通过公式。

问题

什么是一个很好的命令将R标记转换成标记(或HTML),适合简单地包含到堆栈交换站点中?

我认为理想的命令应该是一个单行命令,它接受一个formatted文件,并生成一个文件,在这个文件中,整个内容可以直接粘贴到Stack中,从而产生一个格式良好的问题或答案。

我以几个代码块、一个图形和一个等式作为测试示例,共享这个简单的rmd文件

Initial the :将图像托管在imgur上可能会解决图像的问题。这可以通过在R文件中包含以下内容来完成,但是如果将该指令合并到某个一行命令中,可能会更简单。

代码语言:javascript
复制
``` {r }

opts_knit$set(upload.fun = imgur_upload)

代码语言:javascript
复制
```

可能值得考虑的是,HTML还是Markdown是粘贴到StackExchange的更好的格式。markdown包提供了很大的灵活性。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-17 03:44:30

下面是一个实用程序函数,可以让您开始使用它。它将自动上传设置为imgur,以及使用选项卡而不是围栏块来标记源代码。您可以增强此功能以添加其他有用的选项。

代码语言:javascript
复制
stackify <- function(rmd_file, ...){
  require(knitr)
  opts_knit$set(upload.fun = imgur_upload) 
  render_markdown(strict = TRUE)
  out <- knit(rmd_file, ...)
  return(invisible(out))
}

更新:我在您的测试文件上测试了这个函数,它在启用了stats.stackexchange.com的mathjax上呈现得很好。

票数 13
EN

Stack Overflow用户

发布于 2012-06-17 12:01:24

尽管我仍然想阅读其他建议,但我还是以@Ramnath的答案为起点,将这个脚本合并在一起。它输出一个HTML片段,而不是Markdown。

代码语言:javascript
复制
Rscript -e 'rmd_file <- dir(pattern="rmd"); md_file <- sub("rmd", "md", rmd_file); html_file <- sub("rmd", "html", rmd_file); require(methods); require(knitr); require(markdown); opts_knit$set(upload.fun = imgur_upload); knit(rmd_file); markdownToHTML(md_file, html_file, options="fragment_only") '
  • 它假定工作目录中有一个rmd文件。我认为选择rmd文件可以以更复杂的方式完成。
  • 它要求安装knitrmarkdown包。
  • 我认为,因为我们使用的是“Rscript”,所以需要加载methods包。
  • 它会上传图片
  • markdownToHTML只将代码片段导出为html文件。然后,可以将该文件的内容复制到Stack Exchange应答中。

结果看上去相当不错。它克服了空白行过多的问题。然而,输出并不是标记式的,这使得结果很难编辑。

票数 4
EN

Stack Overflow用户

发布于 2014-09-27 18:58:46

RStudio使用pandoc,因此您可以指定适合您需要的减价变体。在.Rmd文件开始时:

代码语言:javascript
复制
---
output:
  md_document:
    variant: markdown_strict+autolink_bare_uris
---

然后,您应该能够将结果文件内容复制/粘贴到StackExchange中。

请参阅:Format.html#markdown-变体

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11068603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档