io)
Readable & Writable
Typora will give you a seamless experience as both a reader and a writer. It removes the preview window,
mode switcher, syntax symbols of markdown source code, and all other unnecessary distractions. Replace
them with a real live preview feature to help you concentrate the content itself.
** Distractions Free
Organize Files
Typora provides both file tree panel and articles (file list) panel, allows you to manage your files easily. Files
are organized on folders which allows you to sync your documents using your own cloud service, like
Dropbox, all up to you.
Outline Panel
Outline structure of your documents will be extracted in outline panel, which allows you to quickly go
through the document and jump to any section with one click.
Word Count
See how large your document is in unit of words, characters, lines, or reading minutes.
Focus mode help you to focus only on current line, by blurring the others. Typewriter mode will always
ensure current active line is in the middle of the window.
Auto Pair
Auto complete pair of brackets and quotes like a code editor. Also, a option is provided to auto pair
markdown symbols, like * or _.
Typography
Typography
TYPORA (https://typora.io)
Readable & Writable
Typography
Headings
h1 Heading
h2 Heading
h3 Heading
h4 Heading
h5 Heading
h6 Heading
Horizontal Rules
Body Copy
Emphasis
Bold
Italics
strikethrough
Footnotes
Blockquotes
Lists
Unordered
Ordered
Code
Inline code
Indented code
Block code "fences"
Syntax highlighting
Tables
Right aligned text
Links
Basic link
Add a title
Named Anchors
Images
Autres
Use Emoji
Use Math
Subscript
Superscript
Highlight
Math Blocks
Table of Contents (TOC)
Task list
Sequence
Flowchart
MERMAID
Sequence
Flowchart
Gantt
Headings
Headings
Headings from h1 through h6 are constructed with a # for each level:
# h1 Heading
## h2 Heading
### h3 Heading
#### h4 Heading
##### h5 Heading
###### h6 Heading
Renders to:
h1 Heading
h2 Heading
h3 Heading
h4 Heading
h5 Heading
h6 Heading
HTML:
<h1>h1 Heading</h1>
<h2>h2 Heading</h2>
<h3>h3 Heading</h3>
<h4>h4 Heading</h4>
<h5>h5 Heading</h5>
<h6>h6 Heading</h6>
Horizontal Rules
The HTML <;hr>; element is for creating a "thematic break" between paragraph-level elements. In
markdown, you can create a <;hr>; with any of the following:
renders to:
Body Copy
Body Copy
Body copy written as normal, plain text will be wrapped with <;p>;<;/p>; tags in the rendered HTML.
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret
pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis
his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
<p>Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere
ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore
officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.</p>
Emphasis
Bold
For emphasizing a snippet of text with a heavier font-weight.
**rendered as bold text**
renders to:
<strong>rendered as bold text</strong>
Italics
For emphasizing a snippet of text with italics.
_rendered as italicized text_
renders to:
<em>rendered as italicized text</em>
strikethrough
In GFM you can do strickthroughs.
~~Strike through this text.~~
Footnotes
You can create footnotes like this[^footnote].
[^footnote]: Here is the *text* of the **footnote**.
Blockquotes
For quoting blocks of content from another source within your document.
Add `>` before any text you want to quote.
Renders to:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
</blockquote>
> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue.
Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
>> Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor
odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam.
>>> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue.
Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
Renders to:
Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue. Nunc augue augue, aliquam non
hendrerit ac, commodo vel nisi.
Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est
accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam.
Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue. Nunc augue augue,
aliquam non hendrerit ac, commodo vel nisi.
Lists
Unordered
A list of items in which the order of the items does not explicitly matter.
You may use any of the following symbols to denote bullets for each list item:
* valid bullet
‐ valid bullet
+ valid bullet
For example
+ Lorem ipsum dolor sit amet
+ Consectetur adipiscing elit
+ Integer molestie lorem at massa
+ Facilisis in pretium nisl aliquet
+ Nulla volutpat aliquam velit
‐ Phasellus iaculis neque
‐ Purus sodales ultricies
‐ Vestibulum laoreet porttitor sem
‐ Ac tristique libero volutpat at
+ Faucibus porta lacus fringilla vel
+ Aenean sit amet erat nunc
+ Eget porttitor lorem
Renders to:
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipiscing elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis in pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit
<ul>
<li>Phasellus iaculis neque</li>
<li>Purus sodales ultricies</li>
<li>Vestibulum laoreet porttitor sem</li>
<li>Ac tristique libero volutpat at</li>
</ul>
</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ul>
Ordered
A list of items in which the order of items does explicitly matter.
1. Lorem ipsum dolor sit amet
2. Consectetur adipiscing elit
3. Integer molestie lorem at massa
4. Facilisis in pretium nisl aliquet
5. Nulla volutpat aliquam velit
6. Faucibus porta lacus fringilla vel
7. Aenean sit amet erat nunc
8. Eget porttitor lorem
Renders to:
TIP: If you just use 1. for each number, GitHub will automatically number each item. For example:
1. Lorem ipsum dolor sit amet
1. Consectetur adipiscing elit
1. Integer molestie lorem at massa
1. Facilisis in pretium nisl aliquet
1. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
1. Eget porttitor lorem
Renders to:
Code
Inline code
Wrap inline snippets of code with ` .
For example, `<section></section>` should be wrapped as "inline".
Indented code
Or indent several lines of code by at least four spaces, as in:
// Some comments
line 1 of code
line 2 of code
line 3 of code
// Some comments
line 1 of code
line 2 of code
line 3 of code
Sample text here...
Sample text here...
HTML:
<pre>
<p>Sample text here...</p>
</pre>
Syntax highlighting
GFM, or "GitHub Flavored Markdown" also supports syntax highlighting. To activate it, simply add the file
extension of the language you want to use directly after the first code "fence", ``` js , and syntax
highlighting will automatically be applied in the rendered HTML. For example, to apply syntax highlighting to
JavaScript code:
grunt.initConfig({
assemble: {
options: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom‐helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
pages: {
options: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
Renders to:
grunt.initConfig({
assemble: {
options: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom‐helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
pages: {
options: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
<div class="highlight"><pre><span class="nx">grunt</span><span class="p">.</span><span
class="nx">initConfig</span><span class="p">({</span>
<span class="nx">assemble</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">options</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">assets</span><span class="o">:</span> <span
class="s1">'docs/assets'</span><span class="p">,</span>
<span class="nx">data</span><span class="o">:</span> <span class="s1">'src/data/*.
{json,yml}'</span><span class="p">,</span>
<span class="nx">helpers</span><span class="o">:</span> <span class="s1">'src/custom‐
helpers.js'</span><span class="p">,</span>
<span class="nx">partials</span><span class="o">:</span> <span class="p">[</span><span
class="s1">'src/partials/**/*.{hbs,md}'</span><span class="p">]</span>
<span class="p">},</span>
<span class="nx">pages</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">options</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">layout</span><span class="o">:</span> <span
class="s1">'default.hbs'</span>
<span class="p">},</span>
<span class="nx">files</span><span class="o">:</span> <span class="p">{</span>
<span class="s1">'./'</span><span class="o">:</span> <span class="p">[</span><span
class="s1">'src/templates/pages/index.hbs'</span><span class="p">]</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">};</span>
</pre></div>
Tables
Tables
Tables are created by adding pipes as dividers between each cell, and by adding a line of dashes (also
separated by bars) beneath the header. Note that the pipes do not need to be vertically aligned.
| Option | Description |
| ‐‐‐‐‐‐ | ‐‐‐‐‐‐‐‐‐‐‐ |
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
Renders to:
Option Description
data path to data files to supply the data that will be passed into templates.
<table>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td>data</td>
<td>path to data files to supply the data that will be passed into templates.</td>
</tr>
<tr>
<td>engine</td>
<td>engine to be used for processing templates. Handlebars is the default.</td>
</tr>
<tr>
<td>ext</td>
<td>extension to be used for dest files.</td>
</tr>
</table>
| Option | Description |
| ‐‐‐‐‐‐:| ‐‐‐‐‐‐‐‐‐‐‐:|
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
Option Description
data path to data files to supply the data that will be passed into templates.
Links
Basic link
[Assemble](http://assemble.io)
Assemble
HTML:
<a href="http://assemble.io">Assemble</a>
Add a title
[Upstage](https://github.com/upstage/ "Visit Upstage!")
Upstage
HTML:
<a href="https://github.com/upstage/" title="Visit Upstage!">Upstage</a>
Named Anchors
Named anchors enable you to jump to the specified anchor point on the same page. For example, each of
these chapters:
# Table of Contents
* [Chapter 1](#chapter‐1)
* [Chapter 2](#chapter‐2)
* [Chapter 3](#chapter‐3)
NOTE that specific placement of the anchor tag seems to be arbitrary. They are placed inline here since it
seems to be unobtrusive, and it works.
Images
Images have a similar syntax to links but include a preceding exclamation point.
![Minion](http://octodex.github.com/images/minion.png)
or
![Alt text](http://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
Like links, Images also have a footnote style syntax
![Alt text][id]
With a reference later in the document defining the URL location:
[id]: http://octodex.github.com/images/dojocat.jpg "The Dojocat"
Autres
Use Emoji
:smile: :happy:
😄 :happy:
Use Math
$\lim_{x \to \infty} \exp(‐x) = 0$
$\lim_{x \to \infty} \exp(‐x) = 0$
Subscript
To use this feature, first, please enable it in Preference Panel ‐> Markdown Tab. Then use ~ to
wrap subscript content, for example: H~2~O, X~long\ text~/
Superscript
To use this feature, first, please enable it in Preference Panel ‐> Markdown Tab. Then use ^ to
wrap superscript content, for example: X^2^.
X2
Highlight
To use this feature, first, please enable it in Preference Panel ‐> Markdown Tab. Then use == to
wrap highlight content, for example: ==highlight==.
highlight
Math Blocks
Input $$, then press ‘Return’ key will trigger an input field which accept Tex/LaTex source. Following is an
example:
In markdown source file, math block is LaTeX expression wrapped by ‘$$’ mark:
$$
\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
$$
Table of Contents (TOC)
Input as below then press Return key will create a section for “Table of Contents” extracting all headers from
one’s writing, its contents will be updated automatically.
[toc]
Task list
‐ [ ] a task list item
‐ [ ] list syntax required
‐ [ ] normal **formatting**, @mentions, #1234 refs
‐ [ ] incomplete
‐ [x] completed
completed
Sequence
It is powered by js-sequence, which would turn following code block into rendered diagrams:
```sequence
Alice‐>Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob‐‐>Alice: I am good thanks!
```
Alice Bob
Hello Bob, how are you?
Bob thinks
I am good thanks!
Alice Bob
Flowchart
It is powered by flowchart.js, which would turn following code block into rendered diagrams:
```flow
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end
st‐>op‐>cond
cond(yes)‐>e
cond(no)‐>op
```
Start
Your Operation
no
Yes or No?
yes
End
MERMAID
Sequence
Typora also has integration with mermaid, which supports sequence, flowchart and gantt.
```mermaid
%% Example of sequence diagram
sequenceDiagram
Alice‐>>Bob: Hello Bob, how are you?
alt is sick
Bob‐>>Alice: Not so good :(
else is well
Bob‐>>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob‐>>Alice: Thanks for asking
end
```
Alice Bob
alt
[ is sick ]
Not so good :(
[ is well ]
Feeling fresh like a daisy
opt
[ Extra response ]
Thanks for asking
Alice Bob
Flowchart
```mermaid
graph LR
A[Hard edge] ‐‐>B(Round edge)
B ‐‐> C{Decision}
C ‐‐>|One| D[Result one]
C ‐‐>|Two| E[Result two]
```
Gantt
```mermaid
%% Example with slection of syntaxes
gantt
dateFormat YYYY‐MM‐DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014‐01‐06,2014‐01‐08
Active task :active, des2, 2014‐01‐09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014‐01‐06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
```
Completed task
Active task
A section
Future task
Future task2
Add to mermaid
w. 01 w. 02 w. 03
1. Here is the text of the footnote.↩