mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-21 00:50:13 +01:00
This commit is contained in:
parent
6d2ff690b2
commit
0d5d63f22a
5 changed files with 14 additions and 2 deletions
|
|
@ -9,17 +9,22 @@ import {isMobile} from "../util/functions";
|
|||
import {getAssetName, getDisplayName, pathPosix, setNotebookName} from "../util/pathName";
|
||||
import {fetchPost} from "../util/fetch";
|
||||
import {escapeHtml} from "../util/escape";
|
||||
import {Constants} from "../constants";
|
||||
|
||||
export const validateName = (name: string) => {
|
||||
if (/\r\n|\r|\n|\u2028|\u2029|\t|\//.test(name)) {
|
||||
showMessage(window.siyuan.languages.fileNameRule);
|
||||
return false;
|
||||
}
|
||||
if (name.length > Constants.SIZE_TITLE) {
|
||||
showMessage(window.siyuan.languages["_kernel"]["106"]);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
export const replaceFileName = (name: string) => {
|
||||
return name.replace(/\r\n|\r|\n|\u2028|\u2029|\t|\//g, "");
|
||||
return name.replace(/\r\n|\r|\n|\u2028|\u2029|\t|\//g, "").substring(0, Constants.SIZE_TITLE);
|
||||
};
|
||||
|
||||
export const replaceLocalPath = (name: string) => {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import {needSubscribe} from "../../util/needSubscribe";
|
|||
import {MenuItem} from "../../menus/Menu";
|
||||
import {hasClosestByAttribute, hasClosestByClassName} from "../../protyle/util/hasClosest";
|
||||
import {confirmDialog} from "../../dialog/confirmDialog";
|
||||
import {replaceFileName} from "../../editor/rename";
|
||||
|
||||
export class Inbox extends Model {
|
||||
private element: Element;
|
||||
|
|
@ -254,7 +255,7 @@ ${(Lute.New()).MarkdownStr("", data.shorthandContent)}
|
|||
fetchPost("/api/filetree/createDoc", {
|
||||
notebook: notebookId,
|
||||
path: `/${Lute.NewNodeID()}.sy`,
|
||||
title: this.data[item].shorthandTitle,
|
||||
title: replaceFileName(this.data[item].shorthandTitle),
|
||||
md: this.data[item].shorthandContent,
|
||||
}, () => {
|
||||
this.remove(item);
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ const initEditorName = () => {
|
|||
return;
|
||||
}
|
||||
if (!validateName(inputElement.value)) {
|
||||
inputElement.value = inputElement.value.substring(0, Constants.SIZE_TITLE);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -252,6 +252,7 @@ export class Title {
|
|||
private rename(protyle: IProtyle) {
|
||||
clearTimeout(this.timeout);
|
||||
if (!validateName(this.editElement.textContent)) {
|
||||
this.setTitle(this.editElement.textContent.substring(0, Constants.SIZE_TITLE));
|
||||
return false;
|
||||
}
|
||||
this.timeout = window.setTimeout(() => {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import {openFileById} from "../editor/util";
|
|||
import {fetchPost} from "./fetch";
|
||||
import {getDisplayName, getOpenNotebookCount, pathPosix} from "./pathName";
|
||||
import {Constants} from "../constants";
|
||||
import {validateName} from "../editor/rename";
|
||||
|
||||
export const newFile = (notebookId?: string, currentPath?: string, open?: boolean, paths?: string[]) => {
|
||||
if (getOpenNotebookCount() === 0) {
|
||||
|
|
@ -58,6 +59,9 @@ export const newFile = (notebookId?: string, currentPath?: string, open?: boolea
|
|||
if (paths) {
|
||||
paths[paths.indexOf(undefined)] = newPath;
|
||||
}
|
||||
if (!validateName(data.data.name)) {
|
||||
return;
|
||||
}
|
||||
fetchPost("/api/filetree/createDoc", {
|
||||
notebook: notebookId,
|
||||
path: newPath,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue