Procházet zdrojové kódy

:art: Improve handling of copy block ref when including images https://github.com/siyuan-note/siyuan/issues/9317

Daniel před 1 rokem
rodič
revize
121d33e74d
3 změnil soubory, kde provedl 21 přidání a 0 odebrání
  1. 13 0
      kernel/api/block.go
  2. 1 0
      kernel/api/router.go
  3. 7 0
      kernel/model/blockinfo.go

+ 13 - 0
kernel/api/block.go

@@ -279,6 +279,19 @@ func getTreeStat(c *gin.Context) {
 	ret.Data = model.StatTree(id)
 }
 
+func getDOMText(c *gin.Context) {
+	ret := gulu.Ret.NewResult()
+	defer c.JSON(http.StatusOK, ret)
+
+	arg, ok := util.JsonArg(c, ret)
+	if !ok {
+		return
+	}
+
+	dom := arg["dom"].(string)
+	ret.Data = model.GetDOMText(dom)
+}
+
 func getRefText(c *gin.Context) {
 	ret := gulu.Ret.NewResult()
 	defer c.JSON(http.StatusOK, ret)

+ 1 - 0
kernel/api/router.go

@@ -159,6 +159,7 @@ func ServeAPI(ginServer *gin.Engine) {
 	ginServer.Handle("POST", "/api/block/getRefIDsByFileAnnotationID", model.CheckAuth, getRefIDsByFileAnnotationID)
 	ginServer.Handle("POST", "/api/block/getBlockDefIDsByRefText", model.CheckAuth, getBlockDefIDsByRefText)
 	ginServer.Handle("POST", "/api/block/getRefText", model.CheckAuth, getRefText)
+	ginServer.Handle("POST", "/api/block/getDOMText", model.CheckAuth, getDOMText)
 	ginServer.Handle("POST", "/api/block/getTreeStat", model.CheckAuth, getTreeStat)
 	ginServer.Handle("POST", "/api/block/getBlocksWordCount", model.CheckAuth, getBlocksWordCount)
 	ginServer.Handle("POST", "/api/block/getContentWordCount", model.CheckAuth, getContentWordCount)

+ 7 - 0
kernel/model/blockinfo.go

@@ -117,6 +117,13 @@ func GetBlockRefText(id string) string {
 	return getNodeRefText(node)
 }
 
+func GetDOMText(dom string) (ret string) {
+	luteEngine := NewLute()
+	tree := luteEngine.BlockDOM2Tree(dom)
+	ret = renderBlockText(tree.Root, nil)
+	return
+}
+
 func getBlockRefText(id string, tree *parse.Tree) (ret string) {
 	node := treenode.GetNodeInTree(tree, id)
 	if nil == node {