Skip to main content

📝 Lesson 2.2: Beyond Basics — Callouts, Tables, Code & Math

You've got the everyday Markdown down. Now let's unlock the features that make an Obsidian note feel alive: colorful callout boxes, real tables, highlighted code, elegant math, footnotes, embedded images and notes, hidden comments, and diagrams drawn from plain text. These are the tools that turn good notes into notes you love opening.

📚 What You'll Learn

By the end of this lesson, you will be able to:

  • Create callouts (note, tip, warning, and more), give them custom titles, and make them foldable
  • Build tables in Markdown and know when the Advanced Tables plugin helps
  • Add syntax-highlighted code, LaTeX math, and footnotes
  • Embed images and other notes, hide text with comments, and draw Mermaid diagrams

⏱️ Estimated Time: 50 minutes

🎯 Project: Build a personal "Markdown Cheat Sheet" note that demonstrates every feature in this lesson.

In This Lesson

Callouts: Obsidian's Colored Boxes

You've seen them all over this course — the blue "info" boxes, the yellow "watch out" warnings, the green "pro tip" panels. Inside Obsidian, those are callouts, and they're built directly on top of the humble blockquote (>) you learned last lesson. Add a special tag on the first line and a plain quote becomes a styled, icon-topped box.

📖 Definition

A callout is a blockquote whose first line starts with [!type], where type is a keyword like note, tip, or warning. Obsidian gives each type its own color and icon. It's the fastest way to make important information impossible to miss.

Here's the basic shape. Every line of the callout starts with >:

> [!note]
> This is a note callout. Everything on these
> quoted lines is inside the box.

The common callout types

Obsidian ships with many built-in types. Here are the ones you'll use most (the type keyword is case-insensitive, and several have aliases):

Type Feel & typical use
[!note] Neutral, general remark — the default
[!info] Helpful context or background
[!tip] (alias [!hint]) A pro tip or shortcut
[!warning] (alias [!caution]) Something to be careful about
[!question] (alias [!faq]) An open question or FAQ item
[!example] A worked example or sample
[!success], [!failure], [!bug], [!quote] More flavors for results, issues, and citations

Custom titles

Put your own text right after the [!type] to replace the default title. Leave it blank and the title becomes just the type name.

> [!tip] Save yourself an hour
> Learn the command palette early — it's the fastest way
> to do almost anything in Obsidian.

Foldable callouts

Add a - or + right after the type to make the callout collapsible — great for long asides you don't want cluttering the page.

Syntax Behavior
> [!note] Normal, always expanded — not foldable
> [!note]- Foldable, starts collapsed
> [!note]+ Foldable, starts expanded
> [!example]- Click to reveal the answer
> The mitochondria is the powerhouse of the cell.

✅ Pro Tip

Callouts can nest, and they can hold any Markdown — lists, tasks, even code blocks. Add another level of > to put a callout inside a callout. Don't go overboard, but a single nested tip inside a warning can be very effective.

Tables (& the Advanced Tables Plugin)

Markdown tables use vertical pipes (|) to separate columns and a row of dashes to separate the header from the body. They look a little fiddly written by hand but render into clean, sortable-looking tables.

| Habit    | Time    | Done |
| -------- | ------- | ---- |
| Read     | 20 min  | ✅   |
| Exercise | 30 min  | ❌   |
| Journal  | 10 min  | ✅   |

That renders as a three-column table. The key rules:

  • The first row is the header.
  • The second row must be dashes (---) — this line tells Obsidian "everything above is a header."
  • The outer pipes are optional but make raw tables easier to read.

Aligning columns

Add colons to the dash row to control alignment: :--- left, :---: center, ---: right.

| Item   | Price |
| :----- | ----: |
| Coffee |  3.50 |
| Muffin |  2.75 |

⚠️ Watch Out

Hand-aligning table pipes as your content changes is genuinely tedious — one long entry and the whole thing goes crooked in Source mode. The table still renders fine even when the raw pipes are ragged, so don't waste time perfecting the spacing by hand. Which leads to a plugin worth knowing about…

🔌 The Advanced Tables community plugin

Advanced Tables is a popular community plugin that turns table editing from a chore into a pleasure. It auto-aligns pipes as you type, lets you jump between cells with Tab, adds and reorders rows and columns from a toolbar, and can even sort. You'll install community plugins properly in Module 5 — for now, just know this one exists and is a common first pick the moment tables start to hurt.

Code Blocks with Syntax Highlighting

Last lesson you learned the three-backtick "fence" for code blocks. The upgrade here is one small addition: write the language name right after the opening fence, and Obsidian colors the code — keywords, strings, numbers — so it's far easier to read.

```python
def greet(name):
    return f"Hello, {name}!"
```

Change python to javascript, css, bash, sql, json, yaml, and dozens more. Obsidian recognizes the common languages out of the box.

Rendered result: the code sits in a tidy box with keywords like def and return tinted, strings in another color, and everything in a monospace font — much kinder to the eyes than a plain gray block.

✅ Pro Tip

A few "languages" after the fence do special things instead of highlighting: ```dataview runs a live query (Module 6), and ```mermaid draws a diagram (below!). The fence is a surprisingly powerful little doorway. Also note: to show a code fence inside a note (like these examples), you wrap it in an even longer fence — meta, but occasionally handy.

Math with LaTeX

If you take notes on math, physics, statistics, or finance, this feature is a gift. Obsidian renders mathematical notation using LaTeX syntax, powered by a math engine called MathJax. You write formulas in a compact code and Obsidian typesets them beautifully.

Inline math

Wrap an expression in single dollar signs to drop it into a sentence:

The area of a circle is $A = \pi r^2$, where $r$ is the radius.

Block (display) math

Wrap it in double dollar signs for a centered formula on its own line:

$$
E = mc^2
$$

Inside the dollar signs you use LaTeX commands: \pi for π, r^2 for a superscript, x_1 for a subscript, \frac{a}{b} for a fraction, \sqrt{x} for a square root, \sum and \int for sums and integrals.

$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

💡 You don't need to master LaTeX

Even knowing five commands — superscript ^, subscript _, \frac, \sqrt, and Greek letters like \alpha — covers a huge share of everyday notes. And if you get stuck, an online "LaTeX equation editor" lets you build a formula visually and copy the code. This is entirely optional; skip it happily if math isn't your world.

Footnotes, Embeds & Comments

Footnotes

Footnotes let you add a reference or aside without breaking your sentence's flow. Place a marker like [^1] where you want the little number, then define it anywhere in the note:

Plain text is the most durable format in computing.[^1]

[^1]: Text files from the 1970s still open perfectly today.

Obsidian renders a small superscript link that jumps to the definition (usually collected at the bottom). You can also write inline footnotes with ^[like this] when you don't want to manage separate labels.

Embedding images and files

The ! prefix turns a link into an embed — the content shows up inline rather than as a clickable link. For an image saved in your vault, use the Obsidian wikilink style with a bang in front:

![[diagram.png]]

