I would like to set css specific for certain pages/notes. How to do that?
More detailed: I have built a weekly template to set weekly notes (Periodic Notes + Calendar plugin). This template adds links to the 7 daily notes, but since I’ve also created notes in folder ‘daily’ that don’t follow the exact naming rule of ‘daily notes’ I added an embedded search query to the template that embeds links to the notes that also belong to that week.
That works fine, but I don’t want to see the default markup. So I created a CSS snippet that changes the CSS for just the embedded query + result, but I want to apply it to just these weekly notes, not the entire vault.
Hi @hepabolu, you can do this by adding the cssclass property to your YAML frontmatter. So in your weekly note template, you could add the following to the top of the note:
---
cssclass: "weekly-note"
---
Then in your CSS snippet, make sure to only target pages with the .weekly-note class.
Hope that helps, and if you don’t mind sharing, I’d love to see a screenshot since I’m curious about how people use their weekly notes!
Hi @liam thanks! This will get me exactly what I need!
Re weekly notes: I use them as a mini TOC for the week, that ties meeting notes and daily notes together.
---
created: {{tp_date}} {{tp_time}}
tags: 📥/🗒
---
# {{title}}
## Daily Notes
- [[{{monday:GGGG-MM-DD}}]]
- [[{{tuesday:GGGG-MM-DD}}]]
- [[{{wednesday:GGGG-MM-DD}}]]
- [[{{thursday:GGGG-MM-DD}}]]
- [[{{friday:GGGG-MM-DD}}]]
- [[{{saturday:GGGG-MM-DD}}]]
- [[{{sunday:GGGG-MM-DD}}]]
## Meetings
\```query
path: meetings (file:/{{monday:GGGG-MM-DD}}[ ].*/ OR file:/{{tuesday:GGGG-MM-DD}}[ ].*/ OR file:/{{wednesday:GGGG-MM-DD}}[ ].*/ OR file:/{{thursday:GGGG-MM-DD}}[ ].*/ OR file:/{{friday:GGGG-MM-DD}}[ ].*/ OR file:/{{saturday:GGGG-MM-DD}}[ ].*/ OR file:/{{sunday:GGGG-MM-DD}}[ ].*/)
\```
The YAML frontmatter is using the default Templater tokens and a tags system based on @tallguyjenks system.
So the top part are the daily notes which I use for any snippet of information that I want to save but don’t yet know how it fits in the system. They live in a ‘daily’ subfolder.
I have a lot of meetings where I take notes, so I store these in a separate subfolder ‘meetings’ and they al start with a YYYY-MM-DD prefix, followed by a space and a name of the meeting.
This helps to see which meetings I had in a certain week and possibly which other notes I took.
I reserve the root folder for the more Zettelkasten type notes and MOCs.
Your selector looks for a class root after or below your test class and only works on the content within that section.
I’m not sure if such a situation exists. Try testing without the .root and see what happens.
Thanks for this helpful thread.
The approach works successfully for me in edit mode but not with preview.
So my YAML has this in all notes in the target folder qmt
cssclass: “qmt”
Then the following css colours heading 1 red only in folder qmt seen in edit mode
.qmt .HyperMD-header .cm-header-1 {
color:red;
}
The next bit is my attempt to do the same for preview mode but it does nothing
.qmt .markdown-preview-view h1 {
color: red;
}
Removing .qmt colours h1 red in preview for the whole vault so the rest of the selector seems ok. So clearly prepending the special folder class breaks the selector somehow.
In case it is relevant, the use case is that pages in this qmt folder will be published using a suitable light theme as a textbook, so I want to preview them in something similar while keeping the rest of the vault dark.
while the above do likewise for body text and tags.
All these only affect preview so the other set of selectors for edit mode are still needed.
I’d kind of hoped it would be possible to regex in the .qmt class so that abritrary chunks of css could be applied to that folder only, maybe even an entire theme, but that seems unlikely now. Still looks feasible to do enough with manual adaptation though.
Thanks again for this helpful thread.
You’re referring to the old edit mode, correct? Not live preview?
I’m trying to figure out a way to customize fonts per note in live preview. I didn’t think this was supported yet, but I noticed the other day that minimal theme does this to some degree, IE row-alt displays correctly even in live preview.
Sorry, I should have been more precise. To clarify, selectors like this
:root .qmt h1
affect only the full preview (‘reading mode’) view and not live preview.
Selectors like this
.qmt .HyperMD-header .cm-header-1
affect both edit views: source and live preview.
This does seem a little unexpected. Then I’m generally finding it a bit hard to piece together the css tree logic, working only via the keyhole surgery approach of figuring it out from the developer console.
So in terms of what you are trying to do, it indeed seems possible to customize css per note in live preview using this approach.