From 447311b0614cd09e29a55e46c38153ea9a1b3247 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sun, 6 Oct 2024 21:11:39 +0800 Subject: feat: fix top padding of reference style links --- src/editor.mjs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/editor.mjs') diff --git a/src/editor.mjs b/src/editor.mjs index 8fe8c0b..71e66be 100644 --- a/src/editor.mjs +++ b/src/editor.mjs @@ -12,6 +12,8 @@ const context = document.querySelector('[data-mode]') const dumbyContainer = document.querySelector('.DumbyMap') const textArea = document.querySelector('.editor textarea') let dumbymap + +const refLinkPattern = /\[([^\[\]]+)\]:\s+(.+)/ let refLinks = [] /** @@ -196,7 +198,7 @@ const cm = editor.codemirror const getRefLinks = () => editor.value() .split('\n') .map(line => { - const [, ref, link] = line.match(/\[([^\[\]]+)\]:\s+(.+)/) ?? [] + const [, ref, link] = line.match(refLinkPattern) ?? [] return { ref, link } }) .filter(({ ref, link }) => ref && link) @@ -432,7 +434,11 @@ const menuForEditor = (event, menu) => { } while (refLinks.find(({ref}) => ref === anchorName)) - cm.replaceRange(`\n[${anchorName}]: ${link}`, { line: Infinity }) + const lastLineIsRefLink = cm.getLine(cm.lastLine()).match(refLinkPattern) + cm.replaceRange( + `${lastLineIsRefLink ? '' : '\n'}\n[${anchorName}]: ${link}`, + { line: Infinity } + ) } }) menu.insertBefore(item, menu.firstChild) -- cgit v1.2.3-70-g09d2