github-markdown 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b588334527838ef5b385a6906dd1e47839a82b01
4
- data.tar.gz: b0fa1d69efbaea4147d67eeec64662ac6f2f2d4f
3
+ metadata.gz: 28fa8ed9daf6133d7ec96ffe630eced45affce35
4
+ data.tar.gz: 58e12eaab9d955409da483d909de7d9b7a875560
5
5
  SHA512:
6
- metadata.gz: a891bf2acfa053a96ce25572094d781afc6996815824cea9b70537ae991d7f9fe986fbb367838161e48790085de3080ec06a667bf3c0a74589f5960048ac14d5
7
- data.tar.gz: 2ef8bcb62e94418c1addcba28dec5ed864458f7e3fea8c5a14dcdae79a89c34b81e70ae894b6e1fe05f6f0969f4c29ebd0cadb6b66ca88f0fda3fe370537db90
6
+ metadata.gz: 7d4aae8a213ec9c0a54d99a8e9e6e200e367876b3a911715adcab3b99b1cb927b722e2318064243cb597d190d7a2750a55f11f068b53f3876c29f51581f56de9
7
+ data.tar.gz: 8c40378c643ec6548bc4efabc358db9d0ba4d0f50c5dec32d2614d86358df123f04be19cedf4fa8ca4bf797fb379997170eae4eacd5bda403f9c1cba17e13941
@@ -61,7 +61,7 @@ autolink_delim(uint8_t *data, size_t link_end, size_t max_rewind, size_t size)
61
61
  }
62
62
 
