Obsidian Formatting Plugins Overview
You should and may use all these info to write the markdown syntaxes of the plugins / write extended markdown things / extra things to markdown, if needed. So then if I paste the final result of the markdown you wrote in Obsidian it will be rendered using the custom functions and all that.
You are always allowed to also use any other markdown thing that Obsidian supports, and not just the things i'm putting here - you can use everything, when needed or if fits. This ones are just extended syntax, based on the plugins I have installed. You don't need to use only the things from here - like the tables, you don't need to use just the tables syntax that it's here, you can use Obsidian's ones when needed or if it's sufficient - the same applies to the other things.
Here's the Tutorial (Every example is merely illustrative and doesn't reflect reality):
Obsidian Chat View Plugin
Usage
Every chat message but be prefixed with a '<', '>' or '^' for left, right & center aligning the messages respectively. Each chat message consists of 3 parts: The header, message and the subtext. The parts are separated by a '|' character. Take a look at the example below to see how it works:
Example of Usage
< Tsukasa | I love you | 42nd September, 2033 at 40:73 PM
> Sike | I love you too uwu | 42nd September, 2033 at 40:74 PM
("Tsukasa" and "Sike" as the contact name, then after the | that's after the the contact name is the message, and after the last | is subtext like timestamps. You should understand the format already, it's pretty simple.)
💡 If you would like to show the pipe | character in your message, all you have to do is escape it with a backslash, like this: \|.
Add Delimiters & Comments
You can add delimiters to your chat view simply by entering '...' on a line. To add a comment, start a line with the '#' character. Take a look at the following example:
Example of Delimiters & Comments
> Sike | What are you doing rn babe? | 43nd September, 2033 at 80:92 PM
# Sike sends a heart gif
< Tsukasa | Just eating donuts and u? | 43nd September, 2033 at 80:94 PM
...
> Sike | oh okay! love u muah | 43nd September, 2033 at 80:97 PM
It can also be like:
# Yesterday
< Tsukasa | Heyyy cutie
# Today
> Sike | Hey I only saw the message now lol sorry
So the comments can be like days timestamps (Yesterday, Today) or actions (Sike sends a gif). And the Delimiters are just delimiters, idk what's the use of them in text messages.
Also as you may have noticed, I've actually left out the subtext from these messages. The Chat View plugin is flexible that way. You can also leave out the header (header is like the contact name) if you like just by starting the message off with the '|' character. For example, the following code:
< Tsukasa | r u ok?
< | i'm a bit worried | 45th September, 2033 at 30:23 PM
It will be like the view of multiple text messages sent by the same person, the contact name only appears on the first message so in the second we started with a '|' to exclude it, and then in the last message (in this case, the second) there's the timestamps. Just like any chat messaging app.
Customization
There's also how to add colours to the header (i.e contact name). You may choose from up to 13 colors: [red, green, blue, yellow, orange, purple, grey, brown, indigo, teal, pink, slate, wood]. This can be done by adding a color configuration like this to your code block: [Person Name=color, Person Name=color (change "Person Name" by the name of the contact, i.e the header you put, like "Sike" or "Tsukasa". And "color" by the color mentioned before)
Example of Customization:
[Sike=purple, Tsukasa=red]
# One Year Later
> Sike | I'm not answering if I'm okay or not. | 69th March, 2034 at 99:23 PM
< Tsukasa | It's been one year... why? what happened? Love.. you're scaring me... please... | 69th March, 2034 at 99:25 PM
Markdown & HTML Support In Chat View Message
The message section of the chat view supports html and markdown rendering. Which means you can include HTML and Markdown elements in the Chat View Message.
Example of Markdown & HTML in Chat View Message
[Tsukasa=red, Hanako=orange]
> Tsukasa | <h6>Brother.. I'm depressed<h6> Sike didn't answer to my message for an entire year, i just asked if she was okay but she just didn't answer. <ul><li>and then one year later she said that's not gonna answer and never answered any message back</li></ul> Can you help me? | 70th March, 2034 at 33:33 PM
< Hanako | Damn, Tsukasa.. that's **rough**... i'll see if I can talk to her | 70th March, 2034 at 33:34 PM
⚠️ Important: Markdown Syntax that covers a full line, such as headers (#), Lists (-), Line Breaks (—) etc. will end up rendering the entire Chat View Message in that format. For such cases, it is recommended to use HTML tags instead, as has been used in the example above.
CSV Codeblock Plugin
Renders codeblocks with csv format as tables.
Usage
Just put the csv identifyer in a codeblock
Example of Usage
Pos, Date, Name, Price
1, 2026-03-06, Uranium, 12.99€
2, 2026-03-06, 1L Bottle Water, 73.22€
(you need to separate price from cents using '.', anglo-saxon, DO NOT use the portuguese way that is a ',' because that will break it. So like 12.99€ instead of 12,99€). And that's because if you put "," it'll create a new column and not be displayed as normal text so if needed to use a , you can use like ; or whatever.
Pandoc Extended Markdown Plugin
This plugin enables Obsidian to render Pandoc extended markdown syntax, like advanced lists, superscripts, subscripts, and more.
I think you probably know Pandoc Extended Markdown so i think I don't need to give a full syntax tutorial or whatever. It just DOESN'T have pandoc markdown extended table.
Quick Overview
- Superscript:
^text^renders as superscript (e.g., 2^10^) - Subscript:
~text~renders as subscript (e.g., H2O) - Escaped Spaces: You can include spaces using
\, e.g., Pa\ cat - Works in all contexts: paragraphs, lists, definition lists, etc
- Uppercase Letters (FancyLists):
A.B.C. - Lowercase Letters (FancyLists):
a)b)c) - Roman Numerals:
I.II.III.ori)ii)iii) - Hash Auto-numbering:
#.automatically numbers items sequentially
If you know Pandoc Extended Markdown, so you can ignore the quick overview, except if there's something different. And pandoc markdown extended table isn't available.
Extended Markdown Syntax Plugin
Extended Markdown Syntax
Usage
Inline Formatting
- Insertion:
'++text++'to have an underline below on the text. - Highlight:
'=={color}text=='to highlight something
NOTE: The available colours are {red, orange, yellow, green, cyan, blue, purple, pink, accent, default} and you need to keep the {} so like {red}text instead of redtext so just replace the "color" by the color and don't remove the {}
Markdown Media Card Plugin
Allows you to insert media information cards in Markdown, like music media cards.
Examples:
music:
type: music
url: https://music.youtube.com/watch?v=SOnurhCSM54
title: DOIS MISTÉRIOS, UMA FACE
cover: https://i.imgur.com/ZaNFbps.jpeg
artist: Taiga Luck
width: 600
NOTE: You probably don't know youtube music urls so this thing is mostly used when I give you a link or whatever. But if you know a song name and the artist, you can put it and left the cover and url with like a "[PUT HERE]" or whatever that I will know that I need to search for the song and put a link—that part is with me, if i don't provide links or covers you, if needed, can just put the tittle and artist, I'll do the rest.
Spoilers Plugin
Thing for creating hidable blocks of content
Usage
You can create plain-text hidden content using the spoiler code block language:
This text is hidden with a spoiler
Markdown Blocks
You can place markdown content in spoiler blocks by using the spoiler-markdown code block language:
## Markdown
- Markdown works within the code block.
[tsukasa-pic](https://i.imgur.com/ZaNFbps.jpeg)
Environment Variables
You can store environment variables using the spoiler-env code block language:
1stTEXT=2ndTEXT
FIRST-LINE=SECOND-LINE
These are parsed using dotenv and are displayed in a table, which "1stTEXT" is the title of the first side of the table, and "2ndTEXT" is the text of the second side of the table, and then "FIRST-LINE" which is below "1stTEXT" and "SECOND-LINE" which is below "2ndTEXT". You know how tables work. This is not full dotenv support, it's just to make like a table which is parsed using dotenv but that doesn't mean it's full support. So first title is "1stTEXT" then the = divides and the second title is "2ndTEXT", the below it will be another line of the table divided and "FIRST-LINE" is the first text and then divides using = and there's the second text which in this example is "SECOND-LINE". NOTE: The First Line/First Text (for example, 1stTEXT or FIRST-LINE, the ones before the =) can't have spaces or it will not render/break, while the second line / second text (the ones after the =, for example 2ndTEXT and SECOND-LINE) can have spaces. Only the first line / before the = can't, but the ones after the = can.
Table Extended Plugin
Extend basic table in Obsidian with MultiMarkdown table syntax. This plugin brings MultiMarkdown table syntax to Obsidian, which provides the following features with internal links and embeds intact:
- Cell spans over columns
- Cell spans over rows
- Block-level elements; such as lists, codes…
- Multiple table headers
- Table caption
- Omitted table header
Known issue
table with -tx- may sometimes ignore escape characters, for example, \| fails to escape | in table, only \\| works
How to use
The latest version use a new syntax to indicate extended tables in favor of fenced tx code blocks, which allow better support for backlinks and forward links, which use a leading -tx- before table:
-tx- | | Grouping ||
| First Header | Second Header | Third Header |
|---|---|---|
| Content | Long Cell | |
| Content | Cell | Cell |
| New section | More | Data |
| And more | With an escaped '|' | |
| [Prototype table] |
It's basically just MultiMarkdown Table syntax.
The [Prototype table] is basically a title divider / separator that gives a title above the table, but it's not really needed, use it if you want, if you don't want so you can just not use it, no problem at all.
P.S: You don't need to write every table using the MultiMarkdown tables, don't limit yourself to it. You can use regular Obsidian tables too if it's enough or whatever. What would be better to be writen in MultiMarkdown Table or if preferred to write using it, there's no problem. But if it's enough and stays like what wanted in regular Obsidian tables, so I don't see a necessity for using the MultiMarkdown tables in that case.
Extended Task Lists
Extended reader view support for task lists, including in-progress and won't do task items.
Usage
Render in-progress and won't do task items with their own UI: in-progress syntax: - [.] In progress won't do syntax: - [~] Won't do
Complete is:
- Pending
- [.] In progress
- [~] Won't do
- Done
Desmos Plugin
Just a Desmos function in obsidian, like desmos.com, with LaTeX and etc.
Usage
You just need to use:
CODE HERE
Like, for example:
y = 2^x
Equations use the LaTeX math format and you can graph multiple equations by placing each one on a seperate line:
y=\sin(x)
y=\frac{1}{x}
There's also colours, the supported ones are (case-insensitive): red, green, blue, yellow, magenta, cyan, purple, orange, black, white and any hex color code beginning with #.
The fields follows the same format (case-insensitive):
- Line (e.g
y=x)solid,dasheddotted
- Point (e.g
(1,4))point(default)opencrossEach of these (both color and fields) must be placed between a series of|characters after the equation (in any order). For example. if we wanted to create a straight green dashed line ofx=2with a restriction ofy>0we could do any of the following:
x=2|y>0|green|dashed
x=2|y>0|dashed|green
x=2|green|y>0|dashed
x=2|dashed|green|y>0
(you get the idea)
Additionally, individual equations can be hidden with the hidden flag, this can be useful when graphing things such as derivates:
f(x)=x^2|hidden
f'(x)
Point labels can be specified with the label:<content> flag:
(0,0)|label:(0,0)
(5,4)|open|label:This is a label
You can restrict the bounds of the graph and apply other settings by placing a --- seperator before your equations. The content before it must be a set of key=value pairs seperated by either newlines or semicolons (or both):
left=0; right=100;
top=10; bottom=-10;
---
y=\sin(x)
And etc. It's just desmos.
Cardlinks
Automatically fetches metadata from a url and makes it as a card-styled link. Card-styled link is generated by code block which does not mess up Markdown files unlike HTML tags.
Features
Paste and enhance copied url Enhance selected url Setting for enhancing default paste Support for local images through internal links (image: "image.png")
Syntax
| Name | Required | Description |
|---|---|---|
| url | true | url to open when you click the link |
| title | true | title of the link |
| description | false | description of the link |
| host | false | host of the link |
| favicon | false | favicon of the link |
| image | false | thumbnail image to show in the card link |
example
cardlink url: https://obsidian.md/ title: "Obsidian" description: "Obsidian: A knowledge base that works on local Markdown files." host: obsidian.md favicon: https://obsidian.md/favicon.ico image: https://obsidian.md/images/banner.png
Widgets
Adds cool widgets within Obsidian notes
Usage
To insert a widget, simply add a code block with the language widgets and add your options to the body
<OPTIONS>
Currently, the available widgets are:
Clock
Configuration Body
type: clock
format: the time format you want to display on the clock. Supports "12hr", "24hr"
hideSeconds: if you want to display seconds or not. Supports "false" or "true". If ommited, will display seconds (optional)
Example
type: clock
format: "12hr" | "24hr"
Quote
Configuration Body
type: quote
quote: the quote you want do display
author: the author of the quote (optional)
Example
type: quote
quote: Lorem ipsum dolor sit amet
author: Lorem Ipsum
Countdown
Configuration Body
type: countdown
date: Accepts either the standard format YYYY-MM-DD HH:MM:SS or relative time expressions such as +Ns (seconds), +Nm (minutes), +Nh (hours), and +Nd (days), where N is a numerical value.
show: Controls what is showed on the countdown. Accepts a list of words that can be "years", "days", "hours", "minutes", "seconds". The list must be comma-divided. e.g.: show: years, hours, minutes. Defaults to showing all (optional)
to: Description of the countdown (optional)
completedLabel: The label to show when the countdown is complete (optional)
Example
type: countdown
date: 2024-01-01 00:00:00
to: New Year! 🎉
completedLabel: Happy new year! 🎉
Counter
Configuration Body
type: counter
text: the text label below the counter
id: the id of the counter. Use this if you want to have more than one counter in the same note (optional)
increment: The increment/decrement value that the counter will use to add and subtract from the count. Defaults to 1 if not present (optional)
startValue: A starting value for the counter. Will reset to that value if the reset button is clicked. Defaults to 0 if not present (optional)
Notice The counter widget is supported multiple times by note if you provide an unique id per counter. If you add more than one counter widget to a note without an id, they will share the same count.
Example
type: counter
text: Push-ups
id: push-ups