xxhk.org

学习骇客

mubu to Anki - Anki丨学习骇客

2024 / 1 / 14

常见问题 与 解决办法

  1. 格式层级错误,请参照使用说明设计层级

  2. 层级无误,但点击转换时无反应,可能原因

    1. 文档未加载完,请复制粘贴到新建的文档里再重新导出

    2. 复制粘贴的笔记,外带了不可见的特殊符号,影响了识别。请新建副本,然后逐次将内容减半后定位问题所在。

修复: 2023-09-10 修复了笔记中含有百分号影响转换的问题;

更新:

2023-09-09 增加了 3 张 幕布层级与 Anki 字段的关系配图;

2023-09-09 替换了标记“完成”的配图,用以显示正确的标记方法;

2023-09-10 补充:安卓手机上 .txt 文件自动跳转用 Anki 打开的方法。

2023-09-10 补充从手机上导出幕布笔记的方法。

2023-09-11 补充 调整段落间距 的方法,即多条答案到 Anki 里以后显示的检举。

2023-10-06 将分隔符由竖线换成了制表符,解决了笔记里有绝对值符号会被误认为是竖线(分隔符)的问题;

2023-10-12 补充自定义牌组的方法,见: https://lusun.com/v/1XAi2fOrgt7

2023-11-05 将处理后的下载文件从 txt 修改为最初的 csv,因为官方 取消了 txt 的导入功能,对于用户来说和之前没有区别。

2023-11-05 新增国内腾讯云版访问地址 ,访问更稳定。 待办:删除空行


说明:文章有点长,只是因为解释得较为细致,而该方法的难度并不大。

流程:了解格式规范,导入配套的 Anki 模板,使用在线转换地址,转换后导入 Anki 即可复习。

mubu2anki 在线转换地址:https://i.xxhk.org/mubu2anki.html

配套的 Anki 模板下载地址:https://xxhk.org/akmb

熬了几个大夜,终于完成了一个新版的幕布笔记转 Anki 的程序,但想把这个用法说清楚、说得简单却比写程序和调程序还难,我反反复复写了几篇、写了几遍才有这篇,但愿大家都能看懂吧。如果觉得有困难,你可能需要先照着做几次,以后就能熟练运用了。

这么多年一直推荐用幕布笔记,而且自己也在用幕布。因为幕布是国内大纲笔记的代表,而大纲笔记素以简洁、高效著称,你只需要按Enter(回车键)就可以逐条新建,按 Tab 键就可以调整为下级,按 Shift + Tab 就可以调整上级,此外就再也不需要去操心排版和样式了。

当然还有其他原因。价格便宜,没有广告,全平台同步,flomo 的少楠团队从字节麾下接受幕布,也会让幕布更加可靠,产生设计上却依然能够保持小而美的特点。

特色

  1. 支持一次导入不同题型,包括问答笔记、浏览划线的笔记,且导入窗口不需要手动选择了;

  2. 支持所有样式,包括颜色、高亮、加粗、斜体、超链接、代码块、MathJax 公式(行内形式和块内形式)、图片和“描述”;

  3. 丰富的标签信息,将一二三级标签拼接成多级标签,具有多级牌组的结构化管理效果,同时从笔记里提取井号标签作为笔记标签,适合自由定制筛选牌组的专题学习。

由于幕布手机版APP并没有导出功能,所以大家在手机上需要用浏览器打开 mubu.com 然后从浏览器里选择“请求切换到桌面网站”,相当于在手机上打开电脑版网页,就能导出啦。 ^3wbj4u


用法

层级

一共支持 6 级别。上图显示的是一个 16 级的笔记,你还可以在同一篇笔记内新建多个 14 级或 15 级或 16 级的笔记,导入时选择右上角菜单里的“导出/下载”为 OPML 格式即可。

前 3 级是结构信息,用来记书名、章名、节名等信息,层级多的话可以合并或省略,层级少的话可以添加文字占位。所以这个并不存在限制。

