diff --git a/app/src/protyle/hint/index.ts b/app/src/protyle/hint/index.ts
index d466c5c37..ba7d9eae7 100644
--- a/app/src/protyle/hint/index.ts
+++ b/app/src/protyle/hint/index.ts
@@ -419,11 +419,11 @@ ${genHintItemHTML(item)}
const realFileName = fileNames.length === 1 ? fileNames[0] : fileNames[1];
const newID = Lute.NewNodeID();
rowElement.dataset.id = newID;
- getSavePath(protyle.path, protyle.notebookId, (pathString) => {
+ getSavePath(protyle.path, protyle.notebookId, (pathString, targetNotebookId) => {
fetchPost("/api/filetree/createDocWithMd", {
- notebook: protyle.notebookId,
+ notebook: targetNotebookId,
path: pathPosix().join(pathString, realFileName),
- parentID: protyle.block.rootID,
+ parentID: protyle.notebookId === targetNotebookId ? protyle.block.rootID : "",
markdown: "",
id: newID,
}, () => {
@@ -507,11 +507,11 @@ ${genHintItemHTML(item)}
if (Constants.BLOCK_HINT_KEYS.includes(this.splitChar) && value.startsWith("((newFile ") && value.endsWith(`${Lute.Caret}'))`)) {
const fileNames = value.substring(11, value.length - 4).split(`"${Constants.ZWSP}'`);
const realFileName = fileNames.length === 1 ? fileNames[0] : fileNames[1];
- getSavePath(protyle.path, protyle.notebookId, (pathString) => {
+ getSavePath(protyle.path, protyle.notebookId, (pathString, targetNotebookId) => {
fetchPost("/api/filetree/createDocWithMd", {
- notebook: protyle.notebookId,
+ notebook: targetNotebookId,
path: pathPosix().join(pathString, realFileName),
- parentID: protyle.block.rootID,
+ parentID: protyle.notebookId === targetNotebookId ? protyle.block.rootID : "",
markdown: ""
}, response => {
// https://github.com/siyuan-note/siyuan/issues/10133
diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts
index afb94f83a..1322c9568 100644
--- a/app/src/protyle/wysiwyg/keydown.ts
+++ b/app/src/protyle/wysiwyg/keydown.ts
@@ -1026,11 +1026,11 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
notebook: protyle.notebookId,
path: protyle.path,
}, (response) => {
- newFileBySelect(protyle, selectText, nodeElement, response.data);
+ newFileBySelect(protyle, selectText, nodeElement, response.data, protyle.notebookId);
});
} else {
- getSavePath(protyle.path, protyle.notebookId, (pathString) => {
- newFileBySelect(protyle, selectText, nodeElement, pathString);
+ getSavePath(protyle.path, protyle.notebookId, (pathString, targetNotebookId) => {
+ newFileBySelect(protyle, selectText, nodeElement, pathString, targetNotebookId);
});
}
}
diff --git a/app/src/util/newFile.ts b/app/src/util/newFile.ts
index b83e1356f..8cc29a695 100644
--- a/app/src/util/newFile.ts
+++ b/app/src/util/newFile.ts
@@ -111,6 +111,7 @@ export const newFile = (optios: {
/// #endif
});
} else {
+ // TODO
fetchPost("/api/filetree/getHPathByPath", {
notebook: data.data.box,
path: optios.currentPath.endsWith(".sy") ? optios.currentPath : optios.currentPath + ".sy"
@@ -160,7 +161,7 @@ export const newFile = (optios: {
});
};
-export const getSavePath = (pathString: string, notebookId: string, cb: (p: string) => void) => {
+export const getSavePath = (pathString: string, notebookId: string, cb: (p: string, notebookId: string) => void) => {
fetchPost("/api/filetree/getRefCreateSavePath", {
notebook: notebookId
}, (data) => {
@@ -170,13 +171,13 @@ export const getSavePath = (pathString: string, notebookId: string, cb: (p: stri
}
if (data.data.path) {
if (data.data.path.startsWith("/")) {
- cb(getDisplayName(data.data.path, false, true));
+ cb(getDisplayName(data.data.path, false, true), data.data.box);
} else {
fetchPost("/api/filetree/getHPathByPath", {
notebook: data.data.box,
path: targetPath
}, (response) => {
- cb(getDisplayName(pathPosix().join(response.data, data.data.path), false, true));
+ cb(getDisplayName(pathPosix().join(response.data, data.data.path), false, true), data.data.box);
});
}
} else {
@@ -184,7 +185,7 @@ export const getSavePath = (pathString: string, notebookId: string, cb: (p: stri
notebook: data.data.box,
path: targetPath
}, (response) => {
- cb(getDisplayName(response.data, false, true));
+ cb(getDisplayName(response.data, false, true), data.data.box);
});
}
});
@@ -199,21 +200,21 @@ export const newFileByName = (app: App, value: string) => {
});
};
-export const newFileBySelect = (protyle: IProtyle, selectText: string, nodeElement: HTMLElement, pathDir: string) => {
+export const newFileBySelect = (protyle: IProtyle, selectText: string, nodeElement: HTMLElement, pathDir: string, targetNotebookId: string) => {
const newFileName = replaceFileName(selectText.trim() ? selectText.trim() : protyle.lute.BlockDOM2Content(nodeElement.outerHTML).replace(/\n/g, "")) || window.siyuan.languages.untitled;
const hPath = pathPosix().join(pathDir, newFileName);
fetchPost("/api/filetree/getIDsByHPath", {
path: hPath,
- notebook: protyle.notebookId
+ notebook: targetNotebookId
}, (idResponse) => {
const refText = escapeHtml(newFileName.substring(0, window.siyuan.config.editor.blockRefDynamicAnchorTextMaxLen));
if (idResponse.data && idResponse.data.length > 0) {
insertHTML(`${refText}`, protyle, false, true);
} else {
fetchPost("/api/filetree/createDocWithMd", {
- notebook: protyle.notebookId,
+ notebook: targetNotebookId,
path: hPath,
- parentID: protyle.block.rootID,
+ parentID: protyle.notebookId === targetNotebookId ? protyle.block.rootID : "",
markdown: ""
}, response => {
insertHTML(`${refText}`, protyle, false, true);