motion-kramdown 0.5.1 → 0.6.0

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -7
  3. data/lib/kramdown.rb +1 -1
  4. data/lib/kramdown/compatibility.rb +1 -1
  5. data/lib/kramdown/converter.rb +1 -1
  6. data/lib/kramdown/converter/base.rb +2 -1
  7. data/lib/kramdown/converter/html.rb +10 -5
  8. data/lib/kramdown/converter/kramdown.rb +13 -7
  9. data/lib/kramdown/converter/latex.rb +2 -1
  10. data/lib/kramdown/converter/math_engine/itex2mml.rb +1 -1
  11. data/lib/kramdown/converter/math_engine/mathjax.rb +18 -3
  12. data/lib/kramdown/converter/math_engine/ritex.rb +1 -1
  13. data/lib/kramdown/converter/pdf.rb +3 -2
  14. data/lib/kramdown/converter/remove_html_tags.rb +3 -1
  15. data/lib/kramdown/converter/syntax_highlighter.rb +53 -0
  16. data/lib/kramdown/converter/syntax_highlighter/coderay.rb +1 -1
  17. data/lib/kramdown/converter/syntax_highlighter/rouge.rb +2 -2
  18. data/lib/kramdown/converter/toc.rb +2 -2
  19. data/lib/kramdown/document.rb +5 -5
  20. data/lib/kramdown/element.rb +4 -1
  21. data/lib/kramdown/error.rb +1 -1
  22. data/lib/kramdown/options.rb +4 -3
  23. data/lib/kramdown/parser.rb +1 -1
  24. data/lib/kramdown/parser/base.rb +8 -4
  25. data/lib/kramdown/parser/gfm.rb +9 -1
  26. data/lib/kramdown/parser/html.rb +18 -3
  27. data/lib/kramdown/parser/kramdown.rb +8 -5
  28. data/lib/kramdown/parser/kramdown/abbreviation.rb +10 -2
  29. data/lib/kramdown/parser/kramdown/autolink.rb +1 -1
  30. data/lib/kramdown/parser/kramdown/blank_line.rb +1 -1
  31. data/lib/kramdown/parser/kramdown/block_boundary.rb +1 -1
  32. data/lib/kramdown/parser/kramdown/blockquote.rb +1 -1
  33. data/lib/kramdown/parser/kramdown/codeblock.rb +1 -1
  34. data/lib/kramdown/parser/kramdown/codespan.rb +1 -1
  35. data/lib/kramdown/parser/kramdown/emphasis.rb +2 -2
  36. data/lib/kramdown/parser/kramdown/eob.rb +1 -1
  37. data/lib/kramdown/parser/kramdown/escaped_chars.rb +1 -1
  38. data/lib/kramdown/parser/kramdown/extensions.rb +8 -7
  39. data/lib/kramdown/parser/kramdown/footnote.rb +12 -4
  40. data/lib/kramdown/parser/kramdown/header.rb +1 -1
  41. data/lib/kramdown/parser/kramdown/horizontal_rule.rb +1 -1
  42. data/lib/kramdown/parser/kramdown/html.rb +7 -4
  43. data/lib/kramdown/parser/kramdown/html_entity.rb +1 -1
  44. data/lib/kramdown/parser/kramdown/line_break.rb +1 -1
  45. data/lib/kramdown/parser/kramdown/link.rb +8 -5
  46. data/lib/kramdown/parser/kramdown/list.rb +17 -5
  47. data/lib/kramdown/parser/kramdown/math.rb +3 -3
  48. data/lib/kramdown/parser/kramdown/paragraph.rb +3 -3
  49. data/lib/kramdown/parser/kramdown/smart_quotes.rb +1 -1
  50. data/lib/kramdown/parser/kramdown/table.rb +1 -1
  51. data/lib/kramdown/parser/kramdown/typographic_symbol.rb +1 -1
  52. data/lib/kramdown/parser/markdown.rb +2 -2
  53. data/lib/kramdown/utils.rb +1 -1
  54. data/lib/kramdown/utils/configurable.rb +1 -1
  55. data/lib/kramdown/utils/entities.rb +1 -1
  56. data/lib/kramdown/utils/html.rb +3 -1
  57. data/lib/kramdown/utils/ordered_hash.rb +1 -1
  58. data/lib/kramdown/utils/string_scanner.rb +8 -0
  59. data/lib/kramdown/utils/unidecoder.rb +1 -1
  60. data/lib/kramdown/version.rb +2 -2
  61. data/lib/rubymotion/version.rb +1 -1
  62. data/spec/bench_mark.rb +43 -30
  63. data/spec/document_tree.rb +12 -2
  64. data/spec/gfm_to_html.rb +4 -1
  65. data/spec/html_to_html.rb +27 -9
  66. data/spec/html_to_kramdown_to_html.rb +4 -1
  67. data/spec/kramdown_to_xxx.rb +3 -1
  68. data/spec/text_to_kramdown_to_html.rb +4 -0
  69. data/spec/text_to_latex.rb +1 -1
  70. metadata +5 -4
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -23,7 +23,10 @@ module Kramdown
23
23
  TRAILING_WHITESPACE = /[ \t]*\n/