63
63
  while (link_end > 0) {
64
- if (strchr("?!.,", data[link_end - 1]) != NULL)
64
+ if (strchr("?!.,:", data[link_end - 1]) != NULL)
65
65
  link_end--;
66
66
 
67
67
  else if (data[link_end - 1] == ';') {
@@ -110,7 +110,7 @@ autolink_delim(uint8_t *data, size_t link_end, size_t max_rewind, size_t size)
110
110
  * => http://www.pokemon.com/Pikachu_(Electric)
111
111
  *
112
112
  * foo http://www.pokemon.com/Pikachu_(Electric)) bar
113
- * => http://www.pokemon.com/Pikachu_(Electric))
113
+ * => http://www.pokemon.com/Pikachu_(Electric)
114
114
  *
115
115
  * (foo http://www.pokemon.com/Pikachu_(Electric)) bar
116
116
  * => foo http://www.pokemon.com/Pikachu_(Electric)
@@ -233,6 +233,15 @@ free_link_refs(struct link_ref **references)
233
233
  }
234
234
  }
235
235
 
236
+ /*
237
+ Wrap isalnum so that characters outside of the ASCII range don't count.
238
+ */
239
+ static inline int
240
+ _isalnum(int c)
241
+ {
242
+ return isalnum(c) && c < 0x7f;
243
+ }
244
+
236
245
  /*
237
246
  * Check whether a char is a Markdown space.
238
247
 
@@ -299,14 +308,14 @@ tag_length(uint8_t *data, size_t size, enum mkd_autolink *autolink)
299
308
  if (data[0] != '<') return 0;
300
309
  i = (data[1] == '/') ? 2 : 1;
301
310
 
302
- if (!isalnum(data[i]))
311
+ if (!_isalnum(data[i]))
303
312
  return 0;
304
313
 
305
314
  /* scheme test */
306
315
  *autolink = MKDA_NOT_AUTOLINK;
307
316
 
308
317
  /* try to find the beginning of an URI */
309
- while (i < size && (isalnum(data[i]) || data[i] == '.' || data[i] == '+' || data[i] == '-'))
318
+ while (i < size && (_isalnum(data[i]) || data[i] == '.' || data[i] == '+' || data[i] == '-'))
310
319
  i++;
311
320
 
312
321
  if (i > 1 && data[i] == '@') {
@@ -501,7 +510,7 @@ parse_emph1(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t size
501
510
  if (data[i] == c && !_isspace(data[i - 1])) {
502
511
 
503
512
  if (rndr->ext_flags & MKDEXT_NO_INTRA_EMPHASIS) {
504
- if (i + 1 < size && data[i] < 33)
513
+ if (i + 1 < size && (_isalnum(data[i + 1]) || data[i + 1] == c))
505
514
  continue;
506
515
  }
507
516
 
@@ -536,6 +545,12 @@ parse_emph2(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t size
536
545
  i += len;
537
546
 
538
547
  if (i + 1 < size && data[i] == c && data[i + 1] == c && i && !_isspace(data[i - 1])) {
548
+
549
+ if (rndr->ext_flags & MKDEXT_NO_INTRA_EMPHASIS) {
550
+ if (i + 2 < size && (_isalnum(data[i + 2]) || data[i + 2] == c))
551
+ continue;
552
+ }
553
+
539
554
  work = rndr_newbuf(rndr, BUFFER_SPAN);
540
555
  parse_inline(work, rndr, data, i);
541
556
  r = render_method(ob, work, rndr->opaque);
@@ -565,6 +580,12 @@ parse_emph3(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t size
565
580
  continue;
566
581
 
567
582
  if (i + 2 < size && data[i + 1] == c && data[i + 2] == c && rndr->cb.triple_emphasis) {
583
+
584
+ if (rndr->ext_flags & MKDEXT_NO_INTRA_EMPHASIS) {
585
+ if (i + 3 < size && (_isalnum(data[i + 3]) || data[i + 3] == c))
586
+ continue;
587
+ }
588
+
568
589
  /* triple symbol found */
569
590
  struct buf *work = rndr_newbuf(rndr, BUFFER_SPAN);
570
591
 
@@ -597,7 +618,7 @@ char_emphasis(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t of
597
618
  size_t ret;
598
619
 
599
620
  if (rndr->ext_flags & MKDEXT_NO_INTRA_EMPHASIS) {
600
- if (offset > 0 && !_isspace(data[-1]) && (isalnum(data[-1]) || data[-1] == data[0])) {
621
+ if (offset > 0 && !_isspace(data[-1]) && (_isalnum(data[-1]) || data[-1] == data[0])) {
601
622
  return 0;
602
623
  }
603
624
  }
@@ -722,7 +743,7 @@ char_entity(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t offs
722
743
  if (end < size && data[end] == '#')
723
744
  end++;
724
745
 
725
- while (end < size && isalnum(data[end]))
746
+ while (end < size && _isalnum(data[end]))
726
747
  end++;
727
748
 
728
749
  if (end < size && data[end] == ';')
@@ -1470,7 +1491,7 @@ parse_paragraph(struct buf *ob, struct sd_markdown *rndr, uint8_t *data, size_t
1470
1491
  * let's check to see if there's some kind of block starting
1471
1492
  * here
1472
1493
  */
1473
- if ((rndr->ext_flags & MKDEXT_LAX_SPACING) && !isalnum(data[i])) {
1494
+ if ((rndr->ext_flags & MKDEXT_LAX_SPACING) && !_isalnum(data[i])) {
1474
1495
  if (prefix_oli(data + i, size - i) ||
1475
1496
  prefix_uli(data + i, size - i)) {
1476
1497
  end = i;
@@ -109,12 +109,6 @@ rndr_paragraph(struct buf *ob, const struct buf *text, void *opaque)
109
109
  plaintext_block(ob, text);
110
110
  }
111
111
 
112
- static void
113
- rndr_raw_block(struct buf *ob, const struct buf *text, void *opaque)
114
- {
115
- /* NO OP */
116
- }
117
-
118
112
  static void
119
113
  rndr_hrule(struct buf *ob, void *opaque)
120
114
  {
@@ -159,7 +153,7 @@ sdtext_renderer(struct sd_callbacks *callbacks)
159
153
  static const struct sd_callbacks cb_default = {
160
154
  rndr_blockcode,
161
155
  rndr_blockquote,
162
- rndr_raw_block,
156
+ NULL,
163
157
  rndr_header,
164
158
  rndr_hrule,
165
159
  rndr_list,
@@ -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.6.4'
4
+ s.version = '0.6.5'
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 = '2013-10-01'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc