gpt4 book ai didi

html - 一致的代码 html 内联和与 knitr 成 block

转载 作者:行者123 更新时间:2023-11-27 22:30:04 27 4
gpt4 key购买 nike

我希望段落中的代码与代码块中显示的代码一致。

例如:

<p>
The formula method for a linear model
is <code>lm(y~x, data = dat)</code>.
For our data the results are:
</p>
<!--begin.rcode
lm(y~x, data = dat)
end.rcode-->

如果能使用 <code> 以外的东西就好了内联并获得与 block 代码相同的格式。

我正在使用 knitr :

> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets
[6] methods base

other attached packages:
[1] knitr_1.2

loaded via a namespace (and not attached):
[1] digest_0.6.3 evaluate_0.4.3 formatR_0.7
[4] stringr_0.6.2 tools_3.0.1

谢谢,

最大

最佳答案

您可以重新定义inline 钩子(Hook),并将您的内联代码编写为字符串。下面是一个最小的例子(确保你使用的是所有 R 包的最新版本):

<!DOCTYPE html>
<html>
<head>
<title>Highlight inline R code</title>
</head>
<body>
<!--begin.rcode
library(knitr)
hook_inline = knit_hooks$get('inline')
knit_hooks$set(inline = function(x) {
if (is.character(x)) highr::hi_html(x) else hook_inline(x)
})
end.rcode-->

<p>
The formula method for a linear model
is <code><!--rinline 'lm(y~x, data = dat)' --></code>.
For our data the results are:
</p>
<!--begin.rcode eval=FALSE
lm(y~x, data = dat)
end.rcode-->

</body>
</html>

关键是通过highr::hi_html() 进行语法高亮,输出如下:

highlight inline R code

关于html - 一致的代码 html 内联和与 knitr 成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com