mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-04 05:29:12 +08:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
317e84dd7b
@ -169,7 +169,7 @@ func LoadTreeByData(data []byte, boxID, p string, luteEngine *lute.Lute) (ret *p
|
|||||||
if "" == title {
|
if "" == title {
|
||||||
title = "Untitled"
|
title = "Untitled"
|
||||||
}
|
}
|
||||||
hPathBuilder.WriteString(title)
|
hPathBuilder.WriteString(util.UnescapeHTML(title))
|
||||||
hPathBuilder.WriteString("/")
|
hPathBuilder.WriteString("/")
|
||||||
}
|
}
|
||||||
hPathBuilder.WriteString(ret.Root.IALAttr("title"))
|
hPathBuilder.WriteString(ret.Root.IALAttr("title"))
|
||||||
@ -301,13 +301,3 @@ func parseJSON2Tree(boxID, p string, jsonData []byte, luteEngine *lute.Lute) (re
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadDocIAL(data []byte) (ret map[string]string) {
|
|
||||||
ret = map[string]string{}
|
|
||||||
val := jsoniter.Get(data, "Properties")
|
|
||||||
if nil == val || val.ValueType() == jsoniter.InvalidValue {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
val.ToVal(&ret)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
@ -3046,7 +3046,7 @@ func getExportBlockRefLinkText(blockRef *ast.Node, blockRefTextLeft, blockRefTex
|
|||||||
if "" == linkText {
|
if "" == linkText {
|
||||||
linkText = sql.GetRefText(defID)
|
linkText = sql.GetRefText(defID)
|
||||||
}
|
}
|
||||||
linkText = html.UnescapeHTMLStr(linkText) // 块引锚文本导出时 `&` 变为实体 `&` https://github.com/siyuan-note/siyuan/issues/7659
|
linkText = util.UnescapeHTML(linkText) // 块引锚文本导出时 `&` 变为实体 `&` https://github.com/siyuan-note/siyuan/issues/7659
|
||||||
if Conf.Editor.BlockRefDynamicAnchorTextMaxLen < utf8.RuneCountInString(linkText) {
|
if Conf.Editor.BlockRefDynamicAnchorTextMaxLen < utf8.RuneCountInString(linkText) {
|
||||||
linkText = gulu.Str.SubStr(linkText, Conf.Editor.BlockRefDynamicAnchorTextMaxLen) + "..."
|
linkText = gulu.Str.SubStr(linkText, Conf.Editor.BlockRefDynamicAnchorTextMaxLen) + "..."
|
||||||
}
|
}
|
||||||
|
@ -253,11 +253,11 @@ func nodeStaticContent(node *ast.Node, excludeTypes []string, includeTextMarkATi
|
|||||||
if n.IsTextMarkType("a") && includeTextMarkATitleURL {
|
if n.IsTextMarkType("a") && includeTextMarkATitleURL {
|
||||||
// 搜索不到超链接元素的 URL 和标题 https://github.com/siyuan-note/siyuan/issues/7352
|
// 搜索不到超链接元素的 URL 和标题 https://github.com/siyuan-note/siyuan/issues/7352
|
||||||
if "" != n.TextMarkATitle {
|
if "" != n.TextMarkATitle {
|
||||||
buf.WriteString(" " + html.UnescapeHTMLStr(n.TextMarkATitle))
|
buf.WriteString(" " + util.UnescapeHTML(n.TextMarkATitle))
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.HasPrefix(n.TextMarkAHref, "assets/") || includeAssetPath {
|
if !strings.HasPrefix(n.TextMarkAHref, "assets/") || includeAssetPath {
|
||||||
buf.WriteString(" " + html.UnescapeHTMLStr(n.TextMarkAHref))
|
buf.WriteString(" " + util.UnescapeHTML(n.TextMarkAHref))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case ast.NodeBackslashContent:
|
case ast.NodeBackslashContent:
|
||||||
|
@ -87,6 +87,16 @@ func EscapeHTML(s string) (ret string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UnescapeHTML(s string) (ret string) {
|
||||||
|
ret = s
|
||||||
|
if "" == strings.TrimSpace(ret) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = html.UnescapeString(ret)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func Reverse(s string) string {
|
func Reverse(s string) string {
|
||||||
runes := []rune(s)
|
runes := []rune(s)
|
||||||
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
|
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
|
||||||
|
Loading…
Reference in New Issue
Block a user