24
24
 
25
25
  def handle_kramdown_html_tag(el, closed, handle_body)
26
- el.options[:ial] = @block_ial if @block_ial
26
+ if @block_ial
27
+ el.options[:ial] = @block_ial
28
+ @block_ial = nil
29
+ end
27
30
 
28
31
  content_model = if @tree.type != :html_element || @tree.options[:content_model] != :raw
29
32
  (@options[:parse_block_html] ? HTML_CONTENT_MODEL[el.value] : :raw)
@@ -117,8 +120,8 @@ module Kramdown
117
120
  return
118
121
  end
119
122
 
120
- attrs = Utils::OrderedHash.new
121
- @src[2].scan(HTML_ATTRIBUTE_RE).each {|name,sep,val| attrs[name.downcase] = (val || '').gsub(/\n+/, ' ')}
123
+ attrs = parse_html_attributes(@src[2], line)
124
+ attrs.each {|name, value| value.gsub!(/\n+/, ' ')}
122
125
 
123
126
  do_parsing = (HTML_CONTENT_MODEL[tag_name] == :raw || @tree.options[:content_model] == :raw ? false : @options[:parse_span_html])
124
127
  if val = HTML_MARKDOWN_ATTR_MAP[attrs.delete('markdown')]
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -25,8 +25,8 @@ module Kramdown
25
25
  @src.pos += @src.matched_size
26
26
  link_id, link_url, link_title = normalize_link_id(@src[1]), @src[2] || @src[3], @src[5]
27
27
  warning("Duplicate link ID '#{link_id}' on line #{@src.current_line_number} - overwriting") if @link_defs[link_id]
28
- @link_defs[link_id] = [link_url, link_title]
29
- @tree.children << Element.new(:eob, :link_def)
28
+ @tree.children << new_block_el(:eob, :link_def)
29
+ @link_defs[link_id] = [link_url, link_title, @tree.children.last]
30
30
  true
31
31
  end
32
32
  define_parser(:link_definition, LINK_DEFINITION_START)
@@ -34,7 +34,9 @@ module Kramdown
34
34
 
35
35
  # This helper methods adds the approriate attributes to the element +el+ of type +a+ or +img+
36
36
  # and the element itself to the @tree.
37
- def add_link(el, href, title, alt_text = nil)
37
+ def add_link(el, href, title, alt_text = nil, ial = nil)
38
+ el.options[:ial] = ial
39
+ update_attr_with_ial(el.attr, ial) if ial
38
40
  if el.type == :a
39
41
  el.attr['href'] = href
40
42
  else
