mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-02 06:48:49 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
201fc51f32
12 changed files with 49 additions and 18 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,5 @@
|
|||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
cloc.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
|
|
|||
|
|
@ -636,14 +636,14 @@
|
|||
"fileTree3": "No confirmation required when deleting documents",
|
||||
"fileTree4": "If not enabled, a confirmation box will pop up every time you delete a document",
|
||||
"fileTree5": "Ref create doc save location",
|
||||
"fileTree6": "When using <code class='fn__code'>((</code>, the save path of the new document (for example, /folder1/folder2/, the relative path of the current doc is used if it does not start with /)",
|
||||
"fileTree6": "When using <code class='fn__code'>((</code>, the save path of the new document (for example, <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}/</code>, the relative path of the current doc is used if it does not start with /)",
|
||||
"fileTree7": "Open in the current tab",
|
||||
"fileTree8": "The newly opened document tab will replace the unmodified tab",
|
||||
"fileTree9": "Close all tabs at startup",
|
||||
"fileTree10": "After enabling, the unpinned tabs that were opened the last time will be automatically closed every time the interface is started",
|
||||
"fileTree11": "New daily note",
|
||||
"fileTree12": "New doc name template",
|
||||
"fileTree13": "The template snippet is used by default when creating a new doc for naming, for example <code class='fn__code'>{{now | date \"20060102150405\"}}</code>",
|
||||
"fileTree13": "The template snippet is used by default when creating a new doc for naming (for example <code class='fn__code'>{{now | date \"20060102150405\"}}</code>)",
|
||||
"fileTree14": "Save path (support date format template variables, such as <code class='fn__code'>/Daily Notes/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)",
|
||||
"fileTree15": "Template path (for example, <code class='fn__code'>dailynote.md</code>, the file needs to be placed under the workspace/data/templates/)",
|
||||
"fileTree16": "Maximum number to list",
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@
|
|||
"exportPDF3": "Escala de la página",
|
||||
"exportPDF4": "Eliminar directorio de activos",
|
||||
"exportPDF5": "Mantener doblado",
|
||||
"exportPDF6": "Fusionar subdocumentos",
|
||||
"upload": "Subir",
|
||||
"reminderTip": "La hora del recordatorio no puede ser inferior a la hora actual",
|
||||
"wechatTip": "El bloque de contenido se enviará a la nube en texto claro, y se empujará a través del mensaje de plantilla de WeChat MP cuando caduque",
|
||||
|
|
@ -635,14 +636,14 @@
|
|||
"fileTree3": "No se requiere confirmación al borrar documentos",
|
||||
"fileTree4": "Si no se activa, aparecerá un cuadro de confirmación cada vez que se elimine un documento",
|
||||
"fileTree5": "Ref crear ubicación de guardado de documentos",
|
||||
"fileTree6": "Al utilizar <code class='fn__code'>((</code>, la ruta de guardado del nuevo documento (por ejemplo, /carpeta1/carpeta2/, se utiliza la ruta relativa del documento actual si no empieza por /)",
|
||||
"fileTree6": "Al utilizar <code class='fn__code'>((</code>, la ruta de guardado del nuevo documento (por ejemplo, <code class='fn__code'>/carpeta1/{{now | date \"20060102150405\"}}/</code>, se utiliza la ruta relativa del documento actual si no empieza por /)",
|
||||
"fileTree7": "Abrir en la pestaña actual",
|
||||
"fileTree8": "La pestaña del documento recién abierto sustituirá a la pestaña no modificada",
|
||||
"fileTree9": "Cerrar todas las pestañas al inicio",
|
||||
"fileTree10": "Cuando está habilitado, las pestañas no fijadas que se abrieron la última vez se cerrarán automáticamente cada vez que se inicie la interfaz",
|
||||
"fileTree11": "Nueva nota diaria",
|
||||
"fileTree12": "Nueva pantilla de nombre de documento",
|
||||
"fileTree13": "El fragmento de plantilla se utiliza por defecto cuando se crea un nuevo documento para nombrar, por ejemplo <code class='fn__code'>{{now | date \"20060102150405\"}}</code>",
|
||||
"fileTree13": "El fragmento de plantilla se utiliza por defecto cuando se crea un nuevo documento para nombrar (por ejemplo <code class='fn__code'>{{now | date \"20060102150405\"}}</code>)",
|
||||
"fileTree14": "Ruta de guardado (admite variables de plantilla de formato de fecha, como <code class='fn__code'>/Notas del día/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)",
|
||||
"fileTree15": "Ruta de la plantilla (por ejemplo, <code class='fn__code'>dailynote.md</code>, el archivo debe colocarse en el espacio de trabajo/data/templates/)",
|
||||
"fileTree16": "Número máximo a listar",
|
||||
|
|
|
|||
|
|
@ -636,14 +636,14 @@
|
|||
"fileTree3": "Aucune confirmation requise lors de la suppression de documents",
|
||||
"fileTree4": "Si non activé, une boîte de confirmation apparaîtra à chaque fois que vous supprimerez un document",
|
||||
"fileTree5": "Référence créer doc enregistrer emplacement",
|
||||
"fileTree6": "Lors de l'utilisation de <code class='fn__code'>((</code>, le chemin d'enregistrement du nouveau document (par exemple, /dossier1/ dossier2/, le chemin relatif du doc actuel est utilisé s'il ne commence pas par /).",
|
||||
"fileTree6": "Lors de l'utilisation de <code class='fn__code'>((</code>, le chemin d'enregistrement du nouveau document (par exemple, <code class='fn__code'>/dossier1/{{now | date \"20060102150405\"}}/</code>, le chemin relatif du doc actuel est utilisé s'il ne commence pas par /).",
|
||||
"fileTree7": "Ouvrir dans l'Onglet actuel",
|
||||
"fileTree8": "L'onglet du document nouvellement ouvert remplacera l'Onglet non modifié.",
|
||||
"fileTree9": "Fermer tous les onglets au démarrage",
|
||||
"fileTree10": "Lorsqu'il est activé, les onglets non épinglés qui ont été ouverts la dernière fois seront automatiquement fermés à chaque démarrage de l'interface",
|
||||
"fileTree11": "Nouvelle note quotidienne",
|
||||
"fileTree12": "Nouveau template de nom de document",
|
||||
"fileTree13": "L'extrait de modèle est utilisé par défaut lors de la création d'un nouveau document pour le nommage, par exemple <code class='fn__code'>{{maintenant | date \"20060102150405\"}}</code>.",
|
||||
"fileTree13": "L'extrait de modèle est utilisé par défaut lors de la création d'un nouveau document pour le nommage (par exemple <code class='fn__code'>{{maintenant | date \"20060102150405\"}}</code>).",
|
||||
"fileTree14": "Chemin d'enregistrement (prise en charge des variables de modèle de format de date, telles que <code class='fn__code'>/Notes quotidiennes/{{mais | date \"2006/01\"}}/{{mais | date \"2006-01-02\"}}</code>)",
|
||||
"fileTree15": "Chemin du modèle (par exemple, <code class='fn__code'>dailynote.md</code>, le fichier doit être placé sous \"l'espace de travail/data/templates/\")",
|
||||
"fileTree16": "Nombre maximum à lister",
|
||||
|
|
|
|||
|
|
@ -636,14 +636,14 @@
|
|||
"fileTree3": "刪除文檔時不需要確認",
|
||||
"fileTree4": "不啟用時每次刪除文檔都會彈出確認框",
|
||||
"fileTree5": "塊引新建文檔存放位置",
|
||||
"fileTree6": "使用 <code class='fn__code'>((</code> 時新建文檔的存放路徑(例如 /folder1/folder2/,不以 / 開頭則使用當前文檔相對路徑)",
|
||||
"fileTree6": "使用 <code class='fn__code'>((</code> 時新建文檔的存放路徑(例如 <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}/</code>,不以 / 開頭則使用當前文檔相對路徑)",
|
||||
"fileTree7": "在當前分頁中打開",
|
||||
"fileTree8": "新打開的文檔分頁將會替換沒有修改過的分頁",
|
||||
"fileTree9": "啟動時關閉所有頁簽",
|
||||
"fileTree10": "啟用後每次啟動界面後都會自動關閉上次打開未釘住的頁簽",
|
||||
"fileTree11": "新建日記",
|
||||
"fileTree12": "新建文檔名範本",
|
||||
"fileTree13": "使用該範本片段進行命名,例如 <code class='fn__code'>{{now | date \"20060102150405\"}}</code>",
|
||||
"fileTree13": "使用該範本片段進行命名(例如<code class='fn__code'>{{now | date \"20060102150405\"}}</code>)",
|
||||
"fileTree14": "存放路徑(可使用日期格式範本變數,例如 <code class='fn__code'>/日記/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)",
|
||||
"fileTree15": "範本路徑(例如 <code class='fn__code'>dailynote.md</code>,需要將該檔放置於工作空間/data/templates/ 下)",
|
||||
"fileTree16": "最大列出數量",
|
||||
|
|
|
|||
|
|
@ -636,14 +636,14 @@
|
|||
"fileTree3": "删除文档时不需要确认",
|
||||
"fileTree4": "不启用时每次删除文档都会弹出确认框",
|
||||
"fileTree5": "块引新建文档存放位置",
|
||||
"fileTree6": "使用 <code class='fn__code'>((</code> 时新建文档的存放路径(例如 /folder1/folder2/,不以 / 开头则使用当前文档相对路径)",
|
||||
"fileTree6": "使用 <code class='fn__code'>((</code> 时新建文档的存放路径(例如 <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}/</code>,不以 / 开头则使用当前文档相对路径)",
|
||||
"fileTree7": "在当前页签中打开",
|
||||
"fileTree8": "新打开的文档页签将会替换没有修改过的页签",
|
||||
"fileTree9": "启动时关闭所有页签",
|
||||
"fileTree10": "启用后每次启动界面后都会自动关闭上次打开未钉住的页签",
|
||||
"fileTree11": "新建日记",
|
||||
"fileTree12": "新建文档名模板",
|
||||
"fileTree13": "使用该模板片段进行命名,例如 <code class='fn__code'>{{now | date \"20060102150405\"}}</code>",
|
||||
"fileTree13": "使用该模板片段进行命名(例如 <code class='fn__code'>{{now | date \"20060102150405\"}}</code>)",
|
||||
"fileTree14": "存放路径(可使用日期格式模板变量,例如 <code class='fn__code'>/日记/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)",
|
||||
"fileTree15": "模板路径(例如 <code class='fn__code'>dailynote.md</code>,需要将该文件放置于工作空间/data/templates/ 下)",
|
||||
"fileTree16": "最大列出数量",
|
||||
|
|
|
|||
|
|
@ -557,7 +557,7 @@ func getDocNameTemplate(c *gin.Context) {
|
|||
nameTemplate = model.Conf.FileTree.CreateDocNameTemplate
|
||||
}
|
||||
|
||||
name, err := model.RenderCreateDocNameTemplate(nameTemplate)
|
||||
name, err := model.RenderGoTemplate(nameTemplate)
|
||||
if nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
|
|
@ -568,6 +568,36 @@ func getDocNameTemplate(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
func getRefCreateSavePath(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
||||
arg, ok := util.JsonArg(c, ret)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
notebook := arg["notebook"].(string)
|
||||
box := model.Conf.Box(notebook)
|
||||
refCreateSavePath := model.Conf.FileTree.RefCreateSavePath
|
||||
if nil != box {
|
||||
refCreateSavePath = box.GetConf().RefCreateSavePath
|
||||
}
|
||||
if "" == refCreateSavePath {
|
||||
refCreateSavePath = model.Conf.FileTree.RefCreateSavePath
|
||||
}
|
||||
|
||||
p, err := model.RenderGoTemplate(refCreateSavePath)
|
||||
if nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
ret.Data = map[string]interface{}{
|
||||
"path": p,
|
||||
}
|
||||
}
|
||||
|
||||
func changeSort(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ func ServeAPI(ginServer *gin.Engine) {
|
|||
ginServer.Handle("POST", "/api/filetree/listDocsByPath", model.CheckAuth, listDocsByPath)
|
||||
ginServer.Handle("POST", "/api/filetree/getDoc", model.CheckAuth, getDoc)
|
||||
ginServer.Handle("POST", "/api/filetree/getDocNameTemplate", model.CheckAuth, getDocNameTemplate)
|
||||
ginServer.Handle("POST", "/api/filetree/getRefCreateSavePath", model.CheckAuth, getRefCreateSavePath)
|
||||
ginServer.Handle("POST", "/api/filetree/changeSort", model.CheckAuth, changeSort)
|
||||
ginServer.Handle("POST", "/api/filetree/lockFile", model.CheckAuth, lockFile)
|
||||
ginServer.Handle("POST", "/api/filetree/createDocWithMd", model.CheckAuth, model.CheckReadonly, createDocWithMd)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ require (
|
|||
github.com/88250/clipboard v0.1.5
|
||||
github.com/88250/css v0.1.2
|
||||
github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798
|
||||
github.com/88250/lute v1.7.5-0.20221206095954-a4a95834a327
|
||||
github.com/88250/lute v1.7.5-0.20221211155550-bad4c4be7125
|
||||
github.com/88250/pdfcpu v0.3.13
|
||||
github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1
|
||||
github.com/ConradIrwin/font v0.0.0-20210318200717-ce8d41cc0732
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS
|
|||
github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798 h1:sR/s/Y9wyl79ZRCUERwLPo9zqaB3KhNRodCMTJ4ozEU=
|
||||
github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI=
|
||||
github.com/88250/lute v1.7.5-0.20221206095954-a4a95834a327 h1:qT7A7AUVLuqZOWzhLKtJcZ8MPIiqqmX64M+YoYhYnDU=
|
||||
github.com/88250/lute v1.7.5-0.20221206095954-a4a95834a327/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
|
||||
github.com/88250/lute v1.7.5-0.20221211155550-bad4c4be7125 h1:zwReaqEwPREiGHHwcAYNTPNZiW8NF5FjKLv+R3wZLZo=
|
||||
github.com/88250/lute v1.7.5-0.20221211155550-bad4c4be7125/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA=
|
||||
github.com/88250/pdfcpu v0.3.13 h1:touMWMZkCGalMIbEg9bxYp7rETM+zwb9hXjwhqi4I7Q=
|
||||
github.com/88250/pdfcpu v0.3.13/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4=
|
||||
github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY=
|
||||
|
|
|
|||
|
|
@ -1335,7 +1335,7 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
hPath, err := RenderCreateDocNameTemplate(boxConf.DailyNoteSavePath)
|
||||
hPath, err := RenderGoTemplate(boxConf.DailyNoteSavePath)
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ import (
|
|||
"github.com/siyuan-note/siyuan/kernel/sql"
|
||||
)
|
||||
|
||||
func RenderCreateDocNameTemplate(nameTemplate string) (ret string, err error) {
|
||||
tpl, err := template.New("").Funcs(sprig.TxtFuncMap()).Parse(nameTemplate)
|
||||
func RenderGoTemplate(templateContent string) (ret string, err error) {
|
||||
tpl, err := template.New("").Funcs(sprig.TxtFuncMap()).Parse(templateContent)
|
||||
if nil != err {
|
||||
return "", errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue