Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/why8023/syak
sync SiYuan to Anki
https://github.com/why8023/syak
anki siyuan-note
Last synced: 26 days ago
JSON representation
sync SiYuan to Anki
- Host: GitHub
- URL: https://github.com/why8023/syak
- Owner: why8023
- License: mit
- Created: 2022-12-20T15:04:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-11T09:53:18.000Z (almost 2 years ago)
- Last Synced: 2024-10-10T19:41:25.613Z (26 days ago)
- Topics: anki, siyuan-note
- Language: Python
- Homepage:
- Size: 1.22 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](demo.gif)
# 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](https://foosoft.net/projects/anki-connect/)
> Starting with [Mac OS X Mavericks](https://en.wikipedia.org/wiki/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)` 未测试