学习者:如何通过更改ID和版本使本地存储无效?

Posted

技术标签:

【中文标题】学习者:如何通过更改ID和版本使本地存储无效?【英文标题】:learnr: How to invalidate stored worked locally by changing ID and version? 【发布时间】:2018-11-19 21:09:33 【问题描述】:

我正在使用 learnr 包开发教程。在迭代测试过程中,我需要使教程文件失效。

我按照Preserving Work 的解释,在 yaml 标头中添加了 ID 和版本。

但每当我更改 ID 和/或版本号时,我总是得到最后一次锻炼试验。

当您更改教程的 ID 或版本时,与该教程相关的所有存储工作都将失效,并且该教程的用户在再次访问它时将重新开始。 (来自Preserving Work)

上面的引用对我不起作用:即使我重新启动 RStudio 和/或使用 Clear Rendered Output … resp。 Clear Knitr Cache …。但是我确实成功地更改了块头的标签,并且我知道我可以使用教程页面上的“重新开始”按钮。

会不会是ID和版本在本地不起作用? (顺便说一句:我的电脑上与教程相关的存储作品的文件在哪里?)

我的 yaml 标头看起来像:

---
title: "Tutorial"
tutorial:
  id: "b4e9e9b1-02b1-45c7-b35e-64ff6fbf0a0e"
  version: 2.9
output: 
    learnr::tutorial:
        progressive: true
        allow_skip: true
runtime: shiny_prerendered
---

我正在使用 uuid 包生成 ID - 如 Tutorial Identifiers 下的 learnr 教程中所述。

我总是使用命令rmarkdown::run("<path-to-filename/filname>") 开始新的试用。


这个问题应该用learnr标记,但我没有创建新标记的权限。

【问题讨论】:

【参考方案1】:

@jjallaire 在Github 上回答了我的问题:

很遗憾,本地存储的作品不使用该 ID。本地教程 可以在以下位置找到存储:

file.path(rappdirs::user_data_dir(), "R", "learnr", "tutorial", "storage")

【讨论】:

【参考方案2】:

这并没有回答确切的问题,但是如果想要在每次更改教程后重新开始(查看教程中的新更改),一种方法是在目录中添加一个名为 restart.txt 的文件教程的.Rmd 文件在哪里,每次更改教程后,在加载教程之前,需要运行touch restart.txt 来更新restart.txt 的修改时间。这告诉shiny 服务器重新开始。

【讨论】:

以上是关于学习者:如何通过更改ID和版本使本地存储无效?的主要内容,如果未能解决你的问题,请参考以下文章

Git混淆-如何将本地更改恢复为最新的远程推送?

如何在本地存储 javascript 函数所做的 css 更改?

如何使本地化的 Storyboard 或 XIB 保持同步?

如何在Git还原后返回本地存储库中的代码

如何通过命令行在本地更新存储库[复制]

尝试在更改的路由 vue 上记录到本地存储时,indexof() 始终返回 -1