Bunch of URLs

While conducting a weekly review, I realized that a frequent step in my daily process was opening all the URLs associated with a project. Every file, JIRA ticket, Figma design, or wiki page has a URL.
I started putting all these links in a markdown list in the context section of the Things Project. For each context switch I would just click down the list:
## Resources
- https://fakejira.atlassian.net/wiki/spaces/UX/pages/12345/Fake+Project
- https://fakejira.atlassian.net/wiki/spaces/UX/pages/12345/Fake+Project+Changelog
- https://fakejira.atlassian.net/browse/DEV-13623
- obsidian://open?vault=wiki&file=career%2F07%20fake%2FFake%20Project
- figma:///file/12345/Fake-Project+P?node-id=0%3A1
After doing this for a week, I decided to automate this. I wrote a JXA function to find Things projects with the string ## Resources
in the Notes field.
(function() {
var Things = Application("Things");
var divider = /## Resources/;
Things.launch();
let getUrls = function(proj) {
if (proj.notes() && proj.notes().match(divider)) {
return proj.notes()
.split(divider)[1]
.replace(divider, "")
.split("\n")
.map(str => str.replace(/^- /, ""))
.filter(s => s != "")
}
else {
return false;
}
}
let projects =
Things
.projects()
.filter(t => t.status() == "open")
.map(function(proj) {
return {
text: proj.name(),
subText: proj.area().name(),
urls: getUrls(proj),
id: proj.id()
}
})
.filter(function(proj) {
return proj.urls
});
return projects;
})();
I wrapped this in a hammerspoon function that lets me choose a project and launch its URLs in one keystroke using hs.chooser
.
I love it. It immediately has become one of my favorite little hacks. Every time I need to do a demo, or start logging time, or make a small change my whole workspace is a click away.
You can do this any old way. If you are on a Mac, the best way is probably using Bunch1. The only reason I’m maintaining my particular hack is because it’s really nice to have the links co-located with their project in Things. Hook.app is similarly great, if you can wrap your head around it. At least, keep a plaintext list of the URLs associated with a project and click on them manually… it is amazing how removing a little friction can help get into flow.
-
Bunch is pure genius. I haven't spent the time in it that I should, but I'm pretty sure I could refactor my Headspace scripts to be a supplement to bunches and that'd be simpler. I still may do that. ↩
Changelog
-
2022-06-08 11:31:29 -0500Rename articles
-
2022-03-11 08:02:39 -0600Fix typo
-
2022-03-11 07:40:31 -0600Bunch of URLs