我在学 CS106B 这门课,我把课程相关的资料和笔记放到了 Su 中渐进阅读。
内容按树形结构组织,例如 Lectures 是一个分支,Assignments 是另一个分支。
有一篇文章《测试和 SimpleTest 框架》,我将其保存为一个 Topic,放到了 Lecture 3 这个 Topic 的下一个层级。
在 Assignment1 中,也提到了这篇文章。我同时也想把这篇文章放到 Assignment1 这个 Topic 的下一个层级,这样,在做作业的时候就可以很清晰地知道、查阅我完成此次作业所依赖的资源。
这时我想,要是 SuperMemo 有软件 DevonThink 的文件“分身”功能就好了,一个文件可以放到多个文件夹中,但是只会存在一个副本,而不是每个文件夹中都有一个副本。
基础
SuperMemo 中没有这个功能,但是 Su 可以在一个元素中插入到另一个元素的链接,就跟超链接一样,点击后可以跳转到另一个元素的页面。
Su 中的元素,无论是 Topic 还是 Item,本质上都是一个 html 页面。
最后我的做法是:
在 Lecture 3 这个 Topic 的子级添加一个新的空白 Topic,里面写一些文字,如“链接 - 测试和 SimpleTest 框架”;然后插入一个指向“测试和 SimpleTest 框架”这个 Topic 的链接,具体做法:
在“链接 - 测试和 SimpleTest 框架”页面的文本编辑框里,点鼠标右键,Insert html link,Element。此时会自动打开“目录树(Contents)”,点击要链接到的元素(在这里是“测试和 SimpleTest 框架”这个 Topic),然后点击“目录树(Contents)”窗口下方的 Accept 按钮,会在“链接 - 测试和 SimpleTest 框架”页面的文本编辑框里光标所在位置插入一个 “Link”。
将光标放在这个“Link”上,点鼠标右键,Open in new window,页面会跳转到链接到的页面。
点击 Su 主窗口上方、菜单栏下方的那一排按钮里面的“⇐”按钮,可以回到原来的页面。
深入
在“链接 - 测试和 SimpleTest 框架”页面按 Ctrl + F9,打开 html 页面源代码,可以看到刚刚插入的“Link”是这样的:
<A href="file:///D:/SyncUnison/SuperMemo/collectionA/ABC%20of%20SuperMemo%2019/temp/SuperMemoElementNo=(4945)">Link</A>
在href
里是一个“绝对路径”。按网友的说法,可以精简为:
<A href="SuperMemoElementNo=(4945)">Link</A>
经测试,可用。
也就是说,只要知道要链接到的元素的编号,就可以构造一个指向它的链接了。
获得元素的编号
两个方法:
- 快捷键 Ctrl + G 可以获得当前元素的编号。
- 在目录树中选中某元素,然后按 Ctrl + C,可以复制该元素的一些信息,其中可以提取出元素编号。
快捷键 Ctrl+G
- go to an element with a given number (see the caption of Element data window)
- 转到具有给定数字的元素(参见元素数据窗口的标题)
- in the registry window: select a registry member by its physical position in the registry
- 在注册表窗口中:根据注册表中的物理位置选择注册表成员