markup_parser 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -13,5 +13,34 @@ So I created my own little library.
13
13
 
14
14
  ## Usage
15
15
 
16
+ List the available markup parsers:
16
17
 
18
+ MarkupParser.format_parsers #=> { 'markdown' => MarkupParser::Markdown, 'rdoc' => MarkupParser::Rdoc }
17
19
 
20
+ Parse some text to Html:
21
+
22
+ MarkupParser::Markdown.new("body").to_html #=> "<p>body<p>"
23
+
24
+ **Note** that the `MarkupParser::Markdown` is the parser for Markdown, and can be reused by just creating a new instance.
25
+
26
+ ## Styling Code Blocks
27
+
28
+ Another goal was to simplify code block styling. MarkupParser doesn't stylize the code, but instead lets you easily accomplish it with your own code styler:
29
+
30
+ markup = MarkupParser::Html.new("<pre lang='ruby'>Class</pre>")
31
+ markup.stylize_code_blocks { |code, lang|
32
+ Albino.colorize(code, lang)
33
+ }
34
+ markup.to_html #=> "<pre class='highlight'><span class='class'>Class</span></pre>"
35
+
36
+ Or:
37
+
38
+ MarkupParser::Html.new("<pre lang='ruby'>Class</pre>").stylize_code_blocks { |code, lang|
39
+ Albino.colorize(code, lang)
40
+ }.to_html #=> "<pre class='highlight'><span class='class'>Class</span></pre>"
41
+
42
+ For each code block recognized by the markup language, `stylize_code_blocks` accepts a block with parameters: `code, lang` for you to use.
43
+
44
+ ## Adding Markup Parsers
45
+
46
+ Ask me (Todo)
@@ -2,7 +2,7 @@ require 'nokogiri'
2
2
 
3
3
  module MarkupParser
4
4
  class Default
5
- attr_reader :original_text, :nokoguri_parser, :html_text, :lexer_proc
5
+ attr_reader :original_text, :nokogiri_parser, :html_text, :lexer_proc
6
6
 
7
7
  def initialize(text='', &lexer)
8
8
  @original_text = hot_fixes(text)
@@ -13,7 +13,7 @@ module MarkupParser
13
13
  # Returns the fully stylized and sanitized HTML
14
14
  def to_html
15
15
  begin
16
- nokoguri_parser.to_xhtml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XHTML)
16
+ nokogiri_parser.to_xhtml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XHTML)
17
17
  rescue => e
18
18
  puts <<-ERROR
19
19
  ******************
@@ -28,17 +28,17 @@ module MarkupParser
28
28
 
29
29
 
30
30
  # Instantiates a Nokoguri::HTML fragment parser
31
- def nokoguri_parser
31
+ def nokogiri_parser
32
32
  begin
33
- @nokoguri_parser ||= ::Nokogiri::HTML::DocumentFragment.parse(html_text)
33
+ @nokogiri_parser ||= ::Nokogiri::HTML::DocumentFragment.parse(html_text)
34
34
  rescue => e
35
35
  puts "
36
36
  \n******************
37
- Error in #{self.class}#nokoguri_parser.
37
+ Error in #{self.class}#nokogiri_parser.
38
38
  Reason: #{e.message}.
39
39
  Putting error message into the output.
40
40
  ******************\n"
41
- @nokoguri_parser = ::Nokogiri::HTML::DocumentFragment.parse("<p class='parse_error'>Error in parsing in #{self.class}: #{e.message}.</p>")
41
+ @nokogiri_parser = ::Nokogiri::HTML::DocumentFragment.parse("<p class='parse_error'>Error in parsing in #{self.class}: #{e.message}.</p>")
42
42
  end
43
43
  end
44
44
 
@@ -60,7 +60,7 @@ module MarkupParser
60
60
  # Stylizes the code blocks in the html_text.
61
61
  # Uses either a passed in lexer Proc or the default_lexer
62
62
  def stylize_code_blocks
63
- nokoguri_parser.search('pre').each do |node|
63
+ nokogiri_parser.search('pre').each do |node|
64
64
  begin
65
65
  next unless lang = node['lang']
66
66
  text = node.inner_text
@@ -1,6 +1,16 @@
1
1
  # HTML renderer with Ultraviolet Code Lexer
2
2
  class UvHtmlRender < Redcarpet::Render::HTML
3
3
  def block_code(code, language)
4
- Uv.parse(code, "xhtml", language, false, "railscasts")
4
+ begin
5
+ return Uv.parse(code, "xhtml", language, false, "railscasts")
6
+ rescue => e
7
+ puts "
8
+ \n******************
9
+ Error in parsing <pre lang=''> block.
10
+ Reason: #{e.message}.
11
+ Continueing code block parsing.
12
+ ******************\n"
13
+ return code
14
+ end
5
15
  end
6
16
  end
@@ -32,6 +32,9 @@ module MarkupParser
32
32
  }
33
33
 
34
34
 
35
+
36
+
37
+
35
38
  # Returns the fully stylized HTML for this markdown text
36
39
  def html_text
37
40
  @html_text ||= parser.render(@original_text)
@@ -1,3 +1,3 @@
1
1
  module MarkupParser
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markup_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-29 00:00:00.000000000 Z
12
+ date: 2011-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70307915023820 !ruby/object:Gem::Requirement
16
+ requirement: &70258925224740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70307915023820
24
+ version_requirements: *70258925224740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: uv
27
- requirement: &70307914989860 !ruby/object:Gem::Requirement
27
+ requirement: &70258925191720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70307914989860
35
+ version_requirements: *70258925191720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc
38
- requirement: &70307914989120 !ruby/object:Gem::Requirement
38
+ requirement: &70258925190820 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70307914989120
46
+ version_requirements: *70258925190820
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70307914988680 !ruby/object:Gem::Requirement
49
+ requirement: &70258925190380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70307914988680
57
+ version_requirements: *70258925190380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest
60
- requirement: &70307914988000 !ruby/object:Gem::Requirement
60
+ requirement: &70258925189700 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70307914988000
68
+ version_requirements: *70258925189700
69
69
  description: ! 'Standardized markup parsers to use a single format: an object. Instantiate
70
70
  a specific markup class with text to output formated Html. Allows for easy code
71
71
  block highlighting using a Proc; defaults to Uv (ruby Ultraviolet)'