You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在exams2moodle()导出的Moodle试题中保留代码着色?

如何让exams包导出到Moodle的试题保留代码着色

可行方案

1. 启用exams2moodle的内置高亮参数

exams2moodle提供了highlight参数,可直接指定兼容Moodle的语法高亮引擎。设置为"kate"即可让Moodle识别代码块并应用内置的R语法着色:

exams2moodle("your_exam_file.Rmd", highlight = "kate", encoding = "UTF-8")

该参数会将试题中的Markdown代码块(r ... )转换为Moodle支持的<pre><code class="language-r">结构,自动触发Moodle的语法高亮。

2. 自定义模板添加高亮样式

如果内置高亮效果不符合需求,可以自定义Moodle输出模板,手动注入CSS样式来控制代码着色:

  • 先找到exams包的默认Moodle模板路径:system.file("templates", "moodle.html", package = "exams")
  • 复制模板并修改,在<head>部分添加针对R代码的高亮CSS:
    .language-r {
      background: #f5f5f5;
      padding: 12px;
      border-radius: 4px;
      font-family: monospace;
    }
    .language-r .kw { color: #006699; font-weight: bold; }
    .language-r .st { color: #ba2121; }
    .language-r .co { color: #888888; font-style: italic; }
    
  • 调用exams2moodle时指定自定义模板:
    exams2moodle("your_exam_file.Rmd", template = "custom_moodle_template.html", encoding = "UTF-8")
    

3. 确保试题代码块格式正确

试题文件中必须用标准的Markdown代码块包裹R代码,示例:

# 计算均值
data <- runif(100)
mean(data)

不要用纯文本或非标准标记,否则Moodle无法识别代码类型。

额外注意

  • 确认你的Moodle站点已启用语法高亮功能(默认是开启的,可在Atto编辑器设置中检查)。
  • 不同Moodle版本对语法高亮的支持略有差异,建议用最新稳定版测试。

内容的提问来源于stack exchange,提问作者Markus Loecher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 16:04:53