diff --git a/app/src/editor/rename.ts b/app/src/editor/rename.ts index 0c93a4779..4a96bf52e 100644 --- a/app/src/editor/rename.ts +++ b/app/src/editor/rename.ts @@ -14,7 +14,7 @@ import {getAllModels} from "../layout/getAll"; import {getAllEditor} from "../layout/getAll"; export const validateName = (name: string, targetElement?: HTMLElement) => { - if (/\r\n|\r|\n|\u2028|\u2029|\t|\//.test(name)) { + if (/\r\n|\r|\n|\u2028|\u2029|\t/.test(name)) { if (targetElement) { showTooltip(window.siyuan.languages.fileNameRule, targetElement, "error"); } else { @@ -34,7 +34,7 @@ export const validateName = (name: string, targetElement?: HTMLElement) => { }; export const replaceFileName = (name: string) => { - return name.replace(/\r\n|\r|\n|\u2028|\u2029|\t|\//g, "").substring(0, Constants.SIZE_TITLE); + return name.replace(/\r\n|\r|\n|\u2028|\u2029|\t|/g, "").replace(/\//g, "/").substring(0, Constants.SIZE_TITLE); }; export const replaceLocalPath = (name: string) => { diff --git a/app/src/protyle/header/Title.ts b/app/src/protyle/header/Title.ts index 15965ef19..f7bdfebe4 100644 --- a/app/src/protyle/header/Title.ts +++ b/app/src/protyle/header/Title.ts @@ -318,7 +318,11 @@ export class Title { path: protyle.path, title: fileName, }); - this.setTitle(fileName); + if (fileName !== this.editElement.textContent) { + const offset = getSelectionOffset(this.editElement); + this.setTitle(fileName); + focusByOffset(this.editElement, offset.start, offset.end); + } setTitle(fileName); }, Constants.TIMEOUT_INPUT); }