后 3 级是正式笔记。如果是问答笔记,就在第 4 级记问题,在第 5 级记答案(可以有多条),至于要不要第 6 级视情况自由选择。如果是浏览划线,也就是一句话或一段话笔记,直接记在第 4 级就可以了,是否需要第 5、6 级也随意。唯一需要注意的就是要在问答题的问题后面添加两个连续的问号,中文或英文的都可以,这是转换时判断题型的依据,有两个问号就是问答笔记,没有的就是划线浏览的笔记。 ^yc5uvt

下图是问答笔记的效果:

  1. 有两个连续问号标记的笔记会被当做问答笔记;

  2. 幕布里的第 4 级对应 Anki 里的问题;

  3. 幕布里的第 5 级对应 Anki 里的答案;

  4. 幕布里的第 6 级对应 Anki 里的补充(可选);

  5. 第 5 级答案和第 6 级补充的多个平级字段都被合并起来对应 Anki 的答案和补充字段了。

下图对应划线笔记的效果:

  1. 没有问号标记的会被当做划线笔记;

  2. 幕布里的第 4 级对应 Anki 里的划线主字段;

  3. 幕布里的第 5 级对应 Anki 里的划线二字段(可选);

  4. 幕布里的第 6 级对应 Anki 里的划线三字段(可选);

  5. 同样,同级的多条笔记都被合并后对应了 Anki 的一个字段。

下图显示,导入的划线笔记可以有两种学习方式,一种是直接浏览,另一种是通过 Anki 的编辑按钮添加下划线效果,相当于填空题。

你可以根据个人需要或习惯,全部只记问答笔记或划线笔记,也可以混合记在一起。

下图显示,问答笔记和划线笔记都有一些共同的特征:

  1. 级数可选,问答笔记的第 6 级补充字段,划线笔记的第 5 级、第 6 级补充字段都不是必须的,可以根据需要灵活选择;

  2. 字段区分,第 4 级、第 5 级、第 6 级在 Anki 里显示的颜色深浅有区分, 这样即使是划线笔记也比较容易看出来哪句是题干,哪句是补充;

  3. 标签文献,通过标签显示笔记的来源即文献信息,即所属的书名、章名、节名,这个 Anki 的多级标签在电脑版浏览窗口左侧可以找到,可以就像折叠上下级牌组一样折叠和展开,并选择对应的某一章、某一节的笔记创建筛选牌组,进行专题学习和强化学习。

  4. 显示优化,作为一个强迫症人士,我以前看到超长的标签换行就会觉得非常难受,这次我把标签字段的显示效果做了修改,当内容的显示长度接近屏幕宽度时,就自动省略并弱化,而实际内容是完整的。这样既美观了,也解决了标签提前显示在正面会对笔记的回忆造成提示的麻烦。

样式

提取标签到笔记。你在幕布里通过井号记的标签,在转入 Anki 后也会成为 Anki 的标签。通过标签创建筛选牌组,你可以将不同时期、不同来源的笔记按关键词筛选到一起进行专题学习。你也可以在幕布里新建一套标签系统,例如反映难度的标签“难度高”“难度中”“难度低”,又或者是反映重要性的标签“重要性高”“重要性中”“重要性低”,又或者是反映优先级的“P1”“P2”“P3”,等等。在 Anki 电脑版的浏览窗口里,从左侧标签列表里选择标签,就可以在右侧笔记列表区筛选出该标签下的全部笔记,再进一步选择顶部菜单栏的“创建筛选牌组”(或者全选后按Ctrl+G)进行专题学习。

下图显示的是幕布里为两条笔记分别添加的标签。

下图显示的是与之对应的导入 Anki 后的笔记的标签。如前所述,在保持标签内容、标签功能的前提下,在显示时刻意将末尾省略和暗化处理,这样可以避免提前显示的标签关键词对回答问题造成提示。

