⚡ Improve system font loading https://github.com/siyuan-note/siyuan/issues/13356
This commit is contained in:
parent
c7746d1399
commit
af434451e0
3 changed files with 21 additions and 2 deletions
|
@ -548,7 +548,7 @@ func setFollowSystemLockScreen(c *gin.Context) {
|
|||
func getSysFonts(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
ret.Data = util.GetSysFonts()
|
||||
ret.Data = util.LoadSysFonts()
|
||||
}
|
||||
|
||||
func version(c *gin.Context) {
|
||||
|
|
|
@ -48,6 +48,8 @@ func main() {
|
|||
util.PushClearAllMsg()
|
||||
|
||||
job.StartCron()
|
||||
|
||||
go util.LoadSysFonts()
|
||||
go model.AutoGenerateFileHistory()
|
||||
go cache.LoadAssets()
|
||||
go util.CheckFileSysStatus()
|
||||
|
|
|
@ -20,6 +20,8 @@ import (
|
|||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/88250/gulu"
|
||||
"github.com/ConradIrwin/font/sfnt"
|
||||
|
@ -30,7 +32,20 @@ import (
|
|||
"golang.org/x/text/transform"
|
||||
)
|
||||
|
||||
func GetSysFonts() (ret []string) {
|
||||
var (
|
||||
sysFonts []string
|
||||
sysFontsLock = sync.Mutex{}
|
||||
)
|
||||
|
||||
func LoadSysFonts() (ret []string) {
|
||||
sysFontsLock.Lock()
|
||||
defer sysFontsLock.Unlock()
|
||||
|
||||
if 0 < len(sysFonts) {
|
||||
return sysFonts
|
||||
}
|
||||
|
||||
start := time.Now()
|
||||
fonts := loadFonts()
|
||||
ret = []string{}
|
||||
for _, font := range fonts {
|
||||
|
@ -39,6 +54,8 @@ func GetSysFonts() (ret []string) {
|
|||
ret = gulu.Str.RemoveDuplicatedElem(ret)
|
||||
ret = removeUnusedFonts(ret)
|
||||
sort.Strings(ret)
|
||||
sysFonts = ret
|
||||
logging.LogInfof("loaded system fonts [%d] in [%dms]", len(sysFonts), time.Since(start).Milliseconds())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue