commonmarker 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/commonmarker/cmark/CMakeLists.txt +3 -1
- data/ext/commonmarker/cmark/build/CMakeCache.txt +14 -8
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CMakeCCompiler.cmake +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CMakeCXXCompiler.cmake +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CMakeDetermineCompilerABI_C.bin +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CMakeDetermineCompilerABI_CXX.bin +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CMakeSystem.cmake +4 -4
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CompilerIdC/CMakeCCompilerId.c +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CompilerIdC/a.out +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/{3.7.1 → 3.7.2}/CompilerIdCXX/a.out +0 -0
- data/ext/commonmarker/cmark/build/CMakeFiles/CMakeError.log +6 -6
- data/ext/commonmarker/cmark/build/CMakeFiles/CMakeOutput.log +150 -150
- data/ext/commonmarker/cmark/build/CMakeFiles/Makefile.cmake +107 -107
- data/ext/commonmarker/cmark/build/CMakeFiles/Makefile2 +2 -2
- data/ext/commonmarker/cmark/build/Makefile +9 -9
- data/ext/commonmarker/cmark/build/api_test/CMakeFiles/api_test.dir/build.make +2 -2
- data/ext/commonmarker/cmark/build/api_test/CMakeFiles/api_test.dir/link.txt +1 -1
- data/ext/commonmarker/cmark/build/api_test/Makefile +9 -9
- data/ext/commonmarker/cmark/build/extensions/CMakeFiles/libcmarkextensions_static.dir/C.includecache +2 -0
- data/ext/commonmarker/cmark/build/extensions/CMakeFiles/libcmarkextensions_static.dir/build.make +2 -2
- data/ext/commonmarker/cmark/build/extensions/Makefile +9 -9
- data/ext/commonmarker/cmark/build/extensions/libcmarkextensions.a +0 -0
- data/ext/commonmarker/cmark/build/man/Makefile +9 -9
- data/ext/commonmarker/cmark/build/src/CMakeFiles/Export/lib/cmake/cmark-release.cmake +1 -1
- data/ext/commonmarker/cmark/build/src/CMakeFiles/cmark.dir/build.make +2 -2
- data/ext/commonmarker/cmark/build/src/CMakeFiles/cmark.dir/link.txt +1 -1
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/build.make +2 -2
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/link.txt +1 -1
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/C.includecache +2 -0
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/blocks.c.o +0 -0
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/build.make +2 -2
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/inlines.c.o +0 -0
- data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/latex.c.o +0 -0
- data/ext/commonmarker/cmark/build/src/Makefile +9 -9
- data/ext/commonmarker/cmark/build/src/cmake_install.cmake +9 -6
- data/ext/commonmarker/cmark/build/src/libcmark.a +0 -0
- data/ext/commonmarker/cmark/build/testdir/CTestTestfile.cmake +2 -2
- data/ext/commonmarker/cmark/build/testdir/Makefile +9 -9
- data/ext/commonmarker/cmark/src/CMakeLists.txt +39 -26
- data/ext/commonmarker/cmark/src/blocks.c +1 -1
- data/ext/commonmarker/cmark/src/cmark_extension_api.h +2 -0
- data/ext/commonmarker/cmark/src/inlines.c +30 -49
- data/ext/commonmarker/cmark/src/latex.c +3 -2
- data/ext/commonmarker/cmark/test/CMakeLists.txt +26 -21
- data/ext/commonmarker/cmark/test/extensions.txt +6 -6
- data/ext/commonmarker/cmark/test/pathological_tests.py +3 -0
- data/ext/commonmarker/cmark/test/regression.txt +8 -0
- data/ext/commonmarker/cmark/test/spec.txt +4 -4
- data/lib/commonmarker/version.rb +1 -1
- metadata +11 -11
|
@@ -7,6 +7,7 @@ extern "C" {
|
|
|
7
7
|
|
|
8
8
|
#include <cmark.h>
|
|
9
9
|
#include <render.h>
|
|
10
|
+
#include <buffer.h>
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* ## Extension Support
|
|
@@ -113,6 +114,7 @@ typedef struct delimiter {
|
|
|
113
114
|
struct delimiter *previous;
|
|
114
115
|
struct delimiter *next;
|
|
115
116
|
cmark_node *inl_text;
|
|
117
|
+
bufsize_t length;
|
|
116
118
|
int position;
|
|
117
119
|
unsigned char delim_char;
|
|
118
120
|
int can_open;
|
|
@@ -150,7 +150,7 @@ static void subject_from_buf(cmark_mem *mem, subject *e, cmark_strbuf *buffer,
|
|
|
150
150
|
e->refmap = refmap;
|
|
151
151
|
e->last_delim = NULL;
|
|
152
152
|
e->last_bracket = NULL;
|
|
153
|
-
for (i=0; i <= MAXBACKTICKS; i++) {
|
|
153
|
+
for (i = 0; i <= MAXBACKTICKS; i++) {
|
|
154
154
|
e->backticks[i] = 0;
|
|
155
155
|
}
|
|
156
156
|
e->scanned_for_backticks = false;
|
|
@@ -391,6 +391,7 @@ static void push_delimiter(subject *subj, unsigned char c, bool can_open,
|
|
|
391
391
|
delim->can_open = can_open;
|
|
392
392
|
delim->can_close = can_close;
|
|
393
393
|
delim->inl_text = inl_text;
|
|
394
|
+
delim->length = inl_text->as.literal.len;
|
|
394
395
|
delim->previous = subj->last_delim;
|
|
395
396
|
delim->next = NULL;
|
|
396
397
|
if (delim->previous != NULL) {
|
|
@@ -500,21 +501,6 @@ static cmark_node *handle_period(subject *subj, bool smart) {
|
|
|
500
501
|
}
|
|
501
502
|
}
|
|
502
503
|
|
|
503
|
-
static void add_extensions_openers_bottom(cmark_parser *parser,
|
|
504
|
-
delimiter **openers_bottom, delimiter *stack_bottom) {
|
|
505
|
-
cmark_llist *tmp_ext;
|
|
506
|
-
|
|
507
|
-
for (tmp_ext = parser->inline_syntax_extensions; tmp_ext; tmp_ext=tmp_ext->next) {
|
|
508
|
-
cmark_syntax_extension *ext = (cmark_syntax_extension *) tmp_ext->data;
|
|
509
|
-
cmark_llist *tmp_char;
|
|
510
|
-
for (tmp_char = ext->special_inline_chars; tmp_char; tmp_char=tmp_char->next) {
|
|
511
|
-
unsigned char c = (unsigned char)(size_t)tmp_char->data;
|
|
512
|
-
|
|
513
|
-
openers_bottom[c] = stack_bottom;
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
|
|
518
504
|
static cmark_syntax_extension *get_extension_for_special_char(cmark_parser *parser, unsigned char c) {
|
|
519
505
|
cmark_llist *tmp_ext;
|
|
520
506
|
|
|
@@ -539,14 +525,17 @@ static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *sta
|
|
|
539
525
|
delimiter *old_closer;
|
|
540
526
|
bool opener_found;
|
|
541
527
|
bool odd_match;
|
|
542
|
-
delimiter *openers_bottom[128];
|
|
528
|
+
delimiter *openers_bottom[3][128];
|
|
529
|
+
int i;
|
|
543
530
|
|
|
544
531
|
// initialize openers_bottom:
|
|
545
|
-
openers_bottom
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
532
|
+
memset(&openers_bottom, 0, sizeof(openers_bottom));
|
|
533
|
+
for (i=0; i < 3; i++) {
|
|
534
|
+
openers_bottom[i]['*'] = stack_bottom;
|
|
535
|
+
openers_bottom[i]['_'] = stack_bottom;
|
|
536
|
+
openers_bottom[i]['\''] = stack_bottom;
|
|
537
|
+
openers_bottom[i]['"'] = stack_bottom;
|
|
538
|
+
}
|
|
550
539
|
|
|
551
540
|
// move back to first relevant delim.
|
|
552
541
|
while (closer != NULL && closer->previous != stack_bottom) {
|
|
@@ -562,18 +551,16 @@ static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *sta
|
|
|
562
551
|
opener_found = false;
|
|
563
552
|
odd_match = false;
|
|
564
553
|
while (opener != NULL && opener != stack_bottom &&
|
|
565
|
-
opener != openers_bottom[closer->delim_char]) {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
closer->
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
opener_found = true;
|
|
576
|
-
break;
|
|
554
|
+
opener != openers_bottom[closer->length % 3][closer->delim_char]) {
|
|
555
|
+
if (opener->can_open && opener->delim_char == closer->delim_char) {
|
|
556
|
+
// interior closer of size 2 can't match opener of size 1
|
|
557
|
+
// or of size 1 can't match 2
|
|
558
|
+
odd_match = (closer->can_open || opener->can_close) &&
|
|
559
|
+
((opener->length + closer->length) % 3 == 0);
|
|
560
|
+
if (!odd_match) {
|
|
561
|
+
opener_found = true;
|
|
562
|
+
break;
|
|
563
|
+
}
|
|
577
564
|
}
|
|
578
565
|
opener = opener->previous;
|
|
579
566
|
}
|
|
@@ -607,13 +594,10 @@ static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *sta
|
|
|
607
594
|
}
|
|
608
595
|
closer = closer->next;
|
|
609
596
|
}
|
|
610
|
-
if (!opener_found
|
|
597
|
+
if (!opener_found) {
|
|
611
598
|
// set lower bound for future searches for openers
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
// an opener, and the * might be matched by something
|
|
615
|
-
// else.
|
|
616
|
-
openers_bottom[old_closer->delim_char] = old_closer->previous;
|
|
599
|
+
openers_bottom[old_closer->length % 3][old_closer->delim_char] =
|
|
600
|
+
old_closer->previous;
|
|
617
601
|
if (!old_closer->can_open) {
|
|
618
602
|
// we can remove a closer that can't be an
|
|
619
603
|
// opener, once we've seen there's no
|
|
@@ -626,7 +610,7 @@ static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *sta
|
|
|
626
610
|
}
|
|
627
611
|
}
|
|
628
612
|
// free all delimiters in list until stack_bottom:
|
|
629
|
-
while (subj->last_delim != stack_bottom) {
|
|
613
|
+
while (subj->last_delim != NULL && subj->last_delim != stack_bottom) {
|
|
630
614
|
remove_delimiter(subj, subj->last_delim);
|
|
631
615
|
}
|
|
632
616
|
}
|
|
@@ -642,12 +626,7 @@ static delimiter *S_insert_emph(subject *subj, delimiter *opener,
|
|
|
642
626
|
cmark_node *tmp, *tmpnext, *emph;
|
|
643
627
|
|
|
644
628
|
// calculate the actual number of characters used from this closer
|
|
645
|
-
|
|
646
|
-
use_delims = closer_num_chars <= opener_num_chars ? closer_num_chars
|
|
647
|
-
: opener_num_chars;
|
|
648
|
-
} else { // closer and opener both have >= 3 characters
|
|
649
|
-
use_delims = closer_num_chars % 2 == 0 ? 2 : 1;
|
|
650
|
-
}
|
|
629
|
+
use_delims = (closer_num_chars >= 2 && opener_num_chars >=2) ? 2 : 1;
|
|
651
630
|
|
|
652
631
|
// remove used characters from associated inlines.
|
|
653
632
|
opener_num_chars -= use_delims;
|
|
@@ -878,11 +857,13 @@ static bufsize_t manual_scan_link_url(cmark_chunk *input, bufsize_t offset) {
|
|
|
878
857
|
if (input->data[i] == '\\')
|
|
879
858
|
i += 2;
|
|
880
859
|
else if (input->data[i] == '(') {
|
|
881
|
-
++nb_p;
|
|
860
|
+
++nb_p;
|
|
861
|
+
++i;
|
|
882
862
|
} else if (input->data[i] == ')') {
|
|
883
863
|
if (nb_p == 0)
|
|
884
864
|
break;
|
|
885
|
-
--nb_p;
|
|
865
|
+
--nb_p;
|
|
866
|
+
++i;
|
|
886
867
|
} else if (cmark_isspace(input->data[i]))
|
|
887
868
|
break;
|
|
888
869
|
else
|
|
@@ -43,7 +43,7 @@ static CMARK_INLINE void outc(cmark_renderer *renderer, cmark_escaping escape,
|
|
|
43
43
|
break;
|
|
44
44
|
case 45: // '-'
|
|
45
45
|
if (nextc == 45) { // prevent ligature
|
|
46
|
-
cmark_render_ascii(renderer, "
|
|
46
|
+
cmark_render_ascii(renderer, "-{}");
|
|
47
47
|
} else {
|
|
48
48
|
cmark_render_ascii(renderer, "-");
|
|
49
49
|
}
|
|
@@ -393,7 +393,8 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node,
|
|
|
393
393
|
case URL_AUTOLINK:
|
|
394
394
|
LIT("\\url{");
|
|
395
395
|
OUT(url, false, URL);
|
|
396
|
-
|
|
396
|
+
LIT("}");
|
|
397
|
+
return 0; // Don't process further nodes to avoid double-rendering artefacts
|
|
397
398
|
case EMAIL_AUTOLINK:
|
|
398
399
|
LIT("\\href{");
|
|
399
400
|
OUT(url, false, URL);
|
|
@@ -9,7 +9,9 @@ else(SPEC_TESTS)
|
|
|
9
9
|
find_package(PythonInterp 3)
|
|
10
10
|
endif(SPEC_TESTS)
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
if (CMARK_SHARED)
|
|
13
|
+
add_test(NAME api_test COMMAND api_test)
|
|
14
|
+
endif()
|
|
13
15
|
|
|
14
16
|
if (WIN32)
|
|
15
17
|
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/src WIN_DLL_DIR)
|
|
@@ -28,15 +30,29 @@ IF (PYTHONINTERP_FOUND)
|
|
|
28
30
|
"${CMAKE_CURRENT_SOURCE_DIR}/normalize.py"
|
|
29
31
|
)
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
if (CMARK_SHARED)
|
|
34
|
+
add_test(spectest_library
|
|
35
|
+
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec"
|
|
36
|
+
"${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
add_test(pathological_tests_library
|
|
40
|
+
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/pathological_tests.py"
|
|
41
|
+
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
add_test(roundtriptest_library
|
|
45
|
+
${PYTHON_EXECUTABLE}
|
|
46
|
+
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
|
|
47
|
+
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt"
|
|
48
|
+
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
add_test(entity_library
|
|
52
|
+
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/entity_tests.py"
|
|
53
|
+
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
54
|
+
)
|
|
55
|
+
endif()
|
|
40
56
|
|
|
41
57
|
add_test(spectest_executable
|
|
42
58
|
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark"
|
|
@@ -50,13 +66,6 @@ IF (PYTHONINTERP_FOUND)
|
|
|
50
66
|
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/extensions.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark -e table -e strikethrough -e autolink -e tagfilter"
|
|
51
67
|
)
|
|
52
68
|
|
|
53
|
-
add_test(roundtriptest_library
|
|
54
|
-
${PYTHON_EXECUTABLE}
|
|
55
|
-
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
|
|
56
|
-
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt"
|
|
57
|
-
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
58
|
-
)
|
|
59
|
-
|
|
60
69
|
add_test(roundtrip_extensions_executable
|
|
61
70
|
${PYTHON_EXECUTABLE}
|
|
62
71
|
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
|
|
@@ -71,10 +80,6 @@ IF (PYTHONINTERP_FOUND)
|
|
|
71
80
|
"${CMAKE_CURRENT_BINARY_DIR}/../src/cmark"
|
|
72
81
|
)
|
|
73
82
|
|
|
74
|
-
add_test(entity_executable
|
|
75
|
-
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/entity_tests.py"
|
|
76
|
-
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
|
|
77
|
-
)
|
|
78
83
|
|
|
79
84
|
ELSE(PYTHONINTERP_FOUND)
|
|
80
85
|
|
|
@@ -44,7 +44,7 @@ Hello!
|
|
|
44
44
|
| _abc_ | セン |
|
|
45
45
|
| ----- | ---- |
|
|
46
46
|
| 1. Block elements inside cells don't work. | |
|
|
47
|
-
| But **
|
|
47
|
+
| But _**inline elements do**_. | x |
|
|
48
48
|
|
|
49
49
|
Hi!
|
|
50
50
|
.
|
|
@@ -62,7 +62,7 @@ Hi!
|
|
|
62
62
|
<td></td>
|
|
63
63
|
</tr>
|
|
64
64
|
<tr>
|
|
65
|
-
<td>But <strong
|
|
65
|
+
<td>But <em><strong>inline elements do</strong></em>.</td>
|
|
66
66
|
<td>x</td>
|
|
67
67
|
</tr></tbody></table>
|
|
68
68
|
<p>Hi!</p>
|
|
@@ -145,7 +145,7 @@ Hello!
|
|
|
145
145
|
| _abc_ | セン |
|
|
146
146
|
| ----- | ---- |
|
|
147
147
|
| this row has a space at the end | |
|
|
148
|
-
| But **
|
|
148
|
+
| But _**inline elements do**_. | x |
|
|
149
149
|
|
|
150
150
|
Hi!
|
|
151
151
|
.
|
|
@@ -163,7 +163,7 @@ Hi!
|
|
|
163
163
|
<td></td>
|
|
164
164
|
</tr>
|
|
165
165
|
<tr>
|
|
166
|
-
<td>But <strong
|
|
166
|
+
<td>But <em><strong>inline elements do</strong></em>.</td>
|
|
167
167
|
<td>x</td>
|
|
168
168
|
</tr></tbody></table>
|
|
169
169
|
<p>Hi!</p>
|
|
@@ -255,7 +255,7 @@ Tables with embedded pipes could be tricky.
|
|
|
255
255
|
| --- | --- |
|
|
256
256
|
| Escaped pipes are \|okay\|. | Like \| this. |
|
|
257
257
|
| Within `|code| is okay` too. |
|
|
258
|
-
|
|
|
258
|
+
| _**`c|`**_ \| complex
|
|
259
259
|
| don't **\_reparse\_**
|
|
260
260
|
.
|
|
261
261
|
<table>
|
|
@@ -275,7 +275,7 @@ Tables with embedded pipes could be tricky.
|
|
|
275
275
|
<td></td>
|
|
276
276
|
</tr>
|
|
277
277
|
<tr>
|
|
278
|
-
<td><strong><
|
|
278
|
+
<td><em><strong><code>c|</code></strong></em> | complex</td>
|
|
279
279
|
<td></td>
|
|
280
280
|
</tr>
|
|
281
281
|
<tr>
|
|
@@ -38,6 +38,9 @@ pathological = {
|
|
|
38
38
|
"mismatched openers and closers":
|
|
39
39
|
(("*a_ " * 50000),
|
|
40
40
|
re.compile("([*]a[_] ){49999}[*]a_")),
|
|
41
|
+
"openers and closers multiple of 3":
|
|
42
|
+
(("a**b" + ("c* " * 50000)),
|
|
43
|
+
re.compile("a[*][*]b(c[*] ){49999}c[*]")),
|
|
41
44
|
"link openers and emph closers":
|
|
42
45
|
(("[ a_" * 50000),
|
|
43
46
|
re.compile("(\[ a_){50000}")),
|
|
@@ -5976,8 +5976,8 @@ the following principles resolve ambiguity:
|
|
|
5976
5976
|
an interpretation `<strong>...</strong>` is always preferred to
|
|
5977
5977
|
`<em><em>...</em></em>`.
|
|
5978
5978
|
|
|
5979
|
-
14. An interpretation `<strong
|
|
5980
|
-
preferred to `<em
|
|
5979
|
+
14. An interpretation `<em><strong>...</strong></em>` is always
|
|
5980
|
+
preferred to `<strong><em>..</em></strong>`.
|
|
5981
5981
|
|
|
5982
5982
|
15. When two potential emphasis or strong emphasis spans overlap,
|
|
5983
5983
|
so that the second begins before the first ends and ends after
|
|
@@ -7000,14 +7000,14 @@ Rule 14:
|
|
|
7000
7000
|
```````````````````````````````` example
|
|
7001
7001
|
***foo***
|
|
7002
7002
|
.
|
|
7003
|
-
<p><strong
|
|
7003
|
+
<p><em><strong>foo</strong></em></p>
|
|
7004
7004
|
````````````````````````````````
|
|
7005
7005
|
|
|
7006
7006
|
|
|
7007
7007
|
```````````````````````````````` example
|
|
7008
7008
|
_____foo_____
|
|
7009
7009
|
.
|
|
7010
|
-
<p><strong><strong
|
|
7010
|
+
<p><em><strong><strong>foo</strong></strong></em></p>
|
|
7011
7011
|
````````````````````````````````
|
|
7012
7012
|
|
|
7013
7013
|
|
data/lib/commonmarker/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: commonmarker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.14.
|
|
4
|
+
version: 0.14.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Garen Torikian
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ruby-enum
|
|
@@ -165,15 +165,15 @@ files:
|
|
|
165
165
|
- ext/commonmarker/cmark/bench/stats.py
|
|
166
166
|
- ext/commonmarker/cmark/benchmarks.md
|
|
167
167
|
- ext/commonmarker/cmark/build/CMakeCache.txt
|
|
168
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
169
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
170
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
171
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
172
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
173
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
174
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
175
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
176
|
-
- ext/commonmarker/cmark/build/CMakeFiles/3.7.
|
|
168
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CMakeCCompiler.cmake
|
|
169
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake
|
|
170
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin
|
|
171
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin
|
|
172
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CMakeSystem.cmake
|
|
173
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c
|
|
174
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CompilerIdC/a.out
|
|
175
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
|
|
176
|
+
- ext/commonmarker/cmark/build/CMakeFiles/3.7.2/CompilerIdCXX/a.out
|
|
177
177
|
- ext/commonmarker/cmark/build/CMakeFiles/CMakeDirectoryInformation.cmake
|
|
178
178
|
- ext/commonmarker/cmark/build/CMakeFiles/CMakeError.log
|
|
179
179
|
- ext/commonmarker/cmark/build/CMakeFiles/CMakeOutput.log
|