diff --git a/app/changelogs/v2.12.0/v2.12.0.md b/app/changelogs/v2.12.0/v2.12.0.md new file mode 100644 index 000000000..769c78d05 --- /dev/null +++ b/app/changelogs/v2.12.0/v2.12.0.md @@ -0,0 +1,57 @@ +## Overview + +This version improves kernel stability and supports adding the watermark on export PDF and image. + +In addition, starting from this version, S3/WebDAV data sync and backup will end the free public beta phase, and subsequent use requires payment. For details, please visit [https://b3log.org/siyuan/pricing.html]. + +## Changelogs + +Below are the detailed changes in this version. + +### Feature + +* [Support adding the watermark on export PDF](https://github.com/siyuan-note/siyuan/issues/9961) +* [Support adding the watermark on export image](https://github.com/siyuan-note/siyuan/issues/9992) + +### Enhancement + +* [S3/WebDAV data sync and backup are available for a fee](https://github.com/siyuan-note/siyuan/issues/8780) +* [Improve `inline code` Markdown editing](https://github.com/siyuan-note/siyuan/issues/9978) +* [Improve `//!js` query embed block result sorting](https://github.com/siyuan-note/siyuan/issues/9977) +* [Improve kernel API requesting concurrency control](https://github.com/siyuan-note/siyuan/issues/9979) +* [Improve web page clip content conversion](https://github.com/siyuan-note/siyuan/issues/9980) +* [Improve position when reopening document on mobile](https://github.com/siyuan-note/siyuan/issues/9981) +* [Support click to open hyperlinks like `www.foo.com` ](https://github.com/siyuan-note/siyuan/issues/9986) +* [Improve some inline elements Markdown editing](https://github.com/siyuan-note/siyuan/issues/9999) +* [Improve flashcard cloze style](https://github.com/siyuan-note/siyuan/issues/10009) +* [Improve math rendering when copy to Zhihu](https://github.com/siyuan-note/siyuan/issues/10015) +* [Remove line breaks when exporting inline formulas that contain line breaks to Markdown](https://github.com/siyuan-note/siyuan/issues/10017) + +### Bugfix + +* [The status of flashcards after re-reviewing the previous one is incorrect](https://github.com/siyuan-note/siyuan/issues/9988) +* [Inline memos and inline formula replacement are invalid](https://github.com/siyuan-note/siyuan/issues/9990) +* [Unable to export inline formulas with italics](https://github.com/siyuan-note/siyuan/issues/9998) +* [Search and replace fails in some cases](https://github.com/siyuan-note/siyuan/issues/10016) +* [Reference jump is not located in read-only mode](https://github.com/siyuan-note/siyuan/issues/10028) +* [Converting PDF annotation ref to text fails after setting the appearance](https://github.com/siyuan-note/siyuan/issues/10029) + +### Development + +* [Add Rollup column to database table view](https://github.com/siyuan-note/siyuan/issues/9958) +* [Add plugin event bus `open-menu-inbox`](https://github.com/siyuan-note/siyuan/pull/9967) +* [Error when switching dock on mobile](https://github.com/siyuan-note/siyuan/issues/9974) +* [Database table view asset column support Ctrl+V](https://github.com/siyuan-note/siyuan/issues/9982) +* [Database table view primary key column cell support `[[` bind to a block](https://github.com/siyuan-note/siyuan/issues/9983) +* [Improve kernel API `/api/notebook/*`](https://github.com/siyuan-note/siyuan/pull/9987) +* [Database table view supports inserting columns in the middle](https://github.com/siyuan-note/siyuan/issues/9993) +* [Add internal kernel API `/api/sqlite/flushTransaction`](https://github.com/siyuan-note/siyuan/issues/10005) +* [Add plugin event bus `lock-screen`](https://github.com/siyuan-note/siyuan/issues/10006) +* [Improve adding rows of the filtered database table view](https://github.com/siyuan-note/siyuan/issues/10025) +* [The primary key are no longer shown in the attribute panel database](https://github.com/siyuan-note/siyuan/issues/10027) +* [Show database tab action buttons and tabs can be scrolled](https://github.com/siyuan-note/siyuan/issues/10030) + +## Download + +* [B3log](https://b3log.org/siyuan/en/download.html) +* [GitHub](https://github.com/siyuan-note/siyuan/releases) diff --git a/app/changelogs/v2.12.0/v2.12.0_zh_CHT.md b/app/changelogs/v2.12.0/v2.12.0_zh_CHT.md new file mode 100644 index 000000000..6551351e1 --- /dev/null +++ b/app/changelogs/v2.12.0/v2.12.0_zh_CHT.md @@ -0,0 +1,57 @@ +## 概述 + +此版本改進了內核穩定性,支援在匯出 PDF 和圖片時添加浮水印。 + +另外,從該版本開始 S3/WebDAV 資料同步和備份結束免費公測階段,後續需要付費才能使用,細節請[訪問](https://b3log.org/siyuan/pricing.html)。 + +## 變更記錄 + +以下是此版本中的詳細變更。 + +### 引入特性 + +* [支援匯出 PDF 新增浮水印](https://github.com/siyuan-note/siyuan/issues/9961) +* [支援匯出圖片新增浮水印](https://github.com/siyuan-note/siyuan/issues/9992) + +### 改進功能 + +* [S3/WebDAV 資料同步與備份需要付費才能使用](https://github.com/siyuan-note/siyuan/issues/8780) +* [改進 `行級程式碼` Markdown 編輯](https://github.com/siyuan-note/siyuan/issues/9978) +* [改進 `//!js` 查詢嵌入區塊結果排序](https://github.com/siyuan-note/siyuan/issues/9977) +* [改進內核 API 請求並發控制](https://github.com/siyuan-note/siyuan/issues/9979) +* [改進網頁剪藏內容轉換](https://github.com/siyuan-note/siyuan/issues/9980) +* [改進行動端上開啟文件定位瀏覽位置](https://github.com/siyuan-note/siyuan/issues/9981) +* [支援點選開啟形狀如 `www.foo.com` 的超連結](https://github.com/siyuan-note/siyuan/issues/9986) +* [改進一些行級元素 Markdown 編輯](https://github.com/siyuan-note/siyuan/issues/9999) +* [改良閃卡挖空樣式](https://github.com/siyuan-note/siyuan/issues/10009) +* [改進複製到知乎時公式渲染](https://github.com/siyuan-note/siyuan/issues/10015) +* [匯出 Markdown 時刪除行級公式中的換行](https://github.com/siyuan-note/siyuan/issues/10017) + +### 修復缺陷 + +* [閃卡回到上一步重新複習後狀態不正確](https://github.com/siyuan-note/siyuan/issues/9988) +* [行級備註與行級公式查找替換失效](https://github.com/siyuan-note/siyuan/issues/9990) +* [無法匯出斜體的行級公式](https://github.com/siyuan-note/siyuan/issues/9998) +* [某些情況下搜尋替換失效](https://github.com/siyuan-note/siyuan/issues/10016) +* [唯讀模式下引用跳轉後未定位瀏覽位置](https://github.com/siyuan-note/siyuan/issues/10028) +* [無法轉換外觀樣式的 PDF 註解引用為文字](https://github.com/siyuan-note/siyuan/issues/10029) + +### 開發者 + +* [資料庫表格檢視新增總計欄位](https://github.com/siyuan-note/siyuan/issues/9958) +* [新增外掛事件匯流排 `open-menu-inbox`](https://github.com/siyuan-note/siyuan/pull/9967) +* [行動端切換停靠列異常](https://github.com/siyuan-note/siyuan/issues/9974) +* [資料庫表格檢視資源列支援 Ctrl+V](https://github.com/siyuan-note/siyuan/issues/9982) +* [資料庫表格視圖主鍵列支援 `[[` 綁定區塊](https://github.com/siyuan-note/siyuan/issues/9983) +* [改進內核 API `/api/notebook/*`](https://github.com/siyuan-note/siyuan/pull/9987) +* [資料庫表格檢視支援在中間插入欄位](https://github.com/siyuan-note/siyuan/issues/9993) +* [新增內部核心 API `/api/sqlite/flushTransaction`](https://github.com/siyuan-note/siyuan/issues/10005) +* [新增外掛事件匯流排 `lock-screen`](https://github.com/siyuan-note/siyuan/issues/10006) +* [改進資料庫開啟過濾時新增行操作](https://github.com/siyuan-note/siyuan/issues/10025) +* [主鍵不再在屬性面板資料庫頁籤中顯示](https://github.com/siyuan-note/siyuan/issues/10027) +* [資料庫視圖頁籤支援滾動](https://github.com/siyuan-note/siyuan/issues/10030) + +## 下載 + +* [B3log](https://b3log.org/siyuan/download.html) +* [GitHub](https://github.com/siyuan-note/siyuan/releases) diff --git a/app/changelogs/v2.12.0/v2.12.0_zh_CN.md b/app/changelogs/v2.12.0/v2.12.0_zh_CN.md new file mode 100644 index 000000000..5f820fb8b --- /dev/null +++ b/app/changelogs/v2.12.0/v2.12.0_zh_CN.md @@ -0,0 +1,57 @@ +## 概述 + +该版本改进了内核稳定性,支持导出 PDF 和图片时添加水印。 + +另外,从该版本开始 S3/WebDAV 数据同步和备份结束免费公测阶段,后续需要付费才能使用,细节请[访问](https://b3log.org/siyuan/pricing.html)。 + +## 变更记录 + +以下是此版本中的详细变更。 + +### 引入特性 + +* [支持导出 PDF 添加水印](https://github.com/siyuan-note/siyuan/issues/9961) +* [支持导出图片添加水印](https://github.com/siyuan-note/siyuan/issues/9992) + +### 改进功能 + +* [S3/WebDAV 数据同步和备份需要付费才能使用](https://github.com/siyuan-note/siyuan/issues/8780) +* [改进 `行级代码` Markdown 编辑](https://github.com/siyuan-note/siyuan/issues/9978) +* [改进 `//!js` 查询嵌入块结果排序](https://github.com/siyuan-note/siyuan/issues/9977) +* [改进内核 API 请求并发控制](https://github.com/siyuan-note/siyuan/issues/9979) +* [改进网页剪藏内容转换](https://github.com/siyuan-note/siyuan/issues/9980) +* [改进移动端上打开文档定位浏览位置](https://github.com/siyuan-note/siyuan/issues/9981) +* [支持单击打开形如 `www.foo.com` 的超链接](https://github.com/siyuan-note/siyuan/issues/9986) +* [改进一些行级元素 Markdown 编辑](https://github.com/siyuan-note/siyuan/issues/9999) +* [改进闪卡挖空样式](https://github.com/siyuan-note/siyuan/issues/10009) +* [改进复制到知乎时公式渲染](https://github.com/siyuan-note/siyuan/issues/10015) +* [导出 Markdown 时删除行级公式中的换行](https://github.com/siyuan-note/siyuan/issues/10017) + +### 修复缺陷 + +* [闪卡返回上一步重新复习后状态不正确](https://github.com/siyuan-note/siyuan/issues/9988) +* [行级备注和行级公式查找替换失效](https://github.com/siyuan-note/siyuan/issues/9990) +* [无法导出带斜体的行级公式](https://github.com/siyuan-note/siyuan/issues/9998) +* [某些情况下搜索替换失效](https://github.com/siyuan-note/siyuan/issues/10016) +* [只读模式下引用跳转后未定位浏览位置](https://github.com/siyuan-note/siyuan/issues/10028) +* [无法转换带外观样式的 PDF 注释引用为文本](https://github.com/siyuan-note/siyuan/issues/10029) + +### 开发者 + +* [数据库表格视图添加汇总列](https://github.com/siyuan-note/siyuan/issues/9958) +* [添加插件事件总线 `open-menu-inbox`](https://github.com/siyuan-note/siyuan/pull/9967) +* [移动端切换停靠栏异常](https://github.com/siyuan-note/siyuan/issues/9974) +* [数据库表格视图资源列支持 Ctrl+V](https://github.com/siyuan-note/siyuan/issues/9982) +* [数据库表格视图主键列支持 `[[` 绑定块](https://github.com/siyuan-note/siyuan/issues/9983) +* [改进内核 API `/api/notebook/*`](https://github.com/siyuan-note/siyuan/pull/9987) +* [数据库表格视图支持在中间插入列](https://github.com/siyuan-note/siyuan/issues/9993) +* [添加内部内核 API `/api/sqlite/flushTransaction`](https://github.com/siyuan-note/siyuan/issues/10005) +* [添加插件事件总线 `lock-screen`](https://github.com/siyuan-note/siyuan/issues/10006) +* [改进数据库开启过滤时添加行操作](https://github.com/siyuan-note/siyuan/issues/10025) +* [主键不再在属性面板数据库页签中显示](https://github.com/siyuan-note/siyuan/issues/10027) +* [数据库视图页签支持滚动](https://github.com/siyuan-note/siyuan/issues/10030) + +## 下载 + +* [B3log](https://b3log.org/siyuan/download.html) +* [GitHub](https://github.com/siyuan-note/siyuan/releases) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index a2de70a76..a89c0c19f 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -246,15 +246,21 @@ func GetBlockAttributeViewKeys(blockID string) (ret []*BlockAttributeViewKeys) { if nil != destAv { for _, bID := range relVal.Relation.BlockIDs { destVal := destAv.GetValue(kv.Key.Rollup.KeyID, bID) - if nil != destVal { - if av.KeyTypeNumber == destVal.Type { - destVal.Number.Format = kv.Key.NumberFormat - destVal.Number.FormatNumber() + if nil == destVal { + destKey, _ := destAv.GetKey(kv.Key.Rollup.KeyID) + if nil == destKey { + continue } - kv.Values[0].Rollup.Contents = append(kv.Values[0].Rollup.Contents, destVal.String()) + destVal = treenode.GetAttributeViewDefaultValue(ast.NewNodeID(), kv.Key.Rollup.KeyID, blockID, destKey.Type) } + if av.KeyTypeNumber == destVal.Type { + destVal.Number.Format = kv.Key.NumberFormat + destVal.Number.FormatNumber() + } + + kv.Values[0].Rollup.Contents = append(kv.Values[0].Rollup.Contents, destVal.String()) kv.Values[0].Rollup.RenderContents(kv.Key.Rollup.Calc) } } @@ -814,7 +820,12 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a for _, blockID := range relVal.Relation.BlockIDs { destVal := destAv.GetValue(rollupKey.Rollup.KeyID, blockID) if nil == destVal { - continue + destKey, _ := destAv.GetKey(rollupKey.Rollup.KeyID) + if nil == destKey { + continue + } + + destVal = treenode.GetAttributeViewDefaultValue(ast.NewNodeID(), rollupKey.Rollup.KeyID, blockID, destKey.Type) } if av.KeyTypeNumber == destVal.Type { destVal.Number.Format = rollupKey.NumberFormat diff --git a/kernel/treenode/node.go b/kernel/treenode/node.go index 338fe2112..97ed0848a 100644 --- a/kernel/treenode/node.go +++ b/kernel/treenode/node.go @@ -777,7 +777,12 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a for _, blockID := range relVal.Relation.BlockIDs { destVal := destAv.GetValue(rollupKey.Rollup.KeyID, blockID) if nil == destVal { - continue + destKey, _ := destAv.GetKey(rollupKey.Rollup.KeyID) + if nil == destKey { + continue + } + + destVal = GetAttributeViewDefaultValue(ast.NewNodeID(), rollupKey.Rollup.KeyID, blockID, destKey.Type) } if av.KeyTypeNumber == destVal.Type { destVal.Number.Format = rollupKey.NumberFormat @@ -841,8 +846,10 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a func FillAttributeViewTableCellNilValue(tableCell *av.TableCell, rowID, colID string) { if nil == tableCell.Value { - tableCell.Value = &av.Value{ID: tableCell.ID, KeyID: colID, BlockID: rowID, Type: tableCell.ValueType} + tableCell.Value = GetAttributeViewDefaultValue(tableCell.ID, colID, rowID, tableCell.ValueType) + return } + tableCell.Value.Type = tableCell.ValueType switch tableCell.ValueType { case av.KeyTypeText: @@ -908,6 +915,43 @@ func FillAttributeViewTableCellNilValue(tableCell *av.TableCell, rowID, colID st } } +func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ av.KeyType) (ret *av.Value) { + ret = &av.Value{ID: valueID, KeyID: keyID, BlockID: blockID, Type: typ} + switch typ { + case av.KeyTypeText: + ret.Text = &av.ValueText{} + case av.KeyTypeNumber: + ret.Number = &av.ValueNumber{} + case av.KeyTypeDate: + ret.Date = &av.ValueDate{} + case av.KeyTypeSelect: + ret.MSelect = []*av.ValueSelect{} + case av.KeyTypeMSelect: + ret.MSelect = []*av.ValueSelect{} + case av.KeyTypeURL: + ret.URL = &av.ValueURL{} + case av.KeyTypeEmail: + ret.Email = &av.ValueEmail{} + case av.KeyTypePhone: + ret.Phone = &av.ValuePhone{} + case av.KeyTypeMAsset: + ret.MAsset = []*av.ValueAsset{} + case av.KeyTypeTemplate: + ret.Template = &av.ValueTemplate{} + case av.KeyTypeCreated: + ret.Created = &av.ValueCreated{} + case av.KeyTypeUpdated: + ret.Updated = &av.ValueUpdated{} + case av.KeyTypeCheckbox: + ret.Checkbox = &av.ValueCheckbox{} + case av.KeyTypeRelation: + ret.Relation = &av.ValueRelation{} + case av.KeyTypeRollup: + ret.Rollup = &av.ValueRollup{} + } + return +} + func renderTemplateCol(ial map[string]string, tplContent string, rowValues []*av.KeyValues) string { if "" == ial["id"] { block := getRowBlockValue(rowValues)