Challenge: Inserting Fancy Date Format into Text Snippet

Hello. As the typical preface, I know very little about the topics that I am seeking help for. The variables are just too complicated for my skillset.

Here is what I am hoping for:
I want to create an automated snippet of text that can be pasted with indentations in place. Here is the snippet:

#[[Inbox]]
	Query
		{{[[query]]: {and: [[Inbox]] [[TODO]] {and: {not: [[query]]} {not: [[^today]] }}}}}
#[[Quick Capture]]
#[[Upcomoing]]
	{{[[query]]: {and: [[TODO]] {not: [[query]]} {between: [[^today]] [[^today+7days]]}}}}
#[[Action List]]
	#[[Priority]] Today
		#[[Scheduled]]
			{{[[query]]: {and: [[TODO]] [[^today]] {not: [[query]] [[#Inbox]]}}}}
		#[[Email]]
			{{[[TODO]]}} Process [[Canvas]]
			{{[[TODO]]}} Process Standard
		#[[Courses]]
		#[[Family]] #[[Home]]
	#[[InProgress]]
		#Action
			{{[[query]]: {and: [[TODO]] [[InProgress]] [[Action]]{not: [[query]]}}}}
		### All Others
			{{[[query]]: {and: [[TODO]] [[InProgress]] {or: {not: #Action} {not: [[query]]}}}}
	#[[Maybe]]
#[[Daily Notes]]
#[[Class Notes]]
#[[Evening Review]]

HOWEVER, what I would like is for every ^Today, I would like today’s date inserted in a particular format; Month day(st, nd, rd, th), 4-digit year. (e.g. April 10th, 2020) For this I have a Drafts snippet that formats it correctly, but I can’t figure out how to expand it within the snippet above.

function insertTextPosAtEnd(p_strText) {
	editor.setSelectedText(p_strText);
	editor.setSelectedRange(editor.getSelectedRange()[0] + editor.getSelectedRange()[1], 0);
	editor.activate();
}

function getOrdinalNum(n) {
  return n + (n > 0 ? ['th', 'st', 'nd', 'rd'][(n > 3 && n < 21) || n % 10 > 3 ? 0 : n % 10] : '');
}

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

var today = new Date();
var m = monthNames[today.getMonth()];
var d = getOrdinalNum(today.getDate());
var y = today.getFullYear();

var ordinalToday = "[[" + m + " " + d + ", " + y + "]]";
insertTextPosAtEnd(ordinalToday);
draft.update();

For bonus points, I also want to take the given date of today and add a number of days to it and have it output the future date in the same formate mentioned above.

Bret Terpstra has a Keyboard Maestro macro for the date, and a Textexpander version. But in either case, I don’t know how to incorporate that into a single flow.

I am more familiar with iOS shortcuts, and it wouldn’t hurt to have it there too. But I am hoping to get either a Textexpander snippet to do it, or a Keyboard Maestro macro, or hell I even have Alfred too! Any way that this is possible I will get it into my workflow, whether on iOS or macOS.

Any ideas or assistance would be greatly appreciated. For full disclosure, this is for RoamResearch.com 's app - Roam and my daily template.

Take a look at the nested snippets feature if you want to embed one snippet in another within TextExpander. It’s just an option on one of the insertion menus, you specify the macro you want to embed and it’s done.

Then you can take the examples you already have and use them.

1 Like