思源的剪藏非常好用,经常保存一些英文文章下来看。但是对于生词只能进行标注,而不能有一个集中的位置进行复习。
我尝试过将生词所在的块引用,全部集中在一个文档块里。这非常耗时间,而且不美观,也不能与间隔重复进行配合。
各位大佬有没有什么解决方法或思路?
思源的剪藏非常好用,经常保存一些英文文章下来看。但是对于生词只能进行标注,而不能有一个集中的位置进行复习。
我尝试过将生词所在的块引用,全部集中在一个文档块里。这非常耗时间,而且不美观,也不能与间隔重复进行配合。
各位大佬有没有什么解决方法或思路?
我希望能够记录单词,然后对释义制卡。
但是如果能将记录的文章和生词本结合在一起就非常方便了。
我是这么用的:
1.一个段落制一张卡;
2.用“备注”功能给生词标注释;
3.闪卡复习,评分,等待下次一复习即可。
特点:
1.形式上不是“正面单词,背面释义”,但都能实现“看单词想释义”的目的。
2.一次复习“一捆”单词,而不是完全孤立的单词。
自己用下来效果良好,这种按段落复习单词,不会丢失单词原有的使用语境。
对于生词只能进行标注,而不能有一个集中的位置进行复习。
答:生词本可以通过文档树构建(思源的闪卡机制:复习父文档,将包含子文档的闪卡)。
举例,上图”历年真题“为父文档,对其选择”重复间隔“,将复习包含子文档的所有闪卡,从而实现生词本(集中复习)的功能。
根据文档树的特性,理论上这种生词本可以无限套娃,其实更加灵活,供参考~
Alt+[
快捷键新建文档或引用已有的生词文档我希望能够记录单词,然后对释义制卡。
但是如果能将记录的文章和生词本结合在一起就非常方便了。
我是这么用的:
1.一个段落制一张卡;
2.用“备注”功能给生词标注释;
3.闪卡复习,评分,等待下次一复习即可。
特点:
1.形式上不是“正面单词,背面释义”,但都能实现“看单词想释义”的目的。
2.一次复习“一捆”单词,而不是完全孤立的单词。
自己用下来效果良好,这种按段落复习单词,不会丢失单词原有的使用语境。
对于生词只能进行标注,而不能有一个集中的位置进行复习。
答:生词本可以通过文档树构建(思源的闪卡机制:复习父文档,将包含子文档的闪卡)。
举例,上图”历年真题“为父文档,对其选择”重复间隔“,将复习包含子文档的所有闪卡,从而实现生词本(集中复习)的功能。
根据文档树的特性,理论上这种生词本可以无限套娃,其实更加灵活,供参考~
主要功能是通过 sql 查询挂件来实现的,相关的 sql 如下,因为我这个是韩语的生词本,所以针对韩语词尾变形作了优化,英语、其它语言的话,相应修改就行。
WITH RECURSIVE
hanyi_blocks(id, parent_id, root_id, content, type, subtype, level) AS (
SELECT id, parent_id, root_id, content, type, subtype, 0
FROM blocks
WHERE type = 'h' AND content = '汉义' AND subtype = 'h3'
UNION ALL
SELECT b.id, b.parent_id, b.root_id, b.content, b.type, b.subtype, hb.level + 1
FROM blocks b
JOIN hanyi_blocks hb ON b.parent_id = hb.id
WHERE hb.level < 5 -- 限制递归深度,防止查询过大
),
ciyuan_blocks(id, parent_id, root_id, content, type, subtype, level) AS (
SELECT id, parent_id, root_id, content, type, subtype, 0
FROM blocks
WHERE type = 'h' AND content = '词源' AND subtype = 'h3'
UNION ALL
SELECT b.id, b.parent_id, b.root_id, b.content, b.type, b.subtype, hb.level + 1
FROM blocks b
JOIN ciyuan_blocks hb ON b.parent_id = hb.id
WHERE hb.level < 5 -- 限制递归深度,防止查询过大
)
SELECT
'[' || b.content || '](siyuan://blocks/' || b.id || ')' AS __1____pre__单词,
(
SELECT GROUP_CONCAT(cb.content, '
')
FROM hanyi_blocks cb
WHERE cb.root_id = b.id AND cb.type = 'p' -- 只选择段落类型的块
ORDER BY cb.id
) AS __2____pre__汉义,
(
SELECT GROUP_CONCAT(cb.content, '
')
FROM ciyuan_blocks cb
WHERE cb.root_id = b.id AND cb.type = 'p' -- 只选择段落类型的块
ORDER BY cb.id
) AS __3____pre__词源,
b.created AS __4____date__创建日期
FROM
blocks AS b
WHERE
b.type = 'd'
AND b.content REGEXP '^[\x{AC00}-\x{D7AF}\s]+$' -- 筛选文档标题为纯韩语字符(允许空格)
AND EXISTS (
SELECT 1
FROM blocks hb
WHERE hb.parent_id = b.id AND hb.type = 'h' AND hb.subtype = 'h3' AND hb.content = '汉义'
)
ORDER BY
b.created DESC
LIMIT 1000
WITH RECURSIVE
current_document AS (
SELECT
content AS title,
CASE
WHEN content LIKE '%다' THEN substr(content, 1, length(content) - 1)
ELSE content
END AS root
FROM blocks
WHERE id = '.root{.id}' -- 获取当前文档的ID
),
vowel_changes(from_vowel, to_vowel) AS (
SELECT '이', '여' UNION ALL
SELECT '으', '어' UNION ALL
SELECT '아', '어' UNION ALL
SELECT '오', '와' UNION ALL
SELECT '우', '워' UNION ALL
SELECT '이', '에' UNION ALL
SELECT '지', '져' UNION ALL
SELECT '치', '쳐' UNION ALL
SELECT '비', '벼' UNION ALL
SELECT '피', '펴' UNION ALL
SELECT '기', '겨' UNION ALL
SELECT '키', '켜' UNION ALL
SELECT '시', '셔' UNION ALL
SELECT '디', '뎌' UNION ALL
SELECT '티', '텨' UNION ALL
SELECT '히', '혀' UNION ALL
SELECT '미', '며' UNION ALL
SELECT '니', '녀' UNION ALL
SELECT '리', '려'
),
possible_changes(original, changed, level) AS (
SELECT root, root, 0
FROM current_document
UNION ALL
SELECT
pc.original,
substr(pc.changed, 1, instr(pc.changed, vc.from_vowel) - 1) ||
vc.to_vowel ||
substr(pc.changed, instr(pc.changed, vc.from_vowel) + length(vc.from_vowel)),
pc.level + 1
FROM possible_changes pc
JOIN vowel_changes vc
WHERE pc.changed LIKE '%' || vc.from_vowel || '%'
AND pc.level < 2 -- 限制递归深度
)
SELECT DISTINCT
'[' || replace(b.content, pc.changed, '==' || pc.changed || '==') || '](siyuan://blocks/' || b.id || ')' AS __1____pre__例句,
b.hpath AS __2__文档路径,
cd.title AS __3__搜索词,
pc.changed AS __4__匹配形式
FROM
blocks AS b,
current_document cd,
possible_changes pc
WHERE
b.type = 'p'
AND b.hpath LIKE '%韩语%'
AND (
b.content LIKE '%' || pc.changed || '%'
OR b.content LIKE '%' || pc.changed || '다%'
OR b.content LIKE '%' || pc.changed || '어%'
OR b.content LIKE '%' || pc.changed || '아%'
OR b.content LIKE '%' || pc.changed || '여%'
OR b.content LIKE '%' || pc.changed || '야%'
)
AND b.root_id != '.root{.id}' -- 排除当前文档
GROUP BY b.id
ORDER BY
b.path
LIMIT 30
WITH subpages AS (
SELECT id, content, path
FROM blocks
WHERE type = 'd' AND path LIKE '%/.block{.root_id}/______________-_______.sy'
)
SELECT
'[' || s.content || '](siyuan://blocks/' || s.id || ')' AS __1____pre__单词,
(SELECT b1.content
FROM blocks b1
WHERE b1.root_id = s.id
AND b1.type = 'p'
AND b1.parent_id = (SELECT id FROM blocks WHERE root_id = s.id AND type = 'h' AND content = '汉义' AND subtype = 'h3')
LIMIT 1) AS __2____pre__汉义
FROM subpages s
ORDER BY s.path
LIMIT 100
试过类似的,但是实践中容易吃灰。
因为我的知识库都建在思源,再用一个软件做额外的记录储存反而让步骤变得繁琐,增加了学习成本。
不过因人而异,适合自己的就是最好的,我的分享仅作抛砖引玉 😋
你说的有道理,context 更新太慢了,我也打算试试 🫡 请教一下你目前单词卡大概积累了多少了?有遇到过问题吗
jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。
Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。
Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。
flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。
知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。
Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。
小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。
记录并分享人生的经历。
Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。
Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。
Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。
安全永远都不是一个小问题。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。
好记性不如烂笔头。
WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。
锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。
VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。
Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。