github-markup 0.5.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "http://rubygems.org"
2
+ gem "redcarpet"
3
+ gem "RedCloth"
4
+ gem "rdoc", "~>3.6"
5
+ gem "org-ruby"
6
+ gem "creole", "~>0.3.6"
7
+ gem "wikicloth", "=0.6.0"
8
+ gem "rake"
data/HISTORY.md ADDED
@@ -0,0 +1,76 @@
1
+ ## 0.5.1 (2010-09-30)
2
+
3
+ * Support relative path links in rdoc
4
+
5
+ ## 0.5.0 (2010-07-07)
6
+
7
+ * Added creole support
8
+
9
+ ## 0.4.0 (2010-04-23)
10
+
11
+ * Removed man page support until it's ready.
12
+
13
+ ## 0.3.3 (2010-03-29)
14
+
15
+ * UTF-8 works with ReST now.
16
+
17
+ ## 0.3.2 (2010-03-25)
18
+
19
+ * Improved test runner
20
+ * Forgive ReST problems that aren't user errors.
21
+
22
+ ## 0.3.1 (2010-03-22)
23
+
24
+ * Add .rst.txt extension
25
+ * Fix ASCII encoding error while using print u'\u010c' non-ASCII char and similar.
26
+
27
+ ## 0.3.0 (2010-03-11)
28
+
29
+ * man rendering
30
+ * `github-markup` command line runner
31
+
32
+ ## 0.2.2 (2010-02-09)
33
+
34
+ * pod fixes from Ricardo Signes
35
+
36
+ ## 0.2.1 (2010-01-25)
37
+
38
+ * ReST fixes from Michael Jones
39
+
40
+ ## 0.2.0 (2010-01-10)
41
+
42
+ * org-mode support
43
+
44
+ ## 0.1.7 (2009-11-17)
45
+
46
+ * Ditch asciidoc2html, call asciidoc directly
47
+
48
+ ## 0.1.6 (2009-11-17)
49
+
50
+ * mdown
51
+
52
+ ## 0.1.5 (2009-11-17)
53
+
54
+ * Actually, if we can't render a thing then don't. Not once, not never.
55
+
56
+ ## 0.1.4 (2009-11-17)
57
+
58
+ * Bugfix: Missing commands return the input (instead of nothing)
59
+
60
+ ## 0.1.3 (2009-11-02)
61
+
62
+ * Strip the INDEX comments from POD
63
+
64
+ ## 0.1.2 (2009-11-02)
65
+
66
+ * Renamed to `github-markup`
67
+ * Bugfix: POD rendering works now, not just index
68
+
69
+ ## 0.1.1 (2009-11-02)
70
+
71
+ * Added `GitHub::Markup.can_render?` helper.
72
+ * Bugfix: Actually check file extensions
73
+
74
+ ## 0.1.0 (2009-11-02)
75
+
76
+ * First release
data/README.md CHANGED
@@ -10,16 +10,16 @@ Markups
10
10
  The following markups are supported. The dependencies listed are required if
11
11
  you wish to run the library.
12
12
 
