思源笔记 + RSS

本贴最后更新于 370 天前,其中的信息可能已经事过境迁

siyuan_feed 插件

下面文档已过时,最新文档点击这里

使用文档

  1. 对任意一个容器块添加 feed 书签
  2. 在他的子块中创建一个以 feed: 开头的容器块,
    1. 该容器块内的以 feed: 开头的子块声明了 feed 的链接地址
    2. 该容器块内的以 cron: 开头的子块声明什么时候对该链接进行更新检查
    3. 例如下方的列表块就是一个以 feed: 开头的容器块并且声明了链接地址和更新时间(每天晚上八点 1 分检查一次),
      • feed:http://www.ruanyifeng.com/blog/atom.xml
      • cron:1 20 * * * 需要注意的是,上方链接后面不可有其他文字,会全部当做 url
        • 此属性是可选的,你可以不显式声明,插件会采取默认值 1 * * * * 每小时的第一分钟进行一次检查
        • 此处需要使用行内代码来输入 cron 表达式,因为和思源的语法有冲突,表达式语法如下
      • * * * * *
        | | | | |
        | | | | +----- 星期几 (1 - 7) (星期天为 7)
        | | | +------- 月份 (1 - 12)
        | | +--------- 日期 (1 - 31)
        | +----------- 小时 (0 - 23)
        +------------- 分钟 (0 - 59)
        
        注意!!这个 cron 表达式仅支持数字和*表达,不支持更高级的特性
        
  3. 会从 feed 链接获取数据和本地数据比对之后,将本地没有的新更新的文章都会放置在容器块 A:对任意一个容器块添加 feed 书签 的子容器块 B:在他的子块中创建一个以 feed: 开头的容器块 的后侧
  4. 通过嵌入块 sql 查询未读文档
    1. 所有订阅文章的 md 都是以 * [ ] ##... 或 * [X] ##... 开头的(所以不要随意改动插件生成的文档,否则可能重复生成)
    2. 熟悉 md 语法的一下子就能够知道我们只要查询具有 feed 书签的块的子块并且该子块以 * [ ] ##... 开头即是未读文档
    3. 然后通过 询问 ChatGPT 得到如下 sql
      1.  SELECT *
               FROM (
                   SELECT b.*
                   FROM blocks AS b
                   JOIN attributes AS a ON b.parent_id = a.block_id
                   WHERE a.name = "bookmark" AND a.value = "feed"
               ) AS subquery
         WHERE subquery.markdown LIKE '* [ ] #%'
        
    4. 将该 sql 复制到嵌入块的查询语句中即可得到如下效果,主要获取了 标题、链接、发布时间、更新时间、摘要,然后如果阅读后有什么感想也可以记在该标题块的最后面
      图片.png
  5. 在阅读完文章之后勾选标题前面的任务框,等待思源笔记更新嵌入块即完成了一整套使用思源笔记订阅 rss 源的过程

示例

阮一峰的网络日志

  • 思源笔记

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

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

    23000 引用 • 92498 回帖 • 2 关注
  • RSS
    10 引用 • 75 回帖
1 操作
llej 在 2023-12-17 17:03:32 更新了该帖

相关帖子

