From 7546bdd2b72c6a317d5a18e46992c4e842aa3c5e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 18 Jun 2025 09:29:27 +0800 Subject: [PATCH 1/5] :art: Database gallery view https://github.com/siyuan-note/siyuan/issues/10414 --- app/appearance/langs/ar_SA.json | 1 - app/appearance/langs/de_DE.json | 1 - app/appearance/langs/en_US.json | 1 - app/appearance/langs/es_ES.json | 1 - app/appearance/langs/fr_FR.json | 1 - app/appearance/langs/he_IL.json | 1 - app/appearance/langs/it_IT.json | 1 - app/appearance/langs/ja_JP.json | 1 - app/appearance/langs/pl_PL.json | 1 - app/appearance/langs/pt_BR.json | 1 - app/appearance/langs/ru_RU.json | 1 - app/appearance/langs/zh_CHT.json | 1 - app/appearance/langs/zh_CN.json | 1 - app/src/protyle/render/av/gallery/render.ts | 2 +- 14 files changed, 1 insertion(+), 14 deletions(-) diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 1b8a8e28a..7f2e51a86 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "نسبة العرض إلى الارتفاع للبطاقة", - "addCard": "إضافة بطاقة", "cardPreview1": "معاينة البطاقة", "contentImage": "صورة المحتوى", "cardSize": "حجم البطاقة", diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index 9e948ea4e..c45441baa 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Seitenverhältnis der Karte", - "addCard": "Karte hinzufügen", "cardPreview1": "Kartenansicht", "contentImage": "Inhaltsbild", "cardSize": "Kartengröße", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 373c835a6..8b8b7c445 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Card aspect ratio", - "addCard": "Add card", "cardPreview1": "Card preview", "contentImage": "Content image", "cardSize": "Card size", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index f67b59b9f..f02cd3b7b 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Proporción de la tarjeta", - "addCard": "Agregar tarjeta", "cardPreview1": "Vista previa de la tarjeta", "contentImage": "Imagen del contenido", "cardSize": "Tamaño de la tarjeta", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 7d80809df..e2eb0fecd 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Proportions de la carte", - "addCard": "Ajouter une carte", "cardPreview1": "Aperçu de la carte", "contentImage": "Image du contenu", "cardSize": "Taille de la carte", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index 67e4356ee..19b18208d 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "יחס גובה-רוחב של כרטיס", - "addCard": "הוסף כרטיס", "cardPreview1": "תצוגה מקדימה של כרטיס", "contentImage": "תמונת תוכן", "cardSize": "גודל כרטיס", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index 1efd84c37..c822a9a24 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Proporzioni della carta", - "addCard": "Aggiungi carta", "cardPreview1": "Anteprima della carta", "contentImage": "Immagine del contenuto", "cardSize": "Dimensione della carta", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index ede452bb5..c3a764048 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "カードのアスペクト比", - "addCard": "カードを追加", "cardPreview1": "カードプレビュー", "contentImage": "コンテンツ画像", "cardSize": "カードサイズ", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index 6700859bf..36f06b4ce 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Proporcje karty", - "addCard": "Dodaj kartę", "cardPreview1": "Podgląd karty", "contentImage": "Obraz treści", "cardSize": "Rozmiar karty", diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json index e0deeacf6..9af216132 100644 --- a/app/appearance/langs/pt_BR.json +++ b/app/appearance/langs/pt_BR.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Proporção da carta", - "addCard": "Adicionar cartão", "cardPreview1": "Pré-visualização do cartão", "contentImage": "Imagem do conteúdo", "cardSize": "Tamanho do cartão", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index 586fdac25..1801a9283 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "Соотношение сторон карточки", - "addCard": "Добавить карту", "cardPreview1": "Предпросмотр карты", "contentImage": "Изображение содержимого", "cardSize": "Размер карты", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index b4c9c5ac2..2cd95411e 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "卡片寬高比", - "addCard": "添加卡片", "cardPreview1": "卡片預覽", "contentImage": "內容圖片", "cardSize": "卡片大小", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index a93f4f4f0..ffd68b41e 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,6 +1,5 @@ { "cardAspectRatio": "卡片宽高比", - "addCard": "添加卡片", "cardPreview1": "卡片预览", "contentImage": "内容图", "cardSize": "卡片大小", diff --git a/app/src/protyle/render/av/gallery/render.ts b/app/src/protyle/render/av/gallery/render.ts index 084fae936..c1b027427 100644 --- a/app/src/protyle/render/av/gallery/render.ts +++ b/app/src/protyle/render/av/gallery/render.ts @@ -103,7 +103,7 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex, `; }); - galleryHTML += ``; + galleryHTML += ``; let tabHTML = ""; let viewData: IAVView; response.data.views.forEach((item: IAVView) => { From 8deaeba27b63391ec47b42cfb7c7b3568f925920 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 18 Jun 2025 09:41:01 +0800 Subject: [PATCH 2/5] :art: Clean code --- kernel/model/render.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/model/render.go b/kernel/model/render.go index f1c5755b1..de577be62 100644 --- a/kernel/model/render.go +++ b/kernel/model/render.go @@ -177,10 +177,10 @@ func fillBlockRefCount(nodes []*ast.Node) { func renderBlockDOMByNodes(nodes []*ast.Node, luteEngine *lute.Lute) string { tree := &parse.Tree{Root: &ast.Node{Type: ast.NodeDocument}, Context: &parse.Context{ParseOption: luteEngine.ParseOptions}} blockRenderer := render.NewProtyleRenderer(tree, luteEngine.RenderOptions) - for _, n := range nodes { - ast.Walk(n, func(node *ast.Node, entering bool) ast.WalkStatus { - rendererFunc := blockRenderer.RendererFuncs[node.Type] - return rendererFunc(node, entering) + for _, node := range nodes { + ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus { + rendererFunc := blockRenderer.RendererFuncs[n.Type] + return rendererFunc(n, entering) }) } h := strings.TrimSpace(blockRenderer.Writer.String()) From 042927a4ff62e5b42ae90b8cd81765e7f374027f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 18 Jun 2025 09:53:04 +0800 Subject: [PATCH 3/5] :art: https://github.com/siyuan-note/siyuan/issues/15056 --- kernel/sql/av_gallery.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index dc01ba9ec..accc09a98 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -187,14 +187,15 @@ func fillAttributeViewGalleryCardCover(attrView *av.AttributeView, view *av.View }) if "" == galleryCard.CoverURL { - if ast.NodeDocument == node.Type { + isDoc := ast.NodeDocument == node.Type + if isDoc { node = node.FirstChild } buf := bytes.Buffer{} for c := node; nil != c; c = c.Next { buf.WriteString(renderBlockDOMByNode(c, luteEngine)) - if 1024*4 < buf.Len() { + if !isDoc || 1024*4 < buf.Len() { break } } From 529547f8575ef1e9452ab08039e51b93bae1bf65 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 18 Jun 2025 09:53:23 +0800 Subject: [PATCH 4/5] :art: https://github.com/siyuan-note/siyuan/issues/15057 --- kernel/sql/av_gallery.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index accc09a98..e6444fc27 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -221,9 +221,14 @@ func renderBlockDOMByNode(node *ast.Node, luteEngine *lute.Lute) string { tree := &parse.Tree{Root: &ast.Node{Type: ast.NodeDocument}, Context: &parse.Context{ParseOption: luteEngine.ParseOptions}} blockRenderer := render.NewProtyleRenderer(tree, luteEngine.RenderOptions) blockRenderer.Options.ProtyleContenteditable = false - ast.Walk(node, func(node *ast.Node, entering bool) ast.WalkStatus { - rendererFunc := blockRenderer.RendererFuncs[node.Type] - return rendererFunc(node, entering) + ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus { + if entering { + ial := parse.IAL2Map(n.KramdownIAL) + delete(ial, av.NodeAttrNameAvs) + n.KramdownIAL = parse.Map2IAL(ial) + } + rendererFunc := blockRenderer.RendererFuncs[n.Type] + return rendererFunc(n, entering) }) h := strings.TrimSpace(blockRenderer.Writer.String()) if strings.HasPrefix(h, " Date: Wed, 18 Jun 2025 09:53:43 +0800 Subject: [PATCH 5/5] :art: https://github.com/siyuan-note/siyuan/issues/15057 --- kernel/sql/av_gallery.go | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index e6444fc27..d565769d3 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -223,6 +223,7 @@ func renderBlockDOMByNode(node *ast.Node, luteEngine *lute.Lute) string { blockRenderer.Options.ProtyleContenteditable = false ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus { if entering { + // 内容图中不需要渲染数据库角标 https://github.com/siyuan-note/siyuan/issues/15057 ial := parse.IAL2Map(n.KramdownIAL) delete(ial, av.NodeAttrNameAvs) n.KramdownIAL = parse.Map2IAL(ial)