mirror of
https://github.com/zadam/trilium.git
synced 2025-11-17 10:40:41 +01:00
Add import option to replace underscores with spaces in note names (#1064)
This commit is contained in:
@@ -4,8 +4,8 @@ const noteService = require('../../services/notes');
|
||||
const imageService = require('../../services/image');
|
||||
const protectedSessionService = require('../protected_session');
|
||||
const commonmark = require('commonmark');
|
||||
const path = require('path');
|
||||
const mimeService = require('./mime');
|
||||
const utils = require('../../services/utils');
|
||||
|
||||
async function importSingleFile(taskContext, file, parentNote) {
|
||||
const mime = mimeService.getMime(file.originalname) || file.mimetype;
|
||||
@@ -59,7 +59,7 @@ async function importFile(taskContext, file, parentNote) {
|
||||
}
|
||||
|
||||
async function importCodeNote(taskContext, file, parentNote) {
|
||||
const title = getFileNameWithoutExtension(file.originalname);
|
||||
const title = utils.getNoteTitle(file.originalname, taskContext.data.replaceUnderscoresWithSpaces);
|
||||
const content = file.buffer.toString("UTF-8");
|
||||
const detectedMime = mimeService.getMime(file.originalname) || file.mimetype;
|
||||
const mime = mimeService.normalizeMimeType(detectedMime);
|
||||
@@ -79,7 +79,7 @@ async function importCodeNote(taskContext, file, parentNote) {
|
||||
}
|
||||
|
||||
async function importPlainText(taskContext, file, parentNote) {
|
||||
const title = getFileNameWithoutExtension(file.originalname);
|
||||
const title = utils.getNoteTitle(file.originalname, taskContext.data.replaceUnderscoresWithSpaces);
|
||||
const plainTextContent = file.buffer.toString("UTF-8");
|
||||
const htmlContent = convertTextToHtml(plainTextContent);
|
||||
|
||||
@@ -124,7 +124,7 @@ async function importMarkdown(taskContext, file, parentNote) {
|
||||
const parsed = reader.parse(markdownContent);
|
||||
const htmlContent = writer.render(parsed);
|
||||
|
||||
const title = getFileNameWithoutExtension(file.originalname);
|
||||
const title = utils.getNoteTitle(file.originalname, taskContext.data.replaceUnderscoresWithSpaces);
|
||||
|
||||
const {note} = await noteService.createNewNote({
|
||||
parentNoteId: parentNote.noteId,
|
||||
@@ -141,7 +141,7 @@ async function importMarkdown(taskContext, file, parentNote) {
|
||||
}
|
||||
|
||||
async function importHtml(taskContext, file, parentNote) {
|
||||
const title = getFileNameWithoutExtension(file.originalname);
|
||||
const title = utils.getNoteTitle(file.originalname, taskContext.data.replaceUnderscoresWithSpaces);
|
||||
const content = file.buffer.toString("UTF-8");
|
||||
|
||||
const {note} = await noteService.createNewNote({
|
||||
@@ -158,12 +158,6 @@ async function importHtml(taskContext, file, parentNote) {
|
||||
return note;
|
||||
}
|
||||
|
||||
function getFileNameWithoutExtension(filePath) {
|
||||
const extension = path.extname(filePath);
|
||||
|
||||
return filePath.substr(0, filePath.length - extension.length);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
importSingleFile
|
||||
};
|
||||
@@ -102,19 +102,8 @@ async function importTar(taskContext, fileBuffer, importRootNote) {
|
||||
return parentNoteId;
|
||||
}
|
||||
|
||||
function getNoteTitle(filePath, noteMeta) {
|
||||
if (noteMeta) {
|
||||
return noteMeta.title;
|
||||
}
|
||||
else {
|
||||
const basename = path.basename(filePath);
|
||||
|
||||
return getTextFileWithoutExtension(basename);
|
||||
}
|
||||
}
|
||||
|
||||
function getNoteId(noteMeta, filePath) {
|
||||
const filePathNoExt = getTextFileWithoutExtension(filePath);
|
||||
const filePathNoExt = utils.removeTextFileExtension(filePath);
|
||||
|
||||
if (filePathNoExt in createdPaths) {
|
||||
return createdPaths[filePathNoExt];
|
||||
@@ -168,7 +157,7 @@ async function importTar(taskContext, fileBuffer, importRootNote) {
|
||||
const { parentNoteMeta, noteMeta } = getMeta(filePath);
|
||||
|
||||
const noteId = getNoteId(noteMeta, filePath);
|
||||
const noteTitle = getNoteTitle(filePath, noteMeta);
|
||||
const noteTitle = utils.getNoteTitle(filePath, taskContext.data.replaceUnderscoresWithSpaces, noteMeta);
|
||||
const parentNoteId = await getParentNoteId(filePath, parentNoteMeta);
|
||||
|
||||
let note = await repository.getNote(noteId);
|
||||
@@ -198,17 +187,6 @@ async function importTar(taskContext, fileBuffer, importRootNote) {
|
||||
return noteId;
|
||||
}
|
||||
|
||||
function getTextFileWithoutExtension(filePath) {
|
||||
const extension = path.extname(filePath).toLowerCase();
|
||||
|
||||
if (extension === '.md' || extension === '.markdown' || extension === '.html') {
|
||||
return filePath.substr(0, filePath.length - extension.length);
|
||||
}
|
||||
else {
|
||||
return filePath;
|
||||
}
|
||||
}
|
||||
|
||||
function getNoteIdFromRelativeUrl(url, filePath) {
|
||||
while (url.startsWith("./")) {
|
||||
url = url.substr(2);
|
||||
@@ -267,7 +245,7 @@ async function importTar(taskContext, fileBuffer, importRootNote) {
|
||||
content = mdWriter.render(parsed);
|
||||
}
|
||||
|
||||
const noteTitle = getNoteTitle(filePath, noteMeta);
|
||||
const noteTitle = utils.getNoteTitle(filePath, taskContext.data.replaceUnderscoresWithSpaces, noteMeta);
|
||||
|
||||
if (type === 'text') {
|
||||
function isUrlAbsolute(url) {
|
||||
@@ -348,7 +326,7 @@ async function importTar(taskContext, fileBuffer, importRootNote) {
|
||||
}
|
||||
|
||||
if (type === 'text') {
|
||||
filePath = getTextFileWithoutExtension(filePath);
|
||||
filePath = utils.removeTextFileExtension(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -100,23 +100,12 @@ async function importZip(taskContext, fileBuffer, importRootNote) {
|
||||
return parentNoteId;
|
||||
}
|
||||
|
||||
function getNoteTitle(filePath, noteMeta) {
|
||||
if (noteMeta) {
|
||||
return noteMeta.title;
|
||||
}
|
||||
else {
|
||||
const basename = path.basename(filePath);
|
||||
|
||||
return getTextFileWithoutExtension(basename);
|
||||
}
|
||||
}
|
||||
|
||||
function getNoteId(noteMeta, filePath) {
|
||||
if (noteMeta) {
|
||||
return getNewNoteId(noteMeta.noteId);
|
||||
}
|
||||
|
||||
const filePathNoExt = getTextFileWithoutExtension(filePath);
|
||||
const filePathNoExt = utils.removeTextFileExtension(filePath);
|
||||
|
||||
if (filePathNoExt in createdPaths) {
|
||||
return createdPaths[filePathNoExt];
|
||||
@@ -170,7 +159,7 @@ async function importZip(taskContext, fileBuffer, importRootNote) {
|
||||
const { parentNoteMeta, noteMeta } = getMeta(filePath);
|
||||
|
||||
const noteId = getNoteId(noteMeta, filePath);
|
||||
const noteTitle = getNoteTitle(filePath, noteMeta);
|
||||
const noteTitle = utils.getNoteTitle(filePath, taskContext.data.replaceUnderscoresWithSpaces, noteMeta);
|
||||
const parentNoteId = await getParentNoteId(filePath, parentNoteMeta);
|
||||
|
||||
let note = await repository.getNote(noteId);
|
||||
@@ -202,17 +191,6 @@ async function importZip(taskContext, fileBuffer, importRootNote) {
|
||||
return noteId;
|
||||
}
|
||||
|
||||
function getTextFileWithoutExtension(filePath) {
|
||||
const extension = path.extname(filePath).toLowerCase();
|
||||
|
||||
if (extension === '.md' || extension === '.markdown' || extension === '.html') {
|
||||
return filePath.substr(0, filePath.length - extension.length);
|
||||
}
|
||||
else {
|
||||
return filePath;
|
||||
}
|
||||
}
|
||||
|
||||
function getNoteIdFromRelativeUrl(url, filePath) {
|
||||
while (url.startsWith("./")) {
|
||||
url = url.substr(2);
|
||||
@@ -275,7 +253,7 @@ async function importZip(taskContext, fileBuffer, importRootNote) {
|
||||
content = mdWriter.render(parsed);
|
||||
}
|
||||
|
||||
const noteTitle = getNoteTitle(filePath, noteMeta);
|
||||
const noteTitle = utils.getNoteTitle(filePath, taskContext.data.replaceUnderscoresWithSpaces, noteMeta);
|
||||
|
||||
if (type === 'text') {
|
||||
function isUrlAbsolute(url) {
|
||||
@@ -368,7 +346,7 @@ async function importZip(taskContext, fileBuffer, importRootNote) {
|
||||
}
|
||||
|
||||
if (type === 'text') {
|
||||
filePath = getTextFileWithoutExtension(filePath);
|
||||
filePath = utils.removeTextFileExtension(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user