mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	| @@ -145,7 +145,6 @@ function bindShortcut(keyboardShortcut, handler) { | ||||
|         } | ||||
|  | ||||
|         $(document).bind('keydown', keyboardShortcut, e => { | ||||
|             console.log(e); | ||||
|             handler(); | ||||
|  | ||||
|             e.preventDefault(); | ||||
|   | ||||
| @@ -22,20 +22,50 @@ async function importOpml(importContext, fileBuffer, parentNote) { | ||||
|         }); | ||||
|     }); | ||||
|  | ||||
|     if (xml.opml.$.version !== '1.0' && xml.opml.$.version !== '1.1') { | ||||
|         return [400, 'Unsupported OPML version ' + xml.opml.$.version + ', 1.0 or 1.1 expected instead.']; | ||||
|     if (!['1.0', '1.1', '2.0'].includes(xml.opml.$.version)) { | ||||
|         return [400, 'Unsupported OPML version ' + xml.opml.$.version + ', 1.0, 1.1 or 2.0 expected instead.']; | ||||
|     } | ||||
|  | ||||
|     const opmlVersion = parseInt(xml.opml.$.version); | ||||
|  | ||||
|     async function importOutline(outline, parentNoteId) { | ||||
|         let title, content; | ||||
|  | ||||
|         if (opmlVersion === 1) { | ||||
|             title = outline.$.title; | ||||
|             content = toHtml(outline.$.text); | ||||
|         } | ||||
|         else if (opmlVersion === 2) { | ||||
|             title = outline.$.text; | ||||
|             content = outline.$._note; // _note is already HTML | ||||
|         } | ||||
|         else { | ||||
|             throw new Error("Unrecognized OPML version " + opmlVersion); | ||||
|         } | ||||
|  | ||||
|         const {note} = await noteService.createNote(parentNoteId, title, content); | ||||
|  | ||||
|         importContext.increaseProgressCount(); | ||||
|  | ||||
|         for (const childOutline of (outline.outline || [])) { | ||||
|             await importOutline(childOutline, note.noteId); | ||||
|         } | ||||
|  | ||||
|         return note; | ||||
|     } | ||||
|  | ||||
|     const outlines = xml.opml.body[0].outline || []; | ||||
|     let returnNote = null; | ||||
|  | ||||
|     for (const outline of outlines) { | ||||
|         const note = await importOutline(importContext, outline, parentNote.noteId); | ||||
|         const note = await importOutline(outline, parentNote.noteId); | ||||
|  | ||||
|         // first created note will be activated after import | ||||
|         returnNote = returnNote || note; | ||||
|     } | ||||
|  | ||||
|     importContext.importFinished(returnNote.noteId); | ||||
|  | ||||
|     return returnNote; | ||||
| } | ||||
|  | ||||
| @@ -47,18 +77,6 @@ function toHtml(text) { | ||||
|     return '<p>' + text.replace(/(?:\r\n|\r|\n)/g, '</p><p>') + '</p>'; | ||||
| } | ||||
|  | ||||
| async function importOutline(importContext, outline, parentNoteId) { | ||||
|     const {note} = await noteService.createNote(parentNoteId, outline.$.title, toHtml(outline.$.text)); | ||||
|  | ||||
|     importContext.increaseProgressCount(); | ||||
|  | ||||
|     for (const childOutline of (outline.outline || [])) { | ||||
|         await importOutline(childOutline, note.noteId); | ||||
|     } | ||||
|  | ||||
|     return note; | ||||
| } | ||||
|  | ||||
| module.exports = { | ||||
|     importOpml | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user