---
title: Extensions test
author: Yuki Izumi
version: 0.1
date: '2016-08-31'
license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)'
...
## Tables
Here's a well-formed table, doing everything it should.
```````````````````````````````` example
| abc | def |
| --- | --- |
| ghi | jkl |
| mno | pqr |
.
````````````````````````````````
We're going to mix up the table now; we'll demonstrate that inline formatting
works fine, but block elements don't. You can also have empty cells, and the
textual alignment of the columns is shown to be irrelevant.
```````````````````````````````` example
Hello!
| _abc_ | セン |
| ----- | ---- |
| 1. Block elements inside cells don't work. | |
| But _**inline elements do**_. | x |
Hi!
.
Hello!
abc |
セン |
1. Block elements inside cells don't work. |
|
But inline elements do. |
x |
Hi!
````````````````````````````````
Here we demonstrate some edge cases about what is and isn't a table.
```````````````````````````````` example
| Not enough table | to be considered table |
| Not enough table | to be considered table |
| Not enough table | to be considered table |
| Just enough table | to be considered table |
| ----------------- | ---------------------- |
| ---- | --- |
|x|
|-|
| xyz |
| --- |
.
| Not enough table | to be considered table |
| Not enough table | to be considered table |
| Not enough table | to be considered table |
Just enough table |
to be considered table |
| ---- | --- |
````````````````````````````````
A "simpler" table, GFM style:
```````````````````````````````` example
abc | def
--- | ---
xyz | ghi
.
````````````````````````````````
We are making the parser slighly more lax here. Here is a table with spaces at
the end:
```````````````````````````````` example
Hello!
| _abc_ | セン |
| ----- | ---- |
| this row has a space at the end | |
| But _**inline elements do**_. | x |
Hi!
.
Hello!
abc |
セン |
this row has a space at the end |
|
But inline elements do. |
x |
Hi!
````````````````````````````````
Table alignment:
```````````````````````````````` example
aaa | bbb | ccc | ddd | eee
:-- | --- | :-: | --- | --:
fff | ggg | hhh | iii | jjj
.
aaa |
bbb |
ccc |
ddd |
eee |
fff |
ggg |
hhh |
iii |
jjj |
````````````````````````````````
### Table cell count mismatches
The header and marker row must match.
```````````````````````````````` example
| a | b | c |
| --- | --- |
| this | isn't | okay |
.
| a | b | c |
| --- | --- |
| this | isn't | okay |
````````````````````````````````
But any of the body rows can be shorter. Rows longer
than the header are truncated.
```````````````````````````````` example
| a | b | c |
| --- | --- | ---
| x
| a | b
| 1 | 2 | 3 | 4 | 5 |
.
````````````````````````````````
### Embedded pipes
Tables with embedded pipes could be tricky.
```````````````````````````````` example
| a | b |
| --- | --- |
| Escaped pipes are \|okay\|. | Like \| this. |
| Within `\|code\| is okay` too. |
| _**`c\|`**_ \| complex
| don't **\_reparse\_**
.
a |
b |
Escaped pipes are |okay|. |
Like | this. |
Within |code| is okay too. |
|
c| | complex |
|
don't _reparse_ |
|
````````````````````````````````
### Oddly-formatted markers
This shouldn't assert.
```````````````````````````````` example
| a |
--- |
.
````````````````````````````````
### Escaping
```````````````````````````````` example
| a | b |
| --- | --- |
| \\ | `\\` |
| \\\\ | `\\\\` |
| \_ | `\_` |
| \| | `\|` |
| \a | `\a` |
\\ `\\`
\\\\ `\\\\`
\_ `\_`
\| `\|`
\a `\a`
.
a |
b |
\ |
\\ |
\\ |
\\\\ |
_ |
\_ |
| |
| |
\a |
\a |
\ \\
\\ \\\\
_ \_
| \|
\a \a
````````````````````````````````
### Embedded HTML
```````````````````````````````` example
| a |
| --- |
| hello |
| ok
sure |
.
````````````````````````````````
### Reference-style links
```````````````````````````````` example
Here's a link to [Freedom Planet 2][].
| Here's a link to [Freedom Planet 2][] in a table header. |
| --- |
| Here's a link to [Freedom Planet 2][] in a table row. |
[Freedom Planet 2]: http://www.freedomplanet2.com/
.
Here's a link to Freedom Planet 2.
````````````````````````````````
### Sequential cells
```````````````````````````````` example
| a | b | c |
| --- | --- | --- |
| d || e |
.
````````````````````````````````
### Interaction with emphasis
```````````````````````````````` example
| a | b |
| --- | --- |
|***(a)***|
.
````````````````````````````````
## Strikethroughs
A well-formed strikethrough.
```````````````````````````````` example
A proper ~strikethrough~.
.
A proper strikethrough.
````````````````````````````````
Some strikethrough edge cases.
```````````````````````````````` example
These are ~not strikethroughs.
No, they are not~
This ~is ~ legit~ isn't ~ legit.
This is not ~~~~~one~~~~~ huge strikethrough.
~one~ ~~two~~ ~~~three~~~
No ~mismatch~~
.
These are ~not strikethroughs.
No, they are not~
This is ~ legit isn't ~ legit.
This is not ~~~~~one~~~~~ huge strikethrough.
one two ~~~three~~~
No ~mismatch~~
````````````````````````````````
Using 200 tilde since it overflows the internal buffer
size (100) for parsing delimiters in inlines.c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~striked~
## Autolinks
```````````````````````````````` example
: http://google.com https://google.com
http://google.com/å
scyther@pokemon.com
www.github.com www.github.com/á
www.google.com/a_b
**Autolink and http://inlines**
![http://inline.com/image](http://inline.com/image)
a.w@b.c
Full stop outside parens shouldn't be included http://google.com/ok.
(Full stop inside parens shouldn't be included http://google.com/ok.)
"http://google.com"
'http://google.com'
http://🍄.ga/ http://x🍄.ga/
.
: http://google.com https://google.com
http://google.com/å http://google.com/å
scyther@pokemon.com
www.github.com www.github.com/á
www.google.com/a_b
Autolink and http://inlines
a.w@b.c
Full stop outside parens shouldn't be included http://google.com/ok.
(Full stop inside parens shouldn't be included http://google.com/ok.)
"http://google.com"
'http://google.com'
http://🍄.ga/ http://x🍄.ga/
````````````````````````````````
```````````````````````````````` example
This shouldn't crash everything: (_A_@_.A
.
````````````````````````````````
```````````````````````````````` example
These should not link:
* @a.b.c@. x
* n@. b
.
These should not link:
````````````````````````````````
## HTML tag filter
```````````````````````````````` example
This is not okay, but **this** is.
This is
not okay, but **this** is.
Nope, I won't have