mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-09-22 00:20:47 +02:00
⚡ 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) {
|
func getSysFonts(c *gin.Context) {
|
||||||
ret := gulu.Ret.NewResult()
|
ret := gulu.Ret.NewResult()
|
||||||
defer c.JSON(http.StatusOK, ret)
|
defer c.JSON(http.StatusOK, ret)
|
||||||
ret.Data = util.GetSysFonts()
|
ret.Data = util.LoadSysFonts()
|
||||||
}
|
}
|
||||||
|
|
||||||
func version(c *gin.Context) {
|
func version(c *gin.Context) {
|
||||||
|
|
|
@ -48,6 +48,8 @@ func main() {
|
||||||
util.PushClearAllMsg()
|
util.PushClearAllMsg()
|
||||||
|
|
||||||
job.StartCron()
|
job.StartCron()
|
||||||
|
|
||||||
|
go util.LoadSysFonts()
|
||||||
go model.AutoGenerateFileHistory()
|
go model.AutoGenerateFileHistory()
|
||||||
go cache.LoadAssets()
|
go cache.LoadAssets()
|
||||||
go util.CheckFileSysStatus()
|
go util.CheckFileSysStatus()
|
||||||
|
|
|
@ -20,6 +20,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/88250/gulu"
|
"github.com/88250/gulu"
|
||||||
"github.com/ConradIrwin/font/sfnt"
|
"github.com/ConradIrwin/font/sfnt"
|
||||||
|
@ -30,7 +32,20 @@ import (
|
||||||
"golang.org/x/text/transform"
|
"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()
|
fonts := loadFonts()
|
||||||
ret = []string{}
|
ret = []string{}
|
||||||
for _, font := range fonts {
|
for _, font := range fonts {
|
||||||
|
@ -39,6 +54,8 @@ func GetSysFonts() (ret []string) {
|
||||||
ret = gulu.Str.RemoveDuplicatedElem(ret)
|
ret = gulu.Str.RemoveDuplicatedElem(ret)
|
||||||
ret = removeUnusedFonts(ret)
|
ret = removeUnusedFonts(ret)
|
||||||
sort.Strings(ret)
|
sort.Strings(ret)
|
||||||
|
sysFonts = ret
|
||||||
|
logging.LogInfof("loaded system fonts [%d] in [%dms]", len(sysFonts), time.Since(start).Milliseconds())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue