aboutsummaryrefslogtreecommitdiff
path: root/changelog.txt
blob: 47092aeb74e0c058495472291b2307e263098d4a (plain)
  1. [0.21]
  2.   * Changed handling of tabs. Instead of having a preprocessing step
  3. where tabs are converted to spaces, we now handle tabs directly in
  4. the parser. This allows tabs to be retained in code blocks and code
  5. spans. This change adds some general language to the effect that,
  6. for purposes of determining block structure, tabs are to be treated
  7. just like equivalent spaces.
  8. * Completely rewrote spec for HTML blocks. The new spec provides
  9. better handling of tags like `<del>`, which can be either block
  10. or inline level content, better handling of custom tags, and
  11. better handling of verbatim contexts like `<pre>`, comments,
  12. and `<script>`.
  13. * Added 9-digit limit on ordered list start number.
  14. Some browsers use signed 32-bit integers for indexing
  15. the items of an ordered list, and this can lead to odd
  16. or undefined behavior if 10-digit start numbers are allowed.
  17. * Allow (non-initial) hyphens in tag names (#239). Custom
  18. tags in HTML5 must contain hyphens.
  19. * Clarified that HTML block is closed at end of containing
  20. block, not just end of the document (as with fenced code blocks.)
  21. * Specify nested link definition behavior in prose (Benjamin
  22. Dumke-von der Ehe).
  23. * Added test for edge case in link reference parsing
  24. (Benjamin Dumke-von der Ehe, see jgm/commonmark.js#49).
  25. * Added link tests with fragment identifiers and queries (David
  26. Green, #342).
  27. * Added test cases with a literal backslash in a link destination
  28. (see jgm/commonmark.js#45).
  29. * Added test for entity `&ngE;` which resolves to two code points.
  30. Put entity tests on several lines for readability (see
  31. jgm/commonmark.js#47).
  32. * Fixed broken "pre" literal HTML example. Contents
  33. weren't escaped properly.
  34. * Simplified defn of "unicode whitespace character,"
  35. rectifying omission of line tabulation, U+000B (#343).
  36. * Removed ambiguity in definition of "line" (#346).
  37. * Rewrapped two prose lines so `+` does not begin a line (#347).
  38. * Added another test with overlapping emphasis markers.
  39. * Fixed link to 'attributes'.
  40. * Revised appendix, "A parsing strategy," and
  41. added a description of emphasis/link parsing algorithm.
  42. * `spec_tests.py` - set options for conversions, set library
  43. paths in a more cross-platform way.
  44. * `spec_tests.py`: force utf-8 on test failure output and
  45. `--dump-tests` (#344, #345).
  46. * `spec_tests.py`: Properly handle visible tab `→` in expected output.
  47. * `normalize.py`: Don't collapse whitespace inside pre tag.
  48. * Added `spec.html` to `.gitignore` (#339).
  49. * Add `-dev` suffix to spec version after release (eksperimental).
  50. * Rename "non-space" to "non-whitespace" (Konstantin Zudov, #337).
  51. [0.20]
  52. * Require at least one nonspace character in a link label (#322).
  53. * Require replacement (rather than omission) of U+0000 (#327).
  54. * Clarified that entities resolving to U+0000 are to be
  55. replaced by U+FFFD (#323).
  56. * Removed statement that what counts as a line ending is
  57. platform-dependent (#326). We now count `\r`, `\n`,
  58. or `\r\n` as a line ending regardless of the platform.
  59. (The line ending styles can even be mixed in a single document.)
  60. * Defined "space."
  61. * Revised "non-space character". Previously a non-space character
  62. was defined as anything but a space (U+0020). Now it is anything
  63. that is not a whitespace character (as defined in the spec).
  64. * Clarified that tab expansion is a preprocessing step (#330).
  65. * Clarified lazy block quote examples (#328).
  66. * Clarified precedence of indentation that meets conditions for
  67. both list item continuation blocks and indented code.
  68. * Added a test case with `#` directly followed by a letter
  69. (not an ATX header).
  70. * Added two test cases illustrating that a list at the
  71. outer level can have items that are indented by more
  72. than four spaces (see commonmark.js#42 and
  73. <http://talk.commonmark.org/t/odd-list-behaviour/1189>).
  74. * Fixed typo in emphasis examples.
  75. [0.19]
  76. * Fixed rules for `_`-based emphasis and strong emphasis (#317).
  77. Previously `_(bar)_.` was not parsed as containing emphasis
  78. because the closing delimiter is both left- and right- flanking.
  79. This fix allows such delimiters, provided they're followed
  80. by punctuation (i.e., they have punctuation on both sides).
  81. Similarly, mutatis mutandis, for opening delimiters and for `__`.
  82. * Clarified definitions of left-flanking and right-flanking (#310).
  83. The spec now says explicitly that the beginning and end of line count
  84. as whitespace for purposes of this definition.
  85. * Clarified that a code fence followed by header line isn't a header (#306).
  86. * Fixed alignment in flankingness examples (cosmetic).
  87. * Fixed last "right flanking but not left flanking" example (#316).
  88. * Fixed a broken link (Konstantin Zudov).
  89. * Added link to list of implementations on wiki.
  90. * Fixed mistake in examples of left/right flanking delimiters
  91. (Konstantin Zudov).
  92. * Spell out `iff` (if and only if) the first time it is used (#309).
  93. * Fixed typos (isoroku, #309).
  94. * Clarified wording for soft line break: newline can't be preceded
  95. by two spaces or a backslash.
  96. * Replaced some references to UTF-8 that should be to unicode.
  97. * Fixed dingus link in tools/template.html.
  98. * Replaced obsolete reference to `spec2md.pl` in spec (#304).
  99. [0.18]
  100. * Added a shortcut link test with mismatched brackets (#282).
  101. * Added cases with newline whitespace around emphasis open delimiter
  102. (#282).
  103. * Added list item examples with no space after marker (#282).
  104. * Added additional test showing backslash escapes don't work in
  105. autolinks (#282).
  106. * Added test for multiline title in reference definition (#282).
  107. * Added a reference link definition test case (#282).
  108. * Clarified that link titles can't contain blank lines (#271).
  109. * Revised Rule 3 for list items (#275). Previously this just applied to
  110. empty list items. It has been rewritten to apply to any list item
  111. starting with a blank line, including items like:
  112. -
  113. ```
  114. code
  115. ```
  116. * Added U+000B and U+000C as whitespace characters (#300).
  117. * Added comment on sourcepos attribute format in DTD (#298).
  118. * Use `--smart` option in producing HTML version of spec.
  119. * Clarified that delimiter runs at beginning/end of line behave as
  120. if preceded/followed by whitespace (#302).
  121. * Ensure that URLs in examples have slash after domain.
  122. This helps with #9, making these tests less sensitive to
  123. the normalizer used.
  124. * Fixed typo (Robin Stocker).
  125. [0.17]
  126. * Improved rule limiting intraword `_` for emphasis and strong emphasis.
  127. To prevent intra-word emphasis, we used to check to see if
  128. the delimiter was followed/preceded by an ASCII alphanumeric.
  129. We now do something more elegant: whereas an opening `*` must
  130. be left-flanking, an opening `_` must be left-flanking *and
  131. not right-flanking*. And so on for the other cases.
  132. All the original tests passed except some tests with Russian
  133. text with internal `_`, which formerly created emphasis but no
  134. longer do with the new rule. These tests have been adjusted.
  135. A few new test cases have been added to illustrate the rule.
  136. * Added example with link break inside pointy braces (no link) (#295).
  137. * Added spec example: loose list with blank line after fenced code (#285).
  138. [0.16]
  139. * Rewrote beginning of Entities section, clarifying that only
  140. entities not in code blocks or spans are decoded.
  141. * Removed defective Example 449 (#284).
  142. * Fixed typo (#283).
  143. * Added intended two-space hard-breaks in Examples 521, 523.
  144. * Clarified that brackets in general don't take precedence over emph
  145. (#258).
  146. * Clarified that final newline is removed from paragraph content
  147. (#176).
  148. * Talk of "info string" rather than "attributes" for code blocks
  149. (#262).
  150. * Clarified precedence of code spans, HTML tags, autolinks (#259).
  151. * Fixed a number of internal links and duplicate references in the spec.
  152. * Linkify "info string" in spec.
  153. * Use shortcut reference links when possible in spec.txt.
  154. * cmark itself is now used to build spec.html, rather than pandoc.
  155. * Use shortcut reference links when possible in spec.txt. This
  156. relies on the new `spec2md.py` behavior of creating references
  157. for all internal anchors.
  158. * Moved some examples from block to inline HTML section.
  159. * Added examples of non-comments (#264).
  160. * Changed rule for comments to conform to HTML5 spec.
  161. * Made clear that any sequence of characters is a valid document
  162. (#266).
  163. * Changed wording: "is preferred" -> "takes precedence."
  164. * Regularized spelling of "non-space character" and added links
  165. (#260).
  166. * Use four spaces rather than five to show "four spaces is too much"
  167. (#261).
  168. [0.15]
  169. * Fixed some typos with "left-" and "right-flanking" delimiters in the
  170. section on emphasis and strong emphasis (#257).
  171. [0.14]
  172. * Clarified indented code blocks. Previously the spec said, wrongly,
  173. that a blank line was needed between a paragraph and a following
  174. code block. It is only needed between a code block and a following
  175. paragraph (due to lazy continuations). (Thanks to textnut.)
  176. * Added definitions of whitespace, unicode whitespace, punctuation,
  177. ASCII punctuation (#108).
  178. * Improved rules for emphasis and strong emphasis. This improves
  179. parsing of emphasis around punctuation. For background see
  180. <http://talk.commonmark.org/t/903/6>. The basic idea of the change
  181. is that if the delimiter is part of a delimiter clump that has
  182. punctuation to the left and a normal character (non-space,
  183. non-punctuation) to the right, it can only be an opener. If it has
  184. punctuation to the right and a normal character (non-space,
  185. non-punctuation) to the left, it can only be a closer. This handles
  186. cases like
  187. **Gomphocarpus (*Gomphocarpus physocarpus*, syn. *Asclepias
  188. physocarpa*)**
  189. and
  190. **foo "*bar*" foo**
  191. better than before.
  192. * Added test case for link-in-link-in-image (#252).
  193. * Fixed broken internal references.
  194. * Added another example of an unclarity in the canonical Markdown
  195. syntax description.
  196. * Reworded the principle of uniformity to be more general; it applies
  197. to all container blocks, not just list items.
  198. * Added a rule for empty list items (#242).
  199. * Clarified precedence of empty list items over setext header lines
  200. (#95).
  201. * Added an example with two blank lines in fenced code in a sublist (#180).
  202. * Added an explicit CC-BY-SA license to the spec (#55).
  203. [0.13]
  204. * Updated path of test program.
  205. * Use terminology "plain textual content" instead of "string."
  206. * Added condition that conforming parsers strip or replace NULL characters.
  207. * Changed Example 196 to reflect the spec's rules. It should not be a loose
  208. list as it has no blank lines.
  209. * Adjusted semantically insignificant formatting of HTML output.
  210. * Added example to spec of shortcut link with following space (#214).