aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog.txt35
-rw-r--r--spec.txt52
2 files changed, 73 insertions, 14 deletions
diff --git a/changelog.txt b/changelog.txt
index 4ba1783..6881c13 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,38 @@
+[0.28]
+
+ * Allow unlimited balanced pairs of parentheses in link URLs
+ (@kivikakk, jgm/cmark#166). The rationale is that there are many URLs
+ containing unescaped nested parentheses.
+ * Change Rule 14 for Emphasis. Previously the nesting
+ Strong (Emph (...)) was preferred over Emph (Strong (...)).
+ This change makes Emph (Strong (...)) preferred.
+ Note that the commonmark reference implementations
+ were not entirely consistent about this rule, giving
+ different results for
+
+ ***hi***
+
+ and
+
+ ***hi****
+
+ This change simplifies parsing. It goes against the majority
+ of implementations, but only on something utterly trivial.
+ * Acknowledge Aaron Swartz's role in developing Markdown.
+ * Remove misleading backslash in example for disabling image markup
+ (Matthias Geier).
+ * Fix Unicode terminology (general category, not class)
+ (Philipp Matthias Schaefer).
+ * Add another illustrative case for code spans (#463).
+ * Remove possibly misleading 'either's (#467).
+ * Fix typo (Aidan Woods).
+ * Clarify that some blocks can contain code spans (Matthias Geier).
+ * Fix typo and clarified tab expansion rule (Scott Abbey).
+ * Add a missing "iff" (Matthias Geier).
+ * Add release checklist.
+ * Added npm package for spec (Vitaly Puzrin).
+ * Remove SPEC variable from Makefile.
+
[0.27]
* Update statement on blank lines and lists (Jesse Rosenthal).
diff --git a/spec.txt b/spec.txt
index 690bbb1..f14b227 100644
--- a/spec.txt
+++ b/spec.txt
@@ -1,8 +1,8 @@
---
title: CommonMark Spec
author: John MacFarlane
-version: 0.27
-date: '2016-11-18'
+version: 0.28
+date: '2017-08-01'
license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)'
...
@@ -483,7 +483,7 @@ We can think of a document as a sequence of
quotations, lists, headings, rules, and code blocks. Some blocks (like
block quotes and list items) contain other blocks; others (like
headings and paragraphs) contain [inline](@) content---text,
-links, emphasized text, images, code, and so on.
+links, emphasized text, images, code spans, and so on.
## Precedence
@@ -1645,6 +1645,15 @@ With tildes:
</code></pre>
````````````````````````````````
+Fewer than three backticks is not enough:
+
+```````````````````````````````` example
+``
+foo
+``
+.
+<p><code>foo</code></p>
+````````````````````````````````
The closing code fence must use the same character as the opening
fence:
@@ -3670,11 +3679,15 @@ The following rules define [list items]:
If the list item is ordered, then it is also assigned a start
number, based on the ordered list marker.
- Exceptions: When the first list item in a [list] interrupts
- a paragraph---that is, when it starts on a line that would
- otherwise count as [paragraph continuation text]---then (a)
- the lines *Ls* must not begin with a blank line, and (b) if
- the list item is ordered, the start number must be 1.
+ Exceptions:
+
+ 1. When the first list item in a [list] interrupts
+ a paragraph---that is, when it starts on a line that would
+ otherwise count as [paragraph continuation text]---then (a)
+ the lines *Ls* must not begin with a blank line, and (b) if
+ the list item is ordered, the start number must be 1.
+ 2. If any line is a [thematic break][thematic breaks] then
+ that line is not a list item.
For example, let *Ls* be the lines
@@ -5829,6 +5842,15 @@ we just have literal backticks:
<p>`foo</p>
````````````````````````````````
+The following case also illustrates the need for opening and
+closing backtick strings to be equal in length:
+
+```````````````````````````````` example
+`foo``bar``
+.
+<p>`foo<code>bar</code></p>
+````````````````````````````````
+
## Emphasis and strong emphasis
@@ -5878,19 +5900,20 @@ for efficient parsing strategies that do not backtrack.
First, some definitions. A [delimiter run](@) is either
a sequence of one or more `*` characters that is not preceded or
-followed by a `*` character, or a sequence of one or more `_`
-characters that is not preceded or followed by a `_` character.
+followed by a non-backslash-escaped `*` character, or a sequence
+of one or more `_` characters that is not preceded or followed by
+a non-backslash-escaped `_` character.
A [left-flanking delimiter run](@) is
a [delimiter run] that is (a) not followed by [Unicode whitespace],
-and (b) either not followed by a [punctuation character], or
+and (b) not followed by a [punctuation character], or
preceded by [Unicode whitespace] or a [punctuation character].
For purposes of this definition, the beginning and the end of
the line count as Unicode whitespace.
A [right-flanking delimiter run](@) is
a [delimiter run] that is (a) not preceded by [Unicode whitespace],
-and (b) either not preceded by a [punctuation character], or
+and (b) not preceded by a [punctuation character], or
followed by [Unicode whitespace] or a [punctuation character].
For purposes of this definition, the beginning and the end of
the line count as Unicode whitespace.
@@ -6010,7 +6033,7 @@ the following principles resolve ambiguity:
`<em><em>...</em></em>`.
14. An interpretation `<em><strong>...</strong></em>` is always
- preferred to `<strong><em>..</em></strong>`.
+ preferred to `<strong><em>...</em></strong>`.
15. When two potential emphasis or strong emphasis spans overlap,
so that the second begins before the first ends and ends after
@@ -7599,7 +7622,8 @@ characters inside the square brackets.
One label [matches](@)
another just in case their normalized forms are equal. To normalize a
-label, perform the *Unicode case fold* and collapse consecutive internal
+label, perform the *Unicode case fold*, strip leading and trailing
+[whitespace] and collapse consecutive internal
[whitespace] to a single space. If there are multiple
matching reference link definitions, the one that comes first in the
document is used. (It is desirable in such cases to emit a warning.)