diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
index 24daab9cf5..126a3fd402 100644
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -5772,7 +5772,7 @@ phutil_register_library_map(array(
'PhutilRemarkupDelRule' => 'infrastructure/markup/markuprule/PhutilRemarkupDelRule.php',
'PhutilRemarkupDocumentLinkRule' => 'infrastructure/markup/markuprule/PhutilRemarkupDocumentLinkRule.php',
'PhutilRemarkupEngine' => 'infrastructure/markup/remarkup/PhutilRemarkupEngine.php',
- 'PhutilRemarkupEngineTestCase' => 'infrastructure/markup/remarkup/__tests__/PhutilRemarkupEngineTestCase.php',
+ 'PhutilRemarkupEngineTestCase' => 'infrastructure/markup/__tests__/PhutilRemarkupEngineTestCase.php',
'PhutilRemarkupEscapeRemarkupRule' => 'infrastructure/markup/markuprule/PhutilRemarkupEscapeRemarkupRule.php',
'PhutilRemarkupEvalRule' => 'infrastructure/markup/markuprule/PhutilRemarkupEvalRule.php',
'PhutilRemarkupHeaderBlockRule' => 'infrastructure/markup/blockrule/PhutilRemarkupHeaderBlockRule.php',
diff --git a/src/infrastructure/markup/remarkup/__tests__/PhutilRemarkupEngineTestCase.php b/src/infrastructure/markup/__tests__/PhutilRemarkupEngineTestCase.php
similarity index 97%
rename from src/infrastructure/markup/remarkup/__tests__/PhutilRemarkupEngineTestCase.php
rename to src/infrastructure/markup/__tests__/PhutilRemarkupEngineTestCase.php
index 2f1ac692b9..a51778a66c 100644
--- a/src/infrastructure/markup/remarkup/__tests__/PhutilRemarkupEngineTestCase.php
+++ b/src/infrastructure/markup/__tests__/PhutilRemarkupEngineTestCase.php
@@ -2,8 +2,6 @@
/**
* Test cases for @{class:PhutilRemarkupEngine}.
- * @TODO: This unit is not always triggered when you need it.
- * https://we.phorge.it/T15500
*/
final class PhutilRemarkupEngineTestCase extends PhutilTestCase {
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/across-newlines.txt b/src/infrastructure/markup/__tests__/remarkup/across-newlines.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/across-newlines.txt
rename to src/infrastructure/markup/__tests__/remarkup/across-newlines.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/backticks-whitespace.txt b/src/infrastructure/markup/__tests__/remarkup/backticks-whitespace.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/backticks-whitespace.txt
rename to src/infrastructure/markup/__tests__/remarkup/backticks-whitespace.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/block-then-list.txt b/src/infrastructure/markup/__tests__/remarkup/block-then-list.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/block-then-list.txt
rename to src/infrastructure/markup/__tests__/remarkup/block-then-list.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/code-block-guess-from-name.txt b/src/infrastructure/markup/__tests__/remarkup/code-block-guess-from-name.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/code-block-guess-from-name.txt
rename to src/infrastructure/markup/__tests__/remarkup/code-block-guess-from-name.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/code-block-whitespace.txt b/src/infrastructure/markup/__tests__/remarkup/code-block-whitespace.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/code-block-whitespace.txt
rename to src/infrastructure/markup/__tests__/remarkup/code-block-whitespace.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/del.txt b/src/infrastructure/markup/__tests__/remarkup/del.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/del.txt
rename to src/infrastructure/markup/__tests__/remarkup/del.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/diff.txt b/src/infrastructure/markup/__tests__/remarkup/diff.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/diff.txt
rename to src/infrastructure/markup/__tests__/remarkup/diff.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/disallowed-link.txt b/src/infrastructure/markup/__tests__/remarkup/disallowed-link.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/disallowed-link.txt
rename to src/infrastructure/markup/__tests__/remarkup/disallowed-link.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/entities.txt b/src/infrastructure/markup/__tests__/remarkup/entities.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/entities.txt
rename to src/infrastructure/markup/__tests__/remarkup/entities.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/header-skip.txt b/src/infrastructure/markup/__tests__/remarkup/header-skip.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/header-skip.txt
rename to src/infrastructure/markup/__tests__/remarkup/header-skip.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/headers.txt b/src/infrastructure/markup/__tests__/remarkup/headers.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/headers.txt
rename to src/infrastructure/markup/__tests__/remarkup/headers.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/hex-color-code.txt b/src/infrastructure/markup/__tests__/remarkup/hex-color-code.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/hex-color-code.txt
rename to src/infrastructure/markup/__tests__/remarkup/hex-color-code.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/highlight.txt b/src/infrastructure/markup/__tests__/remarkup/highlight.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/highlight.txt
rename to src/infrastructure/markup/__tests__/remarkup/highlight.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/horizonal-rule.txt b/src/infrastructure/markup/__tests__/remarkup/horizonal-rule.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/horizonal-rule.txt
rename to src/infrastructure/markup/__tests__/remarkup/horizonal-rule.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/important.txt b/src/infrastructure/markup/__tests__/remarkup/important.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/important.txt
rename to src/infrastructure/markup/__tests__/remarkup/important.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/interpreter-test.txt b/src/infrastructure/markup/__tests__/remarkup/interpreter-test.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/interpreter-test.txt
rename to src/infrastructure/markup/__tests__/remarkup/interpreter-test.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/just-backticks.txt b/src/infrastructure/markup/__tests__/remarkup/just-backticks.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/just-backticks.txt
rename to src/infrastructure/markup/__tests__/remarkup/just-backticks.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/leading-newline.txt b/src/infrastructure/markup/__tests__/remarkup/leading-newline.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/leading-newline.txt
rename to src/infrastructure/markup/__tests__/remarkup/leading-newline.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-alternate.txt b/src/infrastructure/markup/__tests__/remarkup/link-alternate.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-alternate.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-alternate.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-brackets.txt b/src/infrastructure/markup/__tests__/remarkup/link-brackets.txt
similarity index 60%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-brackets.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-brackets.txt
index 3808aa976c..85890fdfde 100644
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-brackets.txt
+++ b/src/infrastructure/markup/__tests__/remarkup/link-brackets.txt
@@ -1,5 +1,5 @@
~~~~~~~~~~
-
+
~~~~~~~~~~
http://www.zany.com/omg/weird_url,,,
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-edge-cases.txt b/src/infrastructure/markup/__tests__/remarkup/link-edge-cases.txt
new file mode 100644
index 0000000000..d2125132e1
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-edge-cases.txt
@@ -0,0 +1,35 @@
+http://www.example.com/
+
+(http://www.example.com/)
+
+
+
+http://www.example.com/wiki/example_(disambiguation)
+
+(example http://www.example.com/)
+
+Quick! http://www.example.com/!
+~~~~~~~~~~
+
+
+()
+
+
+
+
+
+(example )
+
+Quick! !
+~~~~~~~~~~
+http://www.example.com/
+
+(http://www.example.com/)
+
+http://www.example.com/
+
+http://www.example.com/wiki/example_(disambiguation)
+
+(example http://www.example.com/)
+
+Quick! http://www.example.com/!
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-mailto.txt b/src/infrastructure/markup/__tests__/remarkup/link-mailto.txt
new file mode 100644
index 0000000000..da90121339
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-mailto.txt
@@ -0,0 +1,18 @@
+[[ mailto:alincoln@example.com | mail me ]]
+
+[ mail me ]( mailto:alincoln@example.com )
+
+[[mailto:alincoln@example.com]]
+
+~~~~~~~~~~
+
+
+
+
+
+~~~~~~~~~~
+mail me
+
+mail me
+
+alincoln@example.com
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-mixed.txt b/src/infrastructure/markup/__tests__/remarkup/link-mixed.txt
new file mode 100644
index 0000000000..122ae6e298
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-mixed.txt
@@ -0,0 +1,18 @@
+[[http://www.example.com/ | Example]](http://www.alternate.org/)
+
+(http://www.alternate.org/)[[http://www.example.com/ | Example]]
+
+
+
+~~~~~~~~~~
+()
+
+()
+
+< >
+~~~~~~~~~~
+Example (http://www.alternate.org/)
+
+(http://www.alternate.org/)Example
+
+>
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-noreferrer.txt b/src/infrastructure/markup/__tests__/remarkup/link-noreferrer.txt
new file mode 100644
index 0000000000..52806e76eb
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-noreferrer.txt
@@ -0,0 +1,16 @@
+[[ /\evil.com ]]
+
+[[ /
+/evil.com ]]
+
+~~~~~~~~~~
+
+
+
+~~~~~~~~~~
+/\evil.com
+
+/
+/evil.com
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-same-window.txt b/src/infrastructure/markup/__tests__/remarkup/link-same-window.txt
new file mode 100644
index 0000000000..4fac158676
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-same-window.txt
@@ -0,0 +1,11 @@
+[[http://www.example.com/]]
+
+http://www.example.com/
+~~~~~~~~~~
+
+
+
+~~~~~~~~~~
+http://www.example.com/
+
+http://www.example.com/
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-square.txt b/src/infrastructure/markup/__tests__/remarkup/link-square.txt
similarity index 59%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-square.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-square.txt
index 86f0c64d06..93927057d5 100644
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-square.txt
+++ b/src/infrastructure/markup/__tests__/remarkup/link-square.txt
@@ -8,11 +8,11 @@
[[#anchor | Anchors ]]
~~~~~~~~~~
-
+
-
+
-
+
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-tel.txt b/src/infrastructure/markup/__tests__/remarkup/link-tel.txt
new file mode 100644
index 0000000000..8c6e9fce5f
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-tel.txt
@@ -0,0 +1,18 @@
+[[ tel:18005555555 | call me ]]
+
+[ call me ]( tel:18005555555 )
+
+[[tel:18005555555]]
+
+~~~~~~~~~~
+
+
+
+
+
+~~~~~~~~~~
+call me <18005555555>
+
+call me <18005555555>
+
+18005555555
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-angle-brackets.txt b/src/infrastructure/markup/__tests__/remarkup/link-with-angle-brackets.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-angle-brackets.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-with-angle-brackets.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-angle-link-anchor.txt b/src/infrastructure/markup/__tests__/remarkup/link-with-angle-link-anchor.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-angle-link-anchor.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-with-angle-link-anchor.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-link-anchor.txt b/src/infrastructure/markup/__tests__/remarkup/link-with-link-anchor.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-link-anchor.txt
rename to src/infrastructure/markup/__tests__/remarkup/link-with-link-anchor.txt
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-with-punctuation.txt b/src/infrastructure/markup/__tests__/remarkup/link-with-punctuation.txt
new file mode 100644
index 0000000000..a741cf272c
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-with-punctuation.txt
@@ -0,0 +1,9 @@
+http://www.example.com/,
+http://www.example.com/..
+http://www.example.com/!!!
+~~~~~~~~~~
+,
+..
+!!!
+~~~~~~~~~~
+http://www.example.com/, http://www.example.com/.. http://www.example.com/!!!
diff --git a/src/infrastructure/markup/__tests__/remarkup/link-with-tilde.txt b/src/infrastructure/markup/__tests__/remarkup/link-with-tilde.txt
new file mode 100644
index 0000000000..1eb50126f2
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link-with-tilde.txt
@@ -0,0 +1,5 @@
+http://www.example.com/~~
+~~~~~~~~~~
+
+~~~~~~~~~~
+http://www.example.com/~~
diff --git a/src/infrastructure/markup/__tests__/remarkup/link.txt b/src/infrastructure/markup/__tests__/remarkup/link.txt
new file mode 100644
index 0000000000..575193ff16
--- /dev/null
+++ b/src/infrastructure/markup/__tests__/remarkup/link.txt
@@ -0,0 +1,5 @@
+http://www.example.com/
+~~~~~~~~~~
+
+~~~~~~~~~~
+http://www.example.com/
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-alternate-style.txt b/src/infrastructure/markup/__tests__/remarkup/list-alternate-style.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-alternate-style.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-alternate-style.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-blow-stack.txt b/src/infrastructure/markup/__tests__/remarkup/list-blow-stack.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-blow-stack.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-blow-stack.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-checkboxes.txt b/src/infrastructure/markup/__tests__/remarkup/list-checkboxes.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-checkboxes.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-checkboxes.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-crazystairs.txt b/src/infrastructure/markup/__tests__/remarkup/list-crazystairs.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-crazystairs.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-crazystairs.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-first-style-wins.txt b/src/infrastructure/markup/__tests__/remarkup/list-first-style-wins.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-first-style-wins.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-first-style-wins.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-hash.txt b/src/infrastructure/markup/__tests__/remarkup/list-hash.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-hash.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-hash.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-header-last.txt b/src/infrastructure/markup/__tests__/remarkup/list-header-last.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-header-last.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-header-last.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-header.txt b/src/infrastructure/markup/__tests__/remarkup/list-header.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-header.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-header.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-mixed-styles.txt b/src/infrastructure/markup/__tests__/remarkup/list-mixed-styles.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-mixed-styles.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-mixed-styles.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-multi.txt b/src/infrastructure/markup/__tests__/remarkup/list-multi.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-multi.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-multi.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-multiline.txt b/src/infrastructure/markup/__tests__/remarkup/list-multiline.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-multiline.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-multiline.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-nest.txt b/src/infrastructure/markup/__tests__/remarkup/list-nest.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-nest.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-nest.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-paragraphs.txt b/src/infrastructure/markup/__tests__/remarkup/list-paragraphs.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-paragraphs.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-paragraphs.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-staircase.txt b/src/infrastructure/markup/__tests__/remarkup/list-staircase.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-staircase.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-staircase.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-star.txt b/src/infrastructure/markup/__tests__/remarkup/list-star.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-star.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-star.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-then-a-list.txt b/src/infrastructure/markup/__tests__/remarkup/list-then-a-list.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-then-a-list.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-then-a-list.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list-vs-codeblock.txt b/src/infrastructure/markup/__tests__/remarkup/list-vs-codeblock.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list-vs-codeblock.txt
rename to src/infrastructure/markup/__tests__/remarkup/list-vs-codeblock.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/list.txt b/src/infrastructure/markup/__tests__/remarkup/list.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/list.txt
rename to src/infrastructure/markup/__tests__/remarkup/list.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced-in-monospaced.txt b/src/infrastructure/markup/__tests__/remarkup/monospaced-in-monospaced.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced-in-monospaced.txt
rename to src/infrastructure/markup/__tests__/remarkup/monospaced-in-monospaced.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced-plural.txt b/src/infrastructure/markup/__tests__/remarkup/monospaced-plural.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced-plural.txt
rename to src/infrastructure/markup/__tests__/remarkup/monospaced-plural.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced.txt b/src/infrastructure/markup/__tests__/remarkup/monospaced.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/monospaced.txt
rename to src/infrastructure/markup/__tests__/remarkup/monospaced.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/newline-then-block.txt b/src/infrastructure/markup/__tests__/remarkup/newline-then-block.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/newline-then-block.txt
rename to src/infrastructure/markup/__tests__/remarkup/newline-then-block.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/note-multiline.txt b/src/infrastructure/markup/__tests__/remarkup/note-multiline.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/note-multiline.txt
rename to src/infrastructure/markup/__tests__/remarkup/note-multiline.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/note.txt b/src/infrastructure/markup/__tests__/remarkup/note.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/note.txt
rename to src/infrastructure/markup/__tests__/remarkup/note.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/ordered-list-with-numbers.txt b/src/infrastructure/markup/__tests__/remarkup/ordered-list-with-numbers.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/ordered-list-with-numbers.txt
rename to src/infrastructure/markup/__tests__/remarkup/ordered-list-with-numbers.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-adjacent.txt b/src/infrastructure/markup/__tests__/remarkup/percent-block-adjacent.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-adjacent.txt
rename to src/infrastructure/markup/__tests__/remarkup/percent-block-adjacent.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-multiline.txt b/src/infrastructure/markup/__tests__/remarkup/percent-block-multiline.txt
similarity index 68%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-multiline.txt
rename to src/infrastructure/markup/__tests__/remarkup/percent-block-multiline.txt
index 90cb4e0b41..2a69d705e4 100644
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-multiline.txt
+++ b/src/infrastructure/markup/__tests__/remarkup/percent-block-multiline.txt
@@ -10,7 +10,7 @@
- second
- third
-
+
~~~~~~~~~~
**foo**
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-oneline.txt b/src/infrastructure/markup/__tests__/remarkup/percent-block-oneline.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-oneline.txt
rename to src/infrastructure/markup/__tests__/remarkup/percent-block-oneline.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-solo.txt b/src/infrastructure/markup/__tests__/remarkup/percent-block-solo.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-solo.txt
rename to src/infrastructure/markup/__tests__/remarkup/percent-block-solo.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-unterminated.txt b/src/infrastructure/markup/__tests__/remarkup/percent-block-unterminated.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/percent-block-unterminated.txt
rename to src/infrastructure/markup/__tests__/remarkup/percent-block-unterminated.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-angry.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-angry.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-angry.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-angry.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-code-block.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-code-block.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-code-block.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-code-block.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-indent-block.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-indent-block.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-indent-block.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-indent-block.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-lists.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-lists.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-lists.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-lists.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-paragraphs.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-paragraphs.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-paragraphs.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-paragraphs.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-quote.txt b/src/infrastructure/markup/__tests__/remarkup/quoted-quote.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quoted-quote.txt
rename to src/infrastructure/markup/__tests__/remarkup/quoted-quote.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/quotes.txt b/src/infrastructure/markup/__tests__/remarkup/quotes.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/quotes.txt
rename to src/infrastructure/markup/__tests__/remarkup/quotes.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/raw-escape.txt b/src/infrastructure/markup/__tests__/remarkup/raw-escape.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/raw-escape.txt
rename to src/infrastructure/markup/__tests__/remarkup/raw-escape.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/reply-basic.txt b/src/infrastructure/markup/__tests__/remarkup/reply-basic.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/reply-basic.txt
rename to src/infrastructure/markup/__tests__/remarkup/reply-basic.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/reply-nested.txt b/src/infrastructure/markup/__tests__/remarkup/reply-nested.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/reply-nested.txt
rename to src/infrastructure/markup/__tests__/remarkup/reply-nested.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-empty-row.txt b/src/infrastructure/markup/__tests__/remarkup/simple-table-with-empty-row.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-empty-row.txt
rename to src/infrastructure/markup/__tests__/remarkup/simple-table-with-empty-row.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-leading-space.txt b/src/infrastructure/markup/__tests__/remarkup/simple-table-with-leading-space.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-leading-space.txt
rename to src/infrastructure/markup/__tests__/remarkup/simple-table-with-leading-space.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-link.txt b/src/infrastructure/markup/__tests__/remarkup/simple-table-with-link.txt
similarity index 55%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-link.txt
rename to src/infrastructure/markup/__tests__/remarkup/simple-table-with-link.txt
index d4e53b3426..5ee44feeb0 100644
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table-with-link.txt
+++ b/src/infrastructure/markup/__tests__/remarkup/simple-table-with-link.txt
@@ -1,7 +1,7 @@
| [[ http://example.com | name ]] | [x] |
~~~~~~~~~~
~~~~~~~~~~
| name | [x] |
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table.txt b/src/infrastructure/markup/__tests__/remarkup/simple-table.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/simple-table.txt
rename to src/infrastructure/markup/__tests__/remarkup/simple-table.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/simple.txt b/src/infrastructure/markup/__tests__/remarkup/simple.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/simple.txt
rename to src/infrastructure/markup/__tests__/remarkup/simple.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-direct-content.txt b/src/infrastructure/markup/__tests__/remarkup/table-with-direct-content.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-direct-content.txt
rename to src/infrastructure/markup/__tests__/remarkup/table-with-direct-content.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-leading-space.txt b/src/infrastructure/markup/__tests__/remarkup/table-with-leading-space.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-leading-space.txt
rename to src/infrastructure/markup/__tests__/remarkup/table-with-leading-space.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-long-header.txt b/src/infrastructure/markup/__tests__/remarkup/table-with-long-header.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/table-with-long-header.txt
rename to src/infrastructure/markup/__tests__/remarkup/table-with-long-header.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/table.txt b/src/infrastructure/markup/__tests__/remarkup/table.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/table.txt
rename to src/infrastructure/markup/__tests__/remarkup/table.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-flavored.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block-flavored.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-flavored.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block-flavored.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored-comment.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored-comment.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored-comment.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored-comment.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored-empty.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored-empty.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored-empty.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored-empty.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi-flavored.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block-multi-flavored.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block-multi.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block-multi.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block-multi.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block.txt b/src/infrastructure/markup/__tests__/remarkup/tick-block.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/tick-block.txt
rename to src/infrastructure/markup/__tests__/remarkup/tick-block.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/toc.txt b/src/infrastructure/markup/__tests__/remarkup/toc.txt
similarity index 71%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/toc.txt
rename to src/infrastructure/markup/__tests__/remarkup/toc.txt
index 9505271576..f7969bdce0 100644
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/toc.txt
+++ b/src/infrastructure/markup/__tests__/remarkup/toc.txt
@@ -13,11 +13,11 @@
http://www.example.com
-
+
-
+
~~~~~~~~~~
[[ http://www.example.com/ | link_name ]]
=========================================
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/trailing-whitespace-codeblock.txt b/src/infrastructure/markup/__tests__/remarkup/trailing-whitespace-codeblock.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/trailing-whitespace-codeblock.txt
rename to src/infrastructure/markup/__tests__/remarkup/trailing-whitespace-codeblock.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/underline.txt b/src/infrastructure/markup/__tests__/remarkup/underline.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/underline.txt
rename to src/infrastructure/markup/__tests__/remarkup/underline.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/warning.txt b/src/infrastructure/markup/__tests__/remarkup/warning.txt
similarity index 100%
rename from src/infrastructure/markup/remarkup/__tests__/remarkup/warning.txt
rename to src/infrastructure/markup/__tests__/remarkup/warning.txt
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-edge-cases.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-edge-cases.txt
deleted file mode 100644
index 64c93eaea6..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-edge-cases.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-http://www.example.com/
-
-(http://www.example.com/)
-
-
-
-http://www.example.com/wiki/example_(disambiguation)
-
-(example http://www.example.com/)
-
-Quick! http://www.example.com/!
-~~~~~~~~~~
-
-
-()
-
-
-
-
-
-(example )
-
-Quick! !
-~~~~~~~~~~
-http://www.example.com/
-
-(http://www.example.com/)
-
-http://www.example.com/
-
-http://www.example.com/wiki/example_(disambiguation)
-
-(example http://www.example.com/)
-
-Quick! http://www.example.com/!
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mailto.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mailto.txt
deleted file mode 100644
index e449c15013..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mailto.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-[[ mailto:alincoln@example.com | mail me ]]
-
-[ mail me ]( mailto:alincoln@example.com )
-
-[[mailto:alincoln@example.com]]
-
-~~~~~~~~~~
-
-
-
-
-
-~~~~~~~~~~
-mail me
-
-mail me
-
-alincoln@example.com
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mixed.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mixed.txt
deleted file mode 100644
index bf433e9588..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-mixed.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-[[http://www.example.com/ | Example]](http://www.alternate.org/)
-
-(http://www.alternate.org/)[[http://www.example.com/ | Example]]
-
-
-
-~~~~~~~~~~
-()
-
-()
-
-< >
-~~~~~~~~~~
-Example (http://www.alternate.org/)
-
-(http://www.alternate.org/)Example
-
->
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-noreferrer.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-noreferrer.txt
deleted file mode 100644
index 65a86815c0..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-noreferrer.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-[[ /\evil.com ]]
-
-[[ /
-/evil.com ]]
-
-~~~~~~~~~~
-
-
-
-~~~~~~~~~~
-/\evil.com
-
-/
-/evil.com
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-same-window.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-same-window.txt
deleted file mode 100644
index 937c83f67e..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-same-window.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-[[http://www.example.com/]]
-
-http://www.example.com/
-~~~~~~~~~~
-
-
-
-~~~~~~~~~~
-http://www.example.com/
-
-http://www.example.com/
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-tel.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-tel.txt
deleted file mode 100644
index aac13c2cca..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-tel.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-[[ tel:18005555555 | call me ]]
-
-[ call me ]( tel:18005555555 )
-
-[[tel:18005555555]]
-
-~~~~~~~~~~
-
-
-
-
-
-~~~~~~~~~~
-call me <18005555555>
-
-call me <18005555555>
-
-18005555555
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-punctuation.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-punctuation.txt
deleted file mode 100644
index c187b16751..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-punctuation.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-http://www.example.com/,
-http://www.example.com/..
-http://www.example.com/!!!
-~~~~~~~~~~
-,
-..
-!!!
-~~~~~~~~~~
-http://www.example.com/, http://www.example.com/.. http://www.example.com/!!!
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-tilde.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-tilde.txt
deleted file mode 100644
index 615814d984..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link-with-tilde.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-http://www.example.com/~~
-~~~~~~~~~~
-
-~~~~~~~~~~
-http://www.example.com/~~
diff --git a/src/infrastructure/markup/remarkup/__tests__/remarkup/link.txt b/src/infrastructure/markup/remarkup/__tests__/remarkup/link.txt
deleted file mode 100644
index 903ab48a5b..0000000000
--- a/src/infrastructure/markup/remarkup/__tests__/remarkup/link.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-http://www.example.com/
-~~~~~~~~~~
-
-~~~~~~~~~~
-http://www.example.com/