@@ -86,7 +88,8 @@ module Kramdown
86
88
  if @src.scan(LINK_INLINE_ID_RE) || !@src.check(/\(/)
87
89
  link_id = normalize_link_id(@src[1] || alt_text)
88
90
  if @link_defs.has_key?(link_id)
89
- add_link(el, @link_defs[link_id].first, @link_defs[link_id].last, alt_text)
91
+ add_link(el, @link_defs[link_id][0], @link_defs[link_id][1], alt_text,
92
+ @link_defs[link_id][2] && @link_defs[link_id][2].options[:ial])
90
93
  else
91
94
  warning("No link definition for link ID '#{link_id}' found on line #{start_line_number}")
92
95
  @src.revert_pos(saved_pos)
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -19,6 +19,14 @@ module Kramdown
19
19
  LIST_ITEM_IAL = /^\s*(?:\{:(?!(?:#{ALD_ID_NAME})?:|\/)(#{ALD_ANY_CHARS}+)\})\s*/
20
20
  LIST_ITEM_IAL_CHECK = /^#{LIST_ITEM_IAL}?\s*\n/
21
21
 
22
+ PARSE_FIRST_LIST_LINE_REGEXP_CACHE = Hash.new do |h, indentation|
23
+ indent_re = /^ {#{indentation}}/
24
+ content_re = /^(?:(?:\t| {4}){#{indentation / 4}} {#{indentation % 4}}|(?:\t| {4}){#{indentation / 4 + 1}}).*\S.*\n/
25
+ lazy_re = /(?!^ {0,#{[indentation, 3].min}}(?:#{IAL_BLOCK}|#{LAZY_END_HTML_STOP}|#{LAZY_END_HTML_START})).*\S.*\n/
26
+
27
+ h[indentation] = [content_re, lazy_re, indent_re]
28
+ end
29
+
22
30
  # Used for parsing the first line of a list item or a definition, i.e. the line with list item
23
31
  # marker or the definition marker.
24
32
  def parse_first_list_line(indentation, content)
@@ -27,13 +35,16 @@ module Kramdown
27
35
  else
28
36
  while content =~ /^ *\t/
29
37
  temp = content.scan(/^ */).first.length + indentation
30
- # content.sub!(/^( *)(\t+)/) {$1 << " "*(4 - (temp % 4) + ($2.length - 1)*4)}
31
- content = content.sub(/^( *)(\t+)/) {$1 << " "*(4 - (temp % 4) + ($2.length - 1)*4)}
38
+ content.sub!(/^( *)(\t+)/) {$1 << " "*(4 - (temp % 4) + ($2.length - 1)*4)}
32
39
  end
33
- indentation += content.scan(/^ */).first.length
40
+ indentation += content[/^ */].length
34
41
  end
35
42
  content = content.sub(/^\s*/, '')
36
43
 
44
+ # [content, indentation, *PARSE_FIRST_LIST_LINE_REGEXP_CACHE[indentation]] # RM use caching code below
45
+
46
+ # RM This cache is still faster than the one added abouve (because it's recreated
47
+ # for every new instance)
37
48
  unless (indent_re = StringScanner.get_regex("^ {#{indentation}}")) # RM
38
49
  indent_re = /^ {#{indentation}}/
39
50
  StringScanner.cache_regex("^ {#{indentation}}", indent_re) # RM
@@ -47,6 +58,7 @@ module Kramdown
47
58
  StringScanner.cache_regex("(?!^ {0,#{[indentation, 3].min}}(?:#{IAL_BLOCK}|#{LAZY_END_HTML_STOP}|#{LAZY_END_HTML_START})).*\S.*\n", lazy_re) # RM
48
59
  end # RM
49
60
  [content, indentation, content_re, lazy_re, indent_re]
61
+
50
62
  end
51
63
 
52
64
 
@@ -94,7 +106,7 @@ module Kramdown
94
106
  last_is_blank = false
95
107
  item.value = [item.value]
96
108
  elsif (result = @src.scan(content_re)) || (!last_is_blank && (result = @src.scan(lazy_re)))
97
- result.sub!(/^(\t+)/) { " "*($1 ? 4*$1.length : 0) }
109
+ result.sub!(/^(\t+)/) { " " * 4 * $1.length }
98
110
  result.sub!(indent_re, '')
99
111
  if !nested_list_found && result =~ LIST_START
100
112
  item.value << ''
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -27,7 +27,7 @@ module Kramdown
27
27
 
28
28
  saved_pos = @src.save_pos
29
29
  @src.pos += @src.matched_size
30
- data = @src[2]
30
+ data = @src[2].strip
31
31
  if before_block_boundary?
32
32
  @tree.children << new_block_el(:math, data, nil, :category => :block, :location => start_line_number)
33
33
  true
@@ -45,7 +45,7 @@ module Kramdown
45
45
  def parse_inline_math
46
46
  start_line_number = @src.current_line_number
47
47
  @src.pos += @src.matched_size
48
- @tree.children << Element.new(:math, @src[1], nil, :category => :span, :location => start_line_number)
48
+ @tree.children << Element.new(:math, @src[1].strip, nil, :category => :span, :location => start_line_number)
49
49
  end
50
50
  define_parser(:inline_math, INLINE_MATH_START, '\$')
51
51
 
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -18,7 +18,7 @@ module Kramdown
18
18
  class Kramdown
19
19
 
20
20
  LAZY_END_HTML_SPAN_ELEMENTS = Kramdown::Parser::Html::HTML_SPAN_ELEMENTS + %w{script} # RM
21
- LAZY_END_HTML_START = /<(?>(?!(?:#{LAZY_END_HTML_SPAN_ELEMENTS.join('|')})\b)#{REXML::Parsers::BaseParser::UNAME_STR})\s*(?>\s+#{REXML::Parsers::BaseParser::UNAME_STR}\s*=\s*(["']).*?\1)*\s*\/?>/m
21
+ LAZY_END_HTML_START = /<(?>(?!(?:#{LAZY_END_HTML_SPAN_ELEMENTS.join('|')})\b)#{REXML::Parsers::BaseParser::UNAME_STR})/
22
22
  LAZY_END_HTML_STOP = /<\/(?!(?:#{LAZY_END_HTML_SPAN_ELEMENTS.join('|')})\b)#{REXML::Parsers::BaseParser::UNAME_STR}\s*>/m
23
23
 
24
24
  OPT_SPACE_LAZY_END_HTML_START = /^#{OPT_SPACE}#{LAZY_END_HTML_START}/m # RM Oniguruma -> ICU
@@ -37,7 +37,7 @@ module Kramdown
37
37
  while !@src.match?(self.class::PARAGRAPH_END)
38
38
  result << @src.scan(PARAGRAPH_MATCH)
39
39
  end
40
- result.chomp!
40
+ result.rstrip!
41
41
  if @tree.children.last && @tree.children.last.type == :p
42
42
  @tree.children.last.children.first.value << "\n" << result
43
43
  else
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,13 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
8
8
  #
9
9
 
10
- # RM require 'kramdown/parser/kramdown'
10
+ # RM require 'kramdown/parser'
11
11
 
12
12
  module Kramdown
13
13
 
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,12 +1,14 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
8
8
  #
9
9
 
10
+ # RM require 'rexml/parsers/baseparser'
11
+
10
12
  module Kramdown
11
13
 
12
14
  module Utils
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,4 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
+ #
3
+ #--
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
+ #
6
+ # This file is part of kramdown which is licensed under the MIT.
7
+ #++
8
+ #
9
+
2
10
 
3
11
  # RM require 'strscan'
4
12
 
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  #--
4
- # Copyright (C) 2009-2014 Thomas Leitner <t_leitner@gmx.at>
4
+ # Copyright (C) 2009-2015 Thomas Leitner <t_leitner@gmx.at>
5
5
  #
6
6
  # This file is part of kramdown which is licensed under the MIT.
7
7
  #++
@@ -10,6 +10,6 @@
10
10
  module Kramdown
11
11
 
12
12
  # The kramdown version.
13
- VERSION = '1.5.0'
13
+ VERSION = '1.6.0'
14
14
 
15
15
  end
@@ -1,6 +1,6 @@
1
1
  module MotionKramdown
2
2
 
3
3
  # The motion-kramdown version.
4
- VERSION = '0.5.1'
4
+ VERSION = '0.6.0'
5
5
 
6
6
  end
data/spec/bench_mark.rb CHANGED
@@ -1,30 +1,43 @@
1
- # RUNS = 20
2
- # FILES = ['mdsyntax.text', 'mdbasics.text']
3
- # benchmark_dir = File.join(File.dirname(__FILE__), '../benchmark')
4
- #
5
- # puts
6
- # puts "Running tests on #{Time.now.strftime("%Y-%m-%d")} under #{RUBY_DESCRIPTION}"
7
- #
8
- # FILES.each do |file|
9
- # data = File.read(File.join(benchmark_dir, file))
10
- # puts
11
- # puts "Test using file #{file} and #{RUNS} runs"
12
- # results = Benchmark.bmbm do |b|
13
- # b.report("kramdown #{Kramdown::VERSION}") { RUNS.times { Kramdown::Document.new(data).to_html } }
14
- # # b.report("Maruku #{MaRuKu::Version}") { RUNS.times { Maruku.new(data, :on_error => :ignore).to_html } }
15
- # end
16
- #
17
- # puts
18
- # # puts "Real time of X divided by real time of kramdown"
19
- # # kd = results.shift.real
20
- # # %w[Maruku BlueFeather BlueCloth RDiscount redcarpet].each do |name|
21
- # # puts name.ljust(19) << (results.shift.real/kd).round(4).to_s
22
- # # end
23
- # end
24
- #
25
- # describe "Benchmark Test" do
26
- # it "benchmarks with mdsyntax.text and mdbasics.text" do
27
- # expect(true).to eq true
28
- # end
29
- # end
30
- #
1
+ # Hoedown flags
2
+ # ------------------------------------------------------------------------------
3
+ FLAGS = HOEDOWN_EXT_TABLES | HOEDOWN_EXT_FENCED_CODE | HOEDOWN_EXT_FOOTNOTES |
4
+ HOEDOWN_EXT_AUTOLINK | HOEDOWN_EXT_STRIKETHROUGH | HOEDOWN_EXT_HIGHLIGHT |
5
+ HOEDOWN_EXT_SUPERSCRIPT | HOEDOWN_EXT_MATH | HOEDOWN_EXT_NO_INTRA_EMPHASIS
6
+
7
+ runs = 10
8
+ files = ['mdsyntax.text', 'mdbasics.text']
9
+ benchmark_dir = File.join(File.dirname(__FILE__), '../benchmark')
10
+
11
+ puts
12
+ puts "Running tests on #{Time.now.strftime("%Y-%m-%d")} under #{RUBY_DESCRIPTION}"
13
+
14
+ files.each do |file|
15
+ data = File.read(File.join(benchmark_dir, file))
16
+ puts
17
+ puts "==> Test using file #{file} and #{runs} runs"
18
+
19
+ # results = Benchmark.bmbm do |b|
20
+ results = Benchmark.bm do |b|
21
+ b.report("kramdown #{Kramdown::VERSION}") { runs.times { Kramdown::Document.new(data).to_html } }
22
+ b.report(" hoedown 3.0.1") do
23
+ runs.times do
24
+ document = HoedownDocument.new
25
+ document.initWithHtmlRendererWithFlags(FLAGS)
26
+ html = document.renderMarkdownString(data)
27
+ end
28
+ end
29
+ end
30
+
31
+ # puts
32
+ # puts "Real time of X divided by real time of kramdown"
33
+ # kd = results.shift.real
34
+ # %w[hoedown].each do |name|
35
+ # puts name.ljust(19) << (results.shift.real/kd).round(4).to_s
36
+ # end
37
+ end
38
+
39
+ describe "Benchmark Test" do
40
+ it "benchmarks with mdsyntax.text and mdbasics.text" do
41
+ expect(true).to eq true
42
+ end
43
+ end