灵感来自卡尔·布罗曼的读者使用knitr带asciidoc(https://kbroman.org/knitr_knutshell/pages/asciidoc.html),这是一个对knitr进行了轻微修改。

针织

最小示例

假设有一个文件

文件名<-system.file(“文件”,“最小”,“情节。Rasciidoc”,包装=“rasciidoc”)cat(readLines(文件名),sep=\n个)
##=一些标题##您的姓名##:toc2:##:编号:##:data-uri(数据):##:持续时间:120####==A段####===A小节####*带有https://en.wikipedia.org/wiki/Hyperlink[链接]。##*列表中的另一项。####==代码##//开始.rcode##a<-c(2、3、4、10)#<1>##值<-0#<2>##for(a中的ai){#<3>##值<-value+a_i#<4>## }##打印(值)#<5>##//结束.rcode######==新节####//begin.rcode a_plot,dev=“png”,fig.cap=“a plot”##绘图(1:10)##//结束.rcode

如果你跑步提供在这个文件上(我们在这里使用一个临时目录)

withr::with_dir(tempdir(){file.copy(文件名,".")rasciidoc::render(基本名称(文件名))})
##run_knit(file_name,knit=knit,envir=envir,write_to_disk)中出现警告=
##write_to_disk):根据文件内容将选项knit设置为TRUE!
##由于CRAN的策略是“除了R会话的临时目录之外,不在文件系统的任何其他位置写入”,因此我们使用/tmp/RtmpVTucXi/plot的临时副本。拉西多克。
##因此,所有内部采购和内部链接都将断开,所有输出都将写入/tmp/RtmpVTucXi。将选项“write_to_disk”设置为TRUE(使用
##选项(“write_to_disk”=真)
##)以绕过此问题。您可能希望将上面的行包含到您的~/中。R配置文件。
##
##
##处理文件:/tmp/RtmpVTucXi/plot。Rasciidoc公司
## 1/4##2/4[未命名块-8]## 3/4##4/4[a_plot]
##输出文件:/tmp/RtmpVTucXi/plot.asciidoc
##[1]正确##attr(,“信息”)##attr(,“info”)$python##[1]“/usr/bin/python”####attr(,“info”)$input##[1]“/tmp/RtmpVTucXi/plot.asciidoc”####attr(,“info”)$output##[1]“/tmp/RtmpVTucXi/plot.Rasciidoc”“/tmp/RtmpVTuXi/plot.html”####attr(,“info”)$asciidoc##[1]“/usr/bin/asciidoc”####attr(,“info”)$`source-highlight`##[1]正确####attr(,“info”)$`git-asciidoc`##[1]不适用

您将创建一个与[此文件]相同的HTML文件(https://fvafrcu.gitlab.io/rasciidoc/inst/files/minimal/plot.html)您可以使用browseURL(file.path(tempdir(),paste0(sub(“\\..*$”,“”,basename(file_name)),“.html”))从您当前的R会话(这样的小插曲不允许启动外部程序就像浏览器一样,所以你必须自己做)。

一个简单的例子

假设您将文件更改为不太简约:

文件名<-system.file(“文件”,“简单”,“针织Rasciidoc”,包装=“rasciidoc”)cat(readLines(文件名),sep=\n个)
##=一些标题##您的姓名##:toc2:##:编号:##:data-uri(数据):##:持续时间:120####这是关于什么的?######===一些简单的asciidoc####*带有https://en.wikipedia.org/wiki/Hyperlink[链接]。##*列表中的另一项。####==包括代码##不要使用asciidoc提供的_include_宏!##//begin.rcode,label=“sum”,code=readLines(“src/sum.R”)##//结束.rcode######==新节####//begin.rcode,label=“my_sum”,code=readLines(“src/my_sum.R”)##//结束.rcode##===小节##//begin.rcode,label=“value”##打印(值)##//结束.rcode####//begin.rcode,label=“运行my_sum”##打印(my_sum(1:3))##//结束.rcode####一些内联代码:Object+value+has value+r value+。######===第二小节

该文件显然从名为“src/”的子目录中的文件读取代码,因此,如果您也有该子目录及其文件:

my_directory<-file.path(tempdir(),“简单”)目录创建(my_directory)带有r::带有dir(my_directory{file.copy(文件名,".")file.copy(file.path(目录名(文件名),“src”),".",递归=真)})
##[1]正确
dir(my_directory,recursive=TRUE,full.names=TRUE)
##[1]“/tmp/RtmpVTucXi/simple/knit.Rasciidoc”##[2]“/tmp/RtmpVTucXi/ssimple/src/my_sum.R”##[3]“/tmp/RtmpVTucXi/simple/src/sum.R”

你可以提供文件

rasciidoc::render(file.path(my_directory,basename(file_name))
##run_knit(file_name,knit=knit,envir=envir,write_to_disk)中出现警告=
##write_to_disk):根据文件内容将选项knit设置为TRUE!
##由于CRAN的策略是“除了R会话的临时目录之外,不在文件系统的任何其他位置写入”,因此我们使用/tmp/RtmpVTucXi/simple/knit的临时副本。拉西多克。
##因此,所有内部采购和内部链接都将断开,所有输出都将写入/tmp/RtmpVTucXi。将选项“write_to_disk”设置为TRUE(使用
##选项(“write_to_disk”=真)
##)以绕过此问题。您可能希望将上面的行包含到您的~/中。R配置文件。
##
##
##处理文件:/tmp/RtmpVTucXi/simple/knit。Rasciidoc公司
## 1/9##2/9[总和]## 3/9##4/9[我的总和]## 5/9##6/9[数值]## 7/9##8/9[运行my_sum]## 9/9
##输出文件:/tmp/RtmpVTucXi/knit.asciidoc
##[1]正确##属性(,“信息”)##attr(,“info”)$python##[1]“/usr/bin/python”####attr(,“info”)$input##[1]“/tmp/RtmpVTucXi/knit.asciidoc”####attr(,“info”)$output##[1]“/tmp/RtmpVTucXi/knit.html”####attr(,“info”)$asciidoc##[1]“/usr/bin/asciidoc”####attr(,“info”)$`source-highlight`##[1]正确####attr(,“info”)$`git-asciidoc`##[1]不适用

并创建一个与[此文件]相同的HTML文件(https://fvafrcu.gitlab.io/rasciidoc/inst/files/simple/knit.html)您可以使用browseURL(file.path(my_directory,paste0(sub(“\\..*$”,“”,basename(file_name)),“.html”))从您当前的R会话。

旋转

您还可以使用微调文件进行输入:

文件名<-system.file(“文件”,“简单”,“自旋R_nolint”,包装=“rasciidoc”)cat(readLines(文件名),sep=\n个)
###’=一些标题###'您的姓名###“:toc2:###“:编号:###’:data-uri:###':持续时间:120## #'###'==这是关于什么?## #'###'//开始_no_slide###'这不会显示在幻灯片上。###'//结束_幻灯片## #'###'===一些简单的asciidoc## #'###'*带有https://en.wikipedia.org/wiki/Hyperlink[链接]。###'*列表中还有一项。## #'###’==包括代码###'不要使用asciidoc提供的_include_宏!###'相反,在所有源语句前面加上## #' ----###'#+代码=readLines(“file_to_be_sourced”)###'#+include=错误## #' ----###'它很有用## #' ----###'#+code=readLines(“src/sum.R”)###'#+include=错误###'源(“src/sum.R”)## #' ----###’生产###+代码=readLines(“src/sum.R”)###+include=错误##源(“src/sum.R”)## #'## #'##消息(“消息,可能是不同的输出挂钩。”)###’==新节## #'###+代码=readLines(“src/my_sum.R”)###'===小节##打印(值)## #'##打印(my_sum(1:3))## #'###'内联代码不起作用:对象+值+具有值+r值+。## #'

你跑了提供上面写着:

使用r::with_dir(tempdir(){file.copy(文件名,".",覆盖=真)file.copy(file.path(目录名(文件名),“src”),".",递归=真)rasciidoc::render(基本名称(文件名))})
##第1页,共1页
##由于CRAN的策略是“除了R会话的临时目录之外,不在文件系统的任何其他位置写入”,因此我们使用/tmp/RtmpVTucXi/spin的临时副本。不在线(_N)。
##因此,所有内部采购和内部链接都将断开,所有输出都将写入/tmp/RtmpVTucXi。将选项“write_to_disk”设置为TRUE(使用
##选项(“write_to_disk”=真)
##)以绕过此问题。您可能希望将上面的行包含到您的~/中。R配置文件。
##[1]正确##属性(,“信息”)##attr(,“info”)$python##[1]“/usr/bin/python”####attr(,“info”)$input##[1]“/tmp/RtmpVTucXi/spin.asciidoc_nolint”####attr(,“info”)$output##[1]“/tmp/RtmpVTucXi/spin.R_nolint”“/tmp/RtmpVTuXi/slin.html”####attr(,“info”)$asciidoc##[1]“/usr/bin/asciidoc”####attr(,“info”)$`source-highlight`##[1]正确####attr(,“info”)$`git-asciidoc`##[1]不适用

渐晕图使用拉西多克

这个小插曲是由拉西多克的渐晕引擎(参见https://gitlab.com/fvafrcu/rasciidoc/-/blob/master/vignettes/An_Introduction_to_rasciidoc.rasciidoc网站输入文件)。

只需添加

////%\渐晕图索引条目{您的渐晕图条目}%\幻影引擎{rasciidoc::rasciidoc}////

阻止您的拉西多克输入文件并添加拉西多克这个幻影构建器建议的字段你的包裹描述文件。