🎨 Support for symlinked theme folder when exporting HTML https://github.com/siyuan-note/siyuan/issues/9173

This commit is contained in:
Daniel 2023-09-13 08:54:29 +08:00
parent 07b28ddb48
commit 736256e26a
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 31 additions and 2 deletions

View file

@ -524,8 +524,19 @@ func ExportMarkdownHTML(id, savePath string, docx, merge bool) (name, dom string
theme = Conf.Appearance.ThemeDark
}
srcs = []string{"icons", "themes/" + theme}
appearancePath := util.AppearancePath
if util.IsSymlinkPath(util.AppearancePath) {
// Support for symlinked theme folder when exporting HTML https://github.com/siyuan-note/siyuan/issues/9173
var readErr error
appearancePath, readErr = os.Readlink(util.AppearancePath)
if nil != readErr {
logging.LogErrorf("readlink [%s] failed: %s", util.AppearancePath, readErr)
return
}
}
for _, src := range srcs {
from := filepath.Join(util.AppearancePath, src)
from := filepath.Join(appearancePath, src)
to := filepath.Join(savePath, "appearance", src)
if err := filelock.Copy(from, to); nil != err {
logging.LogErrorf("copy appearance from [%s] to [%s] failed: %s", from, savePath, err)
@ -663,8 +674,18 @@ func ExportHTML(id, savePath string, pdf, image, keepFold, merge bool) (name, do
theme = Conf.Appearance.ThemeDark
}
srcs = []string{"icons", "themes/" + theme}
appearancePath := util.AppearancePath
if util.IsSymlinkPath(util.AppearancePath) {
// Support for symlinked theme folder when exporting HTML https://github.com/siyuan-note/siyuan/issues/9173
var readErr error
appearancePath, readErr = os.Readlink(util.AppearancePath)
if nil != readErr {
logging.LogErrorf("readlink [%s] failed: %s", util.AppearancePath, readErr)
return
}
}
for _, src := range srcs {
from := filepath.Join(util.AppearancePath, src)
from := filepath.Join(appearancePath, src)
to := filepath.Join(savePath, "appearance", src)
if err := filelock.Copy(from, to); nil != err {
logging.LogErrorf("copy appearance from [%s] to [%s] failed: %s", from, savePath, err)

View file

@ -31,6 +31,14 @@ import (
"github.com/siyuan-note/logging"
)
func IsSymlinkPath(absPath string) bool {
fi, err := os.Lstat(absPath)
if nil != err {
return false
}
return 0 != fi.Mode()&os.ModeSymlink
}
func IsEmptyDir(p string) bool {
if !gulu.File.IsDir(p) {
return false