Skip to content

Clouder0/SiyuanYuque

Repository files navigation

SiyuanYuque

Chinese Document

Sync SiYuanNote & Yuque.

  • Sync Setting in doc attribute.
  • Batch Sync Via SQL
  • SiYuan Image Hosting Supported
  • Internal Link Supported

Install

Use pip to install.

pip install SiyuanYuque

Execute like this:

python -m SiyuanYuque

Remember to create a sqconfig.toml config file in the current directory.

user_token = ""
siyuan_token = ""
api_host = "https://www.yuque.com/api/v2"
last_sync_time = "20210915225457"

Fill in your Yuque user_token and siyuan_token.

image

image

Set Atrribute in SiyuanNote

You can only sync documents to Yuque.

Set Attributes like this:

image

yuque: true
yuque-workspace: your workspace

Workspace format: username/repo

Then run python -m SiyuanYuque, and check the attributes again.

image

You'll see yuque-id appended to your document's attributes. Don't manually modify this unless you know what you are doing.

That's the basic usage for the time being.

Remember not to edit the documents sync from SiYuan, as the update will be lost upon the next sync.

Custom Sync

It is supported to sync documents by SQL.

A simple example:

user_token = ""
siyuan_token = ""
api_host = "https://www.yuque.com/api/v2"
last_sync_time = "20210916223903"
assets_replacement = "https://b3logfile.com/siyuan/1609132319768/assets"
[[custom_sync]]
sql = "select * from blocks where hpath like '%Math/%' and type='d'"
yuque-workspace = "clouder0/gaokao"

Multiple custom syncs can be defined.

user_token = ""
siyuan_token = ""
api_host = "https://www.yuque.com/api/v2"
last_sync_time = "20210916223903"
assets_replacement = "https://b3logfile.com/siyuan/1609132319768/assets"
[[custom_sync]]
sql = "select * from blocks where hpath like '%Math/%' and type='d'"
yuque-workspace = "clouder0/gaokao"
[[custom_sync]]
sql = "select * from blocks where hpath like '%Chinese/%' and type='d'"
yuque-workspace = "clouder0/gaokao"

More Config

image

yuque-public: 1 for public and 0 for private.

yuque-slug: the slug of the document. https://www.yuque.com/siyuannote/docs/siyuanyuque

Assets Replacement

Replace the assets string in your markdown content to support SiYuan online image.

Internal Link

SiYuan-Setting: Ref Block: Anchor Text with block URL.

This script will replace siyuan://blocks with https://yuque.com/{workspace} so that your ref blocks that have been exported and in the same workspace of yuque will be accessible.

Square Support

For yuque square, you can modify api_host to operate in squares.

For example, you'd like to sync in a square clouder.yuque.com, then you should change your config:

api_host = "https://clouder.yuque.com/api/v2"

Do bear in mind that once you decide to use a square, you can no longer stay synced with the original public www.yuque.com.
Theoretically, there exists the possibility to support both at the same time, but I haven't seen such demand yet.