You can resize an embedded image by adding a pixel width after a pipe: ![[diagram.png|400]]. (For images out on the web, the standard Markdown form ![alt text](https://...) also works.)

Transclusion: embedding one note inside another

Here's a genuinely magical Obsidian feature. The same ![[ ]] embed syntax works on notes, not just images — this is called transclusion. The embedded note's live content appears inside the current one, and it updates automatically when the source changes.

![[Project Overview]]          <!-- embeds the whole note -->
![[Project Overview#Goals]]    <!-- embeds just that heading's section -->
![[Meeting Notes#^a1b2c3]]     <!-- embeds one specific block -->

This lets you write something once and reuse it everywhere — a definition, a status block, a shared checklist — with zero copy-paste and no risk of versions drifting apart. You'll see how powerful this becomes once you're linking heavily in Module 3.

🧠 Mindset

Transclusion feels like a "wow, notes can do that?" moment — and it's tempting to embed everything everywhere. Resist that on day one. Reach for it when you catch yourself copy-pasting the same block into two notes; that's the signal to embed instead. Powerful features earn their place when a real need shows up, not before.

Comments: text only you see

Wrap text in double percent signs (%%) to make a comment — it stays in the file but is hidden in Reading view and Live Preview. Perfect for private notes-to-self, reminders, or draft text you're not ready to show.

This paragraph is public. %%But this reminder is hidden.%%

%%
Even a whole block can be a private comment
that never appears in the rendered note.
%%

Mermaid Diagrams Inside Notes

Obsidian can draw flowcharts and diagrams from plain text using a tool called Mermaid — the very same engine that renders the diagrams in this course. You write a few lines describing the boxes and arrows, and Obsidian draws the picture. No mouse, no shapes to drag.

Put your diagram description inside a code fence labeled mermaid:

```mermaid
graph TD
    A[Capture an idea] --> B[Write a note]
    B --> C[Link it to others]
    C --> D[A connected second brain]
```

Which renders as an actual flowchart, like this:

graph TD A["Capture an idea"] --> B["Write a note"] B --> C["Link it to others"] C --> D["A connected second brain"]

Mermaid can draw far more than flowcharts — sequence diagrams, mind maps, Gantt charts, pie charts, and more — all from readable text. It's ideal for sketching a process or a relationship without leaving your keyboard, and because it's plain text, your diagrams stay version-friendly and future-proof like the rest of your notes.

⚠️ Watch Out

Mermaid is picky about a few characters. If a box's label contains parentheses, a colon, or </>, wrap the whole label in quotes — A["Text (with parens)"] — or the diagram silently fails to draw. When a diagram won't render, a stray unquoted symbol is almost always the culprit.

🎯 Project: Build a Cheat Sheet

The best way to remember all of this is to make your own reference. You'll build a single note that demonstrates every feature from this lesson — and because it's in your vault, it becomes a cheat sheet you can return to forever.

🏋️ Create "Markdown Cheat Sheet.md"

Objective: Produce one note that contains a working example of each Beyond-Basics feature, viewable in Reading view.

Instructions (about 20 minutes):

  1. (2 min) Create a note titled Markdown Cheat Sheet and give it a # title and a ## heading for each feature below.
  2. (3 min) Callouts: add one [!tip] with a custom title and one foldable [!example]- that starts collapsed.
  3. (3 min) Table: make a 3-column table (try aligning one column right with ---:).
  4. (2 min) Code: add a syntax-highlighted code block in any language you like.
  5. (2 min) Math: add one inline formula and one block formula ($$...$$).
  6. (3 min) Footnote & comment: add a footnote ([^1]) and hide a note-to-self with %%...%%.
  7. (3 min) Diagram: add a small mermaid flowchart (3–4 boxes).
  8. (2 min) Switch to Reading view and confirm every feature renders correctly. Fix anything that doesn't.
💡 Hint — a starter skeleton
# Markdown Cheat Sheet

## Callouts
> [!tip] My favorite shortcut
> Press Ctrl/Cmd + E to toggle Reading view.

> [!example]- Hidden until clicked
> Surprise! This started collapsed.

## Table
| Feature | Syntax     | Easy? |
| ------- | ---------- | ----: |
| Bold    | `**text**` |   Yes |
| Math    | `$...$`     |    Ok |

## Code
```javascript
const hi = (name) => `Hello, ${name}`;
```

## Math
Inline: $a^2 + b^2 = c^2$

$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

## Footnote & comment
Plain text is durable.[^1] %%remember to add examples%%

[^1]: Still opens decades later.

## Diagram
```mermaid
graph LR
    A[Idea] --> B[Note] --> C[Link]
```
🧩 Stuck? Common fixes
  • Callout not styled? Check that the first line is > [!type] with the bang and brackets, and that every line starts with >.
  • Table not rendering? You need the dash separator row directly under the header.
  • Math not showing? Use $ for inline and $$ on their own lines for block.
  • Mermaid blank? Quote any label with parentheses or colons, and confirm the fence says mermaid.

✅ Project Completion Checklist

  • At least two callouts, one with a custom title and one foldable
  • A table with three columns and one aligned column
  • A code block with a language for syntax highlighting
  • One inline formula and one block formula
  • A footnote and a hidden %%comment%%
  • A working Mermaid diagram
  • Everything verified in Reading view

🎯 Quick Quiz

Question 1: How do you make a callout that is collapsible and starts collapsed?

Question 2: What does ![[Project#Goals]] do?

Best Practices for the Fancy Stuff

✅ Do's

  • Use callouts to guide future-you. A [!warning] on a gotcha or a [!tip] at the top of a how-to note is a gift you leave yourself.
  • Embed instead of copy-paste. The moment you'd duplicate a block, transclude it with ![[ ]] so it stays in sync.
  • Fold long callouts. Use [!type]- for asides so notes stay skimmable.

❌ Don'ts

  • Don't decorate for decoration's sake. A rainbow of callouts on every note is noise. Reserve them for information that truly needs to stand apart.
  • Don't hand-polish table pipes. Ragged raw tables render fine; wait for Advanced Tables rather than aligning by hand.
  • Don't hide anything important in a %%comment%% and forget it's there — comments are invisible in Reading view by design.

📓 Learning Journal

Keep your learning journal inside your vault — and this is a great lesson to dress it up. After each lesson, take a few minutes to write down:

  • Key concepts you learned
  • Techniques that clicked for you
  • Questions or confusion points to revisit
  • Ideas you want to try
  • Your progress and feelings about learning this

✍️ This lesson's prompt: Which of these "beyond basics" features do you genuinely see yourself using — and which feels like overkill for how you take notes? Put your answer inside a callout (of course), and add a foldable callout listing one feature you want to explore more later.

📝 Lesson Summary

🎓 Key Takeaways

  • Callouts are blockquotes with [!type] on line one; add a custom title, and -/+ to fold them.
  • Tables use pipes and a dash separator row; : in the dashes aligns columns; the Advanced Tables plugin removes the tedium.
  • Name a language after a code fence for syntax highlighting; $...$ and $$...$$ render LaTeX math via MathJax.
  • Footnotes ([^1]), embeds/transclusion (![[Note#Heading]]), and hidden comments (%%...%%) add depth.
  • Mermaid fences draw flowcharts and diagrams from plain text.

🎉 What You've Accomplished

You've gone from "I can format text" to "I can build a rich, structured document" — callouts that guide the reader, tables that organize, code that reads clearly, math that typesets, and even diagrams and reusable embedded content. Your cheat sheet is now a living reference you'll thank yourself for. Very impressive progress for Module 2.

❓ Common Questions at This Stage

Do these features work if I open my notes in another Markdown app?

The universal parts (tables, code fences, footnotes) usually do. The Obsidian-flavored ones — callouts, ![[transclusion]], %%comments%%, and Mermaid/math rendering — are shown by Obsidian and some compatible tools, but a bare-bones editor may display the raw syntax instead. Your text is never lost; it just might not be styled elsewhere.

My Mermaid diagram or math formula won't render. Why?

For Mermaid, it's almost always an unquoted special character in a label — wrap labels containing parentheses, colons, or angle brackets in quotes. For math, check you used single $ for inline and double $$ on their own lines for block, and that the LaTeX command is spelled correctly (e.g. \frac, not \fraction).

What's the real difference between an embed and a link?

A link ([[Note]]) is a doorway you click to go to the note. An embed (![[Note]], note the !) pulls the note's live content into the current page so you see it right there, always up to date. Same target, different behavior — the bang is the whole difference.

🔭 Looking Ahead

You can now write genuinely rich notes. Next we make them findable and organized: in Lesson 2.3 you'll learn metadata — tags, YAML frontmatter Properties, and aliases — the invisible structure that lets you (and, later, Dataview) locate and query any note in seconds.

✅ Before the Next Lesson

  • Finish your Markdown Cheat Sheet and keep it somewhere easy to reach
  • Try adding a callout to an older note where a warning or tip belongs
  • Write your Learning Journal entry (bonus points for using a callout)

📚 Additional Resources

🌟 Encouragement for the Journey

Look at what a note can do now — boxes, tables, math, diagrams, all from plain text you'll own forever. You've built a cheat sheet that will outlast every app you use. The writing skills are done; next we make your growing pile of notes effortless to find. Keep going — you're building something real. 🔮