From 7b67706a73472b89d057fb50e8662202a7cb1f57 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Wed, 9 Oct 2024 21:37:59 +0800 Subject: feat: use "title" to set leader-line label for GeoLink --- src/dumbyUtils.mjs | 8 +++++--- src/editor.mjs | 18 +++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/dumbyUtils.mjs b/src/dumbyUtils.mjs index 83d24c0..4b2ae2c 100644 --- a/src/dumbyUtils.mjs +++ b/src/dumbyUtils.mjs @@ -121,7 +121,7 @@ const addLeaderLine = (link, target) => { start: link, end: target, hide: true, - middleLabel: link.url.searchParams.get('text'), + middleLabel: link.title, path: 'magnet', }) line.show('draw', { duration: 300 }) @@ -270,12 +270,14 @@ export const addAnchorByPoint = ({ while (anchorName !== null && !validateAnchorName(anchorName)) if (anchorName === null) return - const link = `geo:${y},${x}?xy=${x},${y}&id=${map.id}&text=${anchorName}` + const desc = window.prompt("Description", anchorName) ?? anchorName + + const link = `geo:${y},${x}?xy=${x},${y}&id=${map.id}` map.renderer.addMarker({ xy: [x, y], title: `${map.id}@${x},${y}`, type: 'circle', }) - return { ref: anchorName, link } + return { ref: anchorName, link, title: desc } } diff --git a/src/editor.mjs b/src/editor.mjs index ed63f9c..4f500f5 100644 --- a/src/editor.mjs +++ b/src/editor.mjs @@ -19,13 +19,14 @@ const refLinkPattern = /\[([^\x5B\x5D]+)\]:\s+(.+)/ let refLinks = [] const validateAnchorName = anchorName => !refLinks.find(obj => obj.ref === anchorName) -const appendRefLink = ({ cm, ref, link }) => { - let refLinkString = `\n[${ref}]: ${link}` +const appendRefLink = (cm, refLink) => { + const {ref, link, title} = refLink + let refLinkString = `\n[${ref}]: ${link} "${title ?? ''}"` const lastLineIsRefLink = cm.getLine(cm.lastLine()).match(refLinkPattern) if (!lastLineIsRefLink) refLinkString = '\n' + refLinkString cm.replaceRange(refLinkString, { line: Infinity }) - refLinks.push({ ref, link }) + refLinks.push(refLink) } /** * Watch for changes of editing mode @@ -468,8 +469,8 @@ const menuForEditor = (event, menu) => { const item = new menuItem.Item({ text: 'Add Anchor', onclick: (event) => { - const { ref, link } = addAnchorByPoint({ point: event, map, validateAnchorName }) - appendRefLink({ cm, ref, link }) + const refLink = addAnchorByPoint({ point: event, map, validateAnchorName }) + appendRefLink(cm, refLink) }, }) menu.insertBefore(item, menu.firstChild) @@ -1146,12 +1147,11 @@ dumbyContainer.onmousedown = (e) => { return } - const { ref, link } = refLink - appendRefLink({ cm, ref, link }) - if (selection === ref) { + appendRefLink(cm, refLink) + if (selection === refLink.ref) { cm.replaceSelection(`[${selection}]`) } else { - cm.replaceSelection(`[${selection}][${ref}]`) + cm.replaceSelection(`[${selection}][${refLink.ref}]`) } } } -- cgit v1.2.3-70-g09d2