Browse Source

Merge remote-tracking branch 'origin/dev' into dev

Vanessa 2 years ago
parent
commit
bee0d8c475

+ 5 - 2
README.md

@@ -52,10 +52,14 @@ All local features are free.
   * Icons
   * Templates
   * Widgets
+* End-to-end encrypted data sync and backup via the third-party cloud storage services (this feature is currently in the free public beta stage)
+  * S3
+  * WebDAV
 * Hierarchical tag
 * Multi-tab, drag and drop to split screen
 * Fulltext search
 * Template snippet
+* JavaScript/CSS snippet
 * Keymap
 * Themes and icons
 * Android/iOS APP
@@ -67,8 +71,7 @@ All local features are free.
 Cloud services require a paid subscription.
 
 * VIP identity
-* End-to-end encrypted data synchronization
-* End-to-end encrypted data backup
+* End-to-end encrypted data sync and backup
 * Cloud assets serving
 * WeChat notification
 * Cloud inbox

+ 5 - 2
README_zh_CN.md

@@ -55,10 +55,14 @@
   * 图标
   * 模板
   * 挂件
+* 通过第三方云端存储服务实现端到端加密数据同步和备份(该特性目前处于免费公测阶段)
+  * S3 
+  * WebDAV
 * 层级标签
 * 多页签拖拽分屏
 * 全文搜索
 * 模板片段
+* JavaScript/CSS 代码片段
 * 快捷键
 * 主题和图标
 * Android/iOS APP
@@ -70,8 +74,7 @@
 云端服务需要付费订阅。
 
 * 尊贵身份标识
-* 端到端加密数据同步
-* 端到端加密数据备份
+* 端到端加密数据同步和备份
 * 云端图床服务
 * 定时微信提醒
 * 云端收集箱

+ 421 - 276
app/guide/20210808180117-6v0mkxr/20200923234731-h3zkwm2.sy

@@ -7,7 +7,7 @@
 		"id": "20200923234731-h3zkwm2",
 		"title": "FAQ",
 		"type": "doc",
-		"updated": "20220909101124"
+		"updated": "20221112211041"
 	},
 	"Children": [
 		{
@@ -298,6 +298,10 @@
 								"updated": "20220329160450"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -305,36 +309,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " are used to save all inserted "
+									"Data": " are used to save all inserted "
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20200924100744-br924ar"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "assets"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20200924100744-br924ar",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "assets"
 								}
 							]
 						}
@@ -360,6 +342,10 @@
 								"updated": "20210824200933"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -367,36 +353,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " are used to save "
+									"Data": " are used to save "
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20201204184532-3qm9l8n"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "template snippets"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20201204184532-3qm9l8n",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "template snippets"
 								}
 							]
 						}
@@ -422,6 +386,10 @@
 								"updated": "20220329160456"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -429,105 +397,452 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " are used to save "
+									"Data": " are used to save "
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20210824202056-udkf7wg"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "widgets"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20210824202056-udkf7wg",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "widgets"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20210826092337-pt1yd7r",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20210826092337-pt1yd7r",
+						"updated": "20220226130622"
+					},
+					"Children": [
+						{
+							"ID": "20210826092337-swh0gdd",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20210826092337-swh0gdd",
+								"updated": "20220226130622"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "code",
+									"TextMarkTextContent": "emojis"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ are used to save emoji images"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20210428222603-27so3jy",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20210428222603-27so3jy"
+					},
+					"Children": [
+						{
+							"ID": "20210428222603-pwyr56t",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20210428222603-pwyr56t",
+								"updated": "20210512152423"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "The rest of the folders are the notebook folders created by the user, files with the suffix of "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "code",
+									"TextMarkTextContent": ".sy"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ in the notebook folder are used to save the document data, and the data format is JSON"
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"ID": "20220808181753-3ligpvz",
+			"Type": "NodeHeading",
+			"HeadingLevel": 2,
+			"Properties": {
+				"id": "20220808181753-3ligpvz",
+				"updated": "20220808181753"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "Does it support data synchronization through a third-party sync disk?"
+				}
+			]
+		},
+		{
+			"ID": "20220808181718-tcv74v2",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20220808181718-tcv74v2",
+				"updated": "20220808181719"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "Data synchronization through third-party synchronization disks is not supported, otherwise data may be corrupted. "
+				}
+			]
+		},
+		{
+			"ID": "20221112205611-eafvvel",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112205611-eafvvel",
+				"updated": "20221112205652"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "Although it does not support third-party sync disks, it supports third-party cloud storage services, which can be configured in "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "Settings"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "Cloud"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "Cloud Storage Provider"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​, currently supported:"
+				}
+			]
+		},
+		{
+			"ID": "20221112205611-b4zhc8p",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20221112205611-b4zhc8p",
+				"updated": "20221112205611"
+			},
+			"Children": [
+				{
+					"ID": "20221112205611-97prfc9",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112205611-97prfc9",
+						"updated": "20221112205611"
+					},
+					"Children": [
+						{
+							"ID": "20221112205611-uzrdaj3",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112205611-uzrdaj3",
+								"updated": "20221112210327"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "S3 compatible object storage services, such as "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://s.qiniu.com/VbQfeu",
+									"TextMarkTextContent": "Qiniu Cloud"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.aliyun.com/product/oss?userCode=yqovuas2",
+									"TextMarkTextContent": "Alibaba Cloud OSS"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.cloudflare.com/",
+									"TextMarkTextContent": "Cloudflare R2"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", etc."
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20221112205611-2igreuz",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112205611-2igreuz",
+						"updated": "20221112205611"
+					},
+					"Children": [
+						{
+							"ID": "20221112205611-j3l9b8r",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112205611-j3l9b8r",
+								"updated": "20221112210118"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "WebDAV protocol, such as "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://teracloud.jp/",
+									"TextMarkTextContent": "TeraCLOUD"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://koofr.eu/",
+									"TextMarkTextContent": "Koofr"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", etc."
 								}
 							]
 						}
 					]
+				}
+			]
+		},
+		{
+			"ID": "20221112205611-5r7862d",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112205611-5r7862d",
+				"updated": "20221112211041"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "Synchronizing data through third-party cloud storage services is also "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "block-ref",
+					"TextMarkBlockRefID": "20210721112229-fp97j3c",
+					"TextMarkBlockRefSubtype": "s",
+					"TextMarkTextContent": "end-to-end encrypted"
 				},
 				{
-					"ID": "20210826092337-pt1yd7r",
+					"Type": "NodeText",
+					"Data": ", and third-party cloud storage service providers cannot obtain our plaintext data."
+				}
+			]
+		},
+		{
+			"ID": "20221112210525-icjpxq3",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112210525-icjpxq3",
+				"updated": "20221112210600"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "In addition, you can also consider manually exporting and importing data to achieve data synchronization:"
+				}
+			]
+		},
+		{
+			"ID": "20220619172044-z4myy48",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20220619172044-z4myy48",
+				"updated": "20220619172044"
+			},
+			"Children": [
+				{
+					"ID": "20220619172044-451fqpf",
 					"Type": "NodeListItem",
 					"ListData": {
 						"BulletChar": 42,
 						"Marker": "Kg=="
 					},
 					"Properties": {
-						"id": "20210826092337-pt1yd7r",
-						"updated": "20220226130622"
+						"id": "20220619172044-451fqpf",
+						"updated": "20220619172044"
 					},
 					"Children": [
 						{
-							"ID": "20210826092337-swh0gdd",
+							"ID": "20220619172044-bx4v3iz",
 							"Type": "NodeParagraph",
 							"Properties": {
-								"id": "20210826092337-swh0gdd",
-								"updated": "20220226130622"
+								"id": "20220619172044-bx4v3iz",
+								"updated": "20220619172044"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "Desktop: "
+								},
 								{
 									"Type": "NodeTextMark",
-									"TextMarkType": "code",
-									"TextMarkTextContent": "emojis"
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Settings"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Export"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Export Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Import Data"
 								},
 								{
 									"Type": "NodeText",
-									"Data": " are used to save emoji images"
+									"Data": "​​"
 								}
 							]
 						}
 					]
 				},
 				{
-					"ID": "20210428222603-27so3jy",
+					"ID": "20220619172044-r6xfdvm",
 					"Type": "NodeListItem",
 					"ListData": {
 						"BulletChar": 42,
 						"Marker": "Kg=="
 					},
 					"Properties": {
-						"id": "20210428222603-27so3jy"
+						"id": "20220619172044-r6xfdvm",
+						"updated": "20220619172044"
 					},
 					"Children": [
 						{
-							"ID": "20210428222603-pwyr56t",
+							"ID": "20220619172044-ccusmko",
 							"Type": "NodeParagraph",
 							"Properties": {
-								"id": "20210428222603-pwyr56t",
-								"updated": "20210512152423"
+								"id": "20220619172044-ccusmko",
+								"updated": "20220619172044"
 							},
 							"Children": [
 								{
 									"Type": "NodeText",
-									"Data": "The rest of the folders are the notebook folders created by the user, files with the suffix of "
+									"Data": "Mobile: "
 								},
 								{
 									"Type": "NodeTextMark",
-									"TextMarkType": "code",
-									"TextMarkTextContent": ".sy"
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Right column"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "About"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Export Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "Import Data"
 								},
 								{
 									"Type": "NodeText",
-									"Data": " in the notebook folder are used to save the document data, and the data format is JSON"
+									"Data": "​​"
 								}
 							]
 						}
@@ -1555,166 +1870,6 @@
 				}
 			]
 		},
-		{
-			"ID": "20220808181753-3ligpvz",
-			"Type": "NodeHeading",
-			"HeadingLevel": 2,
-			"Properties": {
-				"id": "20220808181753-3ligpvz",
-				"updated": "20220808181753"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "Does it support data synchronization through a third-party sync disk?"
-				}
-			]
-		},
-		{
-			"ID": "20220808181718-tcv74v2",
-			"Type": "NodeParagraph",
-			"Properties": {
-				"id": "20220808181718-tcv74v2",
-				"updated": "20220808181719"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "Data synchronization through third-party synchronization disks is not supported, otherwise data may be corrupted. Consider manually exporting and importing Data for data synchronization:"
-				}
-			]
-		},
-		{
-			"ID": "20220619172044-z4myy48",
-			"Type": "NodeList",
-			"ListData": {},
-			"Properties": {
-				"id": "20220619172044-z4myy48",
-				"updated": "20220619172044"
-			},
-			"Children": [
-				{
-					"ID": "20220619172044-451fqpf",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619172044-451fqpf",
-						"updated": "20220619172044"
-					},
-					"Children": [
-						{
-							"ID": "20220619172044-bx4v3iz",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619172044-bx4v3iz",
-								"updated": "20220619172044"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "Desktop: "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Settings"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Export"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Export Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Import Data"
-								}
-							]
-						}
-					]
-				},
-				{
-					"ID": "20220619172044-r6xfdvm",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619172044-r6xfdvm",
-						"updated": "20220619172044"
-					},
-					"Children": [
-						{
-							"ID": "20220619172044-ccusmko",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619172044-ccusmko",
-								"updated": "20220619172044"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "Mobile: "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Right column"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "About"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Export Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "Import Data"
-								}
-							]
-						}
-					]
-				}
-			]
-		},
 		{
 			"ID": "20220708111435-xmj42q4",
 			"Type": "NodeHeading",
@@ -2075,7 +2230,7 @@
 				{
 					"Type": "NodeTextMark",
 					"TextMarkType": "a",
-					"TextMarkAHref": "https://b3log.org/siyuan/pricing.html",
+					"TextMarkAHref": "https://b3log.org/siyuan/en/pricing.html",
 					"TextMarkTextContent": "Cloud services"
 				},
 				{
@@ -2089,22 +2244,12 @@
 			"Type": "NodeParagraph",
 			"Properties": {
 				"id": "20220703000434-rpabrb5",
-				"updated": "20220820000523"
+				"updated": "20221112210752"
 			},
 			"Children": [
 				{
 					"Type": "NodeText",
-					"Data": "Currently, only users in mainland China are supported to subscribe. For users in non-mainland China regions, please follow "
-				},
-				{
-					"Type": "NodeTextMark",
-					"TextMarkType": "a",
-					"TextMarkAHref": "https://github.com/siyuan-note/siyuan/issues/5331",
-					"TextMarkTextContent": "Cloud service supports non-mainland China regions"
-				},
-				{
-					"Type": "NodeText",
-					"Data": "."
+					"Data": "Currently, only users in mainland China are supported to subscribe, and users who are not in mainland China should not subscribe."
 				}
 			]
 		}

+ 411 - 317
app/guide/20210808180117-czj9bvb/20200813093015-u6bopdt.sy

@@ -7,7 +7,7 @@
 		"id": "20200813093015-u6bopdt",
 		"title": "常见问题",
 		"type": "doc",
-		"updated": "20221107103705"
+		"updated": "20221112211001"
 	},
 	"Children": [
 		{
@@ -395,6 +395,10 @@
 								"updated": "20220329160333"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -402,36 +406,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用于保存所有插入的"
+									"Data": " 用于保存所有插入的"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20200915214115-42b8zma"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "资源文件"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20200915214115-42b8zma",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "资源文件"
 								}
 							]
 						}
@@ -456,6 +438,10 @@
 								"updated": "20210428222707"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -463,36 +449,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用于保存"
+									"Data": " 用于保存"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20201204181006-7bkppue"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "模板片段"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20201204181006-7bkppue",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "模板片段"
 								}
 							]
 						}
@@ -518,6 +482,10 @@
 								"updated": "20220329160344"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -525,36 +493,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用于保存"
+									"Data": " 用于保存"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20210824201257-cy7icrc"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "挂件"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20210824201257-cy7icrc",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "挂件"
 								}
 							]
 						}
@@ -580,51 +526,416 @@
 								"updated": "20210826092321"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "code",
+									"TextMarkTextContent": "emojis"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ 用于保存 Emoji 图片"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20210428214049-1kebc1m",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20210428214049-1kebc1m",
+						"updated": "20210512152317"
+					},
+					"Children": [
+						{
+							"ID": "20210428214054-0vorr4s",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20210428214054-0vorr4s",
+								"updated": "20210512152317"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "其余文件夹就是用户自己创建的笔记本文件夹,笔记本文件夹下 "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "code",
+									"TextMarkTextContent": ".sy"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ 后缀的文件用于保存文档数据,数据格式为 JSON"
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"ID": "20210918114843-6xo7hmr",
+			"Type": "NodeHeading",
+			"HeadingLevel": 2,
+			"Properties": {
+				"id": "20210918114843-6xo7hmr",
+				"updated": "20220808181126"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "支持通过第三方同步盘进行"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "数据同步"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "吗?"
+				}
+			]
+		},
+		{
+			"ID": "20220808181019-df3ssjs",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20220808181019-df3ssjs",
+				"updated": "20220808181532"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "不支持通过第三方同步盘进行数据同步,否则可能会导致数据损坏。"
+				}
+			]
+		},
+		{
+			"ID": "20221112210648-7737myk",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112210648-7737myk"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "虽然不支持第三方同步盘,但是支持第三方云端存储服务,可在 "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "设置"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "云端"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "云端存储服务提供商"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ 中进行选择和配置,目前已经支持:"
+				}
+			]
+		},
+		{
+			"ID": "20221112204518-3qo0gc8",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20221112204518-3qo0gc8",
+				"updated": "20221112204519"
+			},
+			"Children": [
+				{
+					"ID": "20221112204519-8xbk4th",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112204519-8xbk4th",
+						"updated": "20221112204519"
+					},
+					"Children": [
+						{
+							"ID": "20221112204519-52kxq65",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112204519-52kxq65",
+								"updated": "20221112210256"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "S3 兼容的对象存储服务,比如"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://s.qiniu.com/VbQfeu",
+									"TextMarkTextContent": "七牛云"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "、"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.aliyun.com/product/oss?userCode=yqovuas2",
+									"TextMarkTextContent": "阿里云 OSS"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "、"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.cloudflare.com/",
+									"TextMarkTextContent": "Cloudflare R2"
+								},
+								{
+									"Type": "NodeText",
+									"Data": " 等"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20221112204524-19sdb6j",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112204524-19sdb6j"
+					},
+					"Children": [
+						{
+							"ID": "20221112204524-3ipwudy",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112204524-3ipwudy",
+								"updated": "20221112210014"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "WebDAV 协议,比如 "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://teracloud.jp/",
+									"TextMarkTextContent": "TeraCLOUD"
+								},
+								{
+									"Type": "NodeText",
+									"Data": " 等"
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"ID": "20221112204704-cmwcneg",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112204704-cmwcneg",
+				"updated": "20221112211001"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "通过第三方云端存储服务同步数据同样是"
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "block-ref",
+					"TextMarkBlockRefID": "20210721110423-5m6vo52",
+					"TextMarkBlockRefSubtype": "s",
+					"TextMarkTextContent": "端到端加密"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "的,第三方云端存储服务提供商无法获得我们的明文数据。"
+				}
+			]
+		},
+		{
+			"ID": "20221112210416-e7d4nd2",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112210416-e7d4nd2",
+				"updated": "20221112210426"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "另外,也可以考虑手动导出导入 Data 实现数据同步:"
+				}
+			]
+		},
+		{
+			"ID": "20220619171630-l6d80j9",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20220619171630-l6d80j9",
+				"updated": "20220619172004"
+			},
+			"Children": [
+				{
+					"ID": "20220619171640-j9yl9en",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20220619171640-j9yl9en",
+						"updated": "20220619171858"
+					},
+					"Children": [
+						{
+							"ID": "20220619171640-gqfe61q",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20220619171640-gqfe61q",
+								"updated": "20220619171858"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "桌面端:"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "设置"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "导出"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
 								{
 									"Type": "NodeTextMark",
-									"TextMarkType": "code",
-									"TextMarkTextContent": "emojis"
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "导出 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "导入 Data"
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用于保存 Emoji 图片"
+									"Data": ""
 								}
 							]
 						}
 					]
 				},
 				{
-					"ID": "20210428214049-1kebc1m",
+					"ID": "20220619171850-ldv3f31",
 					"Type": "NodeListItem",
 					"ListData": {
 						"BulletChar": 42,
 						"Marker": "Kg=="
 					},
 					"Properties": {
-						"id": "20210428214049-1kebc1m",
-						"updated": "20210512152317"
+						"id": "20220619171850-ldv3f31",
+						"updated": "20220619172004"
 					},
 					"Children": [
 						{
-							"ID": "20210428214054-0vorr4s",
+							"ID": "20220619171850-jx3xl19",
 							"Type": "NodeParagraph",
 							"Properties": {
-								"id": "20210428214054-0vorr4s",
-								"updated": "20210512152317"
+								"id": "20220619171850-jx3xl19",
+								"updated": "20220619172004"
 							},
 							"Children": [
 								{
 									"Type": "NodeText",
-									"Data": "其余文件夹就是用户自己创建的笔记本文件夹,笔记本文件夹下 "
+									"Data": "移动端:"
 								},
 								{
 									"Type": "NodeTextMark",
-									"TextMarkType": "code",
-									"TextMarkTextContent": ".sy"
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "右侧栏"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "关于"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "导出 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "导入 Data"
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 后缀的文件用于保存文档数据,数据格式为 JSON"
+									"Data": ""
 								}
 							]
 						}
@@ -1436,53 +1747,6 @@
 				}
 			]
 		},
