思源作为本地图床导入材料至 SuperMemo,以网页为例

本贴最后更新于 334 天前,其中的信息可能已经东海扬尘

SuperMemo 自带的材料导入方式有两种:复制黏贴与网页导入(web import)。不过,这个不太重要,材料导入的重点并不在这里,即使是网页文件也可以使用复制黏贴,同时,由于我这篇文章 SuperMemo 基本元素与渐进阅读 | 个人踩坑经验 - 知乎 (zhihu.com)提到的网页导入会自带 reference 的原因,我几乎不会使用这种方式来导入材料。

  我认为 SuperMemo 导入图文的重点如下:

  1. 对于文字,我们需要快速的从原材料选取所需要的部分,以及去除它的样式。
  2. 对于图片,保证其不受文件路径影响正常显示。

  对于新手,在不确定结果的情况下,尽量将处理相关的操作放在软件外面,在 SuperMemo 里进行一些设计之外的操作,基本是多只香炉多只鬼,很容易出问题。

  我这边就不做什么系统的梳理,罗列分析目前的各种方法有什么利弊了,反正到最后也是为了推荐我目前在使用的方法。

image.png

用思源配合导入网页

  这个方法的核心思路就是先把网页导入到思源笔记,再从思源笔记导入到 SuperMemo。

  对于文字,使用剪藏扩展 webclipper,使用智能提取可以将主流网页的主要内容提取到思源。即使,扩展不支持智能提取,我们也可以使用手动提取的方式来选取自己想要的内容。同时,保存到思源的内容已经是不带原格式的(思源的文档原先采用的是 md 格式,现在采用的.sy 文件是 json)。这就将选取内容与去除格式的压力转移给了外部。

image.png

Web Clipper - Chrome 应用商店 (google.com)

  对于图片,如若我们直接复制网页到 html,里面的图片文件是 img 标签的形式,这会带来一些问题:1.如果设备没有联网,图片也就无法显示。2.网络都是虚拟的,天知道这些网页链接什么就失效了,你把握不住。

  如果想要通过下载图片到本地来解决这个问题,又会遇到一堆七七八八图片绝对相对路径的问题。

  而思源在运行的时候会打开本地端口 6808,你可以通过 http://127.0.0.1:6806 来访问自己的笔记,最重要的是所有的本地资源文件是通过 http://127.0.0.1:6806/assets/* 来访问的,当你从思源导入材料,其中的图片是类似 <img src="http://127.0.0.1:6806/assets/*.png"> 形式的 img 标签,真正做到了只管理链接,不管理图片本体,也大大减少了图片在 SuperMemo 中出问题的可能性,也减小了 SuperMemo 集合的备份压力。

image.png

思源的图片资源链接 ↑

image.png

在 SuperMemo 中的显示效果 ↑

image.png

SuperMemo 中实际保存的信息 ↑

  如果你不了解 html 相关的知识,你可以理解为通过思源导入的图片在 SuperMemo 的卡片中只是一行代码,这行代码的意思是,这边应该显示一张图片,图片在 src=后面的地址里,这个地址里的图片是由思源本地提供的。

  这就是我为什么在第一篇文章说,我会在 reference 专门设置一个 link 指向对应的思源笔记,同时,保留一个原材料在思源里,也方便我其他相关的笔记对其进行引用,一定程度上能解决所谓的碎片化问题。

  在从思源导入材料到 SuperMemo 之前,我们需要做一点点准备:

  1. 去思源的设置里打开显示网络角标的选项

    image.png

    image.png

  复制网络图片的时候,思源默认是不下载本地的,打开这个选项后,如果是没有下载到本地的网络图片,左上角会有一个标识。

  1. 确定要将图片下载到本地,点击左上角的 更多-网络图片转换为资源文件

image.png

  将网络图片下载到本地后,我们就可以导入到 SuperMemo 里了,要用到下面这个动作:

