curldown 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/curldown.rb +20 -2
  2. metadata +37 -5
data/lib/curldown.rb CHANGED
@@ -1,5 +1,10 @@
1
- ['curb','kramdown'].each do |gem| require gem end
1
+ ['curb','github/markup','nokogiri','pygments.rb'].each do |gem| require gem end
2
2
  class Curldown
3
+ @@lexers = []
4
+ Pygments.lexers.each do |a|
5
+ @@lexers << a[1][:aliases]
6
+ end
7
+ @@lexers.flatten!
3
8
  def initialize
4
9
  @options = {:user => nil, :repo => nil, :branch => "master", :file => "readme.md", :url => nil}
5
10
  end
@@ -28,7 +33,20 @@ class Curldown
28
33
  end
29
34
  def fetch(url)
30
35
  if check_response_code(url)
31
- Kramdown::Document.new(Curl.get(url).body_str).to_html
36
+ html = GitHub::Markup.render("markdown.md", Curl.get(url).body_str)
37
+ doc = Nokogiri::HTML(html)
38
+ doc.css("pre").each do |pre|
39
+ if @@lexers.include?(pre.attributes["lang"].value)
40
+ lang = pre.attributes["lang"].value
41
+ else
42
+ lang = "sh"
43
+ end
44
+ highlight = Pygments.highlight(pre.content, :lexer => lang)
45
+ parsed = Nokogiri::HTML(highlight).css(".highlight")
46
+ pre.add_next_sibling(parsed)
47
+ pre.remove
48
+ end
49
+ doc.css("body").children.to_html
32
50
  else
33
51
  raise "#{url} is responding with a 404 error"
34
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curldown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-22 00:00:00.000000000 Z
12
+ date: 2013-06-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: curb
@@ -28,13 +28,13 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.8.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: kramdown
31
+ name: github-markup
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.0.0
37
+ version: 0.7.5
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,39 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.0.0
45
+ version: 0.7.5
46
+ - !ruby/object:Gem::Dependency
47
+ name: nokogiri
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.5.0
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.5.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: pygments.rb
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.5.0
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.5.0
46
78
  description: A simple tool to parse hosted markdown files into html
47
79
  email: ian@iankent.me
48
80
  executables: []