13
- * [.markdown](http://daringfireball.net/projects/markdown/) -- `gem install rdiscount`
13
+ * [.markdown](http://daringfireball.net/projects/markdown/) -- `gem install redcarpet` (https://github.com/tanoku/redcarpet)
14
14
  * [.textile](http://www.textism.com/tools/textile/) -- `gem install RedCloth`
15
- * [.rdoc](http://rdoc.sourceforge.net/)
15
+ * [.rdoc](http://rdoc.sourceforge.net/) -- `gem install rdoc -v 3.6.1`
16
16
  * [.org](http://orgmode.org/) -- `gem install org-ruby`
17
17
  * [.creole](http://wikicreole.org/) -- `gem install creole`
18
+ * [.mediawiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
18
19
  * [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
19
20
  * [.asciidoc](http://www.methods.co.nz/asciidoc/) -- `brew install asciidoc`
20
21
  * [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
21
22
  comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
22
- * .1 - Requires [`groff`](http://www.gnu.org/software/groff/)
23
23
 
24
24
 
25
25
  Contributing
data/Rakefile CHANGED
@@ -1,11 +1,133 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'date'
4
+
5
+ #############################################################################
6
+ #
7
+ # Helper functions
8
+ #
9
+ #############################################################################
10
+
11
+ def name
12
+ @name ||= Dir['*.gemspec'].first.split('.').first
13
+ end
14
+
15
+ def version
16
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
17
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
18
+ end
19
+
20
+ def date
21
+ Date.today.to_s
22
+ end
23
+
24
+ def rubyforge_project
25
+ name
26
+ end
27
+
28
+ def gemspec_file
29
+ "#{name}.gemspec"
30
+ end
31
+
32
+ def gem_file
33
+ "#{name}-#{version}.gem"
34
+ end
35
+
36
+ def replace_header(head, header_name)
37
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
38
+ end
39
+
40
+ #############################################################################
41
+ #
42
+ # Standard tasks
43
+ #
44
+ #############################################################################
45
+
1
46
  task :default => :test
2
47
 
3
- desc "Run tests"
4
- task :test do
5
- Dir['test/**/*_test.rb'].each { |file| require file }
48
+ require 'rake/testtask'
49
+ Rake::TestTask.new(:test) do |test|
50
+ test.libs << 'lib' << 'test'
51
+ test.pattern = 'test/**/*_test.rb'
52
+ test.verbose = true
6
53
  end
7
54
 
55
+ desc "Open an irb session preloaded with this library"
56
+ task :console do
57
+ sh "irb -rubygems -r ./lib/#{name}.rb"
58
+ end
59
+
60
+ #############################################################################
61
+ #
62
+ # Custom tasks (add your own tasks here)
63
+ #
64
+ #############################################################################
65
+
8
66
  desc "Kick it"
9
67
  task :kick do
10
68
  exec "kicker -e rake test lib"
11
69
  end
70
+
71
+ #############################################################################
72
+ #
73
+ # Packaging tasks
74
+ #
75
+ #############################################################################
76
+
77
+ desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
78
+ task :release => :build do
79
+ unless `git branch` =~ /^\* master$/
80
+ puts "You must be on the master branch to release!"
81
+ exit!
82
+ end
83
+ sh "git commit --allow-empty -a -m 'Release #{version}'"
84
+ sh "git tag v#{version}"
85
+ sh "git push origin master"
86
+ sh "git push origin v#{version}"
87
+ sh "gem push pkg/#{name}-#{version}.gem"
88
+ end
89
+
90
+ desc "Build #{gem_file} into the pkg directory"
91
+ task :build => :gemspec do
92
+ sh "mkdir -p pkg"
93
+ sh "gem build #{gemspec_file}"
94
+ sh "mv #{gem_file} pkg"
95
+ end
96
+
97
+ desc "Generate #{gemspec_file}"
98
+ task :gemspec => :validate do
99
+ # read spec file and split out manifest section
100
+ spec = File.read(gemspec_file)
101
+ head, manifest, tail = spec.split(" # = MANIFEST =\n")
102
+
103
+ # replace name version and date
104
+ replace_header(head, :name)
105
+ replace_header(head, :version)
106
+ replace_header(head, :date)
107
+ #comment this out if your rubyforge_project has a different name
108
+ replace_header(head, :rubyforge_project)
109
+
110
+ # determine file list from git ls-files
111
+ files = `git ls-files`.
112
+ split("\n").
113
+ sort.
114
+ reject { |file| file =~ /^\./ }.
115
+ reject { |file| file =~ /^(rdoc|pkg)/ }.
116
+ map { |file| " #{file}" }.
117
+ join("\n")
118
+
119
+ # piece file back together and write
120
+ manifest = " s.files = %w[\n#{files}\n ]\n"
121
+ spec = [head, manifest, tail].join(" # = MANIFEST =\n")
122
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
123
+ puts "Updated #{gemspec_file}"
124
+ end
125
+
126
+ desc "Validate #{gemspec_file}"
127
+ task :validate do
128
+ unless Dir['VERSION*'].empty?
129
+ puts "A `VERSION` file at root level violates Gem best practices."
130
+ exit!
131
+ end
132
+ end
133
+
@@ -0,0 +1,103 @@
1
+ ## This is the rakegem gemspec template. Make sure you read and understand
2
+ ## all of the comments. Some sections require modification, and others can
3
+ ## be deleted if you don't need them. Once you understand the contents of
4
+ ## this file, feel free to delete any comments that begin with two hash marks.
5
+ ## You can find comprehensive Gem::Specification documentation, at
6
+ ## http://docs.rubygems.org/read/chapter/20
7
+ Gem::Specification.new do |s|
8
+ s.specification_version = 2 if s.respond_to? :specification_version=
9
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.rubygems_version = '1.3.5'
11
+
12
+ ## Leave these as is they will be modified for you by the rake gemspec task.
13
+ ## If your rubyforge_project name is different, then edit it and comment out
14
+ ## the sub! line in the Rakefile
15
+ s.name = 'github-markup'
16
+ s.version = '0.7.0'
17
+ s.date = '2011-12-07'
18
+ s.rubyforge_project = 'github-markup'
19
+
20
+ ## Make sure your summary is short. The description may be as long
21
+ ## as you like.
22
+ s.summary = "The code GitHub uses to render README.markup"
23
+ s.description = <<desc
24
+ This gem is used by GitHub to render any fancy markup such as
25
+ Markdown, Textile, Org-Mode, etc. Fork it and add your own!
26
+ desc
27
+
28
+ ## List the primary authors. If there are a bunch of authors, it's probably
29
+ ## better to set the email to an email list or something. If you don't have
30
+ ## a custom homepage, consider using your GitHub URL or the like.
31
+ s.authors = ["Chris Wanstrath"]
32
+ s.email = 'chris@ozmm.org'
33
+ s.homepage = 'https://github.com/github/markup'
34
+
35
+ ## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
36
+ ## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
37
+ s.require_paths = %w[lib]
38
+
39
+ ## Specify any RDoc options here. You'll want to add your README and
40
+ ## LICENSE files to the extra_rdoc_files list.
41
+ s.rdoc_options = ["--charset=UTF-8"]
42
+ s.extra_rdoc_files = %w[README.md LICENSE]
43
+
44
+ ## List your runtime dependencies here. Runtime dependencies are those
45
+ ## that are needed for an end user to actually USE your code.
46
+ #s.add_dependency('simple_uuid', "~> 0.1.2")
47
+
48
+ ## List your development dependencies here. Development dependencies are
49
+ ## those that are only needed during development
50
+ #s.add_development_dependency("test-unit", "~> 2.3.0")
51
+
52
+ ## Leave this section as-is. It will be automatically generated from the
53
+ ## contents of your Git repository via the gemspec task. DO NOT REMOVE
54
+ ## THE MANIFEST COMMENTS, they are used as delimiters by the task.
55
+ # = MANIFEST =
56
+ s.files = %w[
57
+ Gemfile
58
+ HISTORY.md
59
+ LICENSE
60
+ README.md
61
+ Rakefile
62
+ bin/github-markup
63
+ github-markup.gemspec
64
+ lib/github-markup.rb
65
+ lib/github/commands/asciidoc2html
66
+ lib/github/commands/asciidocapi.py
67
+ lib/github/commands/rest2html
68
+ lib/github/markup.rb
69
+ lib/github/markup/rdoc.rb
70
+ lib/github/markups.rb
71
+ test/markup_test.rb
72
+ test/markups/README.asciidoc
73
+ test/markups/README.asciidoc.html
74
+ test/markups/README.creole
75
+ test/markups/README.creole.html
76
+ test/markups/README.markdown
77
+ test/markups/README.markdown.html
78
+ test/markups/README.mediawiki
79
+ test/markups/README.mediawiki.html
80
+ test/markups/README.noformat
81
+ test/markups/README.noformat.html
82
+ test/markups/README.org
83
+ test/markups/README.org.html
84
+ test/markups/README.pod
85
+ test/markups/README.pod.html
86
+ test/markups/README.rdoc
87
+ test/markups/README.rdoc.html
88
+ test/markups/README.rst
89
+ test/markups/README.rst.html
90
+ test/markups/README.rst.txt
91
+ test/markups/README.rst.txt.html
92
+ test/markups/README.textile
93
+ test/markups/README.textile.html
94
+ test/markups/README.txt
95
+ test/markups/README.txt.html
96
+ ]
97
+ # = MANIFEST =
98
+
99
+ ## Test files will be grabbed from the file list. Make sure the path glob
100
+ ## matches what you actually use.
101
+ s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
102
+ end
103
+
@@ -0,0 +1,6 @@
1
+ module GitHub
2
+ module Markup
3
+ VERSION = '0.7.0'
4
+ Version = VERSION
5
+ end
6
+ end
data/lib/github/markup.rb CHANGED
@@ -22,8 +22,9 @@ module GitHub
22
22
  def markup(file, pattern, &block)
23
23
  require file.to_s
24
24
  add_markup(pattern, &block)
25
+ true
25
26
  rescue LoadError
26
- nil
27
+ false
27
28
  end
28
29
 
29
30
  def command(command, regexp, &block)
@@ -1,5 +1,5 @@
1
- require 'rdoc/generators/html_generator'
2
- require 'ostruct'
1
+ require "rdoc"
2
+ require "rdoc/markup/to_html"
3
3
 
4
4
  module GitHub
5
5
  module Markup
@@ -9,11 +9,8 @@ module GitHub
9
9
  end
10
10
 
11
11
  def to_html
12
- simple_markup = SM::SimpleMarkup.new
13
- generator = Generators::HyperlinkHtml.new('', OpenStruct.new)
14
- simple_markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK)
15
- simple_markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK)
16
- simple_markup.convert(@content, generator)
12
+ h = ::RDoc::Markup::ToHtml.new
13
+ h.convert(@content)
17
14
  end
18
15
  end
19
16
  end
@@ -1,5 +1,20 @@
1
- markup(:markdown, /md|mkdn?|mdown|markdown/) do |content|
2
- Markdown.new(content).to_html
1
+ MD_FILES = /md|mkdn?|mdown|markdown/
2
+
3
+ if markup(:redcarpet, MD_FILES) do |content|
4
+ RedcarpetCompat.new(content).to_html
5
+ end
6
+ elsif markup(:rdiscount, MD_FILES) do |content|
7
+ RDiscount.new(content).to_html
8
+ end
9
+ elsif markup(:maruku, MD_FILES) do |content|
10
+ Maruku.new(content).to_html
11
+ end
12
+ elsif markup(:kramdown, MD_FILES) do |content|
13
+ Kramdown::Document.new(content).to_html
14
+ end
15
+ elsif markup(:bluecloth, MD_FILES) do |content|
16
+ BlueCloth.new(content).to_html
17
+ end
3
18
  end
4
19
 
5
20
  markup(:redcloth, /textile/) do |content|
@@ -2,4 +2,3 @@
2
2
  <li>One</li>
3
3
  <li>Two</li>
4
4
  </ul>
5
-
@@ -1,16 +1,11 @@
1
- <ul>
2
- <li>One
1
+ <ul><li>
2
+ <p>One</p>
3
+ </li><li>
4
+ <p>Two</p>
5
+ </li></ul>
3
6
 
4
- </li>
5
- <li>Two
7
+ <p>This is an <a href="http://github.com">absolute link</a>. So is this: <a
8
+ href="http://github.com">github.com</a></p>
6
9
 
7
- </li>
8
- </ul>
9
- <p>
10
- This is an <a href="http://github.com">absolute link</a>. So is this: <a
11
- href="http://github.com">github.com</a>
12
- </p>
13
- <p>
14
- This is a <a href="rawr.html">relative link</a>. So is this: <a
15
- href="rawr.html">rawr.html</a>
16
- </p>
10
+ <p>This is a <a href="rawr.html">relative link</a>. So is this: <a
11
+ href="rawr.html">rawr.html</a></p>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-markup
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
4
+ hash: 3
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 5
9
- - 3
10
- version: 0.5.3
8
+ - 7
9
+ - 0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Wanstrath
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-03 00:00:00 -08:00
19
- default_executable:
18
+ date: 2011-12-07 00:00:00 Z
20
19
  dependencies: []
21
20
 
22
21
  description: " This gem is used by GitHub to render any fancy markup such as\n Markdown, Textile, Org-Mode, etc. Fork it and add your own!\n"
@@ -25,20 +24,24 @@ executables: []
25
24
 
26
25
  extensions: []
27
26
 
28
- extra_rdoc_files: []
29
-
27
+ extra_rdoc_files:
28
+ - README.md
29
+ - LICENSE
30
30
  files:
31
+ - Gemfile
32
+ - HISTORY.md
33
+ - LICENSE
31
34
  - README.md
32
35
  - Rakefile
33
- - LICENSE
36
+ - bin/github-markup
37
+ - github-markup.gemspec
38
+ - lib/github-markup.rb
34
39
  - lib/github/commands/asciidoc2html
35
40
  - lib/github/commands/asciidocapi.py
36
41
  - lib/github/commands/rest2html
37
- - lib/github/markup/rdoc.rb
38
- - lib/github/markup/version.rb
39
42
  - lib/github/markup.rb
43
+ - lib/github/markup/rdoc.rb
40
44
  - lib/github/markups.rb
41
- - bin/github-markup
42
45
  - test/markup_test.rb
43
46
  - test/markups/README.asciidoc
44
47
  - test/markups/README.asciidoc.html
@@ -64,13 +67,12 @@ files:
64
67
  - test/markups/README.textile.html
65
68
  - test/markups/README.txt
66
69
  - test/markups/README.txt.html
67
- has_rdoc: true
68
- homepage: http://github.com/github/markup
70
+ homepage: https://github.com/github/markup
69
71
  licenses: []
70
72
 
71
73
  post_install_message:
72
- rdoc_options: []
73
-
74
+ rdoc_options:
75
+ - --charset=UTF-8
74
76
  require_paths:
75
77
  - lib
76
78
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -93,10 +95,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
95
  version: "0"
94
96
  requirements: []
95
97
 
96
- rubyforge_project:
97
- rubygems_version: 1.3.7
98
+ rubyforge_project: github-markup
99
+ rubygems_version: 1.8.10
98
100
  signing_key:
99
- specification_version: 3
101
+ specification_version: 2
100
102
  summary: The code GitHub uses to render README.markup
101
103
  test_files: []
102
104
 
@@ -1,5 +0,0 @@
1
- module GitHub
2
- module Markup
3
- Version = VERSION = '0.5.3'
4
- end
5
- end