Skip to content

Instantly share code, notes, and snippets.

@duqcyxwd
Forked from idelem/titleUrlMarkdownClip.js
Created September 1, 2021 22:25
Show Gist options
  • Save duqcyxwd/ef5ec967876ef2b6e4ca6aeefd74ce3a to your computer and use it in GitHub Desktop.
Save duqcyxwd/ef5ec967876ef2b6e4ca6aeefd74ce3a 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) {
/*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