-		{
-			"ID": "20220711122412-g3avmxt",
-			"Type": "NodeHeading",
-			"HeadingLevel": 2,
-			"Properties": {
-				"id": "20220711122412-g3avmxt",
-				"updated": "20220711122436"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "有的网络图片为什么无法查看?"
-				}
-			]
-		},
-		{
-			"ID": "20220711122438-j161jkx",
-			"Type": "NodeParagraph",
-			"Properties": {
-				"id": "20220711122438-j161jkx",
-				"updated": "20220711123431"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "为了避免一些潜在的安全问题,思源在发起互联网服务请求时不会绕过目标站点的安全标头校验(比如安全策略标头和防盗链校验)。可以试一下编辑器右上角 "
-				},
-				{
-					"Type": "NodeTextMark",
-					"TextMarkType": "code",
-					"TextMarkTextContent": "..."
-				},
-				{
-					"Type": "NodeText",
-					"Data": " 中的 "
-				},
-				{
-					"Type": "NodeTextMark",
-					"TextMarkType": "code",
-					"TextMarkTextContent": "网络图片转换为本地图片"
-				},
-				{
-					"Type": "NodeText",
-					"Data": " 功能将网络图片拉取到本地,这样即使以后目标站点改变安全策略或者不可用本地图片也不受影响。"
-				}
-			]
-		},
 		{
 			"ID": "20220615152404-l82qznd",
 			"Type": "NodeHeading",
@@ -1646,166 +1910,6 @@
 				}
 			]
 		},
-		{
-			"ID": "20210918114843-6xo7hmr",
-			"Type": "NodeHeading",
-			"HeadingLevel": 2,
-			"Properties": {
-				"id": "20210918114843-6xo7hmr",
-				"updated": "20220808181126"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "支持通过第三方同步盘进行数据同步吗?"
-				}
-			]
-		},
-		{
-			"ID": "20220808181019-df3ssjs",
-			"Type": "NodeParagraph",
-			"Properties": {
-				"id": "20220808181019-df3ssjs",
-				"updated": "20220808181532"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "不支持通过第三方同步盘进行数据同步,否则可能会导致数据损坏。可以考虑手动导出导入 Data 实现数据同步:"
-				}
-			]
-		},
-		{
-			"ID": "20220619171630-l6d80j9",
-			"Type": "NodeList",
-			"ListData": {},
-			"Properties": {
-				"id": "20220619171630-l6d80j9",
-				"updated": "20220619172004"
-			},
-			"Children": [
-				{
-					"ID": "20220619171640-j9yl9en",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619171640-j9yl9en",
-						"updated": "20220619171858"
-					},
-					"Children": [
-						{
-							"ID": "20220619171640-gqfe61q",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619171640-gqfe61q",
-								"updated": "20220619171858"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "桌面端:"
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "设置"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "导出"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "导出 Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "导入 Data"
-								}
-							]
-						}
-					]
-				},
-				{
-					"ID": "20220619171850-ldv3f31",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619171850-ldv3f31",
-						"updated": "20220619172004"
-					},
-					"Children": [
-						{
-							"ID": "20220619171850-jx3xl19",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619171850-jx3xl19",
-								"updated": "20220619172004"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "移动端:"
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "右侧栏"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "关于"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "导出 Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "导入 Data"
-								}
-							]
-						}
-					]
-				}
-			]
-		},
 		{
 			"ID": "20211222010224-qmstv96",
 			"Type": "NodeHeading",
@@ -2177,22 +2281,12 @@
 			"Type": "NodeParagraph",
 			"Properties": {
 				"id": "20220820000332-5y9gknk",
-				"updated": "20220820000334"
+				"updated": "20221112210731"
 			},
 			"Children": [
 				{
 					"Type": "NodeText",
-					"Data": "目前仅支持中国大陆地区用户订阅,非中国大陆地区用户请关注 "
-				},
-				{
-					"Type": "NodeTextMark",
-					"TextMarkType": "a",
-					"TextMarkAHref": "https://github.com/siyuan-note/siyuan/issues/5331",
-					"TextMarkTextContent": "Cloud service supports non-mainland China regions"
-				},
-				{
-					"Type": "NodeText",
-					"Data": "。"
+					"Data": "目前仅支持中国大陆地区用户订阅,非中国大陆地区用户请勿订阅。"
 				}
 			]
 		}

+ 404 - 259
app/guide/20211226090932-5lcq56f/20211226115227-r1rty9v.sy

@@ -6,7 +6,7 @@
 		"icon": "2753",
 		"id": "20211226115227-r1rty9v",
 		"title": "常見問題",
-		"updated": "20220909100912"
+		"updated": "20221112211107"
 	},
 	"Children": [
 		{
@@ -293,6 +293,10 @@
 								"updated": "20220329160516"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -300,36 +304,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用於保存所有插入的"
+									"Data": " 用於保存所有插入的"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20211226123038-4umgpxy"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "資料文件"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20211226123038-4umgpxy",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "資料文件"
 								}
 							]
 						}
@@ -355,6 +337,10 @@
 								"updated": "20211228104617"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -362,36 +348,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用於保存"
+									"Data": " 用於保存"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20211226123004-dplpw0o"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "範本片段"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20211226123004-dplpw0o",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "範本片段"
 								}
 							]
 						}
@@ -417,6 +381,10 @@
 								"updated": "20220329160520"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -424,36 +392,14 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用於保存"
+									"Data": " 用於保存"
 								},
 								{
-									"Type": "NodeBlockRef",
-									"Data": "span",
-									"Children": [
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeOpenParen"
-										},
-										{
-											"Type": "NodeBlockRefID",
-											"Data": "20211226123101-qjw03ab"
-										},
-										{
-											"Type": "NodeBlockRefSpace"
-										},
-										{
-											"Type": "NodeBlockRefText",
-											"Data": "小工具"
-										},
-										{
-											"Type": "NodeCloseParen"
-										},
-										{
-											"Type": "NodeCloseParen"
-										}
-									]
+									"Type": "NodeTextMark",
+									"TextMarkType": "block-ref",
+									"TextMarkBlockRefID": "20211226123101-qjw03ab",
+									"TextMarkBlockRefSubtype": "s",
+									"TextMarkTextContent": "小工具"
 								}
 							]
 						}
@@ -477,6 +423,10 @@
 								"id": "20211226115356-1r4537c"
 							},
 							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								},
 								{
 									"Type": "NodeTextMark",
 									"TextMarkType": "code",
@@ -484,7 +434,7 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 用於保存 Emoji 圖片"
+									"Data": " 用於保存 Emoji 圖片"
 								}
 							]
 						}
@@ -521,7 +471,372 @@
 								},
 								{
 									"Type": "NodeText",
-									"Data": " 後綴的文件用於保存文檔資料,資料格式為 JSON"
+									"Data": "​ 後綴的文件用於保存文檔資料,資料格式為 JSON"
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"ID": "20220808181824-pwnc2gx",
+			"Type": "NodeHeading",
+			"HeadingLevel": 2,
+			"Properties": {
+				"id": "20220808181824-pwnc2gx",
+				"updated": "20220808181824"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "支持通過第三方同步盤進行數據同步嗎?"
+				}
+			]
+		},
+		{
+			"ID": "20220808181824-qsqqcd6",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20220808181824-qsqqcd6",
+				"updated": "20220808181824"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "不支持通過第三方同步盤進行數據同步,否則可能會導致數據損壞。"
+				}
+			]
+		},
+		{
+			"ID": "20221112205526-ivjea9z",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112205526-ivjea9z",
+				"updated": "20221112205543"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "雖然不支持第三方同步盤,但是支持第三方雲端存儲服務,可在 "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "設置"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "雲端"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ - "
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "kbd",
+					"TextMarkTextContent": "雲端存儲服務提供商"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "​ 中進行選擇和配置,目前已經支持:"
+				}
+			]
+		},
+		{
+			"ID": "20221112205526-okog56a",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20221112205526-okog56a",
+				"updated": "20221112205526"
+			},
+			"Children": [
+				{
+					"ID": "20221112205526-o89il8c",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112205526-o89il8c",
+						"updated": "20221112205526"
+					},
+					"Children": [
+						{
+							"ID": "20221112205526-jx8kzaj",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112205526-jx8kzaj",
+								"updated": "20221112210234"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "S3 兼容的對象存儲服務,比如"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://s.qiniu.com/VbQfeu",
+									"TextMarkTextContent": "七牛雲"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "、"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.aliyun.com/product/oss?userCode=yqovuas2",
+									"TextMarkTextContent": "阿里雲 OSS"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "、"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://www.cloudflare.com/",
+									"TextMarkTextContent": "Cloudflare R2"
+								},
+								{
+									"Type": "NodeText",
+									"Data": " 等"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20221112205526-iohj6gm",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20221112205526-iohj6gm",
+						"updated": "20221112205526"
+					},
+					"Children": [
+						{
+							"ID": "20221112205526-bqz0iaq",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20221112205526-bqz0iaq",
+								"updated": "20221112210150"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "WebDAV 協議,比如 "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://teracloud.jp/",
+									"TextMarkTextContent": "TeraCLOUD"
+								},
+								{
+									"Type": "NodeText",
+									"Data": ", "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "a",
+									"TextMarkAHref": "https://koofr.eu/",
+									"TextMarkTextContent": "Koofr"
+								},
+								{
+									"Type": "NodeText",
+									"Data": " 等"
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"ID": "20221112205526-ns2npu8",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112205526-ns2npu8",
+				"updated": "20221112211107"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "通過第三方雲端存儲服務同步數據同樣是"
+				},
+				{
+					"Type": "NodeTextMark",
+					"TextMarkType": "block-ref",
+					"TextMarkBlockRefID": "20211227210109-0f92zh2",
+					"TextMarkBlockRefSubtype": "s",
+					"TextMarkTextContent": "端到端加密"
+				},
+				{
+					"Type": "NodeText",
+					"Data": "的,第三方雲端存儲服務提供商無法獲得我們的明文數據。"
+				}
+			]
+		},
+		{
+			"ID": "20221112210626-qd92a19",
+			"Type": "NodeParagraph",
+			"Properties": {
+				"id": "20221112210626-qd92a19",
+				"updated": "20221112210633"
+			},
+			"Children": [
+				{
+					"Type": "NodeText",
+					"Data": "另外,可以考慮手動導出導入 Data 實現數據同步:"
+				}
+			]
+		},
+		{
+			"ID": "20220619172140-cq7i3di",
+			"Type": "NodeList",
+			"ListData": {},
+			"Properties": {
+				"id": "20220619172140-cq7i3di",
+				"updated": "20220619172140"
+			},
+			"Children": [
+				{
+					"ID": "20220619172140-8tsb58k",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20220619172140-8tsb58k",
+						"updated": "20220619172140"
+					},
+					"Children": [
+						{
+							"ID": "20220619172140-fk0wiay",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20220619172140-fk0wiay",
+								"updated": "20220619172140"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "桌面端:"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "設置"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "導出"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "導出 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "導入 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​"
+								}
+							]
+						}
+					]
+				},
+				{
+					"ID": "20220619172140-s4joicq",
+					"Type": "NodeListItem",
+					"ListData": {
+						"BulletChar": 42,
+						"Marker": "Kg=="
+					},
+					"Properties": {
+						"id": "20220619172140-s4joicq",
+						"updated": "20220619172140"
+					},
+					"Children": [
+						{
+							"ID": "20220619172140-9qv0epp",
+							"Type": "NodeParagraph",
+							"Properties": {
+								"id": "20220619172140-9qv0epp",
+								"updated": "20220619172140"
+							},
+							"Children": [
+								{
+									"Type": "NodeText",
+									"Data": "移動端:"
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "右側欄"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "關於"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ - "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "導出 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​ / "
+								},
+								{
+									"Type": "NodeTextMark",
+									"TextMarkType": "kbd",
+									"TextMarkTextContent": "導入 Data"
+								},
+								{
+									"Type": "NodeText",
+									"Data": "​"
 								}
 							]
 						}
@@ -1546,166 +1861,6 @@
 				}
 			]
 		},