SY 文章->SM - by Spade7 - 动作信息 - Quicker (getquicker.net)

  具体操作为:

  1. 如果有需要的话,在 SuperMemo 设置好 concept
  2. 在思源打开想要导入到 SuperMemo 的文章
  3. 运行动作,会进入到这篇文章的预览模式
  4. 用鼠标选中想要导入的部分,因为这个模式没有全选操作,不能用 ctr+a,所以,如果要导入全文,我一般用鼠标在开头点一下,按键盘上的 end 键跳到最下面的位置,按住 shift 再点一下末尾就可以全选文章
  5. 选好要导入的部分后,按 ctrl+c,会跳到 SuperMemo 新建文章再跳回思源

  这个本地图床的思路是由 @dammy 老铁提出的,动作也是他制作出来的,极大提升了 SuperMemo 材料导入的体验,解决了图片导入的痛点,在这里向他表示感谢。

将思源作为本地图床

  如果只是想在自己写卡的时候以上面的形式插入自选的图片,单纯把思源作为本地图床也是可以实现的,需要专门建立一个文档,里面什么也不要写,只放自己需要插入的图片。具体操作,参考下面这个视频:

  

  需要用到这个动作:

  插入图片到 sm(网页已更新教程) - 动作信息 - Quicker (getquicker.net)

  图床的视频教程与动作由 sm 群友 @bluebair 提供,向他表示感谢。

  在 SuperMemo 内部如果有清除格式的需求,可以使用撑起 SuperMemo-Quicker 动作半边天的 a 佬的动作

  终极格式清除 - 动作信息 - Quicker (getquicker.net)

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    24506 引用 • 100278 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 😄 很棒,在学习了解思源和 sm 的时候,我深刻感受到工具应该减轻使用者的心智负担,而不是成为一种桎梏。它是脚手架而非枷锁,思源和 sm 就是转移我学习时压力的工具,而思源又能转移 SM 本身缺陷带来的压力,这才是个人成长学习系统该有的样子。

    赞美你的经验分享,Spade7 同志。

    1 回复
  • Spade7 1 1 赞同

    哈哈,相互分享,共同进步,如果没有叶哥,也接触不到 SuperMemo;没有各位制作动作的朋友,使用体验也不会像现在这么友好。希望分享精神在间隔重复圈子和思源社区能不断传递。

  • 👍 顶

  • hyouka

    好像不支持固定 6806 端口了? supermemo 这下怎么图片链接联动

    1 回复
  • Spade7

    现在是原来的 6806+ 一个随机端口一起监听,除非 6806 被占了才会失效

  • 不知道是什么原因,我思源导入进去的笔记图裂了 😭 我没搞明白,大家还有没有什么好办法连带着图片给他导进去的,而不是作为一个链接

    1 回复
  • Spade7

    我大概知道原因,是因为在思源的 2.7.1 版本更新中,为了避免打开思源的时候,原来的 6806 固定端口被占用,改成了,开启 6806 端口的同时,会打开另外一个随机端口。

    如下图,此时随机端口为 54300:

    image.png

    但同时在导出预览的页面中复制出来的图片链接端口为随机端口,而非之前的 6806 端口,而下一次打开思源的时候随机端口变动了,自然无法显示图片。

    我去发个帖子提一下这个问题,不知道能不能为了这个用法的 SuperMemo 用户更改一下。

    目前的解决方法是,更改 sm 的卡片源文件把端口号改为 6806

    1 回复
  • 谢谢 ❤️ ,在看到回复前,我使用了一个方法:思源笔记导出为 HTML 文件,并保存在一个固定的地方,再通过 IE 导入 SM,即使更换设备,也保证位置及存储内容跟随移动,以此保证导入内容的稳定性

    我感觉这个方法是很稳妥简单的,但是我很奇怪并没有在网络上看到过对此的说明,因为我没有相关的知识好不容易才明白了 SM 存储导入的逻辑 😂

    1 回复
  • Spade7

    有的,这篇文章的第二个就是你这种方法 SuperMemo 的 epub 导入方案介绍及发展历程 - 知乎 (zhihu.com),正是因为要保证路径完全一致,才不想使用这种方式,比如,之前放在 E 盘,换的新设备却可能没有 E 盘。

  • linyuanmuyu

    大佬,我这边出现个问题,用这种方法其他都成功了,但是链滴文章中导入思源,思源把图片本地化,quicker 发到 SM,就无法显示,其他网站的文章都可以的

    1 回复
  • Spade7

    得加一步了。

    在思源的 2.7.1 版本更新中,为了避免打开思源的时候,原来的 6806 固定端口被占用,改成了,开启 6806 端口的同时,会打开另外一个随机端口。

    但同时在导出预览的页面中复制出来的图片链接端口为随机端口,而非之前的 6806 端口,而下一次打开思源的时候随机端口变动了,无法显示图片。

    目前的解决方法是,更改 sm 的卡片源文件把端口号改为 6806。

    1 回复
  • flowers

    的确如此,最近导入 supermemo 的图片都挂了,找了一圈才找到这个正确回答,大佬现在有什么初步设想吗?我看网络上提出的一种解决方法是用 vscode 批量的改--但是一次也只能改一个 topic。

    1 回复
  • Spade7

    更改的话,用 vscode 打开更上一级的文件夹,然后批量修改:

    用正则匹配 http:\/\/[0-9.]+:(.*?)\/assets 替换为 http://127.0.0.1:6806/assets

    1 回复
  • flowers

    楼主厉害。我也想到了一个方法,既然是因为端口被占用导致的本地化图片时端口不对,那我们可以在用动作添加图片及文章进 SuperMemo 中时用端口检查命令在 cmd 中检查一下,如果端口没有被占用,此时思源应该还是使用的默认端口(没看源码,存疑),如果端口被占用,则直接结束占用该端口的进程。

    以下是检查端口的命令(gpt 生成的):

    在 Windows 中,你可以使用 netstat 命令来查看一个端口是否被占用。以下是具体的步骤:

    1. 打开命令提示符(Command Prompt)。你可以在开始菜单中搜索"cmd"来找到它。
    2. 在命令提示符中,输入以下命令并按回车键:
    netstat -ano | findstr :6806
    

    这个命令会显示所有使用该 6806 端口的进程。如果没有任何输出,那么这个端口就没有被占用。

    如果你看到了输出,那么你可以通过最后一列的 PID(进程 ID)来找出哪个进程正在使用这个端口。你可以在任务管理器(Task Manager)的"详细信息"(Details)标签下,通过 PID 来找到对应的进程。

    2 回复
  • Spade7

    问题在于 6806 是否有被占用,思源都会打开 6806+ 随机 双端口,而从 导出预览 里复制出来的图片链接一定是随机端口。最好的方式应该是 把原 quicker 脚本更改一下,复制的时候能够自动替换成 6806,有空我看看能不能实现。老铁你也可以尝试一下,看能不能改出来

  • Spade7

    改好了

    SY 文章->SM - by Spade7 - 动作信息 - Quicker (getquicker.net)

    使用这个动作导入的图片应该是 6806

    1 回复
  • flowers

    厉害了楼主,切切实实用行动提升了 supermemo 的用户体验,赞赞赞

  • tafen

    发现只有 jpg 格式的图片才能在 sm 中正常显示,有些网页的图片用思源保存后不是 jpg 格式,请问有办法解决吗

    1 回复
  • Spade7

    试了一下,没有这个问题,png 可以正常显示

请输入回帖内容 ...

推荐标签 标签

  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖 • 1 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 1 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 158 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 721 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 13 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖 • 2 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 650 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • Anytype
    3 引用 • 31 回帖 • 13 关注
  • 996
    13 引用 • 200 回帖 • 4 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 544 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 652 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 684 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 18 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 248 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 107 关注
  • Excel
    31 引用 • 28 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 175 关注
  • 安全

    安全永远都不是一个小问题。

    203 引用 • 816 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 72 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 649 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 138 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 4 关注