思源的剪藏非常好用,经常保存一些英文文章下来看。但是对于生词只能进行标注,而不能有一个集中的位置进行复习。
我尝试过将生词所在的块引用,全部集中在一个文档块里。这非常耗时间,而且不美观,也不能与间隔重复进行配合。
各位大佬有没有什么解决方法或思路?
思源的剪藏非常好用,经常保存一些英文文章下来看。但是对于生词只能进行标注,而不能有一个集中的位置进行复习。
我尝试过将生词所在的块引用,全部集中在一个文档块里。这非常耗时间,而且不美观,也不能与间隔重复进行配合。
各位大佬有没有什么解决方法或思路?
我希望能够记录单词,然后对释义制卡。
但是如果能将记录的文章和生词本结合在一起就非常方便了。
我是这么用的:
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
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。
PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。
用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖。
用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/
让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
新手上路,请谨慎驾驶!
据说 99% 的性能瓶颈都在数据库。
WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
发布对别人有帮助的原创内容是最好的 SEO 方式。
你若安好,便是晴天。
Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。
Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
Open Source, Open Mind, Open Sight, Open Future!
Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。
ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。
CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。