Skip to content

why8023/SYAK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SYAK:同步 SiYuan 内容块到 Anki, 自动更新, 自动删除

如果觉得有帮助, 麻烦点个 Star⭐

初次使用请提前备份 Anki, 以免数据误删!

Prerequisite

  1. Anki 需要安装 AnkiConnect 插件, code 为 2055492159​​​​, 默认端口 8765​​​​
  2. 支持 Python 3.9 以上版本
  3. SiYuan 默认端口为 6806​​​​
  4. 同步时, 保持 SiYuan 和 Anki 同时运行

Install

pip install -U syak

Usage

  1. 新建一个 card​​​​ ​文档块, 名字支持前后缀, 例如 @card​​​​​

  2. 在需要制卡的内容块后面引用 card​​​​ ​文档块

  3. 制卡内容块为某个容器块下的叶子块时, 卡片正面为制卡内容块, 背面为整个容器块

  4. 制卡内容块为文档块下的叶子块时, 卡片正面为制卡内容块, 背面为空

  5. 运行命令 syak -p SiYuan数据根路径(data目录的上一级)​​​​ ​即可同步

  6. 运行周期任务 syak -p SiYuan数据根路径(data目录的上一级) -i (seconds)​​​, 例如每 5 分钟运行一次 syak -p SiYuan数据根路径(data目录的上一级) -i 300​​​

  7. 后台运行

    1. Linux&macOS nohup syak -p SiYuan数据根路径(data目录的上一级) -i (seconds) &​​​
    2. Windows start /b syak -p SiYuan数据根路径(data目录的上一级) -i (seconds)​​​
  8. 指定 deck 层级: syak -p SiYuan数据根路径(data目录的上一级) --custom_deck 笔记本名/指定层级

    1. 例如: 原始层级为 notebook/daily/2022/2022-12-28​, 如果不想创建 2022​ 和 2022-12-08​ 两个 child deck, 可以使用 syak -p SiYuan数据根路径(data目录的上一级) --custom_deck notebook/daily
  9. 查看更多选项运行 syak -h​​​​​

Demo

demo

Feature

  1. 添加 SiYuan URL 跳转链接
  2. 自动更新, SiYuan 更新内容块后, Anki 自动更新
  3. 自动删除, 删除 card​ ​引用块, Anki 自动删除
  4. 根据文档块层级自动建立 deck 层级
  5. 支持 media 文件
  6. 自动删除 empty deck
  7. 同步完成时, 发送同步信息给 SiYuan, 停留 5s

Not Support (currently)

  1. Close
  2. 代码块语法高亮
  3. 超级块未适配

More

  1. macOS 用户如果遇到同步耗时较长的问题, 可以参考:

    1. FooSoft Productions - Anki-Connect

      Starting with Mac OS X Mavericks, a feature named App Nap has been introduced to the operating system. This feature causes certain applications which are open (but not visible) to be placed in a suspended state. As this behavior causes Anki-Connect to stop working while you have another window in the foreground, App Nap should be disabled for Anki:

      1. Start the Terminal application.

      2. Execute the following commands in the terminal window:

        defaults write net.ankiweb.dtop NSAppSleepDisabled -bool true
        defaults write net.ichi2.anki NSAppSleepDisabled -bool true
        defaults write org.qt-project.Qt.QtWebEngineCore NSAppSleepDisabled -bool true
        
      3. Restart Anki.

Changelog

  • 更新到 0.1.8 🎉 🎉 🎉

    升级:pip install -U syak

    1. 支持自定义 deck 层级

      使用方式: syak -p SiYuan数据根路径(data目录的上一级) --custom_deck 笔记本名/指定层级​, 例如: 原始层级为 notebook/daily/2022/2022-12-28​, 如果不想创建 2022​ 和 2022-12-08​ 两个 child deck, 可以使用 syak -p SiYuan数据根路径(data目录的上一级) --custom_deck notebook/daily

    2. 修复删除空行引起的错误格式

  • 更新到 0.1.7 🎉 🎉 🎉

    升级:pip install -U syak​​

    1. 增加周期任务

      1. 运行周期任务 syak -p SiYuan数据根路径(data目录的上一级) -i (seconds)​​​, 例如每 5 分钟运行一次 syak -p SiYuan数据根路径(data目录的上一级) -i 300​​​
    2. 后台运行

      1. Linux&macOS nohup syak -p SiYuan数据根路径(data目录的上一级) -i (seconds) &​​
      2. Windows start /b syak -p SiYuan数据根路径(data目录的上一级) -i (seconds)​​ 未测试

Releases

No releases published

Packages

No packages published

Languages