支持加粗、斜体、文字颜色、文字高亮等样式,根据部分同学的反馈,默认将幕布里的样式和 Anki 里的样式保持一致,有需要的同学可以自己通过修改 Anki 模板来改变 Anki 里的显示样式,例如让幕布里的加粗笔记在 Anki 里显示为红底白色的效果。

以下是幕布里的效果。

下图显示了对应到 Anki 里的加粗、斜体、文字颜色、文字高亮的样式,都和幕布里保持一致。

值得再提的是划线的样式,到了 Anki 里对应挖空效果,可以用于划线浏览的笔记(下右),也可以用于问答笔记(下左)。

支持将幕布里的“描述”文字转入 Anki,并呈现类似的效果。图中还包含了代码块的样式,可以用来记代码,标记强调的词语等。

以下是导入 Anki 后的效果,依然默认只显示第一行,其余部分用省略号代替,当鼠标悬浮上去后才展开显示全部内容。

支持图片导入,幕布里的图片转入 Anki 后使用的是幕布的图床链接,因此即使有很多图片,Anki 里的笔记数据也不会因此变大,也不会影响同步的用时。

以下是幕布里的图片效果。

以下是导入 Anki 后的图片效果,支持单张,也支持多张图片,支持和文字一起添加,也支持直接将图片作为一条笔记。

