Firefox WebExtension (Desktop and Mobile) that lets you share the current tab to Margit.at, frontpage.fyi, etc. with minimal effort.
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 33 lines 1.1 kB view raw
1const CONTEXT_CHARS = 150; 2 3browser.runtime.onMessage.addListener((message) => { 4 if (message.type !== "margin-get-selection") return; 5 6 const selection = window.getSelection(); 7 if (!selection || selection.isCollapsed) { 8 return Promise.resolve({ selection: null }); 9 } 10 11 const exact = selection.toString().trim(); 12 if (!exact) return Promise.resolve({ selection: null }); 13 14 let prefix = ""; 15 let suffix = ""; 16 try { 17 const range = selection.getRangeAt(0); 18 19 const prefixRange = document.createRange(); 20 prefixRange.selectNodeContents(document.body); 21 prefixRange.setEnd(range.startContainer, range.startOffset); 22 prefix = prefixRange.toString().slice(-CONTEXT_CHARS); 23 24 const suffixRange = document.createRange(); 25 suffixRange.selectNodeContents(document.body); 26 suffixRange.setStart(range.endContainer, range.endOffset); 27 suffix = suffixRange.toString().slice(0, CONTEXT_CHARS); 28 } catch { 29 // context extraction failed, proceed without it 30 } 31 32 return Promise.resolve({ selection: { exact, prefix, suffix } }); 33});