From d4e27c1b765a6768206b5832de5006775ed0ae0a Mon Sep 17 00:00:00 2001 From: zadam Date: Fri, 30 Aug 2019 21:22:52 +0200 Subject: [PATCH] fixed CSS lazy loading (same file could be loaded multiple times) --- db/demo.tar | Bin 500736 -> 500736 bytes src/public/javascripts/services/css_loader.js | 6 +++--- .../javascripts/services/entrypoints.js | 6 +----- src/services/import/tar.js | 6 ++++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/db/demo.tar b/db/demo.tar index cfb5477c80f5b68c70588aace890fc9d6d3624dc..fde6a83ef64c4eac115d2cf84a0cab6efcb412c8 100644 GIT binary patch delta 9801 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 diff --git a/src/public/javascripts/services/css_loader.js b/src/public/javascripts/services/css_loader.js index b8ed72abe..8f9bba3f4 100644 --- a/src/public/javascripts/services/css_loader.js +++ b/src/public/javascripts/services/css_loader.js @@ -1,9 +1,9 @@ async function requireCss(url) { - const css = Array + const cssLinks = Array .from(document.querySelectorAll('link')) - .map(scr => scr.href); + .map(el => el.href); - if (!css.includes(url)) { + if (!cssLinks.some(l => l.endsWith(url))) { $('head').append($('').attr('href', url)); } } diff --git a/src/public/javascripts/services/entrypoints.js b/src/public/javascripts/services/entrypoints.js index 3cf60bd59..628e8772b 100644 --- a/src/public/javascripts/services/entrypoints.js +++ b/src/public/javascripts/services/entrypoints.js @@ -56,11 +56,7 @@ function registerEntrypoints() { return; } - import(NOTE_SOURCE).then(d => { - console.log(d); - - d.showDialog() - }); + import(NOTE_SOURCE).then(d => d.showDialog()); }); $noteTabContainer.on("click", ".show-link-map-button", function() { diff --git a/src/services/import/tar.js b/src/services/import/tar.js index f81d528fc..6ca3cd2f7 100644 --- a/src/services/import/tar.js +++ b/src/services/import/tar.js @@ -237,13 +237,15 @@ async function importTar(importContext, fileBuffer, importRootNote) { content = content.toString("UTF-8"); if (noteMeta) { - const internalLinks = (noteMeta.attributes || []).filter(attr => attr.type === 'relation' && attr.name === 'internal-link'); + const internalLinks = (noteMeta.attributes || []) + .filter(attr => attr.type === 'relation' && + ['internal-link', 'relation-map-link', 'image-link'].includes(attr.name)); // this will replace all internal links ( and ) inside the body // links pointing outside the export will be broken and changed (ctx.getNewNoteId() will still assign new noteId) for (const link of internalLinks) { // no need to escape the regexp find string since it's a noteId which doesn't contain any special characters - content = content.replace(new RegExp(link.targetNoteId, "g"), getNewNoteId(link.targetNoteId)); + content = content.replace(new RegExp(link.value, "g"), getNewNoteId(link.value)); } } }