mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 22:50:13 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
e2cb9fe453
7 changed files with 72 additions and 9 deletions
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/open-spaced-repetition/go-fsrs/v2"
|
"github.com/open-spaced-repetition/go-fsrs/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Flashcard struct {
|
type Flashcard struct {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ require (
|
||||||
github.com/mitchellh/go-ps v1.0.0
|
github.com/mitchellh/go-ps v1.0.0
|
||||||
github.com/mssola/useragent v1.0.0
|
github.com/mssola/useragent v1.0.0
|
||||||
github.com/olahol/melody v1.2.1
|
github.com/olahol/melody v1.2.1
|
||||||
github.com/open-spaced-repetition/go-fsrs/v2 v2.0.1
|
github.com/open-spaced-repetition/go-fsrs/v3 v3.1.0
|
||||||
github.com/panjf2000/ants/v2 v2.10.0
|
github.com/panjf2000/ants/v2 v2.10.0
|
||||||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||||
github.com/radovskyb/watcher v1.0.7
|
github.com/radovskyb/watcher v1.0.7
|
||||||
|
|
@ -60,7 +60,7 @@ require (
|
||||||
github.com/siyuan-note/filelock v0.0.0-20240724034355-d1ed7bf21d04
|
github.com/siyuan-note/filelock v0.0.0-20240724034355-d1ed7bf21d04
|
||||||
github.com/siyuan-note/httpclient v0.0.0-20240910021232-ab6f84db3b8b
|
github.com/siyuan-note/httpclient v0.0.0-20240910021232-ab6f84db3b8b
|
||||||
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2
|
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2
|
||||||
github.com/siyuan-note/riff v0.0.0-20240828101024-443a09504726
|
github.com/siyuan-note/riff v0.0.0-20240911034015-5fb2819a3ad3
|
||||||
github.com/spf13/cast v1.7.0
|
github.com/spf13/cast v1.7.0
|
||||||
github.com/steambap/captcha v1.4.1
|
github.com/steambap/captcha v1.4.1
|
||||||
github.com/studio-b12/gowebdav v0.9.0
|
github.com/studio-b12/gowebdav v0.9.0
|
||||||
|
|
|
||||||
|
|
@ -270,8 +270,8 @@ github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4
|
||||||
github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag=
|
github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag=
|
||||||
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
|
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
|
||||||
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
|
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
|
||||||
github.com/open-spaced-repetition/go-fsrs/v2 v2.0.1 h1:ODpQGZqZNsKqAF4/WUdRtfuNtwDIfI6Xj3cSznxk0g0=
|
github.com/open-spaced-repetition/go-fsrs/v3 v3.1.0 h1:wsNqYC0poLo1+4c9T4AoYvsPMpyTIjYpf2PpWbgJf7k=
|
||||||
github.com/open-spaced-repetition/go-fsrs/v2 v2.0.1/go.mod h1:Ry+MLx079nUXwSbYm+OYLK9pQ9yu0cCLWSo3N4H5ZBI=
|
github.com/open-spaced-repetition/go-fsrs/v3 v3.1.0/go.mod h1:zTtQIk3kOO9kweg5zJAgbdwBXR2HBPsDN0k6AxmTpzY=
|
||||||
github.com/otiai10/gosseract/v2 v2.4.1 h1:G8AyBpXEeSlcq8TI85LH/pM5SXk8Djy2GEXisgyblRw=
|
github.com/otiai10/gosseract/v2 v2.4.1 h1:G8AyBpXEeSlcq8TI85LH/pM5SXk8Djy2GEXisgyblRw=
|
||||||
github.com/otiai10/gosseract/v2 v2.4.1/go.mod h1:1gNWP4Hgr2o7yqWfs6r5bZxAatjOIdqWxJLWsTsembk=
|
github.com/otiai10/gosseract/v2 v2.4.1/go.mod h1:1gNWP4Hgr2o7yqWfs6r5bZxAatjOIdqWxJLWsTsembk=
|
||||||
github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs=
|
github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs=
|
||||||
|
|
@ -349,8 +349,8 @@ github.com/siyuan-note/httpclient v0.0.0-20240910021232-ab6f84db3b8b h1:gl+FZ3mo
|
||||||
github.com/siyuan-note/httpclient v0.0.0-20240910021232-ab6f84db3b8b/go.mod h1:szsySkVwuZ1INYAbPE/afcmTjJW+IrDMBMK1tMw36oA=
|
github.com/siyuan-note/httpclient v0.0.0-20240910021232-ab6f84db3b8b/go.mod h1:szsySkVwuZ1INYAbPE/afcmTjJW+IrDMBMK1tMw36oA=
|
||||||
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2 h1:/2+tlOThVB86RxSLeW0JFw2ISUrH2ZFRg15ULGAUGAE=
|
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2 h1:/2+tlOThVB86RxSLeW0JFw2ISUrH2ZFRg15ULGAUGAE=
|
||||||
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2/go.mod h1:3Osd2/nwzXZFl6ZcDE4hA0HD83Wyv1fds47nVuapyOM=
|
github.com/siyuan-note/logging v0.0.0-20240505035402-6430d57006a2/go.mod h1:3Osd2/nwzXZFl6ZcDE4hA0HD83Wyv1fds47nVuapyOM=
|
||||||
github.com/siyuan-note/riff v0.0.0-20240828101024-443a09504726 h1:bLBpaidGUXZS18eKnpUd5WdrGRz0mymZDLMKtWJe/B8=
|
github.com/siyuan-note/riff v0.0.0-20240911034015-5fb2819a3ad3 h1:8rFXYq638/CXQ8W7xd2MFkoI7ArUeVzeWP8gEcr0W0o=
|
||||||
github.com/siyuan-note/riff v0.0.0-20240828101024-443a09504726/go.mod h1:IThyetU+bmHp9dd9prUlwVyAwx/dBxRdUUysZQ+TYsw=
|
github.com/siyuan-note/riff v0.0.0-20240911034015-5fb2819a3ad3/go.mod h1:zXiGHpQvl7NOPZnq/kUqHlfArBRaaypRl6TZzHP59Yg=
|
||||||
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
||||||
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||||
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import (
|
||||||
|
|
||||||
"github.com/88250/lute/ast"
|
"github.com/88250/lute/ast"
|
||||||
"github.com/88250/lute/parse"
|
"github.com/88250/lute/parse"
|
||||||
"github.com/open-spaced-repetition/go-fsrs/v2"
|
"github.com/open-spaced-repetition/go-fsrs/v3"
|
||||||
"github.com/siyuan-note/siyuan/kernel/filesys"
|
"github.com/siyuan-note/siyuan/kernel/filesys"
|
||||||
"github.com/siyuan-note/siyuan/kernel/sql"
|
"github.com/siyuan-note/siyuan/kernel/sql"
|
||||||
"github.com/siyuan-note/siyuan/kernel/treenode"
|
"github.com/siyuan-note/siyuan/kernel/treenode"
|
||||||
|
|
|
||||||
|
|
@ -2365,6 +2365,65 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
|
||||||
} else if av.KeyTypeLineNumber == cell.Value.Type {
|
} else if av.KeyTypeLineNumber == cell.Value.Type {
|
||||||
val = strconv.Itoa(rowNum)
|
val = strconv.Itoa(rowNum)
|
||||||
rowNum++
|
rowNum++
|
||||||
|
} else if av.KeyTypeRelation == cell.Value.Type {
|
||||||
|
for i, v := range cell.Value.Relation.Contents {
|
||||||
|
if nil == v {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if av.KeyTypeBlock == v.Type && nil != v.Block {
|
||||||
|
val = v.Block.Content
|
||||||
|
if !wysiwyg {
|
||||||
|
val = string(lex.EscapeProtyleMarkers([]byte(val)))
|
||||||
|
val = strings.ReplaceAll(val, "\\|", "|")
|
||||||
|
val = strings.ReplaceAll(val, "|", "\\|")
|
||||||
|
}
|
||||||
|
|
||||||
|
val = strings.ReplaceAll(val, "\n", " ")
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(val)})
|
||||||
|
}
|
||||||
|
if i < len(cell.Value.Relation.Contents)-1 {
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(", ")})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
} else if av.KeyTypeRollup == cell.Value.Type {
|
||||||
|
for i, v := range cell.Value.Rollup.Contents {
|
||||||
|
if nil == v {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if av.KeyTypeBlock == v.Type {
|
||||||
|
if nil != v.Block {
|
||||||
|
val = v.Block.Content
|
||||||
|
if !wysiwyg {
|
||||||
|
val = string(lex.EscapeProtyleMarkers([]byte(val)))
|
||||||
|
val = strings.ReplaceAll(val, "\\|", "|")
|
||||||
|
val = strings.ReplaceAll(val, "|", "\\|")
|
||||||
|
}
|
||||||
|
|
||||||
|
val = strings.ReplaceAll(val, "\n", " ")
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(val)})
|
||||||
|
}
|
||||||
|
} else if av.KeyTypeText == v.Type {
|
||||||
|
val = v.Text.Content
|
||||||
|
if !wysiwyg {
|
||||||
|
val = string(lex.EscapeProtyleMarkers([]byte(val)))
|
||||||
|
val = strings.ReplaceAll(val, "\\|", "|")
|
||||||
|
val = strings.ReplaceAll(val, "|", "\\|")
|
||||||
|
}
|
||||||
|
|
||||||
|
val = strings.ReplaceAll(val, "\n", " ")
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(val)})
|
||||||
|
} else {
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(v.String(true))})
|
||||||
|
}
|
||||||
|
|
||||||
|
if i < len(cell.Value.Rollup.Contents)-1 {
|
||||||
|
mdTableCell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(", ")})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if "" == val {
|
if "" == val {
|
||||||
|
|
|
||||||
|
|
@ -791,7 +791,7 @@ func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids
|
||||||
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(207), i+1, len(renameRoots)))
|
util.PushEndlessProgress(fmt.Sprintf(Conf.Language(207), i+1, len(renameRoots)))
|
||||||
}
|
}
|
||||||
|
|
||||||
WaitForWritingFiles()
|
sql.WaitForWritingDatabase()
|
||||||
|
|
||||||
reloadTreeIDs = gulu.Str.RemoveDuplicatedElem(reloadTreeIDs)
|
reloadTreeIDs = gulu.Str.RemoveDuplicatedElem(reloadTreeIDs)
|
||||||
for _, id := range reloadTreeIDs {
|
for _, id := range reloadTreeIDs {
|
||||||
|
|
|
||||||
|
|
@ -384,6 +384,8 @@ func (tx *Transaction) doMove(operation *Operation) (ret *TxErr) {
|
||||||
if err = tx.writeTree(targetTree); err != nil {
|
if err = tx.writeTree(targetTree); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
task.AppendAsyncTaskWithDelay(task.SetDefRefCount, 1*time.Second, pushSetDefRefCount, srcTree.ID, srcTree.ID)
|
||||||
|
task.AppendAsyncTaskWithDelay(task.SetDefRefCount, 1*time.Second, pushSetDefRefCount, targetTree.ID, srcNode.ID)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -463,6 +465,8 @@ func (tx *Transaction) doMove(operation *Operation) (ret *TxErr) {
|
||||||
if err = tx.writeTree(targetTree); err != nil {
|
if err = tx.writeTree(targetTree); err != nil {
|
||||||
return &TxErr{code: TxErrCodeWriteTree, msg: err.Error(), id: id}
|
return &TxErr{code: TxErrCodeWriteTree, msg: err.Error(), id: id}
|
||||||
}
|
}
|
||||||
|
task.AppendAsyncTaskWithDelay(task.SetDefRefCount, 1*time.Second, pushSetDefRefCount, srcTree.ID, srcTree.ID)
|
||||||
|
task.AppendAsyncTaskWithDelay(task.SetDefRefCount, 1*time.Second, pushSetDefRefCount, targetTree.ID, srcNode.ID)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue