I am adding my notes related to the Templater plugin into Obsidian. I want to literally type the opening and closing Templater tags (<% and %>), but when I type `<%`, it gets interpreted as an opening tag and ruins the formatting of everything that follows (as it now thinks I want to be in the Templater engine).
I’ve tried using HTML entities for the percent sign, but that seems to get typed literally (e.g., whether I tried `<\0x25`, `<%`, etc.) rather than replaced with %. I’ve tried escaping the percent sign, which prevents the Templater engine from kicking in but also renders the backslash (e.g., I see `<\%` in the note). I’ve searched through the Templater docs as well as this forum, but couldn’t find anything similar (most threads I found were about escaping the backtick to render it within backticks, rather than the percent sign, which outside of Templater, renders just fine).
I can confirm it’s not an issue with remaining on the line while in live preview (i.e., outside of inline code, the backslash will show when you’re on the line in live preview but not when your cursor is elsewhere).
I tried to edit my post but it’s been too long since I posted it.
It seems I spoke a bit too soon, as I had tried this solution without putting it in backticks and it worked fine. However, when I tried backticks, it would render the span HTML. When I tried without, the ending </code> tag was getting rendered and taking it out made no difference (but the <% showed as plain text rather than monospace). Your hint of using display: none got me thinking of the zero-width space. I copy-and-pasted that from the character viewer between the < and %, and that worked perfectly.
That’s a good point: copying-and-pasting is definitely something that anyone reading this in the future would want to consider. In my case, I was making notes on handling white space with Templater so I only needed to type <%- and <%_.
To clarify what I was seeing, I copied your code block (<code><<span style="display: none"></span>%+ tR = "Completed" %></code>) into a note and this gets rendered out:
<%+ tR = "Completed" %></code>
I reduced that down to <code><<span style="display: none"></span>%, saw that it rendered out <%, and posted my answer that this worked. However, I then went to copy it into my real notes and noticed it was not rendering as code. I surrounded it in backticks and got the whole thing output literally (i.e., <code><<span style="display: none"></span>% rendered to the page). I thought I might be missing a setting about interpreting HTML, but the opening code tag was replaced (even if it didn’t seem to do anything).
I literally copy-pasted this, and get this output:
No extra </code>, and nicely formatted as code in a monospaced font. Strange stuff is happening somewhere along the way in your case. Bummer.
Ah… You’re using live preview, where Code mirror is doing some of its magic… I almost never use live preview, just reading view. I only use live preview when someone needs something specific for that mode. So, back to the drawing board it is, if live preview is a pre-requisite of yours (which it seems to be).
Is live preview mode == Source mode being unchecked?
I’ve used it because it’s the default, but I’ve only been using Obsidian steadily for about the past two weeks (I used it on-and-off before that, but never as invested as now) so I haven’t really established habits yet. It’s no prerequisite, though if the above about source mode is true, then I still have the same experience as before (i.e., typing just the opening Templater tag, <%, starts the Templater engine).
Anyway, I appreciate your discussion on this and still consider your first reply a solution, even if I had to deviate from it. Thanks again, both here and for your many other replies on this forum.
Yes, and you’ll notice that your view will render stuff when your cursor is not within that block. So stuff like queries will be executed, tables will render, and it’ll try to mimic the reading view as good as it can, but you’re still in an editing mode.
Personally, I don’t like it, as I don’t like the shift in viewing experience when I traverse my document, but some do like it since it renders stuff without leaving edit mode, and it kind of makes Obsidian feel more like a WYSIWYG editor.
I tested this now, and it doesn’t allow for the template code to be used as a template since the no-width-space is indeed copied as part of the text.
I tested this, as well, and while it shows the text “correctly” the formatting is a little of, and it doesn’t allow for copying of the ::before and ::after content. Bummer.