是否有人用思源实现了生词本?

思源的剪藏非常好用,经常保存一些英文文章下来看。但是对于生词只能进行标注,而不能有一个集中的位置进行复习。

我尝试过将生词所在的块引用,全部集中在一个文档块里。这非常耗时间,而且不美观,也不能与间隔重复进行配合。

各位大佬有没有什么解决方法或思路?

  • 思源笔记

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

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

    22337 引用 • 89380 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8112 引用 • 37001 回帖 • 160 关注

相关帖子

被采纳的回答
  • JOYCELEEEEE 2

    我希望能够记录单词,然后对释义制卡。

    但是如果能将记录的文章和生词本结合在一起就非常方便了。

    我是这么用的:

    1.一个段落制一张卡;

    2.用“备注”功能给生词标注释;

    3.闪卡复习,评分,等待下次一复习即可。

    特点:

    1.形式上不是“正面单词,背面释义”,但都能实现“看单词想释义”的目的。

    2.一次复习“一捆”单词,而不是完全孤立的单词。

    自己用下来效果良好,这种按段落复习单词,不会丢失单词原有的使用语境。


    对于生词只能进行标注,而不能有一个集中的位置进行复习。

    答:生词本可以通过文档树构建(思源的闪卡机制:复习父文档,将包含子文档的闪卡)。

    202409142223.jpg

    举例,上图”历年真题“为父文档,对其选择”重复间隔“,将复习包含子文档的所有闪卡,从而实现生词本(集中复习)的功能。

    根据文档树的特性,理论上这种生词本可以无限套娃,其实更加灵活,供参考~

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
    1. 将块引新建文档路径设置到某个父文档下
    2. 遇到生词时按 Alt+[ 快捷键新建文档或引用已有的生词文档
    3. 所有新建的生词文档就都集中在你设置的某个父文档下
    4. 在父文档中使用目录插件插入子文档块引
    1 回复
  • 其他回帖
  • chouann

    我的灵感来自于集市里的单词本模板,在那个基础上进行了自己的修改,可以参考一下。
    每篇文章中,自动汇总这篇文档的生词(原理是搜寻这篇文章的子文章)
    image.png

    每个生词就是一页,可以自动全局搜索文章中的例句:

    image.png

    有一个单词本的页面进行所有生词的汇总:

    image.png

  • chouann

    主要功能是通过 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
    
  • JOYCELEEEEE 1

    我闲鱼上买的 word 版,用集市里的插件导入就可以了。

    手头这个是去年买的,不全,你自己可以去搜罗一下。

  • 查看全部回帖

推荐标签 标签

  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 58 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 67 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 134 关注
  • 星云链

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

    3 引用 • 16 回帖
  • Jenkins

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

    53 引用 • 37 回帖
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    8 引用 • 30 回帖 • 407 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 94 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 51 关注
  • C++

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

    107 引用 • 153 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 995 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 62 关注
  • OnlyOffice
    4 引用 • 3 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 16 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    125 引用 • 169 回帖 • 1 关注
  • Log4j

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

    20 引用 • 18 回帖 • 31 关注
  • 安全

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

    199 引用 • 816 回帖 • 1 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 1 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1434 引用 • 10054 回帖 • 490 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 283 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 362 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 463 关注