25 回帖

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 大佬,牛逼

  • 似乎并没有解析 cron 的值

    1 回复
  • 可以复制你的 cron 那行给我试试吗

  • zxhd86 1 评论
    * feed:http://www.ruanyifeng.com/blog/atom.xml
    * [ ] ###### [科技爱好者周刊(第 280 期):机器点餐与宅文化](http://www.ruanyifeng.com/blog/2023/12/weekly-issue-280.html)
    
      * published:2023-12-01T00:14:11Z
      * updated:2023-12-14T03:45:39Z
    
      > 这里记录每周值得分享的科技内容,周五发布。...
      >
    * [ ] ###### [科技爱好者周刊(第 281 期):新基建的政策选择](http://www.ruanyifeng.com/blog/2023/12/weekly-issue-281.html)
    
      * published:2023-12-08T00:10:30Z
      * updated:2023-12-15T01:01:34Z
    
      > 这里记录每周值得分享的科技内容,周五发布。...
      >
    * [ ] ###### [科技爱好者周刊(第 282 期):电动皮卡 Cybertruck 的 48V 供电](http://www.ruanyifeng.com/blog/2023/12/weekly-issue-282.html)
    
      * published:2023-12-15T00:15:00Z
      * updated:2023-12-15T09:21:36Z
    
      > 这里记录每周值得分享的科技内容,周五发布。...
      >
    * cron:`55 * * * *`
    

    设定的时间没有起效,刚刚达到了默认时间起效了。

    1 回复
    如果你这个中间的是刚刚插件加载出来的话,应该是你的 cron 和 feed 不在同一个容器块中导致的,也就是说他们应该是同一个列表中的不同的列表项
    llej
  • 确实应该存在 bug ,我去修会儿

  • @zxhd86 感谢你的提醒,让我在测试中发现了代码的一个 bug ,修复于 https://github.com/2234839/feed_siyuan_plugin/commit/a5947931cb8b1cd4668c8926e2f193add65aa80b

    但 cron 工作的是很正常的,请检查你的 cron 配置是否符合这样的层级结构

    图片.png

    1 回复
  • 在思源中的样子是这样的:

    图片.png

    需要加在标题块中吗?

    1 回复
  • llej 1 评论

    最好时加个标题块,你这样弄的话,应该在 feed 的那个列表项中在添加一个下级列表,例如:

    图片.png

    之所以需要这样一个层级,而不是按你的预想是因为需要检查笔记中是否已经存在了之前拉取的博客链接,如果没有一个能够确定的父级的话,而是依靠平级关系来检查的话会增加很多没必要的复杂度,通过 sql 进行一些分类的高级查询也是估计无法做到了(例如只查看阮一峰的未读博客)

    feed 书签是设置在最外层的列表容器上
    llej
  • 我更新了一下文档说明

    图片.png

  • llej

    2023-12-16 21:40:55

  • zyu318

    @llej 下载了新版, 无论是设定时间还是使用面板命令都不可以.是我的设置有什么问题吗? 帮忙看下

    image.png

    1 回复
  • llej

    图片.png你的中间多了一个层级,将 feed: cron: 放在 『 测试』 那一层,feed: 放在这层最开头

  • jidenanian

    不行啊,大佬,完全没反应

    1 回复
  • llej

    你好,我添加了新的文档说明,你可以尝试一下看能否解决

    入门文档

    复制下方文本,以 markdown 的形式粘贴到思源笔记内

    ## 阮一峰的网络日志  (手动在这个标题上添加书签:feed)
    
    * feed:http://www.ruanyifeng.com/blog/atom.xml
    * cron:`1 20 * * *`  需要注意的是,上方链接后面不可有其他文字,会全部当做url
    

    现在你应该能得到:

    图片.png

    给标题添加书签 feed ,得到:

    图片.png

    然后重启思源或将插件关闭再开启(插件只有在启动的时候才会扫描所有 feed 块)

    同时按下 shift+alt+p 运行下面这个命令

    图片.png

    现在你应该能看到

    图片.png

    如果没有看见的话请尝试按 F5 刷新一下当前页面,还不行的话联系我吧:子虚的联系方式

  • w8s2y0 1 1 评论

    请问支持手机伺服状态下使用吗?使用网页安装了插件,按照步骤来,发现命令面板没有该命令

    image.png

    你好,手机应用内应该是支持的,伺服状态存在问题,我刚刚进行了修复,等 15 点后思源集市内更新至 0.0.6 版本就应该可以了,谢谢反馈
    llej
  • Jahzeds 1 评论

    没弄成功,是右上角书签不对吗

    image.png

    1 回复
    你这个是标签
    llej
  • llej

    是给块属性的书签属性设置为 feed,

    1 回复
  • Jahzeds 1 评论

    image.png

    这里还需要设置什么吗

    设置好书签就行了,然后现在你可以选择在文档中定义 feed url 等属性,也可以新建一个数据库,选择该块作为主键然后定义属性
    llej
  • Jahzeds

    看不懂了,都搞了一遍

    一个没成功

    image.png

    2 回复
  • llej
    ## 阮一峰的网络日志  (手动在这个标题上添加书签:feed)
    
    * feed:http://www.ruanyifeng.com/blog/atom.xml
    * cron:`1 20 * * *`  需要注意的是,上方链接后面不可有其他文字,会全部当做url
    

    复制上方文本,以 markdown 的形式粘贴到思源笔记内,然后在 这个二级标签上添加 feed 书签,你完美的避开了他 😂

  • Jahzeds 1 赞同 1 评论

    OK 了,谢谢大佬,期待更多便捷操作 😂

    我看有时间了加一个命令 『 在当前位置插入 feed 模板』
    llej
  • coriger 3 评论

    image.png

    按照文档来的,这个 feed 书签也是加载标题这个块上的,日志说没有读取到 feed 属性

    可能是上次更新的数据库属性实现有影响,我去修复一下
    llej
    发现问题了,应该是思源更新版本后对于数据库中 blocks 表的 content 字段的生成实现出现了变化,而插件是依赖该属性的,导致我原来的创建的 feed 都可以正常使用,而新创建的则不行。等我解决后发一个新版本。
    llej 1
    刚发布了 1.1.12 版本,等 18 点后思源自动更新集市插件后就可以更新到该版本解决问题了
    llej
  • jidenanian

    大佬,你好,能详细讲下怎么通过数据库定义属性吗?经多方尝试还是不成功。

请输入回帖内容 ...
llej
致良知(承接插件定制、软件开发 在线网络乞讨中