diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-07 17:46:19 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-08 10:28:47 +0800 |
commit | 7beb564dd63624dce148401b2644dafa278af837 (patch) | |
tree | ee0d2c304d31aa33aba60f758178e46c4a38968f /src/MenuItem.mjs | |
parent | 2caa6eba91f9c810bda3087d521771b0b9e013f2 (diff) |
feat: add menu item for append ref style link on selection
Diffstat (limited to 'src/MenuItem.mjs')
-rw-r--r-- | src/MenuItem.mjs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/MenuItem.mjs b/src/MenuItem.mjs index 9218b45..f5dfb5b 100644 --- a/src/MenuItem.mjs +++ b/src/MenuItem.mjs | |||
@@ -366,3 +366,25 @@ export const restoreCamera = map => | |||
366 | text: 'Restore Camera', | 366 | text: 'Restore Camera', |
367 | onclick: () => map.renderer.restoreCamera() | 367 | onclick: () => map.renderer.restoreCamera() |
368 | }) | 368 | }) |
369 | |||
370 | /** | ||
371 | * addRefLink. replace selected text into markdown link by reference style links | ||
372 | * | ||
373 | * @param {CodeMirror} cm | ||
374 | * @param {Object[]} refLinks -- object for { ref, link } | ||
375 | */ | ||
376 | export const addRefLink = (cm, refLinks) => | ||
377 | new Folder({ | ||
378 | text: 'Add Link', | ||
379 | items: refLinks.map(refLink => new Item({ | ||
380 | text: refLink.ref, | ||
381 | onclick: () => { | ||
382 | const selection = cm.getSelection() | ||
383 | if (selection === refLink.ref) { | ||
384 | cm.replaceSelection(`[${selection}]`) | ||
385 | } else { | ||
386 | cm.replaceSelection(`[${selection}][${refLink.ref}]`) | ||
387 | } | ||
388 | } | ||
389 | })) | ||
390 | }) | ||