github-markdown 0.5.0 → 0.5.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.
- data/ext/markdown/gh-markdown.c +1 -1
- data/ext/markdown/markdown.c +9 -1
- data/github-markdown.gemspec +1 -1
- data/test/gfm_test.rb +33 -0
- metadata +4 -4
data/ext/markdown/gh-markdown.c
CHANGED
@@ -130,7 +130,7 @@ static VALUE rb_ghmd_to_html(VALUE self, VALUE rb_text, VALUE rb_mode)
|
|
130
130
|
|
131
131
|
|
132
132
|
/* Max recursion nesting when parsing Markdown documents */
|
133
|
-
static const int GITHUB_MD_NESTING =
|
133
|
+
static const int GITHUB_MD_NESTING = 32;
|
134
134
|
|
135
135
|
/* Default flags for all Markdown pipelines:
|
136
136
|
*
|
data/ext/markdown/markdown.c
CHANGED
@@ -1624,7 +1624,7 @@ static size_t
|
|
1624
1624
|
parse_listitem(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t size, int *flags)
|
1625
1625
|
{
|
1626
1626
|
struct buf *work = 0, *inter = 0;
|
1627
|
-
size_t beg = 0, end, pre, sublist = 0, orgpre = 0, i;
|
1627
|
+
size_t beg = 0, end, pre, sublist = 0, orgpre = 0, nestpre = 0, i;
|
1628
1628
|
int in_empty = 0, has_inside_empty = 0, in_fence = 0;
|
1629
1629
|
|
1630
1630
|
/* keeping track of the first indentation prefix */
|
@@ -1672,6 +1672,14 @@ parse_listitem(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t s
|
|
1672
1672
|
while (i < 4 && beg + i < end && data[beg + i] == ' ')
|
1673
1673
|
i++;
|
1674
1674
|
|
1675
|
+
/* handle nested list items */
|
1676
|
+
if (i > 0) {
|
1677
|
+
if (nestpre == 0 || nestpre > i)
|
1678
|
+
nestpre = i;
|
1679
|
+
else
|
1680
|
+
i = nestpre;
|
1681
|
+
}
|
1682
|
+
|
1675
1683
|
pre = i;
|
1676
1684
|
|
1677
1685
|
if (rndr->ext_flags & MKDEXT_FENCED_CODE) {
|
data/github-markdown.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'github-markdown'
|
4
|
-
s.version = '0.5.
|
4
|
+
s.version = '0.5.1'
|
5
5
|
s.summary = 'The Markdown parser for GitHub.com'
|
6
6
|
s.description = 'Self-contained Markdown parser for GitHub, with all our custom extensions'
|
7
7
|
s.date = '2012-07-08'
|
data/test/gfm_test.rb
CHANGED
@@ -23,4 +23,37 @@ class GFMBasicTest < Test::Unit::TestCase
|
|
23
23
|
def test_that_code_blocks_work
|
24
24
|
GitHub::Markdown.to_html("~~~~~~~~~~\nhello world!\n~~~~~~~~~\n", :gfm)
|
25
25
|
end
|
26
|
+
|
27
|
+
# With GITHUB_MD_NESTING set to 32, we can handle up to 10 levels of list
|
28
|
+
# nesting. We do not go to 11.
|
29
|
+
def test_nested_list
|
30
|
+
items = [
|
31
|
+
'Item 1',
|
32
|
+
'Item 1a',
|
33
|
+
'Item 1a1',
|
34
|
+
'Item 1a1a',
|
35
|
+
'Item 1a1a1',
|
36
|
+
'Item 1a1a1a',
|
37
|
+
'Item 1a1a1a1',
|
38
|
+
'Item 1a1a1a1a',
|
39
|
+
'Item 1a1a1a1a1',
|
40
|
+
'Item 1a1a1a1a1a'
|
41
|
+
]
|
42
|
+
|
43
|
+
pre = -3
|
44
|
+
markdown = items.inject('') do |md, item|
|
45
|
+
pre += 3
|
46
|
+
md.concat(' '*pre + '+ ' + item + "\n")
|
47
|
+
end
|
48
|
+
|
49
|
+
html = GitHub::Markdown.render(markdown)
|
50
|
+
parsed = Nokogiri::HTML::DocumentFragment.parse(html)
|
51
|
+
|
52
|
+
items.inject(parsed) do |node, expected_item|
|
53
|
+
child = node.at('.//ul/li')
|
54
|
+
child_item = child.children.detect{|e| e.text?}.text.strip
|
55
|
+
assert_equal expected_item, child_item
|
56
|
+
node = child
|
57
|
+
end
|
58
|
+
end
|
26
59
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 1
|
10
|
+
version: 0.5.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- GitHub, Inc
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-08 00:00:00
|
18
|
+
date: 2012-07-08 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|