From b908bae49633b5711bd4154f1e37b3513cd02c04 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 11 Aug 2024 09:33:43 +0800 Subject: [PATCH 1/2] :art: Improve database table view exporting https://github.com/siyuan-note/siyuan/issues/12232 --- kernel/model/export.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/kernel/model/export.go b/kernel/model/export.go index 182fac2ed..e74fab2c1 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -538,7 +538,7 @@ func ExportResources(resourcePaths []string, mainName string) (exportFilePath st func Preview(id string) (retStdHTML string, retOutline []*Path) { tree, _ := LoadTreeByBlockID(id) - tree = exportTree(tree, false, false, + tree = exportTree(tree, false, false, true, Conf.Export.BlockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode, Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker, Conf.Export.BlockRefTextLeft, Conf.Export.BlockRefTextRight, @@ -643,7 +643,7 @@ func ExportMarkdownHTML(id, savePath string, docx, merge bool) (name, dom string } } - tree = exportTree(tree, true, false, + tree = exportTree(tree, true, false, true, Conf.Export.BlockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode, Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker, Conf.Export.BlockRefTextLeft, Conf.Export.BlockRefTextRight, @@ -793,7 +793,7 @@ func ExportHTML(id, savePath string, pdf, image, keepFold, merge bool) (name, do } } - tree = exportTree(tree, true, keepFold, + tree = exportTree(tree, true, keepFold, true, Conf.Export.BlockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode, Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker, Conf.Export.BlockRefTextLeft, Conf.Export.BlockRefTextRight, @@ -1840,7 +1840,7 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest blockRefTextLeft, blockRefTextRight string, addTitle bool, defBlockIDs []string) (ret string) { - tree = exportTree(tree, false, false, + tree = exportTree(tree, false, false, false, blockRefMode, blockEmbedMode, fileAnnotationRefMode, tagOpenMarker, tagCloseMarker, blockRefTextLeft, blockRefTextRight, @@ -1929,7 +1929,7 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest return } -func exportTree(tree *parse.Tree, wysiwyg, keepFold bool, +func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool, blockRefMode, blockEmbedMode, fileAnnotationRefMode int, tagOpenMarker, tagCloseMarker string, blockRefTextLeft, blockRefTextRight string, @@ -2223,6 +2223,11 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold bool, mdTableHeadRow := &ast.Node{Type: ast.NodeTableRow, TableAligns: aligns} mdTableHead.AppendChild(mdTableHeadRow) for _, col := range table.Columns { + if avHiddenCol && col.Hidden { + // 按需跳过隐藏列 Improve database table view exporting https://github.com/siyuan-note/siyuan/issues/12232 + continue + } + cell := &ast.Node{Type: ast.NodeTableCell} name := string(lex.EscapeProtyleMarkers([]byte(col.Name))) name = strings.ReplaceAll(name, "\\|", "|") @@ -2236,6 +2241,12 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold bool, mdTableRow := &ast.Node{Type: ast.NodeTableRow, TableAligns: aligns} mdTable.AppendChild(mdTableRow) for _, cell := range row.Cells { + if avHiddenCol && nil != cell.Value { + if col := table.GetColumn(cell.Value.KeyID); nil != col && col.Hidden { + continue + } + } + mdTableCell := &ast.Node{Type: ast.NodeTableCell} mdTableRow.AppendChild(mdTableCell) var val string From c86ed9bd5998dd9d5117c39596c20c4334801ec5 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 11 Aug 2024 10:01:02 +0800 Subject: [PATCH 2/2] :art: Improve marketplace loading when offline https://github.com/siyuan-note/siyuan/issues/12050 --- kernel/bazaar/icon.go | 5 +++++ kernel/bazaar/package.go | 9 +++++++++ kernel/bazaar/plugin.go | 5 +++++ kernel/bazaar/template.go | 5 +++++ kernel/bazaar/theme.go | 5 +++++ kernel/bazaar/widget.go | 5 +++++ kernel/util/net.go | 2 +- 7 files changed, 35 insertions(+), 1 deletion(-) diff --git a/kernel/bazaar/icon.go b/kernel/bazaar/icon.go index b7e509c2e..e3635da3a 100644 --- a/kernel/bazaar/icon.go +++ b/kernel/bazaar/icon.go @@ -37,6 +37,11 @@ type Icon struct { func Icons() (icons []*Icon) { icons = []*Icon{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("icons") if nil != err { return diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go index 73b539395..7eb3de138 100644 --- a/kernel/bazaar/package.go +++ b/kernel/bazaar/package.go @@ -482,6 +482,15 @@ func isOutdatedTemplate(template *Template, bazaarTemplates []*Template) bool { return false } +func isBazzarOnline() (ret bool) { + // Improve marketplace loading when offline https://github.com/siyuan-note/siyuan/issues/12050 + ret = util.IsOnline(util.BazaarOSSServer, true) + if !ret { + util.PushErrMsg(util.Langs[util.Lang][24], 5000) + } + return +} + func GetPackageREADME(repoURL, repoHash, packageType string) (ret string) { repoURLHash := repoURL + "@" + repoHash diff --git a/kernel/bazaar/plugin.go b/kernel/bazaar/plugin.go index 9bc6bd29d..86d7decc3 100644 --- a/kernel/bazaar/plugin.go +++ b/kernel/bazaar/plugin.go @@ -39,6 +39,11 @@ type Plugin struct { func Plugins(frontend string) (plugins []*Plugin) { plugins = []*Plugin{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("plugins") if nil != err { return diff --git a/kernel/bazaar/template.go b/kernel/bazaar/template.go index d7f850fab..46f28f9e7 100644 --- a/kernel/bazaar/template.go +++ b/kernel/bazaar/template.go @@ -38,6 +38,11 @@ type Template struct { func Templates() (templates []*Template) { templates = []*Template{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("templates") if nil != err { return diff --git a/kernel/bazaar/theme.go b/kernel/bazaar/theme.go index c5d9d1222..2a6a0e5a1 100644 --- a/kernel/bazaar/theme.go +++ b/kernel/bazaar/theme.go @@ -39,6 +39,11 @@ type Theme struct { func Themes() (ret []*Theme) { ret = []*Theme{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("themes") if nil != err { return diff --git a/kernel/bazaar/widget.go b/kernel/bazaar/widget.go index 2d4b7a312..cd4b504d7 100644 --- a/kernel/bazaar/widget.go +++ b/kernel/bazaar/widget.go @@ -37,6 +37,11 @@ type Widget struct { func Widgets() (widgets []*Widget) { widgets = []*Widget{} + isOnline := isBazzarOnline() + if !isOnline { + return + } + stageIndex, err := getStageIndex("widgets") if nil != err { return diff --git a/kernel/util/net.go b/kernel/util/net.go index 1b51b936c..549670ca1 100644 --- a/kernel/util/net.go +++ b/kernel/util/net.go @@ -111,7 +111,7 @@ func isOnline(checkURL string, skipTlsVerify bool) (ret bool) { } c.SetUserAgent(UserAgent) - for i := 0; i < 3; i++ { + for i := 0; i < 2; i++ { resp, err := c.R().Get(checkURL) if resp.GetHeader("Location") != "" {