mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-23 18:10:12 +01:00
🎨 Add internal kernel API /api/search/updateEmbedBlock https://github.com/siyuan-note/siyuan/issues/9736
This commit is contained in:
parent
47df3f8b3d
commit
4a8c32f649
4 changed files with 44 additions and 1 deletions
|
|
@ -148,6 +148,7 @@ func ServeAPI(ginServer *gin.Engine) {
|
|||
ginServer.Handle("POST", "/api/search/searchRefBlock", model.CheckAuth, searchRefBlock)
|
||||
ginServer.Handle("POST", "/api/search/searchEmbedBlock", model.CheckAuth, searchEmbedBlock)
|
||||
ginServer.Handle("POST", "/api/search/getEmbedBlock", model.CheckAuth, getEmbedBlock)
|
||||
ginServer.Handle("POST", "/api/search/updateEmbedBlock", model.CheckAuth, updateEmbedBlock)
|
||||
ginServer.Handle("POST", "/api/search/fullTextSearchBlock", model.CheckAuth, fullTextSearchBlock)
|
||||
ginServer.Handle("POST", "/api/search/searchAsset", model.CheckAuth, searchAsset)
|
||||
ginServer.Handle("POST", "/api/search/findReplace", model.CheckAuth, findReplace)
|
||||
|
|
|
|||
|
|
@ -218,6 +218,26 @@ func getEmbedBlock(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
func updateEmbedBlock(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
||||
arg, ok := util.JsonArg(c, ret)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
id := arg["id"].(string)
|
||||
content := arg["content"].(string)
|
||||
|
||||
err := model.UpdateEmbedBlock(id, content)
|
||||
if nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func searchEmbedBlock(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ func autoIndexEmbedBlock(embedBlocks []*sql.Block) {
|
|||
for i, embedBlock := range embedBlocks {
|
||||
md := strings.TrimSpace(embedBlock.Markdown)
|
||||
if strings.Contains(md, "//js") {
|
||||
// js 嵌入块不支持自动索引
|
||||
// js 嵌入块不支持自动索引,由前端主动调用 /api/search/updateEmbedBlock 接口更新内容 https://github.com/siyuan-note/siyuan/issues/9736
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,28 @@ type EmbedBlock struct {
|
|||
BlockPaths []*BlockPath `json:"blockPaths"`
|
||||
}
|
||||
|
||||
func UpdateEmbedBlock(id, content string) (err error) {
|
||||
bt := treenode.GetBlockTree(id)
|
||||
if nil == bt {
|
||||
err = ErrBlockNotFound
|
||||
return
|
||||
}
|
||||
|
||||
if treenode.TypeAbbr(ast.NodeBlockQueryEmbed.String()) != bt.Type {
|
||||
err = errors.New("not query embed block")
|
||||
return
|
||||
}
|
||||
|
||||
embedBlock := &EmbedBlock{
|
||||
Block: &Block{
|
||||
Markdown: content,
|
||||
},
|
||||
}
|
||||
|
||||
updateEmbedBlockContent(id, []*EmbedBlock{embedBlock})
|
||||
return
|
||||
}
|
||||
|
||||
func GetEmbedBlock(embedBlockID string, includeIDs []string, headingMode int, breadcrumb bool) (ret []*EmbedBlock) {
|
||||
return getEmbedBlock(embedBlockID, includeIDs, headingMode, breadcrumb)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue