🎨 All plain text formats are supported when comparing data snapshots https://github.com/siyuan-note/siyuan/issues/12975

This commit is contained in:
Daniel 2024-11-02 12:21:51 +08:00
parent fc50b864ad
commit a2cb7d4c9b
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 22 additions and 1 deletions

View file

@ -98,6 +98,10 @@ func GetAssetAbsPath(asset string) (ret string) {
return
}
func GetMimeTypeByExt(ext string) string {
return util.GetMimeTypeByExt(ext)
}
func SetTimezone(container, appDir, timezoneID string) {
if "ios" == container {
os.Setenv("ZONEINFO", filepath.Join(appDir, "app", "zoneinfo.zip"))

View file

@ -153,7 +153,7 @@ func OpenRepoSnapshotDoc(fileID string) (title, content string, displayInText bo
displayInText = true
title = path.Base(file.Path)
if mimeType := mime.TypeByExtension(filepath.Ext(file.Path)); strings.HasPrefix(mimeType, "text/") {
if mimeType := mime.TypeByExtension(filepath.Ext(file.Path)); strings.HasPrefix(mimeType, "text/") || strings.Contains(mimeType, "json") {
// 如果是文本文件,直接返回文本内容
// All plain text formats are supported when comparing data snapshots https://github.com/siyuan-note/siyuan/issues/12975
content = gulu.Str.FromBytes(data)

View file

@ -20,6 +20,7 @@ import (
"bytes"
"io"
"io/fs"
"mime"
"os"
"path"
"path/filepath"
@ -29,6 +30,7 @@ import (
"github.com/88250/gulu"
"github.com/88250/lute/ast"
"github.com/gabriel-vasile/mimetype"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
)
@ -73,6 +75,21 @@ func GetUniqueFilename(filePath string) string {
}
}
func GetMimeTypeByExt(filePath string) (ret string) {
ret = mime.TypeByExtension(filepath.Ext(filePath))
if "" == ret {
m, err := mimetype.DetectFile(filePath)
if err != nil {
logging.LogErrorf("detect mime type of [%s] failed: %s", filePath, err)
return
}
if nil != m {
ret = m.String()
}
}
return
}
func IsSymlinkPath(absPath string) bool {
fi, err := os.Lstat(absPath)
if err != nil {