mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-03 07:18:49 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
2aad9997e0
7 changed files with 38 additions and 20 deletions
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
|
@ -1,6 +1,6 @@
|
|||
name: 🐛 缺陷报告 Bug Report
|
||||
description: 报告缺陷以帮助我们进行改进 Report defects to help us improve
|
||||
title: ""
|
||||
title: "请输入问题报告标题 Please enter the title of the bug report"
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
|
|
|
|||
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
|
|
@ -1,6 +1,6 @@
|
|||
name: ✨ 特性提议 Request new features
|
||||
description: 欢迎提出你所期待的新特性 Come up with the features you expected
|
||||
title: ""
|
||||
title: "请输入特性提议标题 Please enter the title of the feature request"
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
|
|
|||
|
|
@ -529,8 +529,8 @@
|
|||
{
|
||||
"Type": "NodeTextMark",
|
||||
"TextMarkType": "a",
|
||||
"TextMarkAHref": "https://ld246.com/domain/siyuan",
|
||||
"TextMarkTextContent": "链滴(中文讨论区)"
|
||||
"TextMarkAHref": "https://ld246.com/article/1649901726096",
|
||||
"TextMarkTextContent": "链滴(中文反馈)"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -530,8 +530,8 @@
|
|||
{
|
||||
"Type": "NodeTextMark",
|
||||
"TextMarkType": "a",
|
||||
"TextMarkAHref": "https://ld246.com/domain/siyuan",
|
||||
"TextMarkTextContent": "鏈滴(中文討論區)"
|
||||
"TextMarkAHref": "https://ld246.com/article/1649901726096",
|
||||
"TextMarkTextContent": "鏈滴(中文反饋)"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@
|
|||
</div>
|
||||
<button class="b3-button" onclick="submitAuth()">解锁 Unlock</button>
|
||||
<div style="color: #5f6368;font-size: 14px;margin: 16px 0;">
|
||||
如果你在使用中遇到问题,请到<a href="https://ld246.com/domain/siyuan" target="_blank">社区</a>进行反馈<br>
|
||||
如果你在使用中遇到问题,请到<a href="https://ld246.com/article/1649901726096" target="_blank">这里</a>反馈<br>
|
||||
If you encounter problems, please report it on <a href="https://github.com/siyuan-note/siyuan/issues"
|
||||
target="_blank">GitHub</a>
|
||||
</div>
|
||||
|
|
|
|||
20
kernel/cache/asset.go
vendored
20
kernel/cache/asset.go
vendored
|
|
@ -33,9 +33,24 @@ type Asset struct {
|
|||
Updated int64 `json:"updated"`
|
||||
}
|
||||
|
||||
var Assets = map[string]*Asset{}
|
||||
var assetsCache = map[string]*Asset{}
|
||||
var assetsLock = sync.Mutex{}
|
||||
|
||||
func GetAssets() (ret map[string]*Asset) {
|
||||
assetsLock.Lock()
|
||||
defer assetsLock.Unlock()
|
||||
|
||||
ret = assetsCache
|
||||
return
|
||||
}
|
||||
|
||||
func RemoveAsset(path string) {
|
||||
assetsLock.Lock()
|
||||
defer assetsLock.Unlock()
|
||||
|
||||
delete(assetsCache, path)
|
||||
}
|
||||
|
||||
func LoadAssets() {
|
||||
defer logging.Recover()
|
||||
|
||||
|
|
@ -43,6 +58,7 @@ func LoadAssets() {
|
|||
assetsLock.Lock()
|
||||
defer assetsLock.Unlock()
|
||||
|
||||
assetsCache = map[string]*Asset{}
|
||||
assets := util.GetDataAssetsAbsPath()
|
||||
filepath.Walk(assets, func(path string, info fs.FileInfo, err error) error {
|
||||
if nil == info {
|
||||
|
|
@ -60,7 +76,7 @@ func LoadAssets() {
|
|||
|
||||
hName := util.RemoveID(info.Name())
|
||||
path = "assets" + filepath.ToSlash(strings.TrimPrefix(path, assets))
|
||||
Assets[path] = &Asset{
|
||||
assetsCache[path] = &Asset{
|
||||
HName: hName,
|
||||
Path: path,
|
||||
Updated: info.ModTime().UnixMilli(),
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ func SearchAssetsByName(keyword string) (ret []*cache.Asset) {
|
|||
ret = []*cache.Asset{}
|
||||
|
||||
count := 0
|
||||
for _, asset := range cache.Assets {
|
||||
for _, asset := range cache.GetAssets() {
|
||||
if !strings.Contains(strings.ToLower(asset.HName), strings.ToLower(keyword)) {
|
||||
continue
|
||||
}
|
||||
|
|
@ -471,13 +471,14 @@ func RemoveUnusedAssets() (ret []string) {
|
|||
}
|
||||
|
||||
indexHistoryDir(filepath.Base(historyDir), NewLute())
|
||||
cache.LoadAssets()
|
||||
return
|
||||
}
|
||||
|
||||
func RemoveUnusedAsset(p string) (ret string) {
|
||||
p = filepath.Join(util.DataDir, p)
|
||||
if !gulu.File.IsExist(p) {
|
||||
return p
|
||||
absPath := filepath.Join(util.DataDir, p)
|
||||
if !gulu.File.IsExist(absPath) {
|
||||
return absPath
|
||||
}
|
||||
|
||||
historyDir, err := GetHistoryDir(HistoryOpClean)
|
||||
|
|
@ -486,24 +487,25 @@ func RemoveUnusedAsset(p string) (ret string) {
|
|||
return
|
||||
}
|
||||
|
||||
newP := strings.TrimPrefix(p, util.DataDir)
|
||||
newP := strings.TrimPrefix(absPath, util.DataDir)
|
||||
historyPath := filepath.Join(historyDir, newP)
|
||||
if gulu.File.IsExist(p) {
|
||||
if err = gulu.File.Copy(p, historyPath); nil != err {
|
||||
if gulu.File.IsExist(absPath) {
|
||||
if err = gulu.File.Copy(absPath, historyPath); nil != err {
|
||||
return
|
||||
}
|
||||
|
||||
hash, _ := util.GetEtag(p)
|
||||
hash, _ := util.GetEtag(absPath)
|
||||
sql.DeleteAssetsByHashes([]string{hash})
|
||||
}
|
||||
|
||||
if err = os.RemoveAll(p); nil != err {
|
||||
logging.LogErrorf("remove unused asset [%s] failed: %s", p, err)
|
||||
if err = os.RemoveAll(absPath); nil != err {
|
||||
logging.LogErrorf("remove unused asset [%s] failed: %s", absPath, err)
|
||||
}
|
||||
ret = p
|
||||
ret = absPath
|
||||
IncSync()
|
||||
|
||||
indexHistoryDir(filepath.Base(historyDir), NewLute())
|
||||
cache.RemoveAsset(p)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue