Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2025-09-29 21:05:09 +08:00
commit 02602f886e
2 changed files with 29 additions and 7 deletions

View file

@ -1577,6 +1577,13 @@ func unfoldParentFoldedHeading(node *ast.Node) {
} }
parentFoldedHeading.RemoveIALAttr("fold") parentFoldedHeading.RemoveIALAttr("fold")
parentFoldedHeading.RemoveIALAttr("heading-fold") parentFoldedHeading.RemoveIALAttr("heading-fold")
evt := util.NewCmdResult("transactions", 0, util.PushModeBroadcast)
evt.Data = []*Transaction{{
DoOperations: []*Operation{{Action: "unfoldHeading", ID: parentFoldedHeading.ID}},
UndoOperations: []*Operation{{Action: "foldHeading", ID: parentFoldedHeading.ID}},
}}
util.PushEvent(evt)
} }
} }

View file

@ -172,20 +172,35 @@ func parseTTFFontFamily(fontPath string) (ret string) {
family = strings.TrimSpace(string(v)) family = strings.TrimSpace(string(v))
} }
} }
if sfnt.NamePreferredFamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) {
v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value)
if err == nil {
family = strings.TrimSpace(string(v))
}
}
if sfnt.NameFontSubfamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) { if sfnt.NameFontSubfamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) {
v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value) v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value)
if err == nil { if err == nil {
subfamily = strings.TrimSpace(string(v)) subfamily = strings.TrimSpace(string(v))
} }
} }
if sfnt.NamePreferredSubfamily == e.NameID && (sfnt.PlatformLanguageID(1033) == e.LanguageID || sfnt.PlatformLanguageID(2052) == e.LanguageID) {
v, _, err := transform.Bytes(textUnicode.UTF16(textUnicode.BigEndian, textUnicode.IgnoreBOM).NewDecoder(), e.Value)
if err == nil {
subfamily = strings.TrimSpace(string(v))
}
}
} }
if family != "" && !strings.HasPrefix(family, ".") { //if family != "" && !strings.HasPrefix(family, ".") {
if subfamily != "" && !strings.Contains(subfamily, "<") && !strings.EqualFold(subfamily, "Regular") { // if subfamily != "" && !strings.Contains(subfamily, "<") && !strings.EqualFold(subfamily, "Regular") {
ret = family + " " + subfamily // 例如 "PingFang SC Bold" // ret = family + "(" + subfamily + ")"
} else { // } else {
// ret = family
// }
//}
// TODO: 字重加载方案
_ = subfamily
ret = family ret = family
}
}
return return
} }