-		{
-			"ID": "20220808181824-pwnc2gx",
-			"Type": "NodeHeading",
-			"HeadingLevel": 2,
-			"Properties": {
-				"id": "20220808181824-pwnc2gx",
-				"updated": "20220808181824"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "支持通過第三方同步盤進行數據同步嗎?"
-				}
-			]
-		},
-		{
-			"ID": "20220808181824-qsqqcd6",
-			"Type": "NodeParagraph",
-			"Properties": {
-				"id": "20220808181824-qsqqcd6",
-				"updated": "20220808181824"
-			},
-			"Children": [
-				{
-					"Type": "NodeText",
-					"Data": "不支持通過第三方同步盤進行數據同步,否則可能會導致數據損壞。可以考慮手動導出導入 Data 實現數據同步:"
-				}
-			]
-		},
-		{
-			"ID": "20220619172140-cq7i3di",
-			"Type": "NodeList",
-			"ListData": {},
-			"Properties": {
-				"id": "20220619172140-cq7i3di",
-				"updated": "20220619172140"
-			},
-			"Children": [
-				{
-					"ID": "20220619172140-8tsb58k",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619172140-8tsb58k",
-						"updated": "20220619172140"
-					},
-					"Children": [
-						{
-							"ID": "20220619172140-fk0wiay",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619172140-fk0wiay",
-								"updated": "20220619172140"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "桌面端:"
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "設置"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "導出"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "導出 Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "導入 Data"
-								}
-							]
-						}
-					]
-				},
-				{
-					"ID": "20220619172140-s4joicq",
-					"Type": "NodeListItem",
-					"ListData": {
-						"BulletChar": 42,
-						"Marker": "Kg=="
-					},
-					"Properties": {
-						"id": "20220619172140-s4joicq",
-						"updated": "20220619172140"
-					},
-					"Children": [
-						{
-							"ID": "20220619172140-9qv0epp",
-							"Type": "NodeParagraph",
-							"Properties": {
-								"id": "20220619172140-9qv0epp",
-								"updated": "20220619172140"
-							},
-							"Children": [
-								{
-									"Type": "NodeText",
-									"Data": "移動端:"
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "右側欄"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "關於"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " - "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "導出 Data"
-								},
-								{
-									"Type": "NodeText",
-									"Data": " / "
-								},
-								{
-									"Type": "NodeTextMark",
-									"TextMarkType": "kbd",
-									"TextMarkTextContent": "導入 Data"
-								}
-							]
-						}
-					]
-				}
-			]
-		},
 		{
 			"ID": "20220708111330-n2z718x",
 			"Type": "NodeHeading",
@@ -2077,22 +2232,12 @@
 			"Type": "NodeParagraph",
 			"Properties": {
 				"id": "20211226115356-zk19o1w",
-				"updated": "20220820000508"
+				"updated": "20221112210745"
 			},
 			"Children": [
 				{
 					"Type": "NodeText",
-					"Data": "目前僅支持中國大陸地區用戶訂閱,非中國大陸地區用戶請關注 "
-				},
-				{
-					"Type": "NodeTextMark",
-					"TextMarkType": "a",
-					"TextMarkAHref": "https://github.com/siyuan-note/siyuan/issues/5331",
-					"TextMarkTextContent": "Cloud service supports non-mainland China regions"
-				},
-				{
-					"Type": "NodeText",
-					"Data": "。"
+					"Data": "目前僅支持中國大陸地區用戶訂閱,非中國大陸地區用戶請勿訂閱。"
 				}
 			]
 		}

