Packages
ex_doc
0.30.3
0.40.3
0.40.2
0.40.1
0.40.0
0.39.3
0.39.2
0.39.1
0.39.0
0.38.4
0.38.3
0.38.2
0.38.1
0.38.0
0.37.3
0.37.2
0.37.1
0.37.0
0.37.0-rc.2
0.37.0-rc.1
0.37.0-rc.0
0.36.1
0.36.0
0.35.1
0.35.0
0.34.2
0.34.1
0.34.0
0.33.0
0.32.2
0.32.1
0.32.0
0.31.2
0.31.1
0.31.0
0.30.9
0.30.8
0.30.7
0.30.6
0.30.5
0.30.4
0.30.3
0.30.2
0.30.1
0.30.0
0.29.4
0.29.3
0.29.2
0.29.1
0.29.0
0.28.6
0.28.5
0.28.4
0.28.3
0.28.2
0.28.1
0.28.0
0.27.3
0.27.2
0.27.1
0.27.0
0.26.0
0.25.5
0.25.4
0.25.3
0.25.2
0.25.1
0.25.0
0.24.2
0.24.1
0.24.0
0.23.0
0.22.6
0.22.5
0.22.4
0.22.2
0.22.1
0.22.0
0.21.3
0.21.2
0.21.1
0.21.0
0.20.2
0.20.1
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.19.0-rc
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
retired
0.17.1
0.17.0
retired
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
ExDoc is a documentation generation tool for Elixir
Current section
Files
Jump to
Current section
Files
Cheatsheet.cheatmd
# Cheatsheet User Guide
This document is a cheatsheet on how to use cheatsheets.
Cheatsheets are Markdown files with the `.cheatmd` extension. You may also check the source of this document as a reference.
## I'm a H2 title with 2 columns
{: .col-2}
### I'm a H3 title
#### I'm a H4 title.
And this is a paragraph.
### Code
```elixir
# hello.exs
defmodule Greeter do
def greet(name) do
message = "Hello, " <> name <> "!"
IO.puts message
end
end
Greeter.greet("world")
```
### Paragraphs
Paragraphs are also supported and can quote `code`.
Several paragraphs are visually distinct.
### Lists
- Element 1
- Element 2
- `piece of code`
### Table
#### Date (H4 header)
| Example | Output |
| --- | --- |
| `%m/%d/%Y` | `06/05/2013` |
| `%A, %B %e, %Y` | `Sunday, June 5, 2013` |
| `%b %e %a` | `Jun 5 Sun` |
## Variants
{: .col-2}
### Adding variants
```
## H2
{: .col-2}
### H3
{: .list-6}
* example 1
* example 2
```
Variants customize how your cheatsheet looks like via Markdown's inline attribute notation.
### Header variants
#### H2
| `.col-2` | two-columns |
| `.col-3` | three-columns |
| `.col-2-left` | two-columns (1/3 - 2/3) |
#### H3
| `.list-4` | four-columns for lists |
| `.list-6` | six-columns for lists |
## Code
{: .col-3}
### Code with headings
#### index.ex
```
Path.join(["~", "foo"])
"~/foo"
```
#### other.ex
```
Path.join(["foo"])
"foo"
```
Code blocks can have headings.
### Long lines
```elixir
defmodule MyTracer do
def trace({:remote_function, _meta, module, name, arity}, env) do
IO.puts "#{env.file}:#{env.line} #{inspect(module)}.#{name}/#{arity}"
:ok
end
def trace(_event, _env) do
:ok
end
end
```
Long lines show scrollbars.
### Line wrapping
```elixir
defmodule MyTracer do
def trace({:remote_function, _meta, module, name, arity}, env) do
IO.puts "#{env.file}:#{env.line} #{inspect(module)}.#{name}/#{arity}"
:ok
end
def trace(_event, _env) do
:ok
end
end
```
{: .wrap}
Add `wrap` to wrap long lines.
## Lists
{: .col-2}
### Bullet lists
- This is
- a list
- with a few items
### Ordered lists
1. I'm first;
2. You are second;
3. We are third;
Here's an extra paragraph after the list.
### With headings and code links
#### Part 1
- `is_atom/1`
- `is_binary/1`
- `is_number/1`
#### Part 2
- `length/1`
- `elem/2`
## List columns
### Six columns
{: .list-6}
- One
- Two
- Three
- Four
- Five
- Six
- Seven
- Eight
- Nine
- Ten
- Eleven
Add `{: .list-6}` after the H3 title to make large lists.
### Four columns
{: .list-4}
- One
- Two
- Three
- Four
- Five
- Six
- Seven
- Eight
- Nine
- Ten
- Eleven
Add `{: .list-4}` after the H3 title to make large lists.
## Full page
This is the default.
## Half width
{: .width-50}
### I make tables look nicer
#### Time
| Example | Output |
| --- | --- |
| `%H:%M` | `23:05` |
| `%I:%M %p` | `11:05 PM` |
Add `{: .width-50}` after the H2 title to use only half width.
## Column left reference
{: .col-2-left}
### One
```elixir
# hello.exs
defmodule Greeter do
def greet(name) do
message = "Hello, " <> name <> "!"
IO.puts message
end
end
Greeter.greet("world")
```
### Two
```elixir
user = %{
name: "John",
city: "Melbourne"
}
```
```elixir
IO.puts "Hello, " <> user.name
```
### Three
* Yet
* Another
* List
### Four
I'm a grid, with 1/3 - 2/3 width.