Something like this is probably better suited toward a specialized text expansion program (I use aText, somewhat arbitrarily). This are going to be more fully featured than Obsidian could realistically be without taking time away from developing other features.
I have a few useful shortcuts already set up. Besdies xdate (which would be replaced with 2020-05-27, or xday (Wednesday, May 27, 2020), I also have xz set up to replace with [[(contents of clipboard)]], so I can highlight text, press CMD-x to copy, then press xz to insert it as a link.
I agree, this would be very useful with new note templates. I come from VSNotes which has a similar feature, where variables can be defined in the config and then used in new note templates (both in the file name and in the note content). Examples of variables I use:
ISO timestamp. This is included in the note header.
Note title. This is included in the generated note file name and automatically inserted as the title in the note content.
A related feature I use in VSNotes is transforming the variables, specifically lowercasing the title and replacing spaces with underscores in the note title when used in the file name.
Agree with this. If we could have variables, some parts of text could autogenerate on the fly. For example, in my notes, I like to have the note title as the first line, with Header 1:
My Note
It would be nice if this was a variable such as:
#<note_title>
So that it would automatically render properly, even if the note title changes.