File diff suppressed because it is too large
+ 0 - 0
app/stage/protyle/js/lute/lute.min.js


+ 1 - 1
kernel/go.mod

@@ -6,7 +6,7 @@ require (
 	github.com/88250/clipboard v0.1.5
 	github.com/88250/css v0.1.2
 	github.com/88250/gulu v1.2.3-0.20221021091528-70e533d91a88
-	github.com/88250/lute v1.7.5-0.20221111074227-ebe8c453a6f6
+	github.com/88250/lute v1.7.5-0.20221112140857-4ed13af8b26c
 	github.com/88250/pdfcpu v0.3.13
 	github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1
 	github.com/ConradIrwin/font v0.0.0-20210318200717-ce8d41cc0732

+ 2 - 2
kernel/go.sum

@@ -17,8 +17,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS
 github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 github.com/88250/gulu v1.2.3-0.20221021091528-70e533d91a88 h1:Ax1/qJEF0Ipc2FtgHJEXy3EExpPsT3VKlGEbWlJFBwQ=
 github.com/88250/gulu v1.2.3-0.20221021091528-70e533d91a88/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI=
-github.com/88250/lute v1.7.5-0.20221111074227-ebe8c453a6f6 h1:xdEoyTPaFzTh11/3kmNPcDmQYewzg6mBj2nJOuGmXmE=
-github.com/88250/lute v1.7.5-0.20221111074227-ebe8c453a6f6/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
+github.com/88250/lute v1.7.5-0.20221112140857-4ed13af8b26c h1:X3GtZkdIT4cINW4pWios67vxaVa2Xix24zK6rCR1xG8=
+github.com/88250/lute v1.7.5-0.20221112140857-4ed13af8b26c/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
 github.com/88250/pdfcpu v0.3.13 h1:touMWMZkCGalMIbEg9bxYp7rETM+zwb9hXjwhqi4I7Q=
 github.com/88250/pdfcpu v0.3.13/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4=
 github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY=

+ 2 - 2
kernel/model/repository.go

@@ -616,8 +616,8 @@ func syncRepo(exit, byHand bool) (err error) {
 	msg := fmt.Sprintf(Conf.Language(150), trafficStat.UploadFileCount, trafficStat.DownloadFileCount, trafficStat.UploadChunkCount, trafficStat.DownloadChunkCount, humanize.Bytes(uint64(trafficStat.UploadBytes)), humanize.Bytes(uint64(trafficStat.DownloadBytes)))
 	Conf.Sync.Stat = msg
 	syncDownloadErrCount = 0
-	logging.LogInfof("synced data repo [ufc=%d, dfc=%d, ucc=%d, dcc=%d, ub=%s, db=%s] in [%.2fs]",
-		trafficStat.UploadFileCount, trafficStat.DownloadFileCount, trafficStat.UploadChunkCount, trafficStat.DownloadChunkCount, humanize.Bytes(uint64(trafficStat.UploadBytes)), humanize.Bytes(uint64(trafficStat.DownloadBytes)), elapsed.Seconds())
+	logging.LogInfof("synced data repo [provider=%d, ufc=%d, dfc=%d, ucc=%d, dcc=%d, ub=%s, db=%s] in [%.2fs]",
+		Conf.Sync.Provider, trafficStat.UploadFileCount, trafficStat.DownloadFileCount, trafficStat.UploadChunkCount, trafficStat.DownloadChunkCount, humanize.Bytes(uint64(trafficStat.UploadBytes)), humanize.Bytes(uint64(trafficStat.DownloadBytes)), elapsed.Seconds())
 
 	logSyncMergeResult(mergeResult)
 

+ 3 - 0
kernel/server/port.go

@@ -35,6 +35,9 @@ import (
 func killRunningKernel() {
 	defer logging.Recover()
 
+	now := time.Now()
+	defer logging.LogInfof("check running kernel elapsed [%dms]", time.Since(now).Milliseconds())
+
 	processes, err := goPS.Processes()
 	if nil != err {
 		logging.LogErrorf("get processes failed: %s", err)

+ 2 - 0
kernel/server/serve.go

@@ -85,6 +85,7 @@ func Serve(fastMode bool) {
 		host = "127.0.0.1"
 	}
 
+	now := time.Now()
 	ln, err := net.Listen("tcp", host+":"+util.ServerPort)
 	if nil != err {
 		if !fastMode {
@@ -104,6 +105,7 @@ func Serve(fastMode bool) {
 		}
 	}
 	util.ServerPort = port
+	logging.LogInfof("listen port elapsed [%dms]", time.Since(now).Milliseconds())
 
 	pid := fmt.Sprintf("%d", os.Getpid())
 	if !fastMode {

Some files were not shown because too many files changed in this diff