diff --git a/docs/changelog.md b/docs/changelog.md
index 204164f07..f40a8f735 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
* DRY fix in `abbr` extension by introducing method `create_element` (#1483).
+* Clean up test directory some removing some redundant tests and port
+ non-redundant cases to the newer test framework.
### Fixed
diff --git a/tests/php/Auto Links.text b/tests/php/Auto Links.text
deleted file mode 100644
index 4b10d325a..000000000
--- a/tests/php/Auto Links.text
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/tests/php/Auto Links.xhtml b/tests/php/Auto Links.xhtml
deleted file mode 100644
index 259c47f74..000000000
--- a/tests/php/Auto Links.xhtml
+++ /dev/null
@@ -1,3 +0,0 @@
-HTTP://WWW.SOMEURL.COM
-
-hr@company.com
\ No newline at end of file
diff --git a/tests/php/Backslash escapes.text b/tests/php/Backslash escapes.text
deleted file mode 100644
index a5e769b7e..000000000
--- a/tests/php/Backslash escapes.text
+++ /dev/null
@@ -1 +0,0 @@
-Tricky combinaisons:
backslash with \\-- two dashes
backslash with \\> greater than
\\\[test](not a link)
\\\*no emphasis*
\ No newline at end of file
diff --git a/tests/php/Backslash escapes.xhtml b/tests/php/Backslash escapes.xhtml
deleted file mode 100644
index 08fb8ef84..000000000
--- a/tests/php/Backslash escapes.xhtml
+++ /dev/null
@@ -1 +0,0 @@
-Tricky combinaisons:
backslash with \-- two dashes
backslash with \> greater than
\[test](not a link)
\*no emphasis*
\ No newline at end of file
diff --git a/tests/php/Code Spans.text b/tests/php/Code Spans.text
deleted file mode 100644
index 43f2bcfd5..000000000
--- a/tests/php/Code Spans.text
+++ /dev/null
@@ -1,6 +0,0 @@
-From ``
-on two lines.
-
-From ``
-on three lines.
diff --git a/tests/php/Code Spans.xhtml b/tests/php/Code Spans.xhtml
deleted file mode 100644
index 9ed0df87e..000000000
--- a/tests/php/Code Spans.xhtml
+++ /dev/null
@@ -1,6 +0,0 @@
-From <!-- to -->
-on two lines.
-
-From <!--
-to -->
-on three lines.
diff --git a/tests/php/Code block in a list item.text b/tests/php/Code block in a list item.text
deleted file mode 100644
index 5093348f3..000000000
--- a/tests/php/Code block in a list item.text
+++ /dev/null
@@ -1,15 +0,0 @@
-
-* List Item:
-
- code block
-
- with a blank line
-
- within a list item.
-
-* code block
- as first element of a list item
-
-* List Item:
-
- code block with whitespace on preceding line
\ No newline at end of file
diff --git a/tests/php/Code block in a list item.xhtml b/tests/php/Code block in a list item.xhtml
deleted file mode 100644
index 361c1ae22..000000000
--- a/tests/php/Code block in a list item.xhtml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-List Item:
-
-code block
-
-with a blank line
-
-
-within a list item.
-code block
-as first element of a list item
-
-
-List Item:
-
-code block with whitespace on preceding line
-
-
\ No newline at end of file
diff --git a/tests/php/Code block on second line.text b/tests/php/Code block on second line.text
deleted file mode 100644
index b7fcd97c8..000000000
--- a/tests/php/Code block on second line.text
+++ /dev/null
@@ -1,2 +0,0 @@
-
- Codeblock on second line
diff --git a/tests/php/Code block on second line.xhtml b/tests/php/Code block on second line.xhtml
deleted file mode 100644
index 25abb16ed..000000000
--- a/tests/php/Code block on second line.xhtml
+++ /dev/null
@@ -1,2 +0,0 @@
-Codeblock on second line
-
diff --git a/tests/php/Email auto links.text b/tests/php/Email auto links.text
deleted file mode 100644
index a8af4ec3c..000000000
--- a/tests/php/Email auto links.text
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-International domain names:
\ No newline at end of file
diff --git a/tests/php/Email auto links.xhtml b/tests/php/Email auto links.xhtml
deleted file mode 100644
index a32c40874..000000000
--- a/tests/php/Email auto links.xhtml
+++ /dev/null
@@ -1,3 +0,0 @@
-michel.fortin@michelf.com
-
-International domain names: help@tūdaliņ.lv
diff --git a/tests/php/Emphasis.text b/tests/php/Emphasis.text
deleted file mode 100644
index 88e93d4db..000000000
--- a/tests/php/Emphasis.text
+++ /dev/null
@@ -1,80 +0,0 @@
-Combined emphasis:
-
-1. ***test test***
-2. ___test test___
-3. *test **test***
-4. **test *test***
-5. ***test* test**
-6. ***test** test*
-7. ***test* test**
-8. **test *test***
-9. *test **test***
-10. _test __test___
-11. __test _test___
-12. ___test_ test__
-13. ___test__ test_
-14. ___test_ test__
-15. __test _test___
-16. _test __test___
-
-
-Incorrect nesting:
-
-1. *test **test* test**
-2. _test __test_ test__
-3. **test *test** test*
-4. __test _test__ test_
-5. *test *test* test*
-6. _test _test_ test_
-7. **test **test** test**
-8. __test __test__ test__
-
-
-
-No emphasis:
-
-1. test* test *test
-2. test** test **test
-3. test_ test _test
-4. test__ test __test
-
-
-
-Middle-word emphasis (asterisks):
-
-1. *a*b
-2. a*b*
-3. a*b*c
-4. **a**b
-5. a**b**
-6. a**b**c
-
-
-Middle-word emphasis (underscore):
-
-1. _a_b
-2. a_b_
-3. a_b_c
-4. __a__b
-5. a__b__
-6. a__b__c
-
-my_precious_file.txt
-
-
-## Tricky Cases
-
-E**. **Test** TestTestTest
-
-E**. **Test** Test Test Test
-
-
-## Overlong emphasis
-
-Name: ____________
-Organization: ____
-Region/Country: __
-
-_____Cut here_____
-
-____Cut here____
diff --git a/tests/php/Emphasis.xhtml b/tests/php/Emphasis.xhtml
deleted file mode 100644
index 4879070f7..000000000
--- a/tests/php/Emphasis.xhtml
+++ /dev/null
@@ -1,83 +0,0 @@
-Combined emphasis:
-
-
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-
-
-Incorrect nesting:
-
-
-- *test test* test
-- _test test_ test
-- test *test test*
-- test _test test_
-- test *test test*
-- test _test test_
-- test **test test**
-- test __test test__
-
-
-No emphasis:
-
-
-- test* test *test
-- test** test **test
-- test_ test _test
-- test__ test __test
-
-
-Middle-word emphasis (asterisks):
-
-
-- ab
-- ab
-- abc
-- ab
-- ab
-- abc
-
-
-Middle-word emphasis (underscore):
-
-
-- ab
-- ab
-- abc
-- ab
-- ab
-- abc
-
-
-mypreciousfile.txt
-
-Tricky Cases
-
-E**. Test TestTestTest
-
-E**. Test Test Test Test
-
-
-Overlong emphasis
-
-Name: ____________
-Organization: ____
-Region/Country: __
-
-_____Cut here_____
-
-____Cut here____
\ No newline at end of file
diff --git a/tests/php/Empty List Item.text b/tests/php/Empty List Item.text
deleted file mode 100644
index 3c4edba06..000000000
--- a/tests/php/Empty List Item.text
+++ /dev/null
@@ -1,35 +0,0 @@
-With asterisks
-
- * List item
- *
- * List item
-
-With numbers
-
-1. List item
-2.
-3. List item
-
-With hyphens
-
-- List item
--
-- List item
-
-With asterisks
-
- * List item
- * List item
- *
-
-With numbers
-
-1. List item
-2. List item
-3.
-
-With hyphens
-
-- List item
-- List item
--
diff --git a/tests/php/Empty List Item.xhtml b/tests/php/Empty List Item.xhtml
deleted file mode 100644
index 02d86edd3..000000000
--- a/tests/php/Empty List Item.xhtml
+++ /dev/null
@@ -1,47 +0,0 @@
-With asterisks
-
-
-- List item
-
-- List item
-
-
-With numbers
-
-
-- List item
-
-- List item
-
-
-With hyphens
-
-
-- List item
-
-- List item
-
-
-With asterisks
-
-
-- List item
-- List item
-
-
-
-With numbers
-
-
-- List item
-- List item
-
-
-
-With hyphens
-
-
-- List item
-- List item
-
-
\ No newline at end of file
diff --git a/tests/php/Headers.text b/tests/php/Headers.text
deleted file mode 100644
index 3a39174a5..000000000
--- a/tests/php/Headers.text
+++ /dev/null
@@ -1,9 +0,0 @@
-Header
======
Header
------
### Header
-
- - - -
-
-Header
======
Paragraph
Header
------
Paragraph
### Header
Paragraph
-
- - - -
-
-Paragraph
Header
======
Paragraph
Paragraph
Header
------
Paragraph
Paragraph
### Header
Paragraph
\ No newline at end of file
diff --git a/tests/php/Headers.xhtml b/tests/php/Headers.xhtml
deleted file mode 100644
index 3adb47074..000000000
--- a/tests/php/Headers.xhtml
+++ /dev/null
@@ -1,39 +0,0 @@
-Header
-
-Header
-
-Header
-
-
-
-Header
-
-Paragraph
-
-Header
-
-Paragraph
-
-Header
-
-Paragraph
-
-
-
-Paragraph
-
-Header
-
-Paragraph
-
-Paragraph
-
-Header
-
-Paragraph
-
-Paragraph
-
-Header
-
-Paragraph
diff --git a/tests/php/Horizontal Rules.text b/tests/php/Horizontal Rules.text
deleted file mode 100644
index 8e2da0b11..000000000
--- a/tests/php/Horizontal Rules.text
+++ /dev/null
@@ -1,29 +0,0 @@
-Horizontal rules:
-
-- - -
-
-* * *
-
-***
-
----
-
-___
-
-Not horizontal rules (testing for a bug in 1.0.1j):
-
-+++
-
-,,,
-
-===
-
-???
-
-AAA
-
-jjj
-
-j j j
-
-n n n
diff --git a/tests/php/Horizontal Rules.xhtml b/tests/php/Horizontal Rules.xhtml
deleted file mode 100644
index b9170b1eb..000000000
--- a/tests/php/Horizontal Rules.xhtml
+++ /dev/null
@@ -1,30 +0,0 @@
-Horizontal rules:
-
-
-
-
-
-
-
-
-
-
-
-Not horizontal rules (testing for a bug in 1.0.1j):
-
-+++
-
-,,,
-
-===
-
-???
-
-AAA
-
-jjj
-
-j j j
-
-n n n
-
diff --git a/tests/php/Inline HTML (Simple).text b/tests/php/Inline HTML (Simple).text
deleted file mode 100644
index 9177105e8..000000000
--- a/tests/php/Inline HTML (Simple).text
+++ /dev/null
@@ -1,15 +0,0 @@
-With some attributes:
-
-
- foo
-
-
-
- foo
-
-
-Hr's:
-
-
diff --git a/tests/php/Inline HTML (Simple).xhtml b/tests/php/Inline HTML (Simple).xhtml
deleted file mode 100644
index facfefbac..000000000
--- a/tests/php/Inline HTML (Simple).xhtml
+++ /dev/null
@@ -1,15 +0,0 @@
-With some attributes:
-
-
- foo
-
-
-
- foo
-
-
-Hr's:
-
-
\ No newline at end of file
diff --git a/tests/php/Inline HTML (Span).text b/tests/php/Inline HTML (Span).text
deleted file mode 100644
index 19028bb3e..000000000
--- a/tests/php/Inline HTML (Span).text
+++ /dev/null
@@ -1,4 +0,0 @@
-ACINACS
-
-SB
-SB
\ No newline at end of file
diff --git a/tests/php/Inline HTML (Span).xhtml b/tests/php/Inline HTML (Span).xhtml
deleted file mode 100644
index 4d18affe9..000000000
--- a/tests/php/Inline HTML (Span).xhtml
+++ /dev/null
@@ -1,4 +0,0 @@
-ACINACS
-
-SB
-SB
\ No newline at end of file
diff --git a/tests/php/Inline HTML comments.text b/tests/php/Inline HTML comments.text
deleted file mode 100644
index d57d00aa3..000000000
--- a/tests/php/Inline HTML comments.text
+++ /dev/null
@@ -1,9 +0,0 @@
-Paragraph one.
-
-
-
-Paragraph two.
-
-
-
-The end.
diff --git a/tests/php/Inline HTML comments.xhtml b/tests/php/Inline HTML comments.xhtml
deleted file mode 100644
index b45f01481..000000000
--- a/tests/php/Inline HTML comments.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-Paragraph one.
-
-
-
-Paragraph two.
-
-
-
-The end.
diff --git a/tests/php/Ins & del.text b/tests/php/Ins & del.text
deleted file mode 100644
index 2d54c660d..000000000
--- a/tests/php/Ins & del.text
+++ /dev/null
@@ -1,17 +0,0 @@
-Here is a block tag ins:
-
-
-Some text
-
-
-And here it is inside a paragraph.
-
-And here it is in the middle of a paragraph.
-
-
-Some text
-
-
-And here is ins as a paragraph.
-
-And here it is in the middle of a paragraph.
diff --git a/tests/php/Ins & del.xhtml b/tests/php/Ins & del.xhtml
deleted file mode 100644
index 60e8c5ff0..000000000
--- a/tests/php/Ins & del.xhtml
+++ /dev/null
@@ -1,17 +0,0 @@
-Here is a block tag ins:
-
-
-Some text
-
-
-And here it is inside a paragraph.
-
-And here it is in the middle of a paragraph.
-
-
-Some text
-
-
-And here is ins as a paragraph.
-
-And here it is in the middle of a paragraph.
diff --git a/tests/php/License b/tests/php/License
deleted file mode 100644
index d511905c1..000000000
--- a/tests/php/License
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/tests/php/Links, inline style.text b/tests/php/Links, inline style.text
deleted file mode 100644
index 600a04422..000000000
--- a/tests/php/Links, inline style.text
+++ /dev/null
@@ -1 +0,0 @@
-[silly URL w/ angle brackets](}]*+|&)>).
diff --git a/tests/php/Links, inline style.xhtml b/tests/php/Links, inline style.xhtml
deleted file mode 100644
index d3e4d1118..000000000
--- a/tests/php/Links, inline style.xhtml
+++ /dev/null
@@ -1 +0,0 @@
-silly URL w/ angle brackets.
diff --git a/tests/php/MD5 Hashes.text b/tests/php/MD5 Hashes.text
deleted file mode 100644
index 7e032218c..000000000
--- a/tests/php/MD5 Hashes.text
+++ /dev/null
@@ -1,11 +0,0 @@
-# Character Escapes
-
-The MD5 value for `+` is "26b17225b626fb9238849fd60eabdf60".
-
-# HTML Blocks
-
-test
-
-The MD5 value for `test
` is:
-
-6205333b793f34273d75379350b36826
\ No newline at end of file
diff --git a/tests/php/MD5 Hashes.xhtml b/tests/php/MD5 Hashes.xhtml
deleted file mode 100644
index 894e4aa7b..000000000
--- a/tests/php/MD5 Hashes.xhtml
+++ /dev/null
@@ -1,11 +0,0 @@
-Character Escapes
-
-The MD5 value for + is "26b17225b626fb9238849fd60eabdf60".
-
-HTML Blocks
-
-test
-
-The MD5 value for <p>test</p> is:
-
-6205333b793f34273d75379350b36826
diff --git a/tests/php/Mixed OLs and ULs.text b/tests/php/Mixed OLs and ULs.text
deleted file mode 100644
index cecde2120..000000000
--- a/tests/php/Mixed OLs and ULs.text
+++ /dev/null
@@ -1,13 +0,0 @@
-* test
-+ test
-- test
-
-1. test
-2. test
-
-* test
-+ test
-- test
-
-1. test
-2. test
diff --git a/tests/php/Mixed OLs and ULs.xhtml b/tests/php/Mixed OLs and ULs.xhtml
deleted file mode 100644
index 0872aaaf5..000000000
--- a/tests/php/Mixed OLs and ULs.xhtml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-- test
-- test
-
-
-
-
-
-- test
-- test
-
diff --git a/tests/php/Nesting.text b/tests/php/Nesting.text
deleted file mode 100644
index 791538c06..000000000
--- a/tests/php/Nesting.text
+++ /dev/null
@@ -1,11 +0,0 @@
-Valid nesting:
-
-**[Link](url)**
-
-[**Link**](url)
-
-**[**Link**](url)**
-
-Invalid nesting:
-
-[[Link](url)](url)
\ No newline at end of file
diff --git a/tests/php/Nesting.xhtml b/tests/php/Nesting.xhtml
deleted file mode 100644
index 37845d311..000000000
--- a/tests/php/Nesting.xhtml
+++ /dev/null
@@ -1,11 +0,0 @@
-Valid nesting:
-
-Link
-
-Link
-
-Link
-
-Invalid nesting:
-
-[Link](url)
diff --git a/tests/php/PHP-Specific Bugs.text b/tests/php/PHP-Specific Bugs.text
deleted file mode 100644
index 246b60d1c..000000000
--- a/tests/php/PHP-Specific Bugs.text
+++ /dev/null
@@ -1,22 +0,0 @@
-This tests for a bug where quotes escaped by PHP when using
-`preg_replace` with the `/e` modifier must be correctly unescaped
-(hence the `_UnslashQuotes` function found only in PHP Markdown).
-
-
-
-Headers below should appear exactly as they are typed (no backslash
-added or removed).
-
-Header "quoted\" again \\""
-===========================
-
-Header "quoted\" again \\""
----------------------------
-
-### Header "quoted\" again \\"" ###
-
-
-
-Test with tabs for `_Detab`:
-
- Code 'block' with some "tabs" and "quotes"
diff --git a/tests/php/PHP-Specific Bugs.xhtml b/tests/php/PHP-Specific Bugs.xhtml
deleted file mode 100644
index c982417b6..000000000
--- a/tests/php/PHP-Specific Bugs.xhtml
+++ /dev/null
@@ -1,17 +0,0 @@
-This tests for a bug where quotes escaped by PHP when using
-preg_replace with the /e modifier must be correctly unescaped
-(hence the _UnslashQuotes function found only in PHP Markdown).
-
-Headers below should appear exactly as they are typed (no backslash
-added or removed).
-
-Header "quoted\" again \""
-
-Header "quoted\" again \""
-
-Header "quoted\" again \""
-
-Test with tabs for _Detab:
-
-Code 'block' with some "tabs" and "quotes"
-
diff --git a/tests/php/Parens in URL.text b/tests/php/Parens in URL.text
deleted file mode 100644
index bb7be4fb8..000000000
--- a/tests/php/Parens in URL.text
+++ /dev/null
@@ -1,14 +0,0 @@
-[Inline link 1 with parens](/url\(test\) "title").
-
-[Inline link 2 with parens]( "title").
-
-[Inline link 3 with non-escaped parens](/url(test) "title").
-
-[Inline link 4 with non-escaped parens]( "title").
-
-[Reference link 1 with parens][1].
-
-[Reference link 2 with parens][2].
-
- [1]: /url(test) "title"
- [2]: "title"
diff --git a/tests/php/Parens in URL.xhtml b/tests/php/Parens in URL.xhtml
deleted file mode 100644
index a81aa029b..000000000
--- a/tests/php/Parens in URL.xhtml
+++ /dev/null
@@ -1,11 +0,0 @@
-Inline link 1 with parens.
-
-Inline link 2 with parens.
-
-Inline link 3 with non-escaped parens.
-
-Inline link 4 with non-escaped parens.
-
-Reference link 1 with parens.
-
-Reference link 2 with parens.
\ No newline at end of file
diff --git a/tests/php/Quotes in attributes.text b/tests/php/Quotes in attributes.text
deleted file mode 100644
index 97922860c..000000000
--- a/tests/php/Quotes in attributes.text
+++ /dev/null
@@ -1,5 +0,0 @@
-[Test](/"style="color:red)
-[Test](/'style='color:red)
-
-
-
diff --git a/tests/php/Quotes in attributes.xhtml b/tests/php/Quotes in attributes.xhtml
deleted file mode 100644
index e3fcfd205..000000000
--- a/tests/php/Quotes in attributes.xhtml
+++ /dev/null
@@ -1,5 +0,0 @@
-Test
-Test
-
-
-
diff --git a/tests/php/Tight blocks.text b/tests/php/Tight blocks.text
deleted file mode 100644
index ae4cdcb46..000000000
--- a/tests/php/Tight blocks.text
+++ /dev/null
@@ -1 +0,0 @@
-Paragraph and no space:
* ciao
Paragraph and 1 space:
* ciao
Paragraph and 3 spaces:
* ciao
Paragraph and 4 spaces:
* ciao
Paragraph before header:
#Header
Paragraph before blockquote:
>Some quote.
\ No newline at end of file
diff --git a/tests/php/Tight blocks.xhtml b/tests/php/Tight blocks.xhtml
deleted file mode 100644
index 86554308b..000000000
--- a/tests/php/Tight blocks.xhtml
+++ /dev/null
@@ -1,21 +0,0 @@
-Paragraph and no space:
-* ciao
-
-Paragraph and 1 space:
- * ciao
-
-Paragraph and 3 spaces:
- * ciao
-
-Paragraph and 4 spaces:
- * ciao
-
-Paragraph before header:
-
-Header
-
-Paragraph before blockquote:
-
-
- Some quote.
-
diff --git a/tests/php/extra/Abbr.text b/tests/php/extra/Abbr.text
deleted file mode 100644
index ae72f4ec1..000000000
--- a/tests/php/extra/Abbr.text
+++ /dev/null
@@ -1,31 +0,0 @@
-Some text about HTML, SGML and HTML4.
-
-Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French).
-
-*[HTML4]: Hyper Text Markup Language version 4
-*[HTML]: Hyper Text Markup Language
-*[SGML]: Standard Generalized Markup Language
-*[U.S.A.]: United States of America
-*[É.U.] : États-Unis d'Amérique
-*[É.-U. d'A.] : États-Unis d'Amérique
-
-And here we have a CD, some CDs, and some other CD's.
-
-*[CD]: Compact Disk
-
-Let's transfert documents through TCP/IP, using TCP packets.
-
-*[IP]: Internet Protocol
-*[TCP]: Transmission Control Protocol
-
- ---
-
-Bienvenue sur [CMS](http://www.bidulecms.com "Bidule CMS").
-
-*[CMS]: Content Management System
-
- ---
-
-ATCCE
-
-*[ATCCE]: Abbreviation "Testing" Correct 'Character' < Escapes >
\ No newline at end of file
diff --git a/tests/php/extra/Abbr.xhtml b/tests/php/extra/Abbr.xhtml
deleted file mode 100644
index 8beaa2e89..000000000
--- a/tests/php/extra/Abbr.xhtml
+++ /dev/null
@@ -1,15 +0,0 @@
-Some text about HTML, SGML and HTML4.
-
-Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French).
-
-And here we have a CD, some CDs, and some other CD's.
-
-Let's transfert documents through TCP/IP, using TCP packets.
-
-
-
-Bienvenue sur CMS.
-
-
-
-ATCCE
diff --git a/tests/php/extra/Definition Lists.text b/tests/php/extra/Definition Lists.text
deleted file mode 100644
index 5b3bdb6bd..000000000
--- a/tests/php/extra/Definition Lists.text
+++ /dev/null
@@ -1,115 +0,0 @@
-A simple definition list:
-
-Term 1
-: Definition 1
-
-Term 2
-: Definition 2
-
-With multiple terms:
-
-Term 1
-Term 2
-: Definition 1
-
-Term 3
-Term 4
-: Definition 2
-
-With multiple definitions:
-
-Term 1
-: Definition 1
-: Definition 2
-
-Term 2
-: Definition 3
-: Definition 4
-
-With multiple lines per definition:
-
-Term 1
-: Definition 1 line 1 ...
-Definition 1 line 2
-: Definition 2 line 1 ...
-Definition 2 line 2
-
-Term 2
-: Definition 3 line 2 ...
- Definition 3 line 2
-: Definition 4 line 2 ...
- Definition 4 line 2
-
-With paragraphs:
-
-Term 1
-
-: Definition 1 (paragraph)
-
-Term 2
-
-: Definition 2 (paragraph)
-
-With multiple paragraphs:
-
-Term 1
-
-: Definition 1 paragraph 1 line 1 ...
- Definition 1 paragraph 1 line 2
-
- Definition 1 paragraph 2 line 1 ...
- Definition 1 paragraph 2 line 2
-
-Term 2
-
-: Definition 1 paragraph 1 line 1 ...
-Definition 1 paragraph 1 line 2 (lazy)
-
- Definition 1 paragraph 2 line 1 ...
-Definition 1 paragraph 2 line 2 (lazy)
-
-* * *
-
-A mix:
-
-Term 1
-Term 2
-
-: Definition 1 paragraph 1 line 1 ...
-Definition 1 paragraph 1 line 2 (lazy)
-
- Definition 1 paragraph 2 line 1 ...
- Definition 1 paragraph 2 line 2
-
-: Definition 2 paragraph 1 line 1 ...
-Definition 2 paragraph 1 line 2 (lazy)
-
-Term 3
-: Definition 3 (no paragraph)
-: Definition 4 (no paragraph)
-: Definition 5 line 1 ...
- Definition 5 line 2 (no paragraph)
-
-: Definition 6 paragraph 1 line 1 ...
-Definition 6 paragraph 1 line 2
-: Definition 7 (no paragraph)
-: Definition 8 paragraph 1 line 1 (forced paragraph) ...
- Definition 8 paragraph 1 line 2
-
- Definition 8 paragraph 2 line 1
-
-Term 4
-: Definition 9 paragraph 1 line 1 (forced paragraph) ...
- Definition 9 paragraph 1 line 2
-
- Definition 9 paragraph 2 line 1
-: Definition 10 (no paragraph)
-
-* * *
-
-Special cases:
-
-Term
-
-: code block
- as first element of a definition
\ No newline at end of file
diff --git a/tests/php/extra/Definition Lists.xhtml b/tests/php/extra/Definition Lists.xhtml
deleted file mode 100644
index f99f4562b..000000000
--- a/tests/php/extra/Definition Lists.xhtml
+++ /dev/null
@@ -1,155 +0,0 @@
-A simple definition list:
-
-
-- Term 1
-- Definition 1
-
-- Term 2
-- Definition 2
-
-
-With multiple terms:
-
-
-- Term 1
-- Term 2
-- Definition 1
-
-- Term 3
-- Term 4
-- Definition 2
-
-
-With multiple definitions:
-
-
-- Term 1
-- Definition 1
-
-- Definition 2
-
-- Term 2
-- Definition 3
-
-- Definition 4
-
-
-With multiple lines per definition:
-
-
-- Term 1
-- Definition 1 line 1 ...
-Definition 1 line 2
-
-- Definition 2 line 1 ...
-Definition 2 line 2
-
-- Term 2
-- Definition 3 line 2 ...
-Definition 3 line 2
-
-- Definition 4 line 2 ...
-Definition 4 line 2
-
-
-With paragraphs:
-
-
-- Term 1
--
-
Definition 1 (paragraph)
-
-
-- Term 2
--
-
Definition 2 (paragraph)
-
-
-
-With multiple paragraphs:
-
-
-- Term 1
--
-
Definition 1 paragraph 1 line 1 ...
-Definition 1 paragraph 1 line 2
-
-Definition 1 paragraph 2 line 1 ...
-Definition 1 paragraph 2 line 2
-
-
-- Term 2
--
-
Definition 1 paragraph 1 line 1 ...
-Definition 1 paragraph 1 line 2 (lazy)
-
-Definition 1 paragraph 2 line 1 ...
-Definition 1 paragraph 2 line 2 (lazy)
-
-
-
-
-
-A mix:
-
-
-- Term 1
-- Term 2
--
-
Definition 1 paragraph 1 line 1 ...
-Definition 1 paragraph 1 line 2 (lazy)
-
-Definition 1 paragraph 2 line 1 ...
-Definition 1 paragraph 2 line 2
-
-
--
-
Definition 2 paragraph 1 line 1 ...
-Definition 2 paragraph 1 line 2 (lazy)
-
-
-- Term 3
-- Definition 3 (no paragraph)
-
-- Definition 4 (no paragraph)
-
-- Definition 5 line 1 ...
-Definition 5 line 2 (no paragraph)
-
--
-
Definition 6 paragraph 1 line 1 ...
-Definition 6 paragraph 1 line 2
-
-
-- Definition 7 (no paragraph)
-
--
-
Definition 8 paragraph 1 line 1 (forced paragraph) ...
-Definition 8 paragraph 1 line 2
-
-Definition 8 paragraph 2 line 1
-
-
-- Term 4
--
-
Definition 9 paragraph 1 line 1 (forced paragraph) ...
-Definition 9 paragraph 1 line 2
-
-Definition 9 paragraph 2 line 1
-
-
-- Definition 10 (no paragraph)
-
-
-
-
-Special cases:
-
-
-- Term
--
-
code block
-as first element of a definition
-
-
-
diff --git a/tests/php/extra/Emphasis.text b/tests/php/extra/Emphasis.text
deleted file mode 100644
index 88e93d4db..000000000
--- a/tests/php/extra/Emphasis.text
+++ /dev/null
@@ -1,80 +0,0 @@
-Combined emphasis:
-
-1. ***test test***
-2. ___test test___
-3. *test **test***
-4. **test *test***
-5. ***test* test**
-6. ***test** test*
-7. ***test* test**
-8. **test *test***
-9. *test **test***
-10. _test __test___
-11. __test _test___
-12. ___test_ test__
-13. ___test__ test_
-14. ___test_ test__
-15. __test _test___
-16. _test __test___
-
-
-Incorrect nesting:
-
-1. *test **test* test**
-2. _test __test_ test__
-3. **test *test** test*
-4. __test _test__ test_
-5. *test *test* test*
-6. _test _test_ test_
-7. **test **test** test**
-8. __test __test__ test__
-
-
-
-No emphasis:
-
-1. test* test *test
-2. test** test **test
-3. test_ test _test
-4. test__ test __test
-
-
-
-Middle-word emphasis (asterisks):
-
-1. *a*b
-2. a*b*
-3. a*b*c
-4. **a**b
-5. a**b**
-6. a**b**c
-
-
-Middle-word emphasis (underscore):
-
-1. _a_b
-2. a_b_
-3. a_b_c
-4. __a__b
-5. a__b__
-6. a__b__c
-
-my_precious_file.txt
-
-
-## Tricky Cases
-
-E**. **Test** TestTestTest
-
-E**. **Test** Test Test Test
-
-
-## Overlong emphasis
-
-Name: ____________
-Organization: ____
-Region/Country: __
-
-_____Cut here_____
-
-____Cut here____
diff --git a/tests/php/extra/Emphasis.xhtml b/tests/php/extra/Emphasis.xhtml
deleted file mode 100644
index 1fa821899..000000000
--- a/tests/php/extra/Emphasis.xhtml
+++ /dev/null
@@ -1,83 +0,0 @@
-Combined emphasis:
-
-
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-- test test
-
-
-Incorrect nesting:
-
-
-- *test test* test
-- _test test_ test
-- test *test test*
-- test _test test_
-- test *test test*
-- test _test test_
-- test **test test**
-- test __test test__
-
-
-No emphasis:
-
-
-- test* test *test
-- test** test **test
-- test_ test _test
-- test__ test __test
-
-
-Middle-word emphasis (asterisks):
-
-
-- ab
-- ab
-- abc
-- ab
-- ab
-- abc
-
-
-Middle-word emphasis (underscore):
-
-
-- _a_b
-- a_b_
-- a_b_c
-- __a__b
-- a__b__
-- a__b__c
-
-
-my_precious_file.txt
-
-Tricky Cases
-
-E**. Test TestTestTest
-
-E**. Test Test Test Test
-
-
-Overlong emphasis
-
-Name: ____________
-Organization: ____
-Region/Country: __
-
-_____Cut here_____
-
-____Cut here____
diff --git a/tests/php/extra/Fenced Code Blocks.text b/tests/php/extra/Fenced Code Blocks.text
deleted file mode 100644
index f2400ff50..000000000
--- a/tests/php/extra/Fenced Code Blocks.text
+++ /dev/null
@@ -1,60 +0,0 @@
-~~~
-Fenced
-~~~
-
-Code block starting and ending with empty lines:
-~~~
-
-
-Fenced
-
-
-~~~
-
-Indented code block containing fenced code block sample:
-
- ~~~
- Fenced
- ~~~
-
-Fenced code block with indented code block sample:
-
-~~~
-Some text
-
- Indented code block sample code
-~~~
-
-Fenced code block with long markers:
-
-~~~~~~~~~~~~~~~~~~
-Fenced
-~~~~~~~~~~~~~~~~~~
-
-Fenced code block with fenced code block markers of different length in it:
-
-~~~~
-In code block
-~~~
-Still in code block
-~~~~~
-Still in code block
-~~~~
-
-Fenced code block with Markdown header and horizontal rule:
-
-~~~
-#test
----
-~~~
-
-Fenced code block with link definitions, footnote definition and
-abbreviation definitions:
-
-~~~
-[example]: http://example.com/
-
-[^1]: Footnote def
-
-*[HTML]: HyperText Markup Language
-~~~
\ No newline at end of file
diff --git a/tests/php/extra/Fenced Code Blocks.xhtml b/tests/php/extra/Fenced Code Blocks.xhtml
deleted file mode 100644
index 518908c18..000000000
--- a/tests/php/extra/Fenced Code Blocks.xhtml
+++ /dev/null
@@ -1,53 +0,0 @@
-Fenced
-
-
-Code block starting and ending with empty lines:
-
-
Fenced
-
-
-
-
-Indented code block containing fenced code block sample:
-
-~~~
-Fenced
-~~~
-
-
-Fenced code block with indented code block sample:
-
-Some text
-
- Indented code block sample code
-
-
-Fenced code block with long markers:
-
-Fenced
-
-
-Fenced code block with fenced code block markers of different length in it:
-
-In code block
-~~~
-Still in code block
-~~~~~
-Still in code block
-
-
-Fenced code block with Markdown header and horizontal rule:
-
-#test
----
-
-
-Fenced code block with link definitions, footnote definition and
-abbreviation definitions:
-
-[example]: http://example.com/
-
-[^1]: Footnote def
-
-*[HTML]: HyperText Markup Language
-
diff --git a/tests/php/extra/Footnotes.text b/tests/php/extra/Footnotes.text
deleted file mode 100644
index 40192e961..000000000
--- a/tests/php/extra/Footnotes.text
+++ /dev/null
@@ -1,61 +0,0 @@
-This is the first paragraph.[^first]
-
-[^first]: This is the first note.
-
-* List item one.[^second]
-* List item two.[^third]
-
-[^third]: This is the third note, defined out of order.
-[^second]: This is the second note.
-[^fourth]: This is the fourth note.
-
-# Header[^fourth]
-
-Some paragraph with a footnote[^1], and another[^2].
-
-[^1]: Content for fifth footnote.
-[^2]: Content for sixth footnote spaning on
- three lines, with some span-level markup like
- _emphasis_, a [link][].
-
-[link]: http://www.michelf.com/
-
-Another paragraph with a named footnote[^fn-name].
-
-[^fn-name]:
- Footnote beginning on the line next to the marker.
-
-This paragraph should not have a footnote marker since
-the footnote is undefined.[^3]
-
-This paragraph should not have a footnote marker since
-the footnote has already been used before.[^1]
-
-This paragraph links to a footnote with plenty of
-block-level content.[^block]
-
-[^block]:
- Paragraph.
-
- * List item
-
- > Blockquote
-
- Code block
-
-This paragraph host the footnote reference within a
-footnote test[^reference].
-
-[^reference]:
- This footnote has a footnote of its own.[^nested]
-
-[^nested]:
- This footnote should appear even though as it is refered
- from another footnote. But [^reference] should be litteral
- since the footnote with that name has already been used.
-
- - - -
-
-Testing unusual footnote name[^1$^!"'].
-
-[^1$^!"']: Haha!
diff --git a/tests/php/extra/Footnotes.xhtml b/tests/php/extra/Footnotes.xhtml
deleted file mode 100644
index e33639de9..000000000
--- a/tests/php/extra/Footnotes.xhtml
+++ /dev/null
@@ -1,96 +0,0 @@
-This is the first paragraph.1
-
-
-- List item one.2
-- List item two.3
-
-
-Header4
-
-Some paragraph with a footnote5, and another6.
-
-Another paragraph with a named footnote7.
-
-This paragraph should not have a footnote marker since
-the footnote is undefined.[^3]
-
-This paragraph should not have a footnote marker since
-the footnote has already been used before.[^1]
-
-This paragraph links to a footnote with plenty of
-block-level content.8
-
-This paragraph host the footnote reference within a
-footnote test9.
-
-
-
-Testing unusual footnote name10.
-
-
diff --git a/tests/php/extra/Inline HTML with Markdown content.text b/tests/php/extra/Inline HTML with Markdown content.text
deleted file mode 100644
index 1eb54502d..000000000
--- a/tests/php/extra/Inline HTML with Markdown content.text
+++ /dev/null
@@ -1,104 +0,0 @@
-# Markdown inside code blocks
-
-
-foo
-
-
-
-foo
-
-
-
-foo
-
-
-
-| test _emphasis_ (span) |
-
-
-
-| test _emphasis_ (span) |
-
-
-
-| test _emphasis_ (block) |
-
-
-## More complicated
-
-
-|
-* this is _not_ a list item |
-|
-* this is _not_ a list item |
-|
-* this _is_ a list item
- |
-
-
-## With indent
-
-
-
- This text is no code block: if it was, the
- closing `
` would be too and the HTML block
- would be invalid.
-
- Markdown content in HTML blocks is assumed to be
- indented the same as the block opening tag.
-
- **This should be the third paragraph after the header.**
-
-
-
-## Code block with rogue `
`s in Markdown code span and block
-
-
-
-
- This is a code block however:
-
-
-
- Funny isn't it? Here is a code span: `
`.
-
-
-
-
-
-
- * List item, not a code block
-
-Some text
-
- This is a code block.
-
-
-
-## No code block in markdown span mode
-
-
- This is not a code block since Markdown parse paragraph
- content as span. Code spans like `
` are allowed though.
-
-
-_Hello_ _world_
-
-## Preserving attributes and tags on more than one line:
-
-
-Some _span_ content.
-
-
-
-## Header confusion bug
-
-
-
-| Hello World!
-============
-
-Hello World! |
-
-
diff --git a/tests/php/extra/Inline HTML with Markdown content.xhtml b/tests/php/extra/Inline HTML with Markdown content.xhtml
deleted file mode 100644
index 4751f7867..000000000
--- a/tests/php/extra/Inline HTML with Markdown content.xhtml
+++ /dev/null
@@ -1,125 +0,0 @@
-Markdown inside code blocks
-
-
-
-
-
-
-
-
-
-
-
-
-|
-
- test emphasis (block)
-
- |
-
-
-More complicated
-
-
-|
-* this is not a list item |
-|
-* this is not a list item |
-|
-
-
-
- |
-
-
-With indent
-
-
-
-
-
This text is no code block: if it was, the
-closing <div> would be too and the HTML block
-would be invalid.
-
-
Markdown content in HTML blocks is assumed to be
-indented the same as the block opening tag.
-
-
This should be the third paragraph after the header.
-
-
-
-
-Code block with rogue </div>s in Markdown code span and block
-
-
-
-
-
This is a code block however:
-
-
</div>
-
-
-
Funny isn't it? Here is a code span: </div>.
-
-
-
-
-
-
-
-
-- List item, not a code block
-
-
-
Some text
-
-
This is a code block.
-
-
-
-
-
-No code block in markdown span mode
-
-
- This is not a code block since Markdown parse paragraph
- content as span. Code spans like </p> are allowed though.
-
-
-Hello world
-
-Preserving attributes and tags on more than one line:
-
-
-Some span content.
-
-
-Header confusion bug
-
-
-
-| Hello World!
-============
-
-Hello World! |
-
-
\ No newline at end of file
diff --git a/tests/php/extra/Tables.text b/tests/php/extra/Tables.text
deleted file mode 100644
index 71b93ca62..000000000
--- a/tests/php/extra/Tables.text
+++ /dev/null
@@ -1,104 +0,0 @@
-# Simple tables
-
-Header 1 | Header 2
---------- | ---------
-Cell 1 | Cell 2
-Cell 3 | Cell 4
-
-With leading pipes:
-
-| Header 1 | Header 2
-| --------- | ---------
-| Cell 1 | Cell 2
-| Cell 3 | Cell 4
-
-With tailing pipes:
-
-Header 1 | Header 2 |
---------- | --------- |
-Cell 1 | Cell 2 |
-Cell 3 | Cell 4 |
-
-With leading and tailing pipes:
-
-| Header 1 | Header 2 |
-| --------- | --------- |
-| Cell 1 | Cell 2 |
-| Cell 3 | Cell 4 |
-
-* * *
-
-# One-column one-row table
-
-With leading pipes:
-
-| Header
-| -------
-| Cell
-
-With tailing pipes:
-
-Header |
-------- |
-Cell |
-
-With leading and tailing pipes:
-
-| Header |
-| ------- |
-| Cell |
-
-* * *
-
-Table alignement:
-
-| Default | Right | Center | Left |
-| --------- |:--------- |:---------:| ---------:|
-| Long Cell | Long Cell | Long Cell | Long Cell |
-| Cell | Cell | Cell | Cell |
-
-Table alignement (alternate spacing):
-
-| Default | Right | Center | Left |
-| --------- | :-------- | :-------: | --------: |
-| Long Cell | Long Cell | Long Cell | Long Cell |
-| Cell | Cell | Cell | Cell |
-
-* * *
-
-# Empty cells
-
-| Header 1 | Header 2 |
-| --------- | --------- |
-| A | B |
-| C | |
-
-Header 1 | Header 2
---------- | ---------
-A | B
- | D
-
-* * *
-
-# Missing tailing pipe
-
-Header 1 | Header 2
---------- | --------- |
-Cell | Cell |
-Cell | Cell |
-
-Header 1 | Header 2 |
---------- | ---------
-Cell | Cell |
-Cell | Cell |
-
-Header 1 | Header 2 |
---------- | --------- |
-Cell | Cell
-Cell | Cell |
-
-Header 1 | Header 2 |
---------- | --------- |
-Cell | Cell |
-Cell | Cell
-
diff --git a/tests/php/extra/Tables.xhtml b/tests/php/extra/Tables.xhtml
deleted file mode 100644
index e36286c8b..000000000
--- a/tests/php/extra/Tables.xhtml
+++ /dev/null
@@ -1,310 +0,0 @@
-Simple tables
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell 1 |
- Cell 2 |
-
-
- | Cell 3 |
- Cell 4 |
-
-
-
-
-With leading pipes:
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell 1 |
- Cell 2 |
-
-
- | Cell 3 |
- Cell 4 |
-
-
-
-
-With tailing pipes:
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell 1 |
- Cell 2 |
-
-
- | Cell 3 |
- Cell 4 |
-
-
-
-
-With leading and tailing pipes:
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell 1 |
- Cell 2 |
-
-
- | Cell 3 |
- Cell 4 |
-
-
-
-
-
-
-One-column one-row table
-
-With leading pipes:
-
-
-
-
- | Header |
-
-
-
-
- | Cell |
-
-
-
-
-With tailing pipes:
-
-
-
-
- | Header |
-
-
-
-
- | Cell |
-
-
-
-
-With leading and tailing pipes:
-
-
-
-
- | Header |
-
-
-
-
- | Cell |
-
-
-
-
-
-
-Table alignement:
-
-
-
-
- | Default |
- Right |
- Center |
- Left |
-
-
-
-
- | Long Cell |
- Long Cell |
- Long Cell |
- Long Cell |
-
-
- | Cell |
- Cell |
- Cell |
- Cell |
-
-
-
-
-Table alignement (alternate spacing):
-
-
-
-
- | Default |
- Right |
- Center |
- Left |
-
-
-
-
- | Long Cell |
- Long Cell |
- Long Cell |
- Long Cell |
-
-
- | Cell |
- Cell |
- Cell |
- Cell |
-
-
-
-
-
-
-Empty cells
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | A |
- B |
-
-
- | C |
- |
-
-
-
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | A |
- B |
-
-
- |
- D |
-
-
-
-
-
-
-Missing tailing pipe
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell |
- Cell |
-
-
- | Cell |
- Cell |
-
-
-
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell |
- Cell |
-
-
- | Cell |
- Cell |
-
-
-
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell |
- Cell |
-
-
- | Cell |
- Cell |
-
-
-
-
-
-
-
- | Header 1 |
- Header 2 |
-
-
-
-
- | Cell |
- Cell |
-
-
- | Cell |
- Cell |
-
-
-
\ No newline at end of file
diff --git a/tests/test_syntax/blocks/test_code_blocks.py b/tests/test_syntax/blocks/test_code_blocks.py
index dbbb9c79a..093abb014 100644
--- a/tests/test_syntax/blocks/test_code_blocks.py
+++ b/tests/test_syntax/blocks/test_code_blocks.py
@@ -86,3 +86,14 @@ def test_codeblock_escape(self):
"""
)
)
+
+ def test_codeblock_second_line(self):
+ self.assertMarkdownRenders(
+ '\n Code on the second line',
+ self.dedent(
+ """
+ Code on the second line
+
+ """
+ )
+ )
diff --git a/tests/test_syntax/blocks/test_html_blocks.py b/tests/test_syntax/blocks/test_html_blocks.py
index 85b0c48de..33375d3ad 100644
--- a/tests/test_syntax/blocks/test_html_blocks.py
+++ b/tests/test_syntax/blocks/test_html_blocks.py
@@ -1374,6 +1374,32 @@ def test_nested_closed_startendtag(self):
'
'
)
+ def test_multiline_attributes(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+
+ text
+
+
+
+ """
+ ),
+ self.dedent(
+ """
+
+ text
+
+
+
+ """
+ )
+ )
+
def test_auto_links_dont_break_parser(self):
self.assertMarkdownRenders(
self.dedent(
diff --git a/tests/test_syntax/blocks/test_paragraphs.py b/tests/test_syntax/blocks/test_paragraphs.py
index f09731e72..21388762e 100644
--- a/tests/test_syntax/blocks/test_paragraphs.py
+++ b/tests/test_syntax/blocks/test_paragraphs.py
@@ -227,3 +227,30 @@ def test_paragraphs_CR_LF(self):
"""
)
)
+
+ def test_paragraphs_no_list(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+ Paragraph:
+ * no list
+
+ Paragraph
+ * no list
+
+ Paragraph:
+ * no list
+
+ Paragraph:
+ * no list
+ """
+ ),
+ 'Paragraph:\n'
+ '* no list
\n'
+ 'Paragraph\n'
+ ' * no list
\n'
+ 'Paragraph:\n'
+ ' * no list
\n'
+ 'Paragraph:\n'
+ ' * no list
',
+ )
diff --git a/tests/test_syntax/inline/test_code.py b/tests/test_syntax/inline/test_code.py
new file mode 100644
index 000000000..9fc379008
--- /dev/null
+++ b/tests/test_syntax/inline/test_code.py
@@ -0,0 +1,64 @@
+"""
+Python Markdown
+
+A Python implementation of John Gruber's Markdown.
+
+Documentation: https://python-markdown.github.io/
+GitHub: https://github.com/Python-Markdown/markdown/
+PyPI: https://pypi.org/project/Markdown/
+
+Started by Manfred Stienstra (http://www.dwerg.net/).
+Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org).
+Currently maintained by Waylan Limberg (https://github.com/waylan),
+Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser).
+
+Copyright 2007-2019 The Python Markdown Project (v. 1.7 and later)
+Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
+Copyright 2004 Manfred Stienstra (the original version)
+
+License: BSD (see LICENSE.md for details).
+"""
+
+from markdown.test_tools import TestCase
+
+
+class TestCode(TestCase):
+
+ def test_code_comments(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+ Some code `` in a paragraph.
+
+ Some code ``
+ in a paragraph.
+ """
+ ),
+ self.dedent(
+ """
+ Some code <!-- that is not HTML --> in a paragraph.
+ Some code <!--
+ that is not HTML -->
+ in a paragraph.
+ """
+ )
+ )
+
+ def test_code_html(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+ html
+
+ Paragraph with code: `test
`.
+ """
+ ),
+ self.dedent(
+ """
+ html
+
+ Paragraph with code: <p>test</p>.
+ """
+ )
+ )
diff --git a/tests/test_syntax/inline/test_emphasis.py b/tests/test_syntax/inline/test_emphasis.py
index 29107c775..6e96ea32c 100644
--- a/tests/test_syntax/inline/test_emphasis.py
+++ b/tests/test_syntax/inline/test_emphasis.py
@@ -170,3 +170,24 @@ def test_complex_multple_emphasis_type_variant2(self):
'on the **1-4 row** of the AP Combat Table ***and*** receive',
'on the 1-4 row of the AP Combat Table and receive
'
)
+
+ def test_link_emphasis_outer(self):
+
+ self.assertMarkdownRenders(
+ '**[text](url)**',
+ 'text
'
+ )
+
+ def test_link_emphasis_inner(self):
+
+ self.assertMarkdownRenders(
+ '[**text**](url)',
+ 'text
'
+ )
+
+ def test_link_emphasis_inner_outer(self):
+
+ self.assertMarkdownRenders(
+ '**[**text**](url)**',
+ 'text
'
+ )
diff --git a/tests/test_syntax/inline/test_links.py b/tests/test_syntax/inline/test_links.py
index 702756894..e57bd995d 100644
--- a/tests/test_syntax/inline/test_links.py
+++ b/tests/test_syntax/inline/test_links.py
@@ -12,7 +12,7 @@
Currently maintained by Waylan Limberg (https://github.com/waylan),
Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser).
-Copyright 2007-2023 The Python Markdown Project (v. 1.7 and later)
+Copyright 2007-2019 The Python Markdown Project (v. 1.7 and later)
Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
Copyright 2004 Manfred Stienstra (the original version)
@@ -36,6 +36,30 @@ def test_nested_round_brackets(self):
"""Text more text
"""
)
+ def test_nested_escaped_brackets(self):
+ self.assertMarkdownRenders(
+ R"""[Text](/url\(test\) "title").""",
+ """Text.
"""
+ )
+
+ def test_nested_escaped_brackets_and_angles(self):
+ self.assertMarkdownRenders(
+ R"""[Text]( "title").""",
+ """Text.
"""
+ )
+
+ def test_nested_unescaped_brackets(self):
+ self.assertMarkdownRenders(
+ R"""[Text](/url(test) "title").""",
+ """Text.
"""
+ )
+
+ def test_nested_unescaped_brackets_and_angles(self):
+ self.assertMarkdownRenders(
+ R"""[Text]( "title").""",
+ """Text.
"""
+ )
+
def test_uneven_brackets_with_titles1(self):
self.assertMarkdownRenders(
"""[Text](http://link.com/("title") more text""",
@@ -134,6 +158,12 @@ def test_amp_in_url(self):
'title
'
)
+ def test_angles_and_nonsense_url(self):
+ self.assertMarkdownRenders(
+ '[test nonsense](}]*+|&)>).',
+ 'test nonsense.
'
+ )
+
class TestReferenceLinks(TestCase):
@@ -384,3 +414,23 @@ def test_ref_link_nested_right_bracket(self):
"""
)
)
+
+ def test_ref_round_brackets(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+ [Text][1].
+
+ [Text][2].
+
+ [1]: /url(test) "title"
+ [2]: "title"
+ """
+ ),
+ self.dedent(
+ """
+ Text.
+ Text.
+ """
+ )
+ )