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

This commit is contained in:
Vanessa 2023-02-19 09:46:47 +08:00
commit 021cdc327f
7 changed files with 1058 additions and 289 deletions

View file

@ -7,7 +7,7 @@
"id": "20200924100950-9op5xi1",
"title": "Shortcuts",
"type": "doc",
"updated": "20221223215543"
"updated": "20230219093355"
},
"Children": [
{
@ -2155,7 +2155,7 @@
"Properties": {
"colgroup": "||",
"id": "20210106154319-yozlufs",
"updated": "20221212223548"
"updated": "20230219093355"
},
"Children": [
{
@ -2717,6 +2717,54 @@
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",
"Children": [
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": "Quick make card"
}
]
},
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": ""
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Ctrl+Alt+F"
},
{
"Type": "NodeText",
"Data": " / "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "⌥⌘F"
},
{
"Type": "NodeText",
"Data": ""
}
]
},
{
"Type": "NodeTableCell",
"Data": "td"
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",

View file

@ -5,7 +5,7 @@
"Properties": {
"id": "20221223221636-ms2b4w9",
"title": "Flashcards",
"updated": "20221229111520"
"updated": "20230219092854"
},
"Children": [
{
@ -63,32 +63,190 @@
]
},
{
"ID": "20221229111328-8hwsv9o",
"Type": "NodeList",
"ListData": {},
"ID": "20230219092249-6povnxy",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20221229111328-8hwsv9o",
"updated": "20221229111520"
"id": "20230219092249-6povnxy",
"updated": "20230219092249"
},
"Children": [
{
"ID": "20221229111328-l01l8rb",
"Type": "NodeText",
"Data": "Content Block"
}
]
},
{
"ID": "20230219092249-6fpd419",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-6fpd419",
"updated": "20230219092249"
},
"Children": [
{
"Type": "NodeText",
"Data": "Before starting the official card making, let us introduce some basic rules of card making:"
}
]
},
{
"ID": "20230219092249-yzjjb1o",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092249-yzjjb1o",
"updated": "20230219092854"
},
"Children": [
{
"ID": "20230219092249-duyx8hb",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111328-l01l8rb",
"updated": "20221229111520"
"id": "20230219092249-duyx8hb",
"updated": "20230219092854"
},
"Children": [
{
"ID": "20221229111328-n738r3a",
"ID": "20230219092249-j18dirv",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111328-n738r3a",
"updated": "20221229111440"
"id": "20230219092249-j18dirv",
"updated": "20230219092854"
},
"Children": [
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "mark"
},
{
"Type": "NodeText",
"Data": " elements in content blocks will be treated as knockout answers"
}
]
}
]
},
{
"ID": "20230219092249-xdxmusm",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092249-xdxmusm",
"updated": "20230219092407"
},
"Children": [
{
"ID": "20230219092249-04pxvxk",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-04pxvxk",
"updated": "20230219092407"
},
"Children": [
{
"Type": "NodeText",
"Data": "If the super block is set as a flashcard, the first sub-block of the super block will be regarded as a question, and the rest of the sub-blocks will be regarded as an answer"
}
]
}
]
},
{
"ID": "20230219092249-tq1ea3b",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092249-tq1ea3b",
"updated": "20230219092249"
},
"Children": [
{
"ID": "20230219092249-j50cmev",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-j50cmev",
"updated": "20230219092249"
},
"Children": [
{
"Type": "NodeText",
"Data": "If a list or list item is set as a flashcard, non-sublists will be treated as questions and sublists will be treated as answers"
}
]
}
]
}
]
},
{
"ID": "20230219092249-l3b55a9",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219092249-l3b55a9",
"updated": "20230219092431"
},
"Children": [
{
"Type": "NodeText",
"Data": "Based on card deck"
}
]
},
{
"ID": "20230219092249-4f5q0yn",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-4f5q0yn",
"updated": "20230219092602"
},
"Children": [
{
"Type": "NodeText",
"Data": "Based on the use of card deck, the content blocks in different documents can be carded and put into a unified card pack for review."
}
]
},
{
"ID": "20230219092249-adkmzaf",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092249-adkmzaf",
"updated": "20230219092718"
},
"Children": [
{
"ID": "20230219092249-w4nnmee",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092249-w4nnmee",
"updated": "20230219092718"
},
"Children": [
{
"ID": "20230219092249-3h4zeve",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-3h4zeve",
"updated": "20230219092718"
},
"Children": [
{
@ -98,111 +256,39 @@
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Flashcard"
"TextMarkTextContent": "Add to card deck..."
},
{
"Type": "NodeText",
"Data": " in the block icon menu, then choose to add this content block to a card deck"
}
]
},
{
"ID": "20221229111328-m09a7o4",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20221229111328-m09a7o4",
"updated": "20221229111520"
},
"Children": [
{
"ID": "20221229111328-vjyvl27",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111328-vjyvl27",
"updated": "20221229111459"
},
"Children": [
{
"ID": "20221229111328-ayebaxi",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111328-ayebaxi",
"updated": "20221229111459"
},
"Children": [
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "Mark"
},
{
"Type": "NodeText",
"Data": " elements in content blocks will be treated as knockout answers"
}
]
}
]
},
{
"ID": "20221229111328-ovvadcn",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111328-ovvadcn",
"updated": "20221229111520"
},
"Children": [
{
"ID": "20221229111328-2amris5",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111328-2amris5",
"updated": "20221229111520"
},
"Children": [
{
"Type": "NodeText",
"Data": "If a super block is set as a flashcard, the first sub-block of the super block will be regarded as a question, and the rest of the sub-blocks will be regarded as an answer"
}
]
}
]
"Data": " in the block label menu, and then add the content block to a card deck to complete the card making"
}
]
}
]
},
{
"ID": "20221229111328-5zd9v4g",
"ID": "20230219092249-cf49472",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111328-5zd9v4g",
"updated": "20221229111347"
"id": "20230219092249-cf49472",
"updated": "20230219092643"
},
"Children": [
{
"ID": "20221229111328-vdse89d",
"ID": "20230219092249-gtv3hbr",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111328-vdse89d",
"updated": "20221229111347"
"id": "20230219092249-gtv3hbr",
"updated": "20230219092643"
},
"Children": [
{
"Type": "NodeText",
"Data": "You can enter the review interface by clicking "
"Data": "Access review by clicking "
},
{
"Type": "NodeTextMark",
@ -219,6 +305,120 @@
}
]
},
{
"ID": "20230219092249-3oeqj8o",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219092249-3oeqj8o",
"updated": "20230219092505"
},
"Children": [
{
"Type": "NodeText",
"Data": "Based on doc"
}
]
},
{
"ID": "20230219092249-9l69wsr",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-9l69wsr",
"updated": "20230219092712"
},
"Children": [
{
"Type": "NodeText",
"Data": "The document-based usage method does not need to pay attention to the card deck, and supports parent-child document review."
}
]
},
{
"ID": "20230219092249-wbyos2h",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092249-wbyos2h",
"updated": "20230219092822"
},
"Children": [
{
"ID": "20230219092249-675n7hy",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092249-675n7hy",
"updated": "20230219092802"
},
"Children": [
{
"ID": "20230219092249-u07ihhi",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-u07ihhi",
"updated": "20230219092802"
},
"Children": [
{
"Type": "NodeText",
"Data": "Select "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Quick make card"
},
{
"Type": "NodeText",
"Data": " in the block icon menu to make a card"
}
]
}
]
},
{
"ID": "20230219092249-omjyd3g",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092249-omjyd3g",
"updated": "20230219092822"
},
"Children": [
{
"ID": "20230219092249-2wpj6jk",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092249-2wpj6jk",
"updated": "20230219092822"
},
"Children": [
{
"Type": "NodeText",
"Data": "Right-click the doc in the document tree panel or click the document block icon "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Flashcard"
},
{
"Type": "NodeText",
"Data": " in the editor to enter the review"
}
]
}
]
}
]
},
{
"ID": "20221223221639-djlafd4",
"Type": "NodeHeading",

View file

@ -7,7 +7,7 @@
"id": "20200813004551-gm0pbn1",
"title": "快捷键",
"type": "doc",
"updated": "20221223215441"
"updated": "20230219093253"
},
"Children": [
{
@ -2153,7 +2153,7 @@
"Properties": {
"colgroup": "||",
"id": "20201227133317-vopotjc",
"updated": "20221212223149"
"updated": "20230219093253"
},
"Children": [
{
@ -2711,6 +2711,54 @@
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",
"Children": [
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": "快速制卡"
}
]
},
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": ""
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Ctrl+Alt+F"
},
{
"Type": "NodeText",
"Data": " / "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "⌥⌘F"
},
{
"Type": "NodeText",
"Data": ""
}
]
},
{
"Type": "NodeTableCell",
"Data": "td"
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",

View file

@ -5,7 +5,7 @@
"Properties": {
"id": "20221223215557-o6gfsoy",
"title": "闪卡",
"updated": "20221229111221"
"updated": "20230219092526"
},
"Children": [
{
@ -62,13 +62,179 @@
}
]
},
{
"ID": "20230219085616-p18ujkc",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219085616-p18ujkc",
"updated": "20230219085902"
},
"Children": [
{
"Type": "NodeText",
"Data": "内容块"
}
]
},
{
"ID": "20230219085733-8mj65zz",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219085733-8mj65zz",
"updated": "20230219085752"
},
"Children": [
{
"Type": "NodeText",
"Data": "在开始正式制卡之前,我们先介绍一些制卡的基本规则:"
}
]
},
{
"ID": "20230219085658-xnrf7rf",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219085658-xnrf7rf",
"updated": "20230219092140"
},
"Children": [
{
"ID": "20221223220707-il9wt7t",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221223220707-il9wt7t",
"updated": "20230219085710"
},
"Children": [
{
"ID": "20221223220707-v0oxdls",
"Type": "NodeParagraph",
"Properties": {
"id": "20221223220707-v0oxdls",
"updated": "20221223221347"
},
"Children": [
{
"Type": "NodeText",
"Data": "内容块"
},
{
"Type": "NodeText",
"Data": "中的 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "标记"
},
{
"Type": "NodeText",
"Data": " 元素会被视作挖空的答案"
}
]
}
]
},
{
"ID": "20221229110953-e7fm7vg",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229110953-e7fm7vg",
"updated": "20221229111221"
},
"Children": [
{
"ID": "20221229110953-fwtd0u1",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229110953-fwtd0u1",
"updated": "20221229111221"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果将超级块设置为闪卡,则该超级块的第一个子块会被视作问题,其余子块会被视作答案"
}
]
}
]
},
{
"ID": "20230219092035-8ekf01l",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092035-8ekf01l",
"updated": "20230219092140"
},
"Children": [
{
"ID": "20230219092035-p9ybzf1",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092035-p9ybzf1",
"updated": "20230219092140"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果将列表或者列表项设置为闪卡,则非子列表会被视问题,子列表会被视作答案"
}
]
}
]
}
]
},
{
"ID": "20230219084417-qgvd9bn",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219084417-qgvd9bn",
"updated": "20230219090057"
},
"Children": [
{
"Type": "NodeText",
"Data": "基于卡包"
}
]
},
{
"ID": "20230219090359-1b55hzy",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219090359-1b55hzy",
"updated": "20230219092526"
},
"Children": [
{
"Type": "NodeText",
"Data": "基于卡包的使用方式可以将不同文档中的内容块制卡后放到统一的卡包中复习。"
}
]
},
{
"ID": "20221223215834-z8ny593",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20221223215834-z8ny593",
"updated": "20221229111221"
"updated": "20230219091828"
},
"Children": [
{
@ -80,7 +246,7 @@
},
"Properties": {
"id": "20221229111046-50w42e3",
"updated": "20221229111221"
"updated": "20230219091828"
},
"Children": [
{
@ -88,7 +254,7 @@
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111046-fh0iyx1",
"updated": "20221229111046"
"updated": "20230219091828"
},
"Children": [
{
@ -98,87 +264,11 @@
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "闪卡"
"TextMarkTextContent": "添加到卡包..."
},
{
"Type": "NodeText",
"Data": "​,然后选择将该内容块添加到一个卡包中"
}
]
},
{
"ID": "20221229111119-i5mqtf1",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20221229111119-i5mqtf1",
"updated": "20221229111221"
},
"Children": [
{
"ID": "20221223220707-il9wt7t",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221223220707-il9wt7t",
"updated": "20221223221347"
},
"Children": [
{
"ID": "20221223220707-v0oxdls",
"Type": "NodeParagraph",
"Properties": {
"id": "20221223220707-v0oxdls",
"updated": "20221223221347"
},
"Children": [
{
"Type": "NodeText",
"Data": "内容块中的 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "标记"
},
{
"Type": "NodeText",
"Data": " 元素会被视作挖空的答案"
}
]
}
]
},
{
"ID": "20221229110953-e7fm7vg",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229110953-e7fm7vg",
"updated": "20221229111221"
},
"Children": [
{
"ID": "20221229110953-fwtd0u1",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229110953-fwtd0u1",
"updated": "20221229111221"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果将超级块设置为闪卡,则该超级块的第一个子块会被视作问题,其余子块会被视作答案"
}
]
}
]
"Data": "​,然后将该内容块添加到一个卡包中完成制卡"
}
]
}
@ -192,7 +282,8 @@
"Marker": "Kg=="
},
"Properties": {
"id": "20221223220710-o4y8jae"
"id": "20221223220710-o4y8jae",
"updated": "20230219085236"
},
"Children": [
{
@ -200,7 +291,7 @@
"Type": "NodeParagraph",
"Properties": {
"id": "20221223220710-n98j2n8",
"updated": "20221223220711"
"updated": "20230219085236"
},
"Children": [
{
@ -214,7 +305,121 @@
},
{
"Type": "NodeText",
"Data": " 可进入复习界面"
"Data": " 进入复习"
}
]
}
]
}
]
},
{
"ID": "20230219085352-7ma2lg2",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219085352-7ma2lg2",
"updated": "20230219090055"
},
"Children": [
{
"Type": "NodeText",
"Data": "基于文档"
}
]
},
{
"ID": "20230219090448-88z0ib9",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219090448-88z0ib9",
"updated": "20230219090740"
},
"Children": [
{
"Type": "NodeText",
"Data": "基于文档的使用方式可以不必关注卡包,并且支持父子文档复习。"
}
]
},
{
"ID": "20230219085352-sqkbh7t",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219085352-sqkbh7t",
"updated": "20230219091934"
},
"Children": [
{
"ID": "20230219085352-ewh3aqy",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219085352-ewh3aqy",
"updated": "20230219090109"
},
"Children": [
{
"ID": "20230219085352-0sgkiz2",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219085352-0sgkiz2",
"updated": "20230219090109"
},
"Children": [
{
"Type": "NodeText",
"Data": "在块标菜单中选择 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "快速制卡"
},
{
"Type": "NodeText",
"Data": " 完成制卡"
}
]
}
]
},
{
"ID": "20230219085352-nd4oy5s",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219085352-nd4oy5s",
"updated": "20230219091934"
},
"Children": [
{
"ID": "20230219085352-vl7lwth",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219085352-vl7lwth",
"updated": "20230219091934"
},
"Children": [
{
"Type": "NodeText",
"Data": "在文档树面板中右击文档或者在编辑器中点击文档块标 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "闪卡"
},
{
"Type": "NodeText",
"Data": " 进入复习"
}
]
}

View file

@ -6,7 +6,7 @@
"icon": "2328",
"id": "20211226122549-jktxego",
"title": "快捷鍵",
"updated": "20221223215519"
"updated": "20230219093325"
},
"Children": [
{
@ -2141,7 +2141,7 @@
"Properties": {
"colgroup": "||",
"id": "20211226122652-pb50zx4",
"updated": "20221212223517"
"updated": "20230219093325"
},
"Children": [
{
@ -2703,6 +2703,54 @@
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",
"Children": [
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": "快速制卡"
}
]
},
{
"Type": "NodeTableCell",
"Data": "td",
"Children": [
{
"Type": "NodeText",
"Data": ""
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "Ctrl+Alt+F"
},
{
"Type": "NodeText",
"Data": " / "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "⌥⌘F"
},
{
"Type": "NodeText",
"Data": ""
}
]
},
{
"Type": "NodeTableCell",
"Data": "td"
}
]
},
{
"Type": "NodeTableRow",
"Data": "tr",

View file

@ -5,7 +5,7 @@
"Properties": {
"id": "20221223221501-mops33i",
"title": "閃卡",
"updated": "20221229111623"
"updated": "20230219092941"
},
"Children": [
{
@ -63,32 +63,194 @@
]
},
{
"ID": "20221229111606-kwmh3f1",
"Type": "NodeList",
"ListData": {},
"ID": "20230219092911-xk65zqb",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20221229111606-kwmh3f1",
"updated": "20221229111623"
"id": "20230219092911-xk65zqb",
"updated": "20230219092911"
},
"Children": [
{
"ID": "20221229111606-92hkjay",
"Type": "NodeText",
"Data": "內容塊"
}
]
},
{
"ID": "20230219092911-yxwh91v",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-yxwh91v",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "在開始正式製卡之前,我們先介紹一些制卡的基本規則:"
}
]
},
{
"ID": "20230219092911-8074ovh",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092911-8074ovh",
"updated": "20230219092911"
},
"Children": [
{
"ID": "20230219092911-r97cxkq",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111606-92hkjay",
"updated": "20221229111615"
"id": "20230219092911-r97cxkq",
"updated": "20230219092911"
},
"Children": [
{
"ID": "20221229111606-eh5ev9r",
"ID": "20230219092911-ne0d1fm",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111606-eh5ev9r",
"updated": "20221229111615"
"id": "20230219092911-ne0d1fm",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "內容塊中的 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "標記"
},
{
"Type": "NodeText",
"Data": " 元素會被視作挖空的答案"
}
]
}
]
},
{
"ID": "20230219092911-k399zf9",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092911-k399zf9",
"updated": "20230219092911"
},
"Children": [
{
"ID": "20230219092911-5enl43r",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-5enl43r",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果將超級塊設置為閃卡,則該超級塊的第一個子塊會被視作問題,其餘子塊會被視作答案"
}
]
}
]
},
{
"ID": "20230219092911-ez3j9t1",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092911-ez3j9t1",
"updated": "20230219092911"
},
"Children": [
{
"ID": "20230219092911-x89zk5a",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-x89zk5a",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果將列表或者列表項設置為閃卡,則非子列表會被視問題,子列表會被視作答案"
}
]
}
]
}
]
},
{
"ID": "20230219092911-wh5sgd8",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219092911-wh5sgd8",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "基於卡包"
}
]
},
{
"ID": "20230219092911-ol65uqs",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-ol65uqs",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "基於卡包的使用方式可以將不同文檔中的內容塊制卡後放到統一的卡包中復習。"
}
]
},
{
"ID": "20230219092911-u7jucj7",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092911-u7jucj7",
"updated": "20230219092928"
},
"Children": [
{
"ID": "20230219092911-s4dh6g1",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092911-s4dh6g1",
"updated": "20230219092922"
},
"Children": [
{
"ID": "20230219092911-9cn6n81",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-9cn6n81",
"updated": "20230219092922"
},
"Children": [
{
@ -98,110 +260,34 @@
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "閃卡"
"TextMarkTextContent": "添加到卡包..."
},
{
"Type": "NodeText",
"Data": "​,然後選擇將該內容塊添加到一個卡包中"
}
]
},
{
"ID": "20221229111606-jsk0whs",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20221229111606-jsk0whs",
"updated": "20221229111606"
},
"Children": [
{
"ID": "20221229111606-ir6cz09",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111606-ir6cz09",
"updated": "20221229111606"
},
"Children": [
{
"ID": "20221229111606-51p41j7",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111606-51p41j7",
"updated": "20221229111606"
},
"Children": [
{
"Type": "NodeText",
"Data": "內容塊中的 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "mark",
"TextMarkTextContent": "標記"
},
{
"Type": "NodeText",
"Data": " 元素會被視作挖空的答案"
}
]
}
]
},
{
"ID": "20221229111606-qq7gaqu",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111606-qq7gaqu",
"updated": "20221229111606"
},
"Children": [
{
"ID": "20221229111606-o45nneg",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111606-o45nneg",
"updated": "20221229111606"
},
"Children": [
{
"Type": "NodeText",
"Data": "如果將超級塊設置為閃卡,則該超級塊的第一個子塊會被視作問題,其餘子塊會被視作答案"
}
]
}
]
"Data": "​,然後將該內容塊添加到一個卡包中完成製卡"
}
]
}
]
},
{
"ID": "20221229111606-e13cee3",
"ID": "20230219092911-lxrxhy6",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20221229111606-e13cee3",
"updated": "20221229111623"
"id": "20230219092911-lxrxhy6",
"updated": "20230219092928"
},
"Children": [
{
"ID": "20221229111606-9v3d8sc",
"ID": "20230219092911-05ghbty",
"Type": "NodeParagraph",
"Properties": {
"id": "20221229111606-9v3d8sc",
"updated": "20221229111623"
"id": "20230219092911-05ghbty",
"updated": "20230219092928"
},
"Children": [
{
@ -215,7 +301,121 @@
},
{
"Type": "NodeText",
"Data": " 可進入複習界面"
"Data": " 進入複習"
}
]
}
]
}
]
},
{
"ID": "20230219092911-kawl9n2",
"Type": "NodeHeading",
"HeadingLevel": 3,
"Properties": {
"id": "20230219092911-kawl9n2",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "基於文檔"
}
]
},
{
"ID": "20230219092911-vfi7z5z",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-vfi7z5z",
"updated": "20230219092911"
},
"Children": [
{
"Type": "NodeText",
"Data": "基於文檔的使用方式可以不必關注卡包,並且支持父子文檔複習。"
}
]
},
{
"ID": "20230219092911-jluw0db",
"Type": "NodeList",
"ListData": {},
"Properties": {
"id": "20230219092911-jluw0db",
"updated": "20230219092941"
},
"Children": [
{
"ID": "20230219092911-4j7zdh5",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092911-4j7zdh5",
"updated": "20230219092934"
},
"Children": [
{
"ID": "20230219092911-5swg3v3",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-5swg3v3",
"updated": "20230219092934"
},
"Children": [
{
"Type": "NodeText",
"Data": "在塊標菜單中選擇 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "快速制卡"
},
{
"Type": "NodeText",
"Data": " 完成製卡"
}
]
}
]
},
{
"ID": "20230219092911-i1eqodd",
"Type": "NodeListItem",
"ListData": {
"BulletChar": 42,
"Marker": "Kg=="
},
"Properties": {
"id": "20230219092911-i1eqodd",
"updated": "20230219092941"
},
"Children": [
{
"ID": "20230219092911-5sewtmn",
"Type": "NodeParagraph",
"Properties": {
"id": "20230219092911-5sewtmn",
"updated": "20230219092941"
},
"Children": [
{
"Type": "NodeText",
"Data": "在文檔樹面板中右擊文檔或者在編輯器中點擊文檔塊標 "
},
{
"Type": "NodeTextMark",
"TextMarkType": "kbd",
"TextMarkTextContent": "閃卡"
},
{
"Type": "NodeText",
"Data": " 進入複習"
}
]
}

View file

@ -18,7 +18,6 @@ package model
import (
"errors"
"github.com/siyuan-note/siyuan/kernel/sql"
"math"
"os"
"path/filepath"
@ -34,6 +33,8 @@ import (
"github.com/siyuan-note/logging"
"github.com/siyuan-note/riff"
"github.com/siyuan-note/siyuan/kernel/cache"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/sql"
"github.com/siyuan-note/siyuan/kernel/treenode"
"github.com/siyuan-note/siyuan/kernel/util"
)
@ -49,15 +50,34 @@ func GetTreeFlashcards(rootID string, page int) (blocks []*Block, total, pageCou
return
}
treeBlockIDs := map[string]bool{}
ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus {
if !entering || !n.IsBlock() {
return ast.WalkContinue
trees := []*parse.Tree{tree}
box := Conf.Box(tree.Box)
luteEngine := util.NewLute()
files := box.ListFiles(tree.Path)
for _, subFile := range files {
if !strings.HasSuffix(subFile.path, ".sy") {
continue
}
treeBlockIDs[n.ID] = true
return ast.WalkContinue
})
subTree, loadErr := filesys.LoadTree(box.ID, subFile.path, luteEngine)
if nil != loadErr {
continue
}
trees = append(trees, subTree)
}
treeBlockIDs := map[string]bool{}
for _, t := range trees {
ast.Walk(t.Root, func(n *ast.Node, entering bool) ast.WalkStatus {
if !entering || !n.IsBlock() || ast.NodeDocument == n.Type {
return ast.WalkContinue
}
treeBlockIDs[n.ID] = true
return ast.WalkContinue
})
}
var allBlockIDs []string
const pageSize = 20