块选项 class.output 不适用于错误消息

Posted

技术标签:

【中文标题】块选项 class.output 不适用于错误消息【英文标题】:Chunk option class.output is not working on Error Message 【发布时间】:2018-07-10 08:08:30 【问题描述】:

我正在为一门课程准备教程,我想将错误的颜色更改为红色。我使用 BookDown 和 gitbook 作为我的输出格式。但我发现class.output 选项不起作用。我想为收到的错误消息添加一个类。我怎样才能做到这一点?你可以以此为例:

---
title: "Test Book"
author: "therimalaya"
site: bookdown::bookdown_site
output: bookdown::gitbook
---

# Hello World

```r, error = TRUE, class.output="red"
rnorm(-10)
```

如果没有错误,这将有效。

【问题讨论】:

感谢您的支持! 【参考方案1】:

class.output 不适用于错误(请参阅here)。 关注this answer,建议你使用错误钩子:

```r error-hook, echo=FALSE
knitr::knit_hooks$set(error = function(x, options) 
  paste0(
    "```", 
    ifelse(is.null(options$class.error), 
           "", 
           paste0(" .", gsub(" ", " .", options$class.error))
    ),
    "\n",
    x,
    "\n```"
  )
)
```

现在,您可以在块中使用“新”class.error 选项。

```r, error = TRUE, class.error="red"
rnorm(-10)
```

随时打开功能请求here。

【讨论】:

【参考方案2】:

针对错误、警告和消息使用自定义 CSS 类的功能是 just added to knitr,因此您将能够使用以下语法。

```r error = TRUE, class.error = "bg-danger text-danger"
rnorm(-10)
```

这里我使用的是Bootstrap classes,但你可以将任何你需要的类传递给class.error。块选项class.messageclass.warning 也有效。请注意,class.output 仅适用于标准代码输出。

【讨论】:

我明白了,有不少课程,非常感谢...

以上是关于块选项 class.output 不适用于错误消息的主要内容,如果未能解决你的问题,请参考以下文章

Jquery ui 1.8.10 范围滑块不适用于 jquery 3.4.1

jQuery Validate 不适用于 Bootstrap 3 选项卡式表单

Ajax + Rails 不适用于 Heroku

Jquery 验证不适用于 datepicker 的输入

google calenderID nodejs 不适用于指定的 CalendarID

错误回调不适用于 React Native 中的地理位置