markdown_doctor 0.2.0 → 0.3.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.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,26 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ markdown_doctor (0.3.0)
5
+ nokogiri (~> 1.5.0)
6
+ pygments.rb (~> 0.2.4)
7
+ redcarpet (~> 2.1.0)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ blankslate (2.1.2.4)
13
+ ffi (1.0.11)
14
+ nokogiri (1.5.0)
15
+ pygments.rb (0.2.4)
16
+ rubypython (~> 0.5.3)
17
+ redcarpet (2.1.0)
18
+ rubypython (0.5.3)
19
+ blankslate (>= 2.1.2.3)
20
+ ffi (~> 1.0.7)
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ markdown_doctor!
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ desc "remove built gems"
2
+ task :clean do
3
+ sh "rm markdown_doctor-*" rescue true
4
+ end
5
+
6
+ desc "build gem"
7
+ task :build do
8
+ sh "gem build markdown_doctor.gemspec"
9
+ end
10
+
11
+ desc "install gem"
12
+ task :install => [:clean, :build] do
13
+ sh "gem install `ls markdown_doctor-*`"
14
+ end
data/bin/markdown_doctor CHANGED
@@ -2,18 +2,22 @@
2
2
 
3
3
  require "rubygems"
4
4
  require "redcarpet"
5
+ require "nokogiri"
6
+ require "pygments.rb"
5
7
 
6
8
  HEADER = <<EOF
7
- <link href="https://assets0.github.com/stylesheets/bundle_common.css" type="text/css" rel="stylesheet" />
8
- <link href="https://assets0.github.com/stylesheets/bundle_github.css" type="text/css" rel="stylesheet" />
9
+ <link href="http://assets.github.com/stylesheets/bundles/github-92243db0daab07aa944d353c1ba062b9581bd321.css"
10
+ type="text/css" rel="stylesheet" />
11
+ <link href="http://assets.github.com/stylesheets/bundles/github2-b4eff0bfa63304403db18c61e84e5af78b005dab.css"
12
+ type="text/css" rel="stylesheet" />
9
13
  <style type="text/css">
10
- #readme.announce {
14
+ #main-wrapper {
11
15
  width: 920px;
12
16
  margin: 0 auto;
13
17
  }
14
18
  </style>
15
- <div id="readme" class="announce">
16
- <div class="wikistyle">
19
+ <div id="main-wrapper">
20
+ <div class="markdown-body">
17
21
  EOF
18
22
 
19
23
  FOOTER = <<EOF
@@ -21,8 +25,23 @@ FOOTER = <<EOF
21
25
  </div>
22
26
  EOF
23
27
 
28
+ def pygmentize_code_blocks(html)
29
+ doc = Nokogiri::HTML(html)
30
+ code_blocks = doc.css("pre code[class]").map(&:parent)
31
+
32
+ code_blocks.each do |code|
33
+ language = code.child.attribute("class").value
34
+ pygmentized_html = Pygments.highlight(code.child.text, :lexer => language, :encoding => "utf-8",
35
+ :nowrap => true, :stripnl => false, :stripall => false)
36
+ new_node = Nokogiri::HTML.fragment(pygmentized_html)
37
+ code.replace(new_node)
38
+ end
39
+
40
+ doc.to_html
41
+ end
42
+
24
43
  text = ARGF.read
25
- markdown_options = { :tables => true, :fenced_code_blocks => true, :space_after_headers => true }
44
+ markdown_options = { :fenced_code_blocks => true, :tables => true, :space_after_headers => true }
26
45
  markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, markdown_options)
27
- output = HEADER + markdown.render(text) + FOOTER
46
+ output = HEADER + pygmentize_code_blocks(markdown.render(text)) + FOOTER
28
47
  puts output
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "markdown_doctor"
3
- s.version = "0.2.0"
3
+ s.version = "0.3.0"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">=0") if s.respond_to? :required_rubygems_version=
6
6
  s.specification_version = 2 if s.respond_to? :specification_version=
@@ -14,10 +14,9 @@ Gem::Specification.new do |s|
14
14
  s.rubyforge_project = "markdown_doctor"
15
15
 
16
16
  s.executables = %w(markdown_doctor)
17
- s.files = %w(
18
- README.md
19
- markdown_doctor.gemspec
20
- bin/markdown_doctor
21
- )
22
- s.add_dependency("redcarpet", ">= 2.0.0b5")
17
+ s.files = `git ls-files`.split("\n")
18
+
19
+ s.add_dependency("nokogiri", "~> 1.5.0")
20
+ s.add_dependency("pygments.rb", "~> 0.2.4")
21
+ s.add_dependency("redcarpet", "~> 2.1.0")
23
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown_doctor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,19 +10,41 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-09-29 00:00:00.000000000Z
13
+ date: 2012-02-12 00:00:00.000000000Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nokogiri
17
+ requirement: &2169151320 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.5.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2169151320
26
+ - !ruby/object:Gem::Dependency
27
+ name: pygments.rb
28
+ requirement: &2169150860 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2169150860
15
37
  - !ruby/object:Gem::Dependency
16
38
  name: redcarpet
17
- requirement: &70246950414780 !ruby/object:Gem::Requirement
39
+ requirement: &2169150400 !ruby/object:Gem::Requirement
18
40
  none: false
19
41
  requirements:
20
- - - ! '>='
42
+ - - ~>
21
43
  - !ruby/object:Gem::Version
22
- version: 2.0.0b5
44
+ version: 2.1.0
23
45
  type: :runtime
24
46
  prerelease: false
25
- version_requirements: *70246950414780
47
+ version_requirements: *2169150400
26
48
  description: An absurdly simple script for rendering markdown with github styles.
27
49
  email:
28
50
  - dmacdougall@gmail.com
@@ -32,9 +54,13 @@ executables:
32
54
  extensions: []
33
55
  extra_rdoc_files: []
34
56
  files:
57
+ - .gitignore
58
+ - Gemfile
59
+ - Gemfile.lock
35
60
  - README.md
36
- - markdown_doctor.gemspec
61
+ - Rakefile
37
62
  - bin/markdown_doctor
63
+ - markdown_doctor.gemspec
38
64
  homepage: https://github.com/dmacdougall/markdown_doctor
39
65
  licenses: []
40
66
  post_install_message:
@@ -55,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
81
  version: '0'
56
82
  requirements: []
57
83
  rubyforge_project: markdown_doctor
58
- rubygems_version: 1.8.10
84
+ rubygems_version: 1.8.7
59
85
  signing_key:
60
86
  specification_version: 2
61
87
  summary: An absurdly simple script for rendering markdown with github styles.