Skip to content

Instantly share code, notes, and snippets.

@KlfJoat
Forked from idelem/titleUrlMarkdownClip.js
Last active February 21, 2024 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KlfJoat/95e3140b6e46c328eb1352602ea0ac7a to your computer and use it in GitHub Desktop.
Save KlfJoat/95e3140b6e46c328eb1352602ea0ac7a to your computer and use it in GitHub Desktop.
Bookmarklet to copy current page title and url in Markdown format to clipboard, like [title](url) - Usual for posting links to resources in README.md files
javascript:(function() {
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
/*IE specific code path to prevent textarea being shown while dialog is visible.*/
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
var markdown = '[' + document.title + '](' + window.location.href + ')';
var selection = window.getSelection().toString();
if (selection.length != 0) {
selection = '\n' + selection;
}
copyToClipboard(markdown + selection);
})();
javascript:(function(){function copyToClipboard(text){if(window.clipboardData&&window.clipboardData.setData){return clipboardData.setData(Text,text)}else if(document.queryCommandSupported&&document.queryCommandSupported(copy)){var textarea=document.createElement(textarea);textarea.textContent=text;textarea.style.position=fixed;document.body.appendChild(textarea);textarea.select();try{return document.execCommand(copy);}catch(ex){console.warn(Copy to clipboard failed.,ex);return false}finally{document.body.removeChild(textarea)}}}var markdown='['+document.title+']('+window.location.href+')';var selection=window.getSelection().toString();if(selection.length!=0){selection='\n'+selection}copyToClipboard(markdown+selection)})();
javascript: (function() {
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
/*IE specific code path to prevent textarea being shown while dialog is visible.*/
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
var markdown = '[[' + window.location.href + '][' + document.title + ']]';
var selection = window.getSelection().toString();
if (selection.length != 0) {
selection = '\n#+begin_src\n' + selection + '\n#+end_src\n';
}
copyToClipboard(markdown + selection);
})();
// this snippet copies links as rich text format so it could be pasted into workflowy-like editors
// see: https://stackoverflow.com/a/50067769
javascript: (function() {
function copyToClipboard(text) {
function listener(e) {
e.clipboardData.setData("text/html", text);
e.preventDefault();
}
if (window.clipboardData && window.clipboardData.setData) {
/*IE specific code path to prevent textarea being shown while dialog is visible.*/
return clipboardData.setData("text/html", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
document.body.appendChild(textarea);
textarea.select();
try {
document.addEventListener("copy", listener);
return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
document.removeEventListener("copy", listener);
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
var html = '<a href="' + window.location.href + '">' + document.title + '</a>';
var selection = window.getSelection().toString();
if (selection.length != 0) {
selection = '\n' + selection;
}
copyToClipboard(html + selection);
})();
javascript: (function() {
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
/*IE specific code path to prevent textarea being shown while dialog is visible.*/
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
var tw = '[[' + document.title + '|' + window.location.href + ']]';
copyToClipboard(tw);
})();
javascript: (function() {
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
/*IE specific code path to prevent textarea being shown while dialog is visible.*/
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; /* Prevent scrolling to bottom of page in MS Edge.*/
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); /* Security exception may be thrown by some browsers.*/
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
var tw = '[[' + window.location.href + ' |' + document.title + ']]';
copyToClipboard(tw);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment