36 lines
1.8 KiB
JavaScript
36 lines
1.8 KiB
JavaScript
/*
|
|
The following is the expanded code
|
|
|
|
It takes the URL encoded template as a variable
|
|
checks the user agent to see if you're running it on an iPhone/iPad/iPod
|
|
If you're running on iOS, it opens a new sheet in Ulysses with the template
|
|
If you're on any other platform, it copies the template to your clipboard
|
|
*/
|
|
|
|
var template = `%23%23%20title%0Aslug%0Atags%0A%0Abody`;
|
|
var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
|
|
if (isIOS) {
|
|
window.location.href = `ulysses://x-callback-url/new-sheet?text=${template}&group=Inbox`;
|
|
} else {
|
|
(function (text) {
|
|
var node = document.createElement('textarea');
|
|
var selection = document.getSelection();
|
|
|
|
node.textContent = text;
|
|
document.body.appendChild(node);
|
|
|
|
selection.removeAllRanges();
|
|
node.select();
|
|
document.execCommand('copy');
|
|
|
|
selection.removeAllRanges();
|
|
document.body.removeChild(node);
|
|
})(decodeURIComponent(template));
|
|
}
|
|
|
|
// The following URL is used to convert it to a bookmarklet
|
|
https://mrcoles.com/bookmarklet/
|
|
|
|
// The following is the bookmarklet itself
|
|
javascript:(function()%7Bvar%20template%20%3D%20%60%2523%2523%2520title%250Aslug%250Atags%250A%250Abody%60%3Bvar%20isIOS%20%3D%20%2FiPad%7CiPhone%7CiPod%2F.test(navigator.userAgent)%20%26%26%20!window.MSStream%3Bif%20(isIOS)%20%7Bwindow.location.href%20%3D%20%60ulysses%3A%2F%2Fx-callback-url%2Fnew-sheet%3Ftext%3D%24%7Btemplate%7D%26group%3DInbox%60%3B%7D%20else%20%7B(function%20(text)%20%7Bvar%20node%20%3D%20document.createElement('textarea')%3Bvar%20selection%20%3D%20document.getSelection()%3Bnode.textContent%20%3D%20text%3Bdocument.body.appendChild(node)%3Bselection.removeAllRanges()%3Bnode.select()%3Bdocument.execCommand('copy')%3Bselection.removeAllRanges()%3Bdocument.body.removeChild(node)%3B%7D)(decodeURIComponent(template))%3B%7D%7D)() |