ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

思源笔记 v3.3.0 深度解析:資料庫按欄位分組與細節改進全覽

思源笔记 v3.3.0 深度解析:資料庫按欄位分組與細節改進全覽 思源笔记 v3.3.0 深度解析資料庫按欄位分組與細節改進全覽【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan本篇文章基於思源筆記SiYuanv3.3.0 版本更新日誌撰寫圍繞「資料庫按欄位分組」這一核心特性以及編輯器、匯出、同步、開發者介面等大量細節改進展開結合倉庫內kernel/av、kernel/model等目錄的原始碼幫助讀者理解新特性的底層實作與實際用法並掌握升級前需要注意的相容性事項。版本概述資料庫按欄位分組細節全面打磨思源筆記 v3.3.0 是一個以「資料庫」為中心的版本首次支援資料庫按欄位分組同時對資料庫的加入、欄位預設填入、匯總欄位、屬性面板、拖曳填充等操作進行了大量最佳化並修復了多個資料庫相關缺陷。編輯器、匯出、同步與開發者介面也有多處體驗提升。需要特別注意的是本版本包含一項破壞性變更舊版無法開啟新版的資料庫如果你使用的行動端是在商店安裝的建議等商店上架新版本後再更新桌面端資料庫範本的多選欄位值從字串變更為字串陣列涉及此欄位的既有模板需要進行適配。資料庫按欄位分組從介面到原始碼的完整解讀分組的資料結構定義「資料庫依欄位分組」是本版本最重要的新特性。在底層分組規則由kernel/av/group.go中的ViewGroup結構描述其欄位完整對應了 UI 上的各項分組配置type ViewGroup struct { Field string json:field // 分組欄位 ID Method GroupMethod json:method // 分組方式 Range *GroupRange json:range,omitempty // 分組範圍 Order GroupOrder json:order // 分組排序規則 HideEmpty bool json:hideEmpty // 是否隱藏空分組 }Field指定按哪一個欄位分組如狀態、日期、數字等Method分組方式決定如何把值歸類Range僅在數字範圍分組時使用定義起止值與步長Order分組的排序規則HideEmpty是否隱藏空分組。六種分組方式GroupMethod枚舉定義了 v3.3.0 支援的分組方式見kernel/av/group.go枚舉值說明典型適用欄位GroupMethodValue按值分組相同值歸為一組單選、多選、文字GroupMethodRangeNum按數字範圍分組配合GroupRange的起始值、結束值、步長數字GroupMethodDateRelative按相對日期分組日期GroupMethodDateDay按「天」分組日期GroupMethodDateWeek按「週」分組日期GroupMethodDateMonth按「月」分組日期GroupMethodDateYear按「年」分組日期日期類分組的粒度選擇讓使用者可以根據業務需要把時間資料分別以「今天/昨天/近 7 天」「按週」「按月」等維度快速聚類檢視。四種分組排序規則GroupOrder枚舉同見kernel/av/group.go提供四種排序方式GroupOrderAsc升序排列分組GroupOrderDesc降序排列分組GroupOrderMan手動排序由使用者自行拖曳調整分組順序GroupOrderSelectOption按選擇欄位的選項順序排序僅單選與多選欄位適用。分組排序的實際執行邏輯位於kernel/model/attribute_view_render.go的sortGroupViews函式手動排序時直接按GroupSort欄位排序view.Groups[i].GroupSort view.Groups[j].GroupSort相對日期分組時會先區分出「相對日期分組」近 30 天、近 7 天、昨天、今天、明天、未來 7 天、未來 30 天與「具體年月分組」30 天之前或 30 天之後再按時間順序重新排列升序/降序時使用util.NaturalCompare進行自然排序數字與文字混合時更符合直覺按選項順序排序時會把欄位選項的定義順序映射為索引sortGroupsBySelectOption再據此排序。上述排序邏輯中「未分組值」會被收進預設分組groupValueDefault且永遠排在最後保證已有資料不會因為分組而丟失。隱藏空分組的實作當啟用「隱藏空分組」HideEmpty時渲染層的hideEmptyGroupViews函式會根據分組內項目數目CountItems()與隱藏狀態標記GroupHidden0 顯示、1 空白隱藏、2 手動隱藏決定分組是否呈現見kernel/model/attribute_view_render.go與kernel/av/layout.go中BaseInstance的GroupHidden定義。與此對應kernel/model/attribute_view.go中在切換HideEmpty開關時會同步清理或還原空白分組避免殘留空組幹擾視圖。分組與其他視圖能力的協同分組配置與過濾、排序、分頁一樣作為視圖實例BaseInstance的屬性保存見kernel/av/layout.go。分組檢視渲染時會為每個分組建立子視圖並在返回前清空子視圖的欄位定義與項目列表groupView.Table.Columns nil等以減少冗餘資料傳輸這一設計兼顧了功能與效能。資料庫欄位與視圖的系列改進破壞性變更模板多選欄位值類型調整這是升級前必須處理的相容性問題資料庫範本的多選欄位值從字串變更為字串陣列。在原始碼層面kernel/av/value.go中Value結構的MSelect欄位型別為[]*ValueSelect陣列多選值在序列化時以陣列形式保存模板渲染多選欄位時需要按照陣列進行遍歷取值。如果你在模板中直接以字串方式拼接或判斷多選值請改用陣列語法如join或遍歷進行適配。模板欄位與匯總欄位的相互增強本版本補齊了資料庫計算能力的一環匯總欄位支援使用模板欄位issue 12384匯總Rollup的取值來源不再僅限於普通欄位模板欄位計算出的結果也可以被匯總模板欄位支援使用其他模板欄位issue 15517模板之間可以互相引用組合出更複雜的派生值匯總欄位支援使用更新時間/建立時間欄位issue 15662可按「建立/更新時間」做匯總統計例如統計某段時間內新增或修改的記錄數。配合kernel/av/value.go中Template、Created、Updated、Rollup等值型別定義可以看出資料庫的「欄位聯動」體系在 v3.3.0 已經打通建立時間 → 模板欄位 → 匯總欄位形成可疊加的計算鏈路。資料庫操作體驗最佳化改進「加入資料庫」issue 10659加入既有資料庫的入口與流程更順暢改進欄位預設填入issue 11966新增記錄時欄位值的預設行為更符合預期改進資料庫塊綁定issue 14511塊與資料庫行的綁定關係更穩定改進資料庫屬性面板issue 15664在屬性面板中編輯資料庫欄位時互動與回饋更即時改進「垂直拖曳填充值」issue 15518垂直方向批量填充欄位值的拖曳體驗最佳化限制資料庫標題為 512 個字元issue 15459在kernel/model/attribute_view.go中超過 512 個字元按 Unicode 字元數計算utf8.RuneCountInString的資料庫名稱會被截斷為 512 字元避免超長標題影響渲染與同步資料庫拖曳、效能與互動最佳化issue 15552綜合調整拖曳行為與渲染效能篩選條件未計算時移除高亮issue 15558避免未生效的篩選高亮造成誤解。缺陷修復資料庫選擇欄位若新增選項過快會遺失選項issue 13261修復快速連續新增選項時的競態問題資料庫匯總欄位篩選結果不正確issue 15608修正匯總值作為篩選條件時的計算結果。編輯器與文件處理改進文件複製為 Markdown文件現在支援「複製為 Markdown」issue 15397這對需要把思源筆記內容快速轉移到其他工具的使用者非常實用。底層由內核的 Markdown 匯出/複製能力支撐與 v3.3.0 同時發布的內核 API 參數調整見下文exportMdContent、copyStdMarkdown新增imgTag參數相互配合讓複製結果更貼近原始排版。貼上與匯入的img標籤解析貼上時解析img標籤issue 15464從網頁或富文字來源複製內容時img圖片標籤可以被正確解析改進匯入時img標籤解析issue 15638匯入流程中的圖片標籤處理同步最佳化。標題回車與輸入解析改進文件標題回車處理issue 15294在文件標題處按 Enter 的行為更符合編輯預期改進br輸入解析issue 15373手動輸入br換行標記時能正確轉為換行。效能與穩定性提升大量內容貼上效能issue 15306一次性貼上大量段落時的響應速度顯著改善刪除塊時在某些情況下不再在文件開頭新增空塊issue 15336修正刪除操作後的意外空塊改進模板搜尋高亮issue 15338模板列表中搜尋關鍵字的命中高亮更清晰。程式碼塊增強改進自訂程式碼塊行號顯示issue 15324PR 15324自訂程式碼塊的行號顯示邏輯最佳化支援程式碼塊高亮模板語法並將程式碼塊模板匯出為段落issue 15345PR 15345程式碼塊中可以書寫模板語法並即時高亮匯出時該類程式碼塊會以段落形式輸出更新 highlight.js 插件issue 15386PR 15386程式碼高亮的語言覆蓋與效果同步更新。匯出與預覽改進改進匯出預覽模式 CSS 變數值填色issue 15110PR 15110預覽模式下主題 CSS 變數的顏色值能正確渲染匯出預覽模式支援聚焦使用issue 15340匯出預覽支援進入聚焦模式排除干擾、專注校對內容匯出預覽時程式碼塊保留屬性issue 15343預覽中的程式碼塊會保留自訂屬性避免樣式丟失改進匯出 PDF 樣式issue 15463PR 15463PDF 匯出的版面與樣式細節最佳化。同步、資源檔案與其他體驗改進改善資料同步避免因摺疊塊導致的衝突issue 15329摺疊狀態不再被誤判為內容差異減少同步衝突當 .sy 檔案或資料庫 .json 超過 8MB 時提醒使用者issue 15451單個文件或資料庫檔案過大時主動提示避免不知不覺中拖慢同步與索引類似的容量防護在資產內容檢索中也存在如 資產內容太大時的警告記錄「重新 OCR」在 Tesseract 未啟用時彈出視窗提示issue 15367避免無意義的 OCR 操作與靜默失敗改進狀態列索引建立資訊提示issue 15390索引建立進度提示更清晰改進標籤中表情符號的搜尋issue 15391標籤包含 emoji 時也能被準確搜尋改進 HTML 剪藏issue 15438網頁剪藏結果的排版更完整「上傳資源檔案到雲端」支援聚焦使用issue 15462資源上傳視圖支援聚焦模式瀏覽資料庫表格目前視圖圖片時過濾隱藏列issue 15548PR 15548圖片檢視不再顯示隱藏列的內容改進文件標題回車處理、標籤頁切換改進issue 15546多標籤頁之間的切換行為更穩定退出摺疊塊時改進聚焦定位issue 15670從摺疊塊退出時焦點位置更精準。開發者介面變更內核 APIexportMdContent與copyStdMarkdown新增imgTag參數issue 15454允許控制 Markdown 匯出/複製時圖片標籤的輸出形式與「文件複製為 Markdown」功能配套使用/api/block/getBlockKramdown連結/圖片 URL 不再用空格編碼issue 15611避免 URL 中的空格被錯誤編碼改進內核 API/api/filetree/moveDocsByIDissue 15616文件批量移動介面的行為更可靠。外掛程式 API 與事件新增外掛程式IProtyleOptions.handleEmptyContentissue 15398可自訂空內容編輯器的處理邏輯新增外掛程式getActiveTabissue 15415與getActiveEditorissue 15641取得當前活動的標籤頁與編輯器實例新增外掛程式hideMessageissue 15485主動隱藏通知訊息新增外掛事件匯流排switch-protyle-modeissue 15516監聽編輯器模式切換如文件/即時預覽/原始碼模式事件將addTopBar與addStatusBar從onload生命週期調整到onLayoutReadyissue 15455頂欄與狀態列註冊的時機更合理避免介面尚未就緒時註冊導致的異常。執行環境升級至 Electron v37.3.1issue 15410桌面端執行環境更新帶來安全性與穩定性修復。升級建議與注意事項行動端與桌面端版本配對由於新舊版資料庫格式不相容若行動端是商店安裝版本請等商店新版上架後再更新桌面端避免舊行動端無法開啟新版資料庫檢查模板多選欄位若你的資料庫模板中使用了多選欄位需要按照「字串陣列」的新格式調整模板語法可參考kernel/av/value.go中MSelect的陣列型別進行適配關注 8MB 檔案提醒若收到 .sy 文件或資料庫 .json 超過 8MB 的提示建議拆分文件或清理冗餘資料以維持同步與檢索效能外掛開發者注意addTopBar/addStatusBar的生命週期調整以及新增的getActiveTab、getActiveEditor、hideMessage、switch-protyle-mode等能力可參閱 外掛程式原始碼目錄 與 內核 API 路由 進一步了解呼叫方式。思源筆記 v3.3.0 以資料庫分組為核心補齊了匯總/模板欄位的計算鏈路並在編輯、匯出、同步與開發者生態上全面打磨是資料庫能力走向成熟的重要版本。後續可持續關注kernel/av目錄下分組、排序、過濾等模組的演進如 分組規則定義、視圖渲染與分組排序深入掌握思源資料庫的完整能力模型。【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表