redcarpet 1.5.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of redcarpet might be problematic. Click here for more details.

data/ext/markdown.c CHANGED
@@ -1118,6 +1118,8 @@ parse_paragraph(struct buf *ob, struct render *rndr, char *data, size_t size)
1118
1118
  rndr->work.size--;
1119
1119
 
1120
1120
  } else {
1121
+ struct buf *header_work;
1122
+
1121
1123
  if (work.size) {
1122
1124
  size_t beg;
1123
1125
  i = work.size;
@@ -1153,8 +1155,20 @@ parse_paragraph(struct buf *ob, struct render *rndr, char *data, size_t size)
1153
1155
  else work.size = i;
1154
1156
  }
1155
1157
 
1158
+ if (rndr->work.size < rndr->work.asize) {
1159
+ header_work = rndr->work.item[rndr->work.size ++];
1160
+ header_work->size = 0;
1161
+ } else {
1162
+ header_work = bufnew(WORK_UNIT);
1163
+ parr_push(&rndr->work, header_work);
1164
+ }
1165
+
1166
+ parse_inline(header_work, rndr, work.data, work.size);
1167
+
1156
1168
  if (rndr->make.header)
1157
- rndr->make.header(ob, &work, level, rndr->make.opaque);
1169
+ rndr->make.header(ob, header_work, (int)level, rndr->make.opaque);
1170
+
1171
+ rndr->work.size--;
1158
1172
  }
1159
1173
 
1160
1174
  return end;
@@ -1412,7 +1426,6 @@ parse_atxheader(struct buf *ob, struct render *rndr, char *data, size_t size)
1412
1426
  {
1413
1427
  size_t level = 0;
1414
1428
  size_t i, end, skip;
1415
- struct buf work = { data, 0, 0, 0, 0 };
1416
1429
 
1417
1430
  if (!size || data[0] != '#')
1418
1431
  return 0;
@@ -1422,7 +1435,6 @@ parse_atxheader(struct buf *ob, struct render *rndr, char *data, size_t size)
1422
1435
 
1423
1436
  for (i = level; i < size && (data[i] == ' ' || data[i] == '\t'); i++);
1424
1437
 
1425
- work.data = data + i;
1426
1438
  for (end = i; end < size && data[end] != '\n'; end++);
1427
1439
  skip = end;
1428
1440
 
@@ -1433,11 +1445,22 @@ parse_atxheader(struct buf *ob, struct render *rndr, char *data, size_t size)
1433
1445
  end--;
1434
1446
 
1435
1447
  if (end > i) {
1436
- work.size = end - i;
1448
+ struct buf *work;
1449
+
1450
+ if (rndr->work.size < rndr->work.asize) {
1451
+ work = rndr->work.item[rndr->work.size ++];
1452
+ work->size = 0;
1453
+ } else {
1454
+ work = bufnew(WORK_UNIT);
1455
+ parr_push(&rndr->work, work);
1456
+ }
1457
+
1458
+ parse_inline(work, rndr, data + i, end - i);
1437
1459
 
1438
1460
  if (rndr->make.header)
1439
- rndr->make.header(ob, &work, (int)level, rndr->make.opaque);
1461
+ rndr->make.header(ob, work, (int)level, rndr->make.opaque);
1440
1462
 
1463
+ rndr->work.size--;
1441
1464
  }
1442
1465
 
1443
1466
  return skip;
data/lib/redcarpet.rb CHANGED
@@ -26,7 +26,7 @@
26
26
  # end
27
27
  #
28
28
  class Redcarpet
29
- VERSION = '1.5.2'
29
+ VERSION = '1.5.3'
30
30
 
31
31
  # Original Markdown formatted text.
32
32
  attr_reader :text
data/redcarpet.gemspec CHANGED
@@ -1,8 +1,8 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'redcarpet'
3
- s.version = '1.5.2'
3
+ s.version = '1.5.3'
4
4
  s.summary = "Ruby bindings for libupskirt"
5
- s.date = '2011-04-11'
5
+ s.date = '2011-04-12'
6
6
  s.email = 'vicent@github.com'
7
7
  s.homepage = 'http://github.com/tanoku/redcarpet'
8
8
  s.has_rdoc = true
@@ -197,5 +197,10 @@ EOS
197
197
  assert rd.to_html ~ /<table/
198
198
  assert rd.to_html ~ /text-decoration:line-through;/
199
199
  end
200
+
201
+ def test_that_headers_are_linkable
202
+ markdown = Markdown.new('### Hello [GitHub](http://github.com)')
203
+ assert_equal "<h3>Hello <a href=\"http://github.com\">GitHub</a></h3>", markdown.to_html.strip
204
+ end
200
205
 
201
206
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redcarpet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 2
10
- version: 1.5.2
9
+ - 3
10
+ version: 1.5.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Natacha Port\xC3\xA9"
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-11 00:00:00 -07:00
19
+ date: 2011-04-12 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies: []
22
22