kakaymi 根据手册上的介绍,目前在代码块中设置cache=TRUE,可以将本代码块缓存起来。在代码块内容不变的状态下,总是调用同一个缓存。但是我使用bookdown的场景要求是代码不改变,数据总是动态的,如果遇到同一个数据,我希望能调用该数据对应的缓存。也就是说缓存的key既要包括代码块文本内容也要加上代码块涉及的数据内容。 我自己缓存文件,目前存储和调用都没有问题,但是修改代码块后需要手动删除缓存。 我的要求可能有点多,请大侠赐教。谢谢!
kakaymi kakaymi 补充一下,试用过preview_chapter和server_book,但是前者会丢失跨章节的引用(序号也是一个问题),后者也是针对代码块内容发生变更的部分重新编译。而我的使用场景是代码不变,只是其中的数据变更。
yihui tctcab 把数据对象直接丢进任意一个代码段选项里即可(比如 cache.extra),不用手动算 MD5 值:https://yihui.name/knitr/demo/cache/#even-more-stuff-for-cache 要看懂这一节先要看懂上一节。