From cff937a38432032981dd4ab494db4b696e672d7f Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 22 Oct 2022 01:25:22 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E9=99=90=E5=88=B6=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=9C=80=E5=A4=A7=E9=95=BF=E5=BA=A6=E4=B8=BA?= =?UTF-8?q?=20`512`=20https://github.com/siyuan-note/siyuan/issues/6299?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/en_US.json | 2 +- app/appearance/langs/es_ES.json | 2 +- app/appearance/langs/fr_FR.json | 2 +- app/appearance/langs/zh_CHT.json | 2 +- app/appearance/langs/zh_CN.json | 2 +- kernel/model/file.go | 11 +++++++++++ 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 46fc77f88..3a8389b9e 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -901,7 +901,7 @@ "103": "The update installation package has been automatically downloaded in the background. When exiting, you will be asked whether to install the new version", "104": "The update installation package failed to download, please check the network connection", "105": "Corrupted data repo have been automatically reset", - "106": "TODO", + "106": "The maximum length of the document name is 512 characters", "107": "Moving document [%s]", "108": "Cleaning obsolete indexes...", "109": "Remove reminder completed [%s]", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 740072505..9a4cb5100 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -901,7 +901,7 @@ "103": "El paquete de instalación de la actualización se ha descargado automáticamente en segundo plano. Al salir, se le preguntará si desea instalar la nueva versión", "104": "El paquete de instalación de la actualización no se pudo descargar, verifique la conexión de red", "105": "El repositorio de datos corruptos se ha restablecido automáticamente", - "106": "TODO", + "106": "La longitud máxima del nombre del documento es de 512 caracteres.", "107": "Moviendo documento [%s]", "108": "Limpiando índices obsoletos...", "109": "Eliminación de recordatorios completada [%s]", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 24314bb29..22eea6650 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -901,7 +901,7 @@ "103": "Le package d'installation de la mise à jour a été automatiquement téléchargé en arrière-plan. En quittant, il vous sera demandé si vous souhaitez installer la nouvelle version", "104": "Le package d'installation de la mise à jour n'a pas pu être téléchargé, veuillez vérifier la connexion réseau", "105": "Le référentiel de données corrompu a été automatiquement réinitialisé", - "106": "TODO", + "106": "La longueur maximale du nom du document est de 512 caractères", "107": "Déplacement du document [%s]", "108": "Nettoyage des index obsolètes...", "109": "Supprimer le rappel terminé [%s]", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 5f140e1c3..af94ca843 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -901,7 +901,7 @@ "103": "已經在後台開始自動下載更新安裝包,退出時將詢問是否安裝新版本", "104": "更新安裝包下載失敗,請檢查網絡連接", "105": "已經自動重置損壞的數據倉庫", - "106": "TODO", + "106": "文檔名最大長度限制為 512 字符", "107": "正在移動文檔 [%s]", "108": "正在清理已過時的索引...", "109": "移除提醒完畢 [%s]", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 76e3f21a7..b6165f387 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -901,7 +901,7 @@ "103": "已经在后台开始自动下载更新安装包,退出时将询问是否安装新版本", "104": "更新安装包下载失败,请检查网络连接", "105": "已经自动重置损坏的数据仓库", - "106": "TODO", + "106": "文档名最大长度限制为 512 字符", "107": "正在移动文档 [%s]", "108": "正在清理已过时的索引...", "109": "移除提醒完毕 [%s]", diff --git a/kernel/model/file.go b/kernel/model/file.go index ec552f4c2..678bce1e2 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -29,6 +29,7 @@ import ( "strconv" "strings" "time" + "unicode/utf8" "github.com/88250/gulu" "github.com/88250/lute/ast" @@ -1268,6 +1269,11 @@ func RenameDoc(boxID, p, title string) (err error) { } title = gulu.Str.RemoveInvisible(title) + if 512 < utf8.RuneCountInString(title) { + // 限制文档名称最大长度为 `512` https://github.com/siyuan-note/siyuan/issues/6299 + return errors.New(Conf.Language(106)) + } + oldTitle := tree.Root.IALAttr("title") if oldTitle == title { return @@ -1386,6 +1392,11 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) { func createDoc(boxID, p, title, dom string) (err error) { title = gulu.Str.RemoveInvisible(title) + if 512 < utf8.RuneCountInString(title) { + // 限制文档名称最大长度为 `512` https://github.com/siyuan-note/siyuan/issues/6299 + return errors.New(Conf.Language(106)) + } + baseName := strings.TrimSpace(path.Base(p)) if "" == strings.TrimSuffix(baseName, ".sy") { return errors.New(Conf.Language(16))