learnr高级功能探索:自定义反馈、进度跟踪与数据持久化
【免费下载链接】learnrInteractive Tutorials with R Markdown项目地址: https://gitcode.com/gh_mirrors/le/learnr
learnr是一个基于R Markdown的交互式教程包,它提供了丰富的功能来创建引人入胜的学习体验。本文将深入探讨learnr的三个高级功能:自定义反馈、进度跟踪和数据持久化,帮助你打造更加专业和个性化的交互式教程。
自定义反馈:提升学习体验的关键
自定义反馈是learnr中一个强大而实用的功能,它允许教程作者为不同的回答提供针对性的反馈信息,从而帮助学习者更好地理解和掌握知识。
错误检查与反馈
learnr现在能够在用户提交无法解析的R代码时提供预渲染的反馈信息,即使在浏览器翻译不可用的情况下也能发挥作用。这一改进大大提升了错误反馈的可用性和及时性。
更重要的是,learnr允许作者通过tutorial_options()函数的exercise.error.checker选项来自定义错误检查器。例如,你可以使用gradethis::grade_learnr_error()作为默认的错误检查器,它能提供更加友好和有用的错误反馈。
函数式答案反馈
通过answer_fn()函数,作者可以提供一个自定义函数来评估学生的回答。这个函数接收学生的提交作为参数,并通过返回correct()或incorrect()函数来提供反馈。这种方式极大地扩展了learnr的评估能力,使复杂的评估逻辑成为可能。
answer_fn(function(user_answer) { if (user_answer == 42) { correct("太棒了!你找到了正确答案。") } else { incorrect("再试一次,记得宇宙的终极答案是42。") } })进度跟踪:掌握学习节奏
learnr提供了内置的进度跟踪功能,帮助学习者和教师了解学习进度和完成情况。
默认进度跟踪
learnr::tutorial格式默认包含了进度跟踪功能,它会自动记录学习者完成的练习和问题,并在界面上显示总体进度。这种直观的进度指示有助于激励学习者继续前进。
自定义进度跟踪
对于需要更高级进度跟踪的场景,learnr暴露了JavaScript API,允许创建自定义的R Markdown格式。你可以参考tutorial-format.js文件,了解如何使用tutor JavaScript API来添加自定义的进度跟踪功能。
数据持久化:保存学习状态
数据持久化功能确保学习者的进度和答案不会因为关闭浏览器或刷新页面而丢失,这对于长期学习和复习非常重要。
客户端存储
learnr使用idb-keyval库直接在浏览器的indexedDB中存储教程数据,取代了之前的localforage。这一改进避免了浏览器标签在访问indexedDB数据时的相互阻塞问题,提高了存储的可靠性和性能。
自定义存储选项
通过设置options(tutorial.storage = ...),你可以自定义learnr的存储行为。learnr提供了多种内置存储选项:
- "auto": 自动选择最合适的存储方式
- "local": 使用本地存储
- "client": 使用客户端存储
- "none": 不进行任何存储
此外,你还可以通过提供一个包含自定义存储函数的列表来实现完全自定义的存储解决方案。例如:
options(tutorial.storage = list( save_object = function(name, value) { # 自定义保存逻辑 }, get_object = function(name) { # 自定义获取逻辑 }, get_objects = function() { # 自定义获取所有对象逻辑 }, remove_all_objects = function() { # 自定义清除逻辑 } ))文件系统存储
learnr还提供了filesystem_storage()函数,它返回一个适合用于options(tutorial.storage = ...)的文件系统存储处理程序。这对于需要在服务器端存储学习数据的场景非常有用。
结语
通过自定义反馈、进度跟踪和数据持久化这三个高级功能,learnr为创建交互式教程提供了强大的支持。这些功能不仅提升了学习体验,也为教程作者提供了更多的灵活性和控制权。无论你是教育工作者、培训师还是内容创作者,learnr都能帮助你打造出更加专业、高效和引人入胜的学习材料。
开始使用learnr创建你的第一个交互式教程吧!你可以通过以下命令安装learnr:
install.packages("learnr")或者从Git仓库克隆最新版本:
git clone https://gitcode.com/gh_mirrors/le/learnr探索learnr的更多可能性,为你的学习者提供卓越的交互式学习体验!
【免费下载链接】learnrInteractive Tutorials with R Markdown项目地址: https://gitcode.com/gh_mirrors/le/learnr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考