支持数学公式导入。在幕布里从右上角菜单里打开 Markdown 编辑模式(快捷键Ctrl Shift Alt 0,即可输入 MathJax 公式,录完公式再切换回普通编辑模式。第一段公式的代码$d_2 = \frac{ln \left( \frac{S_t}{K} \right) + \left(r - \frac{\sigma^2}{2} \right)(T-t) }{\sigma \sqrt{T-t}} = d_1 - \sigma \sqrt{T-t}$,第二段公式的代码$i\hbar\frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \left[ \frac{-\hbar^2}{2\mu}\nabla^2 + V(\mathbf{r},t)\right]\Psi(\mathbf{r},t)$

以下是 Anki 里显示的效果,支持行内公式、块级公式两种形式。

导入

Anki 增强了导入功能。从原来的一次只能导入一种模板的笔记,到一次可以导入多种。并且除了支持 .csv 文件外,还支持 utf-8 编码方式的 .txt 文件。这些都让导入变得既强大又方便了。

下图是转换页面,在转换笔记完成之后又在文件头部追加了一些参数(参考资料 ),其中解释如下:

  1. 方案支持:学习骇客(xxhk.org)

  2. separator:Pipe 规定了笔记字段的分隔符

  3. html:true 规定了使用HTML格式标记

  4. tags:MB 添加统一的幕布标签

  5. columns: 规定了各列对应的字段

  6. deck column:1 规定了第一列是所属牌组名

  7. notetype column:2 规定了第二列是模板名

  8. tags column:3 规定了第三列是标签字段

我们在这套方法里根据是否包含两个连续问号“??”“??”来判断题型,有就是问答笔记,没有就是划线笔记。判断以后就会在每条笔记前面添加它对应的牌组和模板,我把问答笔记对应到“掌握”牌组和“幕布问答”模板,把划线笔记对应到“了解”牌组和“幕布划线”模板。模板可从开头导入,牌组之所以这样设计是为了迎接 Anki 新的 FSRS 算法,为不同难度或者重要性的牌组设置不同的复习间隔

有了前面的参数,我们在导入 Anki 时,在下面的导入窗口就什么都不用选了,直接点击“导入”按钮即可。笔记规定的牌组如果不存在,会在导入时创建。也别介意这两个固定的牌组名,后面会有大用。

其他

导入过的笔记可以在幕布里标记为“完成”(注意:不要仅选中标题,而是要选中已完成的标题及其下面的各级笔记),这样在重复导入时就会忽略它们。即使你不标记完成也没关系,导入时 Anki 会判断是否已经存在笔记,如果已经导入过了,也会自动忽略(结合下图的设置)。 ^ff26fr

下图显示的是导入时处理重复笔记的三种机制,选中一次后就会记住。

  1. 更新:Update,表示如果这次导入的笔记已经存在了,“现有笔记”将被新笔记更新(学习记录不变);

  2. 复制:Duplicate,表示如果这次导入的笔记已经存在了,“现有笔记”将增加一个副本(新旧笔记共存);

  3. 保留:Preserve,表示如果这次导入的笔记已经存在了,“现有笔记”将保持不变,新笔记也不导入。

幕布有非常详细的使用帮助,点击电脑网页版笔记页面的右上角就能看到“快捷键列表”“使用教程”和“帮助中心”,其中“快捷键列表”几乎就是最全、最简单的使用教程了。先从常用的开始,再慢慢熟悉其他功能,就能把幕布用好了。

只支持 6 级属于通用标准,就像 Markdown 语法只支持 6 级一样。如果你的内容有较多层级,可以将一些合并起来,比如把 1 和 2 合并成 1级;如果层级较少,也可以自己填充内容占位,比如把作者名作为第 2 级,等等。

在幕布里固定前三级是为了在 Anki 里生成多级标签。如下图所示,卡片复习界面的标签对应电脑版 Anki 浏览窗口左侧的多级标签,可以层层展开,可以快速找到某一章节的笔记,并使用“创建筛选牌组”进行无痕的强化学习、专题学习。多级标签具有类似于多级牌组一样的树状效果,但规避了牌组分得太细的缺点

导入的笔记其实带有 HTML 标签,正是这些标签在呈现笔记的各种颜色、高亮、加粗等样式。如果要精确修改导入过的笔记的样式,需要进入 HTML 模式编辑(快捷键Ctrl Shift X)在标签之间修改文字。

笔记导入 Anki 后的样式与幕布里保持了一致,但这其实是可以通过修改 Anki 模板来改变的,比如将原来的加粗效果修改成红底白字的高亮样式等。但为了不再增加理解负担,暂时不予展开,日后如果有需要再专门写一篇文章来解释。

我断断续续学习前端编程也有几年了,但因为实践机会就仅限于 Anki 的模板,所以学得很浅。这次接着开发幕布转 Anki 的工具,体验了一把产品导向的学习过程。基于一点点基础,借助 ChatGPT 编写代码,但它搞不了太复杂甚至是太长的代码,于是就一边写、一边测、一边调,熬了几个大夜后终于出炉了。

项目导向的学习有两个好处,一是告诉你要学什么,二是把要学的内容串联起来,所以学习效果更好。而平时没有目的的学习就只能什么都学,且没有一条主线,就像试图通过背汉语词典学好语文一样,效果往往是事倍功半。

欢迎大家试用和反馈问题。

导入模板:https://xxhk.org/akmb

测试素材:https://www.mubu.com/doc/6ZWIr0a-pVK

在线转换:https://i.xxhk.org/mubu2anki.html

更新地址:https://xxhk.org/mubu2anki

补充

如何让安卓手机上的 .txt 导入文件自动用 Anki 打开:安卓版 和 iOS 版不一样,iOS 版可以点击 .txt 文件后自动跳转到 Anki,而安卓版需要从软件内部选择导入。安装最新版,然后到 设置-高级设置 底部开启“使用新后端”和“使用 v3 调度器”。然后回到 Anki 主界面,点击右上角的菜单,找到“导入”按钮,就能导入.txt文件了。 ^o4k473

调整幕布笔记里同级节点(如并列的 3 条答案)进入 Anki 后的段落间距: ^vgvf6u

  1. div._mubu_note下的 CSS 样式是针对笔记节点的;

  2. margin-top表示调整段落前面的间距,后面的单位是像素,数值可以自由调整;

  3. 同理margin-bottom调整的是段落后面的间距。