first commit

This commit is contained in:
2025-08-13 14:13:51 -04:00
commit 817fb4b5ed
2 changed files with 49 additions and 0 deletions

36
launch-ulysses.js Normal file
View 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
View 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)()