Learn how to apply basic formatting to your notes, using [Markdown](https://daringfireball.net/projects/markdown/). For more advanced formatting syntax, refer to [[Advanced formatting syntax]]. ## Paragraphs To create paragraphs in Markdown, use a **blank line** to separate blocks of text. Each block of text separated by a blank line is treated as a distinct paragraph. ```md This is a paragraph. This is another paragraph. ``` This is a paragraph. This is another paragraph. A blank line between lines of text creates separate paragraphs. This is the default behavior in Markdown. > [!tip] Multiple blank spaces > Multiple adjacent blank spaces within and between paragraphs collapse into a single space when displayed in [[Edit and preview Markdown#Editor views|Reading view]] or on [[Introduction to Obsidian Publish|Obsidian Publish]] sites. > > ```md > Multiple adjacent spaces > > > > and multiple newlines between paragraphs. > ``` > > > Multiple adjacent spaces > > > > > > > > and multiple newlines between paragraphs. > > If you want to prevent spaces from collapsing or add multiple blank spaces, you can use the `&nbsp;` (non-breaking space) or `<br>` (line break) HTML tags. ### Line breaks By default in Obsidian, pressing `Enter` once will create a new line in your note, but this is treated as a *continuation* of the same paragraph in the rendered output, following typical Markdown behavior. To insert a line break *within* a paragraph without starting a new paragraph, you can either: - Add **two spaces** at the end of a line before pressing `Enter`, or - Use the shortcut `Shift + Enter` to directly insert a line break. > [!question]- Why don't multiple `Enter` presses create more line breaks in reading view? > In Markdown, a single `Enter` is ignored, and multiple consecutive `Enter` presses result in just one new paragraph. This behavior aligns with Markdown’s soft wrap rule, where extra blank lines do not generate additional line breaks or paragraphs—they are collapsed into a single paragraph break. This is how Markdown handles text by default, ensuring that paragraphs flow naturally without unexpected breaks​. Obsidian includes a **Strict Line Breaks** setting, which makes Obsidian follow the standard Markdown specification for line breaks. To enable this feature: 1. Open **Settings**. 2. Go to the **Editor** tab. 3. Enable **Strict Line Breaks**. When **Strict Line Breaks** is enabled in Obsidian, line breaks have three distinct behaviors depending on how the lines are separated: **Single return with no spaces**: A single `Enter` with no trailing spaces will combine the two separate lines into a single line when rendered. ```md line one line two ``` Renders as: line one line two **Single return with two or more trailing spaces**: If you add two or more spaces at the end of the first line before pressing `Enter`, the two lines remain part of the same paragraph, but are broken by a line break (HTML `<br>` element). We'll use two underscores to stand in for spaces in this example. ```md line three__ line four ``` Renders as: line three<br> line four **Double return (with or without trailing spaces)**: Pressing `Enter` twice (or more) separates the lines into two distinct paragraphs (HTML `<p>` elements), regardless of whether you add spaces at the end of the first line. ```md line five line six ``` Renders as: <p>line five</p> <p>line six</p> ## Headings To create a heading, add up to six `#` symbols before your heading text. The number of `#` symbols determines the size of the heading. ```md # This is a heading 1 ## This is a heading 2 ### This is a heading 3 #### This is a heading 4 ##### This is a heading 5 ###### This is a heading 6 ``` %% These headings use HTML to avoid cluttering the Outline/Table of contents %% <h1>This is a heading 1</h1> <h2>This is a heading 2</h2> <h3>This is a heading 3</h3> <h4>This is a heading 4</h4> <h5>This is a heading 5</h5> <h6>This is a heading 6</h6> ## Bold, italics, highlights Text formatting can also be applied using [[Editing shortcuts]]. | Style | Syntax | Example | Output | |-|-|-|-| | Bold | `** **` or `__ __` | `**Bold text**` | **Bold text** | | Italic | `* *` or `_ _` | `*Italic text*` | *Italic text* | | Strikethrough | `~~ ~~` | `~~Striked out text~~` | ~~Striked out text~~ | | Highlight | `== ==` | `==Highlighted text==` | ==Highlighted text== | | Bold and nested italic | `** **` and `_ _` | `**Bold text and _nested italic_ text**` | **Bold text and _nested italic_ text** | | Bold and italic | `*** ***` or `___ ___` | `***Bold and italic text***` | ***Bold and italic text*** | Formatting can be forced to display in plain text by adding a backslash `\` in front of it. \*\*This line will not be bold\*\* ```markdown \*\*This line will not be bold\*\* ``` \**This line will be italic and show the asterisks*\* ```markdown \**This line will be italic and show the asterisks*\* ``` ## Internal links Obsidian supports two formats for [[internal links]] between notes: - Wikilink: `[[Three laws of motion]]` - Markdown: `[Three laws of motion](Three%20laws%20of%20motion.md)` ## External links If you want to link to an external URL, you can create an inline link by surrounding the link text in brackets (`[ ]`), and then the URL in parentheses (`( )`). ```md [Obsidian Help](https://help.obsidian.md) ``` [Obsidian Help](https://help.obsidian.md) You can also create external links to files in other vaults, by linking to an [[Obsidian URI|Obsidian URI]]. ```md [Note](obsidian://open?vault=MainVault&file=Note.md) ``` ### Escape blank spaces in links If your URL contains blank spaces, you must escape them by replacing them with `%20`. ```md [My Note](obsidian://open?vault=MainVault&file=My%20Note.md) ``` You can also escape the URL by wrapping it with angled brackets (`< >`). ```md [My Note](<obsidian://open?vault=MainVault&file=My Note.md>) ``` ## External images You can add images with external URLs, by adding a `!` symbol before an [[#External links|external link]]. ```md ![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) ``` ![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) You can change the image dimensions, by adding `|640x480` to the link destination, where 640 is the width and 480 is the height. ```md ![Engelbart|100x145](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) ``` If you only specify the width, the image scales according to its original aspect ratio. For example: ```md ![Engelbart|100](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) ``` > [!tip] > If you want to add an image from inside your vault, you can also [[Embed files#Embed an image in a note|embed an image in a note]]. ## Quotes You can quote text by adding a `>` symbols before the text. ```md > Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society. \- Doug Engelbart, 1961 ``` > Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society. \- Doug Engelbart, 1961 > [!tip] > You can turn your quote into a [[Callouts|callout]] by adding `[!info]` as the first line in a quote. ## Lists You can create an unordered list by adding a `-`, `*`, or `+` before the text. ```md - First list item - Second list item - Third list item ``` - First list item - Second list item - Third list item To create an ordered list, start each line with a number followed by a `.` symbol. ```md 1. First list item 2. Second list item 3. Third list item ``` 1. First list item 2. Second list item 3. Third list item ### Task lists To create a task list, start each list item with a hyphen and space followed by `[ ]`. ```md - [x] This is a completed task. - [ ] This is an incomplete task. ``` - [x] This is a completed task. - [ ] This is an incomplete task. You can toggle a task in Reading view by selecting the checkbox. > [!tip] > You can use any character inside the brackets to mark it as complete. > > ```md > - [x] Milk > - [?] Eggs > - [-] Eggs > ``` > > - [x] Milk > - [?] Eggs > - [-] Eggs ### Nesting lists You can nest any type of list—ordered, unordered, or task lists—under any other type of list. To create a nested list, indent one or more list items. You can mix list types within a nested structure: ```md 1. First list item 1. Ordered nested list item 2. Second list item - Unordered nested list item ``` 1. First list item 1. Ordered nested list item 2. Second list item - Unordered nested list item Similarly, you can create a nested task list by indenting one or more list items: ```md - [ ] Task item 1 - [ ] Subtask 1 - [ ] Task item 2 - [ ] Subtask 1 ``` - [ ] Task item 1 - [ ] Subtask 1 - [ ] Task item 2 - [ ] Subtask 1 Use `Tab` or `Shift+Tab` to indent or unindent selected list items to easily organize them. ## Horizontal rule You can use three or more stars `***`, hyphens `---`, or underscore `___` on its own line to add a horizontal bar. You can also separate symbols using spaces. ```md *** **** * * * --- ---- - - - ___ ____ _ _ _ ``` *** ## Code You can format code both inline within a sentence, or in its own block. ### Inline code You can format code within a sentence using single backticks. ```md Text inside `backticks` on a line will be formatted like code. ``` Text inside `backticks` on a line will be formatted like code. If you want to put backticks in an inline code block, surround it with double backticks like so: inline ``code with a backtick ` inside``. ### Code blocks To format a block of code, surround the code with triple backticks. ~~~ ``` cd ~/Desktop ``` ~~~ ```md cd ~/Desktop ``` You can also create a code block by indenting the text using `Tab` or 4 blank spaces. ```md cd ~/Desktop ``` You can add syntax highlighting to a code block, by adding a language code after the first set of backticks. ~~~md ```js function fancyAlert(arg) { if(arg) { $.facebox({div:'#foo'}) } } ``` ~~~ ```js function fancyAlert(arg) { if(arg) { $.facebox({div:'#foo'}) } } ``` Obsidian uses Prism for syntax highlighting. For more information, refer to [Supported languages](https://prismjs.com/#supported-languages). > [!note] > [[Edit and preview Markdown#Source mode|Source mode]] and [[Edit and preview Markdown#Live Preview|Live Preview]] do not support PrismJS, and may render syntax highlighting differently. ## Footnotes You can add footnotes[^footnote] to your notes using the following syntax: [^footnote]: This is a footnote. ```md This is a simple footnote[^1]. [^1]: This is the referenced text. [^2]: Add 2 spaces at the start of each new line. This lets you write footnotes that span multiple lines. [^note]: Named footnotes still appear as numbers, but can make it easier to identify and link references. ``` You can also inline footnotes in a sentence. Note that the caret goes outside the brackets. ```md You can also use inline footnotes. ^[This is an inline footnote.] ``` > [!note] > Inline footnotes only work in reading view, not in Live Preview. ## Comments You can add comments by wrapping text with `%%`. Comments are only visible in Editing view. ```md This is an %%inline%% comment. %% This is a block comment. Block comments can span multiple lines. %% ``` ## Escaping Markdown Syntax In some cases, you may need to display special characters in Markdown, such as `*`, `_`, or `#`, without triggering their formatting. To display these characters literally, place a backslash (`\`) before them. > [!example] Common characters to escape > > - Asterisk: `\*` > - Underscore: `\_` > - Hashtag: `\#` > - Backtick: `` \` `` > - Pipe (used in tables): `\|` > - Tilde: `\~` ```md \*This text will not be italicized\*. ``` \*This text will not be italicized\*. When working with numbered lists, you may need to escape the period after the number to prevent automatic list formatting. Place the backslash (`\`) before the period, **not** before the number. ```md 1\. This won't be a list item. ``` 1\. This won't be a list item. ## Learn more To learn more advanced formatting syntax, such as tables, diagrams, and math expressions, refer to [[Advanced formatting syntax]]. To learn more about how Obsidian parses Markdown, refer to [[Obsidian Flavored Markdown]].