first commit
This commit is contained in:
36
launch-ulysses.js
Normal file
36
launch-ulysses.js
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
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)()
|
13
readme.md
Normal file
13
readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Bookmarklets
|
||||
|
||||
## Launch Ulysses
|
||||
|
||||
This is a JavaScript bookmarklet implementation of my Launch Ulysses shortcut from [The Toolkit](https://initialcharge.net/projects/toolkit/).
|
||||
|
||||
If run from an iPhone or iPad, it creates a new sheet in Ulysses, within a group named "Inbox", with my template for writing feature articles.
|
||||
|
||||
If the bookmarklet is run on any other device, it will copy the template to your device's clipboard, which can be pasted into your writing application of choice.
|
||||
|
||||
[Launch Ulysses][1] — drag this link into your browser's bookmarks bar to install.
|
||||
|
||||
[1] : 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)()
|
Reference in New Issue
Block a user