Date: Wed, 11 Sep 2013 21:48:31 -0700
Subject: [PATCH 018/416] Fix LHS test file
---
test/markups/README.lhs.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/markups/README.lhs.html b/test/markups/README.lhs.html
index b099d366..eb2a30a1 100644
--- a/test/markups/README.lhs.html
+++ b/test/markups/README.lhs.html
@@ -2,7 +2,7 @@ Markdown
Except with more magic added.
-isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
+isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
isPrefixOf [] _ = True
isPrefixOf _ [] = False
isPrefixOf (x:xs) (y:ys)= x == y && isPrefixOf xs ys
From 2b1a41eef50c05d65093a6692f1ffe3a047e400c Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Wed, 11 Sep 2013 21:54:30 -0700
Subject: [PATCH 019/416] :lipstick:
---
lib/github/markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index 1cabe915..7e3f816b 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -89,7 +89,7 @@ def execute(command, target)
rescue Errno::EPIPE
""
rescue Errno::ENOENT
- ""
+ ""
end
# Define markups
From d764df94fc8e71227c3e8ff6458968ca134ef7ff Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Wed, 11 Sep 2013 22:08:51 -0700
Subject: [PATCH 020/416] Convert > to >
---
test/markups/README.litcoffee.html | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/test/markups/README.litcoffee.html b/test/markups/README.litcoffee.html
index e33f2349..69255d21 100644
--- a/test/markups/README.litcoffee.html
+++ b/test/markups/README.litcoffee.html
@@ -6,18 +6,18 @@ Literate CoffeeScript Test
comment comment
-test "basic literate CoffeeScript parsing", ->
+test "basic literate CoffeeScript parsing", ->
ok yes
now with a...
-test "broken up indentation", ->
+test "broken up indentation", ->
... broken up ...
- do ->
+ do ->
... nested block.
@@ -27,7 +27,7 @@ Literate CoffeeScript Test
Code must be separated from text by a blank line.
-test "code blocks must be preceded by a blank line", ->
+test "code blocks must be preceded by a blank line", ->
The next line is part of the text and will not be executed.
@@ -38,9 +38,9 @@
Literate CoffeeScript Test
Code in backticks is not parsed
and...
-test "comments in indented blocks work", ->
- do ->
- do ->
+test "comments in indented blocks work", ->
+ do ->
+ do ->
# Regular comment.
###
@@ -62,5 +62,5 @@ Literate CoffeeScript Test
Tabs work too:
-test "tabbed code", ->
+
test "tabbed code", ->
ok yes
From 14031f4166ebc5c57d09b766a1fa26eba2fdb6f1 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 12 Sep 2013 11:27:58 -0700
Subject: [PATCH 021/416] Release 0.7.6
---
github-markup.gemspec | 8 ++++++--
lib/github-markup.rb | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 86e9bb53..71e8eb28 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
## If your rubyforge_project name is different, then edit it and comment out
## the sub! line in the Rakefile
s.name = 'github-markup'
- s.version = '0.7.5'
- s.date = '2012-12-17'
+ s.version = '0.7.6'
+ s.date = '2013-09-12'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
@@ -66,6 +66,8 @@ desc
lib/github/markup.rb
lib/github/markup/rdoc.rb
lib/github/markups.rb
+ script/bootstrap
+ script/cibuild
test/markup_test.rb
test/markups/README.asciidoc
test/markups/README.asciidoc.html
@@ -73,6 +75,8 @@ desc
test/markups/README.creole.html
test/markups/README.lhs
test/markups/README.lhs.html
+ test/markups/README.litcoffee
+ test/markups/README.litcoffee.html
test/markups/README.markdown
test/markups/README.markdown.html
test/markups/README.mediawiki
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 7fe0cfe2..896d7eea 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '0.7.5'
+ VERSION = '0.7.6'
Version = VERSION
end
end
From a29021ce53f830b32b20dff962e726499e0b5516 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 12 Sep 2013 11:28:20 -0700
Subject: [PATCH 022/416] Release 0.7.6
From 1d189e7da7f82750bc2b9d8b326a50b9dff21925 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 12 Sep 2013 11:29:22 -0700
Subject: [PATCH 023/416] Release 0.7.6
From cbbaeda7ed1cd2a4f9f59598ebefaa3c8568494e Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Mon, 23 Sep 2013 18:20:15 -0700
Subject: [PATCH 024/416] Bump up to 0.7.7
---
.gitignore | 1 +
github-markup.gemspec | 6 ++++--
lib/github-markup.rb | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index b803332a..e3746243 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
*.pyc
+pkg/
bin
.bundle
Gemfile.lock
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 71e8eb28..2957dc40 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -1,3 +1,5 @@
+require File.expand_path("../lib/github-markup", __FILE__)
+
## This is the rakegem gemspec template. Make sure you read and understand
## all of the comments. Some sections require modification, and others can
## be deleted if you don't need them. Once you understand the contents of
@@ -13,8 +15,8 @@ Gem::Specification.new do |s|
## If your rubyforge_project name is different, then edit it and comment out
## the sub! line in the Rakefile
s.name = 'github-markup'
- s.version = '0.7.6'
- s.date = '2013-09-12'
+ s.version = GitHub::Markup::VERSION
+ s.date = '2013-09-23'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 896d7eea..1a3570c2 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '0.7.6'
+ VERSION = '0.7.7'
Version = VERSION
end
end
From 529204749d41be4892b28deab8d2125e5ea35c55 Mon Sep 17 00:00:00 2001
From: Dan Allen
Date: Thu, 26 Sep 2013 17:09:00 -0600
Subject: [PATCH 025/416] resolves #200 upgrade to Asciidoctor 0.1.4
- upgrade asciidoctor gem to 0.1.4
- update install instructions for AsciiDoc
- configure Asciidoctor to output correct tags for code listings
- set the showtitle attribute so document title is displayed
- set section idprefix & idseparator to be consistent w/ other renderers
- set env-github to allow conditional content when rendering on GitHub
- add tests for admonition (no icon) and source listing
- fix test
---
Gemfile | 2 +-
README.md | 2 +-
lib/github/markups.rb | 4 ++--
script/bootstrap | 1 -
test/markups/README.asciidoc | 12 ++++++++++++
test/markups/README.asciidoc.html | 29 +++++++++++++++++++++++++++++
6 files changed, 45 insertions(+), 5 deletions(-)
diff --git a/Gemfile b/Gemfile
index 943a84b6..ed45c35a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,5 +6,5 @@ gem "org-ruby", ">= 0.7.0"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
-gem "asciidoctor", ">= 0.0.9"
+gem "asciidoctor", "= 0.1.4"
gem "rake"
diff --git a/README.md b/README.md
index 7afa93ed..39f386d2 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.creole](http://wikicreole.org/) -- `gem install creole`
* [.mediawiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
* [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
-* [.asciidoc, .adoc, .asc](http://www.methods.co.nz/asciidoc/) -- `brew install asciidoc`
+* [.asciidoc, .adoc, .asc](http://asciidoc.org/) -- `gem install asciidoctor` (http://asciidoctor.org)
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 71103ba2..3567144d 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -44,8 +44,8 @@
Literati.render(content)
end
-markup(:asciidoctor, /asc|adoc|asciidoc/) do |content|
- Asciidoctor::Document.new(content).render
+markup(:asciidoctor, /adoc|asc(iidoc)?/) do |content|
+ Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
command(:rest2html, /re?st(\.txt)?/)
diff --git a/script/bootstrap b/script/bootstrap
index f9f93d43..8092d517 100755
--- a/script/bootstrap
+++ b/script/bootstrap
@@ -6,4 +6,3 @@ cd $(dirname "$0")/..
bundle install
easy_install docutils
-brew install asciidoc
diff --git a/test/markups/README.asciidoc b/test/markups/README.asciidoc
index b36565cc..6a0462cb 100644
--- a/test/markups/README.asciidoc
+++ b/test/markups/README.asciidoc
@@ -1,2 +1,14 @@
+= Document Title
+
+== First Section
+
* One
* Two
+
+== Second Section
+
+NOTE: Here is some source code.
+
+```ruby
+puts "Hello, World!"
+```
diff --git a/test/markups/README.asciidoc.html b/test/markups/README.asciidoc.html
index 447343cb..0692ac1d 100644
--- a/test/markups/README.asciidoc.html
+++ b/test/markups/README.asciidoc.html
@@ -1,3 +1,7 @@
+Document Title
+
+
+
Second Section
+
+
+
+
+
+ Note
+ |
+
+Here is some source code.
+ |
+
+
+
+
+
+
+
From 6536a74ef095f4d6880fa91e9e61c7d510b23ddc Mon Sep 17 00:00:00 2001
From: Tyler Chung
Date: Sat, 28 Sep 2013 14:06:14 +0800
Subject: [PATCH 026/416] remove rst table border
---
lib/github/commands/rest2html | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 4d1d522c..daf6004f 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -40,6 +40,14 @@ class GitHubHTMLTranslator(HTMLTranslator):
else:
self.body.append(self.starttag(node, 'pre'))
+ def visit_table(self, node):
+ classes = ' '.join(['docutils', self.settings.table_style]).strip()
+ self.body.append(
+ self.starttag(node, 'table', CLASS=classes))
+
+ def depart_table(self, node):
+ self.body.append('\n')
+
def main():
"""
Parses the given ReST file or the redirected string input and returns the
From f38a51da6fdbc0cff8f0fde0a9037faac4605ce4 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Mon, 30 Sep 2013 00:35:49 -0700
Subject: [PATCH 027/416] Add tests for RST
---
test/markups/README.rst | 8 ++++++++
test/markups/README.rst.html | 24 +++++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/test/markups/README.rst b/test/markups/README.rst
index 0dd8a812..d420def0 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -11,3 +11,11 @@ Header 2
2. More ``code``, hooray
3. Somé UTF-8°
+
+============== ==========================================================
+Travis http://travis-ci.org/tony/pullv
+Docs http://pullv.rtfd.org
+API http://pullv.readthedocs.org/en/latest/api.html
+Issues https://github.com/tony/pullv/issues
+Source https://github.com/tony/pullv
+============== ==========================================================
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 266c0702..b117e888 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -9,7 +9,29 @@ Header 2
More code, hooray
Somé UTF-8°
+
-
From 4bef720e5bb10afe26958ba50a9b4f805c597e14 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 10:09:20 +1100
Subject: [PATCH 028/416] tell ruby what the filename of markups.rb is
---
lib/github/markup.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index 7e3f816b..b36f68c6 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -93,6 +93,7 @@ def execute(command, target)
end
# Define markups
- instance_eval File.read(File.dirname(__FILE__) + '/markups.rb')
+ markups_rb = File.dirname(__FILE__) + '/markups.rb'
+ instance_eval File.read(markups_rb), markups_rb
end
end
From d565a88a743c2624351ce4cd1f027d2bb1cd76ed Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 10:09:33 +1100
Subject: [PATCH 029/416] defer loading of markups gems until they're first
used
---
lib/github/markup.rb | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index b36f68c6..f586c0e3 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -8,6 +8,14 @@ module GitHub
module Markup
extend self
@@markups = {}
+ @@deferred_markups = []
+
+ def preload!
+ @@deferred_markups.each do |loader|
+ loader.call
+ end
+ @@deferred_markups = []
+ end
def render(filename, content = nil)
content ||= File.read(filename)
@@ -20,8 +28,16 @@ def render(filename, content = nil)
end
def markup(file, pattern, &block)
- require file.to_s
- add_markup(pattern, &block)
+ loader = proc do
+ require file.to_s
+ add_markup(pattern, &block)
+ end
+ @@deferred_markups << loader
+ add_markup pattern do |*args|
+ @@deferred_markups.delete(loader)
+ loader.call
+ block.call(*args)
+ end
true
rescue LoadError
false
From 9f38d4156f389f31b1741b85e3296191616ec23d Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 10:24:16 +1100
Subject: [PATCH 030/416] add :eager option to markup
---
lib/github/markup.rb | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index f586c0e3..c69accc7 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -27,20 +27,28 @@ def render(filename, content = nil)
end
end
- def markup(file, pattern, &block)
+ def markup(file, pattern, opts = {}, &block)
loader = proc do
- require file.to_s
- add_markup(pattern, &block)
+ begin
+ require file.to_s
+ add_markup(pattern, &block)
+ true
+ rescue LoadError
+ false
+ end
end
- @@deferred_markups << loader
- add_markup pattern do |*args|
- @@deferred_markups.delete(loader)
+
+ if opts[:eager]
loader.call
- block.call(*args)
+ else
+ @@deferred_markups << loader
+ add_markup pattern do |*args|
+ @@deferred_markups.delete(loader)
+ loader.call
+ block.call(*args)
+ end
+ true
end
- true
- rescue LoadError
- false
end
def command(command, regexp, &block)
From c5f848e82768648571f6e2c45ef18cd121c794f8 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 10:24:27 +1100
Subject: [PATCH 031/416] eager load markdown implementations for fallback
---
lib/github/markups.rb | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 71103ba2..9217e68a 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,21 +1,21 @@
MD_FILES = /md|mkdn?|mdwn|mdown|markdown|litcoffee/
-if markup('github/markdown', MD_FILES) do |content|
+if markup('github/markdown', MD_FILES, eager: true) do |content|
GitHub::Markdown.render(content)
end
-elsif markup(:redcarpet, MD_FILES) do |content|
+elsif markup(:redcarpet, MD_FILES, eager: true) do |content|
RedcarpetCompat.new(content).to_html
end
-elsif markup(:rdiscount, MD_FILES) do |content|
+elsif markup(:rdiscount, MD_FILES, eager: true) do |content|
RDiscount.new(content).to_html
end
-elsif markup(:maruku, MD_FILES) do |content|
+elsif markup(:maruku, MD_FILES, eager: true) do |content|
Maruku.new(content).to_html
end
-elsif markup(:kramdown, MD_FILES) do |content|
+elsif markup(:kramdown, MD_FILES, eager: true) do |content|
Kramdown::Document.new(content).to_html
end
-elsif markup(:bluecloth, MD_FILES) do |content|
+elsif markup(:bluecloth, MD_FILES, eager: true) do |content|
BlueCloth.new(content).to_html
end
end
From 91950b83bbc9990613bec5370f53ddddaad644f6 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 11:19:42 +1100
Subject: [PATCH 032/416] refactor command/gem details into implementation
classes
---
lib/github/markup.rb | 96 +++------------------
lib/github/markup/command_implementation.rb | 52 +++++++++++
lib/github/markup/gem_implementation.rb | 26 ++++++
lib/github/markup/implementation.rb | 23 +++++
4 files changed, 112 insertions(+), 85 deletions(-)
create mode 100644 lib/github/markup/command_implementation.rb
create mode 100644 lib/github/markup/gem_implementation.rb
create mode 100644 lib/github/markup/implementation.rb
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index c69accc7..a204d0e7 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -1,83 +1,35 @@
-begin
- require 'open3_detach'
-rescue LoadError
- require 'open3'
-end
+require "github/markup/command_implementation"
+require "github/markup/gem_implementation"
module GitHub
module Markup
extend self
- @@markups = {}
- @@deferred_markups = []
+ @@markups = []
def preload!
- @@deferred_markups.each do |loader|
- loader.call
- end
- @@deferred_markups = []
+ # TODO
end
def render(filename, content = nil)
content ||= File.read(filename)
- if proc = renderer(filename)
- proc[content]
+ if impl = renderer(filename)
+ impl.render(content)
else
content
end
end
def markup(file, pattern, opts = {}, &block)
- loader = proc do
- begin
- require file.to_s
- add_markup(pattern, &block)
- true
- rescue LoadError
- false
- end
- end
-
- if opts[:eager]
- loader.call
- else
- @@deferred_markups << loader
- add_markup pattern do |*args|
- @@deferred_markups.delete(loader)
- loader.call
- block.call(*args)
- end
- true
- end
+ @@markups << GemImplementation.new(pattern, file, &block)
end
def command(command, regexp, &block)
- command = command.to_s
-
if File.exists?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- add_markup(regexp) do |content|
- rendered = execute(command, content)
- rendered = rendered.to_s.empty? ? content : rendered
-
- if block && block.arity == 2
- # If the block takes two arguments, pass new content and old
- # content.
- block.call(rendered, content)
- elsif block
- # One argument is just the new content.
- block.call(rendered)
- else
- # No block? No problem!
- rendered
- end
- end
- end
-
- def add_markup(regexp, &block)
- @@markups[regexp] = block
+ @@markups << CommandImplementation.new(regexp, command, &block)
end
def can_render?(filename)
@@ -85,35 +37,9 @@ def can_render?(filename)
end
def renderer(filename)
- @@markups.each do |key, value|
- if Regexp.compile("\\.(#{key})$") =~ filename
- return value
- end
- end
- nil
- end
-
- def renderer_name(filename)
- @@markups.each do |key, value|
- if Regexp.compile("\\.(#{key})$") =~ filename
- return key
- end
- end
- nil
- end
-
- def execute(command, target)
- out = ''
- Open3.popen3(command) do |stdin, stdout, _|
- stdin.puts target
- stdin.close
- out = stdout.read
- end
- out.gsub("\r", '')
- rescue Errno::EPIPE
- ""
- rescue Errno::ENOENT
- ""
+ @@markups.find { |impl|
+ impl.match?(filename)
+ }
end
# Define markups
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
new file mode 100644
index 00000000..9c531f0d
--- /dev/null
+++ b/lib/github/markup/command_implementation.rb
@@ -0,0 +1,52 @@
+begin
+ require "open3_detach"
+rescue LoadError
+ require "open3"
+end
+
+require "github/markup/implementation"
+
+module GitHub
+ module Markup
+ class CommandImplementation < Implementation
+ attr_reader :command, :block
+
+ def initialize(regexp, command, &block)
+ super regexp
+ @command = command.to_s
+ @block = block
+ end
+
+ def render(content)
+ rendered = execute(command, content)
+ rendered = rendered.to_s.empty? ? content : rendered
+ call_block(rendered, content)
+ end
+
+ private
+ def call_block(rendered, content)
+ if block && block.arity == 2
+ block.call(rendered, content)
+ elsif block
+ block.call(rendered)
+ else
+ rendered
+ end
+ end
+
+ def execute(command, target)
+ out = ''
+ Open3.popen3(command) do |stdin, stdout, _|
+ stdin.puts target
+ stdin.close
+ out = stdout.read
+ end
+ out.gsub("\r", '')
+ rescue Errno::EPIPE
+ ""
+ rescue Errno::ENOENT
+ ""
+ end
+ end
+ end
+end
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
new file mode 100644
index 00000000..a9f80b75
--- /dev/null
+++ b/lib/github/markup/gem_implementation.rb
@@ -0,0 +1,26 @@
+require "github/markup/implementation"
+
+module GitHub
+ module Markup
+ class GemImplementation < Implementation
+ attr_reader :gem_name, :renderer
+
+ def initialize(regexp, gem_name, &renderer)
+ super regexp
+ @gem_name = gem_name.to_s
+ @renderer = renderer
+ end
+
+ def load
+ return if @loaded
+ require gem_name
+ @loaded = true
+ end
+
+ def render(content)
+ load
+ renderer.call(content)
+ end
+ end
+ end
+end
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
new file mode 100644
index 00000000..16f73bc4
--- /dev/null
+++ b/lib/github/markup/implementation.rb
@@ -0,0 +1,23 @@
+module GitHub
+ module Markup
+ class Implementation
+ attr_reader :regexp
+
+ def initialize(regexp)
+ @regexp = regexp
+ end
+
+ def load
+ # no-op by default
+ end
+
+ def render(content)
+ raise NotImplementedError, "subclasses of GitHub::Markup::Implementation must define #render"
+ end
+
+ def match?(filename)
+ Regexp.compile("\\.(#{regexp})$") =~ filename
+ end
+ end
+ end
+end
From d65bb7ee9be795ae607d0d666e34fd4b33be0926 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 11:25:39 +1100
Subject: [PATCH 033/416] add special cased markdown implementation
---
lib/github/markup/markdown.rb | 56 +++++++++++++++++++++++++++++++++++
lib/github/markups.rb | 22 ++------------
2 files changed, 58 insertions(+), 20 deletions(-)
create mode 100644 lib/github/markup/markdown.rb
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
new file mode 100644
index 00000000..f4ef99dc
--- /dev/null
+++ b/lib/github/markup/markdown.rb
@@ -0,0 +1,56 @@
+require "github/markup/implementation"
+
+module GitHub
+ module Markup
+ class Markdown < Implementation
+ MARKDOWN_GEMS = {
+ "github/markdown" => proc { |content|
+ GitHub::Markdown.render(content)
+ },
+ "redcarpet" => proc { |content|
+ RedcarpetCompat.new(content).to_html
+ },
+ "rdiscount" => proc { |content|
+ RDiscount.new(content).to_html
+ },
+ "maruku" => proc { |content|
+ Maruku.new(content).to_html
+ },
+ "kramdown" => proc { |content|
+ Kramdown::Document.new(content).to_html
+ },
+ "bluecloth" => proc { |content|
+ BlueCloth.new(content).to_html
+ },
+ }
+
+ def initialize
+ super(/md|mkdn?|mdwn|mdown|markdown|litcoffee/)
+ end
+
+ def load
+ return if @renderer
+ MARKDOWN_GEMS.each do |gem_name, renderer|
+ if try_require(gem_name)
+ @renderer = renderer
+ return
+ end
+ end
+ raise LoadError, "no suitable markdown gem found"
+ end
+
+ def render(content)
+ load
+ @renderer.call(content)
+ end
+
+ private
+ def try_require(file)
+ require file
+ true
+ rescue LoadError
+ false
+ end
+ end
+ end
+end
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 9217e68a..c06af64a 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,24 +1,6 @@
-MD_FILES = /md|mkdn?|mdwn|mdown|markdown|litcoffee/
+require "github/markup/markdown"
-if markup('github/markdown', MD_FILES, eager: true) do |content|
- GitHub::Markdown.render(content)
- end
-elsif markup(:redcarpet, MD_FILES, eager: true) do |content|
- RedcarpetCompat.new(content).to_html
- end
-elsif markup(:rdiscount, MD_FILES, eager: true) do |content|
- RDiscount.new(content).to_html
- end
-elsif markup(:maruku, MD_FILES, eager: true) do |content|
- Maruku.new(content).to_html
- end
-elsif markup(:kramdown, MD_FILES, eager: true) do |content|
- Kramdown::Document.new(content).to_html
- end
-elsif markup(:bluecloth, MD_FILES, eager: true) do |content|
- BlueCloth.new(content).to_html
- end
-end
+@@markups << GitHub::Markup::Markdown.new
markup(:redcloth, /textile/) do |content|
RedCloth.new(content).to_html
From f6f0e0b580edd0bdefc1232775be59ffaa2e3f8d Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 11:26:55 +1100
Subject: [PATCH 034/416] fix GitHub::Markup.preload!
---
lib/github/markup.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index a204d0e7..abdb788d 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -7,7 +7,9 @@ module Markup
@@markups = []
def preload!
- # TODO
+ @@markups.each do |markup|
+ markup.load
+ end
end
def render(filename, content = nil)
From 606dfa12397db75c61a4c7f971c91c49380af011 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 11:31:13 +1100
Subject: [PATCH 035/416] cache file extension regexp instead of recompiling it
every time
---
lib/github/markup/implementation.rb | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 16f73bc4..463a39d4 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -16,7 +16,12 @@ def render(content)
end
def match?(filename)
- Regexp.compile("\\.(#{regexp})$") =~ filename
+ file_ext_regexp =~ filename
+ end
+
+ private
+ def file_ext_regexp
+ @file_ext_regexp ||= /\.(#{regexp})\z/
end
end
end
From 819fa6024eaf2e5fe4854c81cf1d5834a793f113 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 12:01:13 +1100
Subject: [PATCH 036/416] add a markups accessor method for @@markups
---
lib/github/markup.rb | 12 ++++++++----
lib/github/markups.rb | 2 +-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index abdb788d..4e3bf917 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -6,8 +6,12 @@ module Markup
extend self
@@markups = []
+ def markups
+ @@markups
+ end
+
def preload!
- @@markups.each do |markup|
+ markups.each do |markup|
markup.load
end
end
@@ -23,7 +27,7 @@ def render(filename, content = nil)
end
def markup(file, pattern, opts = {}, &block)
- @@markups << GemImplementation.new(pattern, file, &block)
+ markups << GemImplementation.new(pattern, file, &block)
end
def command(command, regexp, &block)
@@ -31,7 +35,7 @@ def command(command, regexp, &block)
command = file
end
- @@markups << CommandImplementation.new(regexp, command, &block)
+ markups << CommandImplementation.new(regexp, command, &block)
end
def can_render?(filename)
@@ -39,7 +43,7 @@ def can_render?(filename)
end
def renderer(filename)
- @@markups.find { |impl|
+ markups.find { |impl|
impl.match?(filename)
}
end
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index c06af64a..29498257 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,6 +1,6 @@
require "github/markup/markdown"
-@@markups << GitHub::Markup::Markdown.new
+markups << GitHub::Markup::Markdown.new
markup(:redcloth, /textile/) do |content|
RedCloth.new(content).to_html
From b183c895c6495de2ab89dec7ff6b0bc7d8a82eb7 Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 14:07:48 +1100
Subject: [PATCH 037/416] bump version to 1.0.0
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 1a3570c2..f3e9d3ec 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '0.7.7'
+ VERSION = '1.0.0'
Version = VERSION
end
end
From b7cabb1c81ea30035dd63a508a67a949c1846f4c Mon Sep 17 00:00:00 2001
From: Charlie Somerville
Date: Wed, 4 Dec 2013 14:08:38 +1100
Subject: [PATCH 038/416] Release 1.0.0
---
github-markup.gemspec | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 2957dc40..cece0358 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2013-09-23'
+ s.date = '2013-12-04'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
@@ -66,6 +66,10 @@ desc
lib/github-markup.rb
lib/github/commands/rest2html
lib/github/markup.rb
+ lib/github/markup/command_implementation.rb
+ lib/github/markup/gem_implementation.rb
+ lib/github/markup/implementation.rb
+ lib/github/markup/markdown.rb
lib/github/markup/rdoc.rb
lib/github/markups.rb
script/bootstrap
From acecae3dfa70229620e471e57193aabef3a2c15d Mon Sep 17 00:00:00 2001
From: masarakki
Date: Sun, 15 Dec 2013 05:15:20 +0900
Subject: [PATCH 039/416] add initilize options for rdoc-4.0.x
---
lib/github/markup/rdoc.rb | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index 8332e402..5bf14639 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -9,7 +9,11 @@ def initialize(content)
end
def to_html
- h = ::RDoc::Markup::ToHtml.new
+ if ::RDoc::VERSION.to_i >= 4
+ h = ::RDoc::Markup::ToHtml.new(::RDoc::Options.new)
+ else
+ h = ::RDoc::Markup::ToHtml.new
+ end
h.convert(@content)
end
end
From 42f82b5d55683cee1a0b2fc45eb7119c8391c723 Mon Sep 17 00:00:00 2001
From: Ken Dreyer
Date: Mon, 30 Dec 2013 09:33:24 -0700
Subject: [PATCH 040/416] require newer asciidoc in order to match test data
Asciidoc versions prior to 0.1.4 would write HTML output with a couple
of extra newline characters, and this would cause the tests to fail.
Ensure that we're using the very latest version of Asciidoc to avoid
this.
1) Failure:
MarkupTest#test_asciidoc
[/builddir/build/BUILD/github-markup-1.0.0/usr/share/ge
ms/gems/github-markup-1.0.0/test/markup_test.rb:28]:
README.asciidoc.html's contents don't match command output:
--- - 2013-12-30 09:20:16.824751950 -0700
+++ test/markups/README.asciidoc.html 2013-12-30 09:20:15.464500241
-0700
@@ -1,5 +1,4 @@
\ No newline at end of file
+
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 943a84b6..7406ca65 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,5 +6,5 @@ gem "org-ruby", ">= 0.7.0"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
-gem "asciidoctor", ">= 0.0.9"
+gem "asciidoctor", ">= 0.1.4"
gem "rake"
From 439663239642361ce02b939767b3cc20c8765f3d Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Tue, 21 Jan 2014 21:17:14 -0800
Subject: [PATCH 041/416] Update docs and bootstrap for asciidoc
---
README.md | 2 +-
script/bootstrap | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 7afa93ed..fcdfb197 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.creole](http://wikicreole.org/) -- `gem install creole`
* [.mediawiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
* [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
-* [.asciidoc, .adoc, .asc](http://www.methods.co.nz/asciidoc/) -- `brew install asciidoc`
+* [.asciidoc, .adoc, .asc](http://www.methods.co.nz/asciidoc/) -- `gem install asciidoctor`
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
diff --git a/script/bootstrap b/script/bootstrap
index f9f93d43..8092d517 100755
--- a/script/bootstrap
+++ b/script/bootstrap
@@ -6,4 +6,3 @@ cd $(dirname "$0")/..
bundle install
easy_install docutils
-brew install asciidoc
From f1e2cd841a14c1e3e96519c79eb3ceb72eafc7d5 Mon Sep 17 00:00:00 2001
From: Jannis Leidel
Date: Wed, 22 Jan 2014 12:08:49 +0100
Subject: [PATCH 042/416] Use CC0 as the license for rst2html.
This should clarify the kerfuffle merged in #177 and is in spirit of
what I intended when I wrote the file in 2008. See the CC0 FAQ for more
details: http://creativecommons.org/about/cc0
I used the git log to mention the people who contributed to the file
since then.
Fixes #205.
---
lib/github/commands/rest2html | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index ce696b06..66ebf42c 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -1,10 +1,29 @@
#!/usr/bin/env python
+"""
+rest2html - A small wrapper file for parsing ReST files at GitHub.
-"""A small wrapper file for parsing ReST files at GitHub."""
+Written in 2008 by Jannis Leidel
+
+Brandon Keepers
+Bryan Veloso
+Chris Wanstrath
+Dave Abrahams
+Gasper Zejn
+Michael Jones
+Sam Whited
+Tyler Chung
+Vicent Marti
+
+To the extent possible under law, the author(s) have dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+You should have received a copy of the CC0 Public Domain Dedication along with
+this software. If not, see .
+"""
__author__ = "Jannis Leidel"
-__copyright__ = "Public Domain"
-__license__ = "Public Domain"
+__license__ = "CC0"
__version__ = "0.1"
try:
From 8ddb6701992637638801195df62bcc14b935ee6a Mon Sep 17 00:00:00 2001
From: Dan Allen
Date: Tue, 28 Jan 2014 17:10:01 -0700
Subject: [PATCH 043/416] document the HTML sanitization whitelist
---
README.md | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/README.md b/README.md
index 39f386d2..5def29b6 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,30 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
+HTML sanitization
+-----------------
+
+HTML rendered by the various markup language processors gets passed through an [HTML sanitization filter](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/sanitization_filter.rb) for security reasons. HTML elements not in the whitelist are removed. HTML attributes not in the whitelist are removed from the preserved elements.
+
+The following HTML elements, organized by category, are whitelisted:
+
+* Headings: h1, h2, h3, h4, h5, h6, h7, h8
+* Prose: p, div, blockquote
+* Preformatted: pre
+* Inline: b, i, strong, em, tt, code, ins, del, sup, sub, kbd, samp, q, var
+* Lists: ol, ul, li, dl, dt, dd
+* Tables: table, thead, tbody, tfoot, tr, td, th
+* Breaks: br, hr
+* Ruby (East Asian): ruby, rt, rp
+
+The following attributes, organized by element, are whitelisted:
+
+* a: href (http://, https://, mailto://, github-windows:// and github-mac:// URI schemes and relative paths only)
+* img: src (http:// and https::// URI schemes and relative paths only)
+* div: itemscope, itemtype
+* all: abbr, accept, accept-charset, accesskey, action, align, alt, axis, border, cellpadding, cellspacing, char, charoff, charset, checked, cite, clear, cols, colspan, color, compact, coords, datetime, dir, disabled, enctype, for, frame, headers, height, hreflang, hspace, ismap, label, lang, longdesc, maxlength, media, method, multiple, name, nohref, noshade, nowrap, prompt, readonly, rel, rev, rows, rowspan, rules, scope, selected, shape, size, span, start, summary, tabindex, target, title, type, usemap, valign, value, vspace, width, itemprop
+
+Note that the id attribute is *not* whitelisted.
Contributing
------------
From c5b7c116e2043a6fcab032f6df52ab19dd60fba8 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Tue, 28 Jan 2014 18:34:20 -0800
Subject: [PATCH 044/416] Bump version number
---
github-markup.gemspec | 2 +-
lib/github-markup.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index cece0358..6eddf8fe 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2013-12-04'
+ s.date = '2014-01-28'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index f3e9d3ec..7324a34c 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.0.0'
+ VERSION = '1.0.1'
Version = VERSION
end
end
From ddf63f42cd88bea029414e8e4505f7030ec81e52 Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Sat, 8 Feb 2014 17:18:39 +0900
Subject: [PATCH 045/416] Update to org-ruby 0.9.0
---
Gemfile | 2 +-
lib/github/markups.rb | 2 +-
test/markups/README.org | 22 +++++++++++++++++++---
test/markups/README.org.html | 35 +++++++++++++++++++++++++----------
4 files changed, 46 insertions(+), 15 deletions(-)
diff --git a/Gemfile b/Gemfile
index d573ef30..a08970e7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,7 @@ source "http://rubygems.org"
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", ">= 0.8.1"
+gem "org-ruby", ">= 0.9.0"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index cb771f1c..4f680533 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -11,7 +11,7 @@
end
markup('org-ruby', /org/) do |content|
- Orgmode::Parser.new(content).to_html
+ Orgmode::Parser.new(content, :allow_include_files => false).to_html
end
markup(:creole, /creole/) do |content|
diff --git a/test/markups/README.org b/test/markups/README.org
index a6ab34d7..c479b047 100644
--- a/test/markups/README.org
+++ b/test/markups/README.org
@@ -11,8 +11,8 @@
#+STARTUP: showall
| Status: | Under Development |
- | Location: | [[http://github.com/bdewey/org-ruby]] |
- | Version: | 0.5.1 |
+ | Location: | [[http://github.com/wallyqs/org-ruby]] |
+ | Version: | 0.9.0 |
* Description
@@ -22,9 +22,25 @@
conversion. The supplied textile conversion is optimized for
extracting "content" from the orgfile as opposed to "metadata."
-
* History
+** 2014-02-08: Version 0.9.0
+
+ - Let's make sure =#+INCLUDE:= is not supported
+
+#+INCLUDE: "./README.txt" src text
+
+ - And confirm that syntax highlight is supported
+
+#+begin_src ruby
+module GitHub
+ module Markup
+ VERSION = 'test'
+ Version = VERSION
+ end
+end
+#+end_src
+
** 2009-12-30: Version 0.5.1
- Minor enhancement: Recognize lines starting with ":" as examples.
diff --git a/test/markups/README.org.html b/test/markups/README.org.html
index 2d1708b2..84abc77a 100644
--- a/test/markups/README.org.html
+++ b/test/markups/README.org.html
@@ -1,8 +1,8 @@
org-ruby
1 Description
Helpful Ruby routines for parsing orgmode files. The most
@@ -11,13 +11,28 @@
1 Description
conversion. The supplied textile conversion is optimized for
extracting “content” from the orgfile as opposed to “metadata.”
2 History
-2.1 2009-12-30: Version 0.5.1
+2.1 2014-02-08: Version 0.9.0
+
+ - Let’s make sure
#+INCLUDE:
is not supported
+
+
+ - And confirm that syntax highlight is supported
+
+
+module GitHub
+ module Markup
+ VERSION = 'test'
+ Version = VERSION
+ end
+end
+
+2.2 2009-12-30: Version 0.5.1
- Minor enhancement: Recognize lines starting with “:” as examples.
- Minor enhancement: Recognize #+BEGIN_SRC as source blocks
- Minor enhancement: Add “src” and “example” classes to <pre> blocks.
-2.2 2009-12-30: Version 0.5.0
+2.3 2009-12-30: Version 0.5.0
- Parse (but not necessarily use) in-buffer settings. The following
in-buffer settings are used:
@@ -41,7 +56,7 @@
2.2 2009-12-30: Version
-2.3 2009-12-29: Version 0.4.2
+2.4 2009-12-29: Version 0.4.2
- Got rid of the extraneous newline at the start of code blocks.
- Everything now shows up in code blocks, even org-mode metadata.
@@ -52,12 +67,12 @@ 2.3 2009-12-29: Version
-2.4 2009-12-29: Version 0.4.1
+2.5 2009-12-29: Version 0.4.1
- HTML is now escaped by default
- org-mode comments will show up in a code block.
-2.5 2009-12-29: Version 0.4
+2.6 2009-12-29: Version 0.4
- The first thing output in HTML gets the class “title”
- HTML output is now indented
@@ -70,7 +85,7 @@ 2.5 2009-12-29: Version
-2.6 2009-12-27: Version 0.3
+2.7 2009-12-27: Version 0.3
- Uses rubypants to get better typography (smart quotes, elipses, etc…).
- Fixed bugs:
@@ -81,14 +96,14 @@
2.6 2009-12-27: Version
-2.7 2009-12-26: Version 0.2
+2.8 2009-12-26: Version 0.2
- Added
to_html
output on the parser.
- Added support for the full range of inline markup: bold,
italic,
code
, verbatim
, underline, strikethrough.
- Lots of refactoring to make the code more maintainable.
-2.8 2009-12-23: Version 0.1
+2.9 2009-12-23: Version 0.1
- Added support for block code, like this:
From 1c8c4eff33be03d18816e8cf86668935046b68c0 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Tue, 24 Sep 2013 09:37:31 -0700
Subject: [PATCH 046/416] Switch to Pod::Simple::XHTML. There are a few reasons
for this:
* It's HTML output is *much* cleaner.
* You can tell it not to emit headers and footers directly.
The only downside is that you need a fairly recent version of Pod::Simple for
it to be there and really solid. I recommend 3.12 or higher, and at least
3.11.
---
README.md | 2 +-
lib/github/markups.rb | 12 ++----------
2 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 5def29b6..39e23c98 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.mediawiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
* [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
* [.asciidoc, .adoc, .asc](http://asciidoc.org/) -- `gem install asciidoctor` (http://asciidoctor.org)
-* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
+* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::XHTML`
comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
HTML sanitization
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index cb771f1c..ac2c6454 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -32,13 +32,5 @@
command(:rest2html, /re?st(\.txt)?/)
-# pod2html is nice enough to generate a full-on HTML document for us,
-# so we return the favor by ripping out the good parts.
-#
-# Any block passed to `command` will be handed the command's STDOUT for
-# post processing.
-command("/usr/bin/env perl -MPod::Simple::HTML -e Pod::Simple::HTML::go", /pod/) do |rendered|
- if rendered =~ /\s*(.+)\s*/mi
- $1
- end
-end
+command("/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer:", /pod/)
+
From da384a69f71673df6116299e575bd1f0231082b2 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Tue, 21 Jan 2014 21:52:43 -0800
Subject: [PATCH 047/416] Update Pod test.
---
test/markups/README.pod.html | 104 +++++++++++------------------------
1 file changed, 33 insertions(+), 71 deletions(-)
diff --git a/test/markups/README.pod.html b/test/markups/README.pod.html
index 8bc00b37..9f0f9194 100644
--- a/test/markups/README.pod.html
+++ b/test/markups/README.pod.html
@@ -1,106 +1,68 @@
-
+Matrixy
-
+INTRODUCTION
-
+This is a port of the MATLAB/Octave programming language to Parrot. See the ROADMAP file for more information on the status of this project, and what else needs to be done.
-This is a port of the MATLAB/Octave programming language to Parrot.
-See the ROADMAP file for more information on the status of this project,
-and what else needs to be done.
-
-
+ABOUT
Primary goals are:
-
+
+
=item* Create a working compiler that understands the majority of the MATLAB/Octave programming language.
-
-
+
+
+IMPLEMENTATION
This project is broken into three primary components:
-
-=item* The first is the parser,
-located in the src/parser/
directory.
-The parser proper is composed of three source files,
-grammar.pg which is a Perl6Grammar file,
-and actions.pm which is the associated actions file written in NQP,
-and grammar-oper.pm which is the operator precidence parser.
-In addition,
-several helper functions used by the parser are located in src/internals
.
-
-=item* The second component is the library of builtin functions in the src/builtins/
directory.
-These functions are,
-currently,
-written primarily in PIR.
-Function names prefixed with an underscore are "private" functions for use with the parser.
-Other functions should have names which are the same as names for regular MATLAB or Octave functions,
-since they will be available to the HLL.
-These are also separated into different namespaces depending on visibility and utility.
-
-=item* A number of library functions are written in M,
-or mostly M with some inline PIR code in toolbox/
.
-
-
-
+
+
+=item* The first is the parser, located in the src/parser/
directory. The parser proper is composed of three source files, grammar.pg which is a Perl6Grammar file, and actions.pm which is the associated actions file written in NQP, and grammar-oper.pm which is the operator precidence parser. In addition, several helper functions used by the parser are located in src/internals
.
+
+=item* The second component is the library of builtin functions in the src/builtins/
directory. These functions are, currently, written primarily in PIR. Function names prefixed with an underscore are "private" functions for use with the parser. Other functions should have names which are the same as names for regular MATLAB or Octave functions, since they will be available to the HLL. These are also separated into different namespaces depending on visibility and utility.
+
+=item* A number of library functions are written in M, or mostly M with some inline PIR code in toolbox/
.
+
+
+
+DEPENDENCIES
Matrixy depends on these dependencies:
-
+Parrot
-To get a proper version of Parrot to build Matrixy,
-you will need to check out and build Parrot from source:
+To get a proper version of Parrot to build Matrixy, you will need to check out and build Parrot from source:
- svn co http://svn.parrot.org/parrot/trunk parrot
+ svn co http://svn.parrot.org/parrot/trunk parrot
cd parrot
perl Configure.pl
- make && make test && make install-dev
+ make && make test && make install-dev
-
+Parrot-Linear-Algebra
The linear algebra package for Parrot is available separately and provides functionality required by Matrixy. This includes matrix data types and matrix manipulation libraries
-
+BUILDING
Once all dependencies are in place, you can build Matrixy using this sequence of commands:
- perl Configure.pl
- nmake test
+ perl Configure.pl
+ nmake test
-
+TODO
- * Parser
+ * Parser
* Standard Builtins
- * Test against Octave Test Suite.
+ * Test against Octave Test Suite.
-
+BUGS
Lots!
-
+
If you need to contact the Matrixy team, go to the project home page at:
From 933cf783393f65eb486852f21663fb0e06134ac1 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Tue, 21 Jan 2014 21:57:32 -0800
Subject: [PATCH 048/416] Fix Pod list items.
---
test/markups/README.pod | 8 ++++----
test/markups/README.pod.html | 12 ++++++++----
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/test/markups/README.pod b/test/markups/README.pod
index f7b5aac5..f6ad2c48 100644
--- a/test/markups/README.pod
+++ b/test/markups/README.pod
@@ -12,7 +12,7 @@ Primary goals are:
=over 4
-=item* Create a working compiler that understands the majority of the
+=item * Create a working compiler that understands the majority of the
MATLAB/Octave programming language.
=back
@@ -23,14 +23,14 @@ This project is broken into three primary components:
=over 4
-=item* The first is the parser, located in the C directory. The
+=item * The first is the parser, located in the C directory. The
parser proper is composed of three source files, F which is a
Perl6Grammar file, and F which is the associated actions file
written in NQP, and F which is the operator precidence parser.
In addition, several helper functions used by the parser are located in
C.
-=item* The second component is the library of builtin functions in the
+=item * The second component is the library of builtin functions in the
C directory. These functions are, currently, written primarily in
PIR. Function names prefixed with an underscore are "private" functions for use
with the parser. Other functions should have names which are the same as names
@@ -38,7 +38,7 @@ for regular MATLAB or Octave functions, since they will be available to the
HLL. These are also separated into different namespaces depending on visibility
and utility.
-=item* A number of library functions are written in M, or mostly M with some
+=item * A number of library functions are written in M, or mostly M with some
inline PIR code in C.
=back
diff --git a/test/markups/README.pod.html b/test/markups/README.pod.html
index 9f0f9194..e5c73eee 100644
--- a/test/markups/README.pod.html
+++ b/test/markups/README.pod.html
@@ -10,8 +10,9 @@ ABOUT
-=item* Create a working compiler that understands the majority of the MATLAB/Octave programming language.
+Create a working compiler that understands the majority of the MATLAB/Octave programming language.
+
IMPLEMENTATION
@@ -20,12 +21,15 @@ IMPLEMENTATION
-=item* The first is the parser, located in the src/parser/
directory. The parser proper is composed of three source files, grammar.pg which is a Perl6Grammar file, and actions.pm which is the associated actions file written in NQP, and grammar-oper.pm which is the operator precidence parser. In addition, several helper functions used by the parser are located in src/internals
.
+The first is the parser, located in the src/parser/
directory. The parser proper is composed of three source files, grammar.pg which is a Perl6Grammar file, and actions.pm which is the associated actions file written in NQP, and grammar-oper.pm which is the operator precidence parser. In addition, several helper functions used by the parser are located in src/internals
.
-=item* The second component is the library of builtin functions in the src/builtins/
directory. These functions are, currently, written primarily in PIR. Function names prefixed with an underscore are "private" functions for use with the parser. Other functions should have names which are the same as names for regular MATLAB or Octave functions, since they will be available to the HLL. These are also separated into different namespaces depending on visibility and utility.
+
+The second component is the library of builtin functions in the src/builtins/
directory. These functions are, currently, written primarily in PIR. Function names prefixed with an underscore are "private" functions for use with the parser. Other functions should have names which are the same as names for regular MATLAB or Octave functions, since they will be available to the HLL. These are also separated into different namespaces depending on visibility and utility.
-=item* A number of library functions are written in M, or mostly M with some inline PIR code in toolbox/
.
+
+A number of library functions are written in M, or mostly M with some inline PIR code in toolbox/
.
+
DEPENDENCIES
From 7f7913e601bc9baea5e8fa93bf498646e7379b58 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Thu, 23 Jan 2014 20:27:58 -0800
Subject: [PATCH 049/416] Try installing Pod::Simple::XHTML before testing.
---
.travis.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 8d70dc0c..e98ea5af 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,6 @@
-before_install: sudo pip install docutils
+before_install:
+ - sudo pip install docutils
+ - sudo cpanm --installdeps --notest Pod::Simple
rvm:
- 1.9.3
- 2.0.0
From 874f2795900aa14290f13b2c7a1a9e831b18f0db Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Thu, 23 Jan 2014 20:40:45 -0800
Subject: [PATCH 050/416] Install cpanm.
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index e98ea5af..3ff24e31 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
before_install:
- - sudo pip install docutils
+ - sudo pip install docutils cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
rvm:
- 1.9.3
From e79260d0deac3483c726e07d5cfbd38fed845c15 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Thu, 23 Jan 2014 20:46:32 -0800
Subject: [PATCH 051/416] Cannot find the cpanm .deb, so install from source.
I'm sure there is one, since Perl builds use it, but I don't know what it's called. This will do for now.
---
.travis.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 3ff24e31..75a4fb1c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,6 @@
before_install:
- - sudo pip install docutils cpanminus
+ - sudo pip install docutils
+ - curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
rvm:
- 1.9.3
From e209388a56063fae808b2a9caf8280f2abde882f Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Thu, 23 Jan 2014 20:50:44 -0800
Subject: [PATCH 052/416] Try installing perl-doc.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 75a4fb1c..a9a0cbeb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,6 @@
before_install:
- sudo pip install docutils
+ - sudo apt-get install perl-doc
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
rvm:
From f506b135a9f2ff8593a1055c84e33bd706d0ade9 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Fri, 24 Jan 2014 14:19:16 -0800
Subject: [PATCH 053/416] Try runing perldoc in before_install.
To see what the errors are.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index a9a0cbeb..99be22a4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,7 @@ before_install:
- sudo apt-get install perl-doc
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
+ - /usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: test/markups/README.pod
rvm:
- 1.9.3
- 2.0.0
From 090cedffec130a20f2b104080d1ee8e0d565fe40 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Fri, 24 Jan 2014 15:34:53 -0800
Subject: [PATCH 054/416] Quote string.
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 99be22a4..cbaa2ca4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ before_install:
- sudo apt-get install perl-doc
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
- - /usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: test/markups/README.pod
+ - "/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: test/markups/README.pod"
rvm:
- 1.9.3
- 2.0.0
From 236b992a068bc7ca0a9d4fa111b7b5c3247ffeba Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Fri, 24 Jan 2014 15:39:54 -0800
Subject: [PATCH 055/416] No pager.
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index cbaa2ca4..00b83f91 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ before_install:
- sudo apt-get install perl-doc
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
- - "/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: test/markups/README.pod"
+ - "/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: -T test/markups/README.pod"
rvm:
- 1.9.3
- 2.0.0
From 2eb3c2dd015c9614416ea606486e3954289b8c46 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Fri, 24 Jan 2014 15:43:10 -0800
Subject: [PATCH 056/416] Maybe need to explicitly send the command to STDOUT?
---
.travis.yml | 1 -
lib/github/markups.rb | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 00b83f91..a9a0cbeb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,6 @@ before_install:
- sudo apt-get install perl-doc
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
- - "/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: -T test/markups/README.pod"
rvm:
- 1.9.3
- 2.0.0
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index ac2c6454..6de42d0b 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -32,5 +32,5 @@
command(:rest2html, /re?st(\.txt)?/)
-command("/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer:", /pod/)
+command("/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: -T", /pod/)
From e0ff850342811817da3a60def45f5bbe61bd3143 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Tue, 4 Feb 2014 11:19:24 -0800
Subject: [PATCH 057/416] Disable exception handling.
---
lib/github/markup/command_implementation.rb | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 9c531f0d..42ccd022 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -42,10 +42,10 @@ def execute(command, target)
out = stdout.read
end
out.gsub("\r", '')
- rescue Errno::EPIPE
- ""
- rescue Errno::ENOENT
- ""
+ # rescue Errno::EPIPE
+ # ""
+ # rescue Errno::ENOENT
+ # ""
end
end
end
From 510f4d61d98a46a5ca418bdeab8e9779f4253017 Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Wed, 5 Feb 2014 13:52:39 -0800
Subject: [PATCH 058/416] Whitespace change, try to get Travis to go.
---
lib/github/markup/command_implementation.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 42ccd022..96c97471 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -6,6 +6,7 @@
require "github/markup/implementation"
+
module GitHub
module Markup
class CommandImplementation < Implementation
From 16dbe0cff5cafc1e7dca66d83e27364ec690fe0d Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Thu, 6 Feb 2014 17:08:57 -0800
Subject: [PATCH 059/416] Add pod2html.
By putting it all into a Perl script, we can more easily control things,
including being able to add code to sent the indentation for verbatim
blocks to the indentation of the first line.
---
lib/github/commands/pod2html | 14 ++++++++++++++
lib/github/markup/command_implementation.rb | 8 ++++----
lib/github/markups.rb | 2 +-
test/markups/README.pod.html | 18 +++++++++---------
4 files changed, 28 insertions(+), 14 deletions(-)
create mode 100755 lib/github/commands/pod2html
diff --git a/lib/github/commands/pod2html b/lib/github/commands/pod2html
new file mode 100755
index 00000000..b9539468
--- /dev/null
+++ b/lib/github/commands/pod2html
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl -w
+
+use strict;
+use Pod::Simple::XHTML 3.11;
+
+my $p = Pod::Simple::XHTML->new;
+$p->html_header('');
+$p->html_footer('');
+$p->strip_verbatim_indent(sub {
+ my $lines = shift;
+ (my $indent = $lines->[0]) =~ s/\S.*//;
+ return $indent;
+});
+$p->parse_from_file(shift);
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 96c97471..a1eed93a 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -43,10 +43,10 @@ def execute(command, target)
out = stdout.read
end
out.gsub("\r", '')
- # rescue Errno::EPIPE
- # ""
- # rescue Errno::ENOENT
- # ""
+ rescue Errno::EPIPE
+ ""
+ rescue Errno::ENOENT
+ ""
end
end
end
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 6de42d0b..3f694225 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -32,5 +32,5 @@
command(:rest2html, /re?st(\.txt)?/)
-command("/usr/bin/env perldoc -MPod::Simple::XHTML -w html_header: -w html_footer: -T", /pod/)
+command(:pod2html, /pod/)
diff --git a/test/markups/README.pod.html b/test/markups/README.pod.html
index e5c73eee..4c49ef20 100644
--- a/test/markups/README.pod.html
+++ b/test/markups/README.pod.html
@@ -40,10 +40,10 @@ Parrot
To get a proper version of Parrot to build Matrixy, you will need to check out and build Parrot from source:
- svn co http://svn.parrot.org/parrot/trunk parrot
- cd parrot
- perl Configure.pl
- make && make test && make install-dev
+svn co http://svn.parrot.org/parrot/trunk parrot
+cd parrot
+perl Configure.pl
+make && make test && make install-dev
Parrot-Linear-Algebra
@@ -53,14 +53,14 @@ BUILDING
Once all dependencies are in place, you can build Matrixy using this sequence of commands:
- perl Configure.pl
- nmake test
+perl Configure.pl
+nmake test
TODO
- * Parser
- * Standard Builtins
- * Test against Octave Test Suite.
+* Parser
+* Standard Builtins
+* Test against Octave Test Suite.
BUGS
From 3a5159d148430e878329b6d3a3a15a0f7756eaea Mon Sep 17 00:00:00 2001
From: "David E. Wheeler"
Date: Mon, 10 Feb 2014 14:30:04 -0800
Subject: [PATCH 060/416] Remove installation of stuff.
The perl-doc package failed to install with a 404. But maybe it will not be needed now.
---
.travis.yml | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index a9a0cbeb..48d5cfb0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,5 @@
before_install:
- sudo pip install docutils
- - sudo apt-get install perl-doc
- - curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- - sudo cpanm --installdeps --notest Pod::Simple
rvm:
- 1.9.3
- 2.0.0
From 60a6fc884acc74cc25a30e9c6d0e41f5e471e55f Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Thu, 13 Feb 2014 21:44:06 +0900
Subject: [PATCH 061/416] Use org-ruby 0.9.1 instead
---
Gemfile | 2 +-
test/markups/README.org.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index a08970e7..5749a338 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,7 @@ source "http://rubygems.org"
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", ">= 0.9.0"
+gem "org-ruby", ">= 0.9.1"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
diff --git a/test/markups/README.org.html b/test/markups/README.org.html
index 84abc77a..30ea31cf 100644
--- a/test/markups/README.org.html
+++ b/test/markups/README.org.html
@@ -21,7 +21,7 @@ 2.1 2014-02-08: Version
module GitHub
module Markup
- VERSION = 'test'
+ VERSION = 'test'
Version = VERSION
end
end
From 0dcf0f504625e66bca47620e1c8e6fc06f940f05 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 13 Feb 2014 16:29:55 -0800
Subject: [PATCH 062/416] Do not add superfluous div tags to the document, or
sections
---
lib/github/commands/rest2html | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 66ebf42c..f6f8b6e2 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -8,6 +8,7 @@ Brandon Keepers
Bryan Veloso
Chris Wanstrath
Dave Abrahams
+Garen Torikian
Gasper Zejn
Michael Jones
Sam Whited
@@ -50,6 +51,21 @@ SETTINGS = {
}
class GitHubHTMLTranslator(HTMLTranslator):
+ # removes the tag wrapped around docs
+ # see also: http://bit.ly/1exfq2h (warning! sourceforge link.)
+ def depart_document(self, node):
+ HTMLTranslator.depart_document(self, node)
+ self.html_body.pop(0)
+ self.html_body.pop()
+
+ # technique for visiting sections, without generating additional divs
+ # see also: http://bit.ly/NHtyRx
+ def visit_section(self, node):
+ self.section_level += 1
+
+ def depart_section(self, node):
+ self.section_level -= 1
+
def visit_literal_block(self, node):
classes = node.attributes['classes']
if len(classes) >= 2 and classes[0] == 'code':
From 70e6d5a64581a95b33bfe5a1d3e9a95a9034cc93 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 13 Feb 2014 16:30:14 -0800
Subject: [PATCH 063/416] Fix RST tests to remove superfluous divs
---
test/markups/README.rst.html | 6 ------
test/markups/README.rst.txt.html | 7 -------
2 files changed, 13 deletions(-)
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index b117e888..5bb052bb 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -1,8 +1,5 @@
-
-
-
diff --git a/test/markups/README.rst.txt.html b/test/markups/README.rst.txt.html
index 8e26e4f0..e60a5403 100644
--- a/test/markups/README.rst.txt.html
+++ b/test/markups/README.rst.txt.html
@@ -1,14 +1,7 @@
-
-
-
-
From e54ca4ada29bb12cef069023150b58f283465145 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 14 Feb 2014 15:52:09 -0800
Subject: [PATCH 064/416] Prepare release v1.0.2
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 7324a34c..7833199f 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.0.1'
+ VERSION = '1.0.2'
Version = VERSION
end
end
From 079e651a61c7f6b2d24e70293ba6bd683fbb5374 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 14 Feb 2014 15:52:15 -0800
Subject: [PATCH 065/416] Release 1.0.2
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 6eddf8fe..47c61ccd 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-01-28'
+ s.date = '2014-02-14'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
From 026d50f34f37512e25c819966043af0ef9239a06 Mon Sep 17 00:00:00 2001
From: Vicent Marti
Date: Tue, 18 Feb 2014 20:13:23 +0100
Subject: [PATCH 066/416] Use `posix-spawn` for builtin commands
---
Gemfile | 1 +
lib/github/markup/command_implementation.rb | 9 ++-------
lib/github/markups.rb | 4 ++--
3 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/Gemfile b/Gemfile
index d573ef30..5fa81d34 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,3 +8,4 @@ gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
gem "asciidoctor", "= 0.1.4"
gem "rake"
+gem "posix-spawn"
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 9c531f0d..cbb4621a 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -1,9 +1,4 @@
-begin
- require "open3_detach"
-rescue LoadError
- require "open3"
-end
-
+require "posix-spawn"
require "github/markup/implementation"
module GitHub
@@ -36,7 +31,7 @@ def call_block(rendered, content)
def execute(command, target)
out = ''
- Open3.popen3(command) do |stdin, stdout, _|
+ POSIX::Spawn.popen4(command) do |_, stdin, stdout, _|
stdin.puts target
stdin.close
out = stdout.read
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index cb771f1c..7b1a02a8 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -30,14 +30,14 @@
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
-command(:rest2html, /re?st(\.txt)?/)
+command('rest2html', /re?st(\.txt)?/)
# pod2html is nice enough to generate a full-on HTML document for us,
# so we return the favor by ripping out the good parts.
#
# Any block passed to `command` will be handed the command's STDOUT for
# post processing.
-command("/usr/bin/env perl -MPod::Simple::HTML -e Pod::Simple::HTML::go", /pod/) do |rendered|
+command(['/usr/bin/env', 'perl', '-MPod::Simple::HTML', '-e', 'Pod::Simple::HTML::go'], /pod/) do |rendered|
if rendered =~ /\s*(.+)\s*/mi
$1
end
From 8b2499b13e6095095a613cbcb2e26b831584d08c Mon Sep 17 00:00:00 2001
From: Vicent Marti
Date: Tue, 18 Feb 2014 20:56:35 +0100
Subject: [PATCH 067/416] POSIX::Spawn.popen4 doesn't have block syntax
---
lib/github/markup/command_implementation.rb | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index cbb4621a..c8051696 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -30,12 +30,17 @@ def call_block(rendered, content)
end
def execute(command, target)
- out = ''
- POSIX::Spawn.popen4(command) do |_, stdin, stdout, _|
- stdin.puts target
- stdin.close
- out = stdout.read
- end
+ pid, stdin, stdout, stderr = POSIX::Spawn.popen4(*command)
+
+ stdin.puts target
+ stdin.close
+
+ Process.waitpid pid
+
+ out = stdout.read
+ stdout.close
+ stderr.close
+
out.gsub("\r", '')
rescue Errno::EPIPE
""
From f9be7946906c3de2a0aed7834ff5da20b58947ea Mon Sep 17 00:00:00 2001
From: Vicent Marti
Date: Tue, 18 Feb 2014 22:03:35 +0100
Subject: [PATCH 068/416] Use POSIX::Spawn::Child
---
lib/github/markup/command_implementation.rb | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index c8051696..22c68637 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -30,18 +30,8 @@ def call_block(rendered, content)
end
def execute(command, target)
- pid, stdin, stdout, stderr = POSIX::Spawn.popen4(*command)
-
- stdin.puts target
- stdin.close
-
- Process.waitpid pid
-
- out = stdout.read
- stdout.close
- stderr.close
-
- out.gsub("\r", '')
+ spawn = POSIX::Spawn::Child.new(*command, :input => target)
+ spawn.out.gsub("\r", '')
rescue Errno::EPIPE
""
rescue Errno::ENOENT
From 57ae6e4291ffe40eb97f44d2b7bdcaa235d534e1 Mon Sep 17 00:00:00 2001
From: Shinya Okano
Date: Wed, 26 Feb 2014 01:24:10 +0900
Subject: [PATCH 069/416] Correct some tests
---
test/markup_test.rb | 2 +-
test/markups/README.lhs.html | 2 +-
test/markups/README.litcoffee.html | 16 ++++++++--------
test/markups/README.rst.html | 2 +-
test/markups/README.rst.txt | 8 ++++++++
test/markups/README.rst.txt.html | 24 ++++++++++++++++++++++++
6 files changed, 43 insertions(+), 11 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 6f062c39..742b5747 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -13,7 +13,7 @@ class MarkupTest < Test::Unit::TestCase
expected_file = "#{readme}.html"
expected = File.read(expected_file).rstrip
- actual = GitHub::Markup.render(readme, File.read(readme)).rstrip
+ actual = GitHub::Markup.render(readme, File.read(readme)).rstrip.force_encoding("utf-8")
if source != expected
assert(source != actual, "#{markup} did not render anything")
diff --git a/test/markups/README.lhs.html b/test/markups/README.lhs.html
index eb2a30a1..a2dbea79 100644
--- a/test/markups/README.lhs.html
+++ b/test/markups/README.lhs.html
@@ -2,7 +2,7 @@ Markdown
Except with more magic added.
-isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
+isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
isPrefixOf [] _ = True
isPrefixOf _ [] = False
isPrefixOf (x:xs) (y:ys)= x == y && isPrefixOf xs ys
diff --git a/test/markups/README.litcoffee.html b/test/markups/README.litcoffee.html
index 69255d21..e33f2349 100644
--- a/test/markups/README.litcoffee.html
+++ b/test/markups/README.litcoffee.html
@@ -6,18 +6,18 @@ Literate CoffeeScript Test
comment comment
-test "basic literate CoffeeScript parsing", ->
+test "basic literate CoffeeScript parsing", ->
ok yes
now with a...
-test "broken up indentation", ->
+test "broken up indentation", ->
... broken up ...
- do ->
+ do ->
... nested block.
@@ -27,7 +27,7 @@ Literate CoffeeScript Test
Code must be separated from text by a blank line.
-test "code blocks must be preceded by a blank line", ->
+test "code blocks must be preceded by a blank line", ->
The next line is part of the text and will not be executed.
@@ -38,9 +38,9 @@
Literate CoffeeScript Test
Code in backticks is not parsed
and...
-test "comments in indented blocks work", ->
- do ->
- do ->
+test "comments in indented blocks work", ->
+ do ->
+ do ->
# Regular comment.
###
@@ -62,5 +62,5 @@ Literate CoffeeScript Test
Tabs work too:
-test "tabbed code", ->
+
test "tabbed code", ->
ok yes
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 5bb052bb..477abaa2 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -28,4 +28,4 @@ Header 2
https://github.com/tony/pullv |
-
+
\ No newline at end of file
diff --git a/test/markups/README.rst.txt b/test/markups/README.rst.txt
index add90768..d420def0 100644
--- a/test/markups/README.rst.txt
+++ b/test/markups/README.rst.txt
@@ -10,4 +10,12 @@ Header 2
2. More ``code``, hooray
+3. Somé UTF-8°
+============== ==========================================================
+Travis http://travis-ci.org/tony/pullv
+Docs http://pullv.rtfd.org
+API http://pullv.readthedocs.org/en/latest/api.html
+Issues https://github.com/tony/pullv/issues
+Source https://github.com/tony/pullv
+============== ==========================================================
diff --git a/test/markups/README.rst.txt.html b/test/markups/README.rst.txt.html
index e60a5403..477abaa2 100644
--- a/test/markups/README.rst.txt.html
+++ b/test/markups/README.rst.txt.html
@@ -4,4 +4,28 @@ Header 2
- Blah blah code blah
- More code, hooray
+- Somé UTF-8°
+
\ No newline at end of file
From 35ad339ae6098547d91687ea67ed374665482a21 Mon Sep 17 00:00:00 2001
From: Shinya Okano
Date: Wed, 26 Feb 2014 01:50:06 +0900
Subject: [PATCH 070/416] Fix pod command
---
lib/github/markups.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 7b1a02a8..d94bd4ec 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -37,7 +37,7 @@
#
# Any block passed to `command` will be handed the command's STDOUT for
# post processing.
-command(['/usr/bin/env', 'perl', '-MPod::Simple::HTML', '-e', 'Pod::Simple::HTML::go'], /pod/) do |rendered|
+command('/usr/bin/env perl -MPod::Simple::HTML -e Pod::Simple::HTML::go', /pod/) do |rendered|
if rendered =~ /\s*(.+)\s*/mi
$1
end
From c422187fb92f10a648ce47588c966f798e1f43fe Mon Sep 17 00:00:00 2001
From: Shinya Okano
Date: Wed, 26 Feb 2014 01:57:38 +0900
Subject: [PATCH 071/416] Add test target ruby-2.1.1 for travis
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 8d70dc0c..efbff2ca 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,7 @@ before_install: sudo pip install docutils
rvm:
- 1.9.3
- 2.0.0
+ - 2.1.1
notifications:
disabled: true
bundler_args: --without development
From 6b8f96a54757cd30ada432ec028ef4948ecd5dfe Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Tue, 25 Feb 2014 12:30:25 -0800
Subject: [PATCH 072/416] Release 1.0.3
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 7833199f..b5bf48b9 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.0.2'
+ VERSION = '1.0.3'
Version = VERSION
end
end
From 0e7470a37a81fad84655cd29aee20de0c9a3d803 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Tue, 25 Feb 2014 12:30:31 -0800
Subject: [PATCH 073/416] Release 1.0.3
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 47c61ccd..71df6044 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-02-14'
+ s.date = '2014-02-25'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
From 2672c008236200bf614abbf7815144946c90ca7e Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Tue, 4 Mar 2014 13:18:25 -0500
Subject: [PATCH 074/416] Declare dependency on posix-spawn
---
Gemfile | 1 -
github-markup.gemspec | 3 ++-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 5fa81d34..d573ef30 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,4 +8,3 @@ gem "wikicloth", "=0.6.0"
gem "literati", "= 0.0.3"
gem "asciidoctor", "= 0.1.4"
gem "rake"
-gem "posix-spawn"
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 71df6044..2b7622ab 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -109,5 +109,6 @@ desc
## Test files will be grabbed from the file list. Make sure the path glob
## matches what you actually use.
s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
-end
+ s.add_dependency 'posix-spawn', '~> 0.3.8'
+end
From f2953c62b7338840376a32e9b45a8ea926dfff98 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 5 Mar 2014 10:23:44 -0500
Subject: [PATCH 075/416] add gemspec to the Gemfile
---
Gemfile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Gemfile b/Gemfile
index d573ef30..2132c473 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,4 +1,5 @@
source "http://rubygems.org"
+gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
From 73d5ebde9639f0e34025c8335c41569699fc61fe Mon Sep 17 00:00:00 2001
From: Miles Gould
Date: Fri, 7 Mar 2014 10:35:42 +0000
Subject: [PATCH 076/416] Remove rendering of literate Haskell.
This was breaking display of a lot of code files: see #196.
---
Gemfile | 1 -
lib/github/markups.rb | 4 ----
test/markups/README.lhs | 10 ----------
test/markups/README.lhs.html | 11 -----------
4 files changed, 26 deletions(-)
delete mode 100644 test/markups/README.lhs
delete mode 100644 test/markups/README.lhs.html
diff --git a/Gemfile b/Gemfile
index 5fa81d34..eb306dcd 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,7 +5,6 @@ gem "rdoc", "~>3.6"
gem "org-ruby", ">= 0.8.1"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
-gem "literati", "= 0.0.3"
gem "asciidoctor", "= 0.1.4"
gem "rake"
gem "posix-spawn"
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index d94bd4ec..6fbe09e6 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -22,10 +22,6 @@
WikiCloth::WikiCloth.new(:data => content).to_html(:noedit => true)
end
-markup(:literati, /lhs/) do |content|
- Literati.render(content)
-end
-
markup(:asciidoctor, /adoc|asc(iidoc)?/) do |content|
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
diff --git a/test/markups/README.lhs b/test/markups/README.lhs
deleted file mode 100644
index e0b4467f..00000000
--- a/test/markups/README.lhs
+++ /dev/null
@@ -1,10 +0,0 @@
-# Markdown
-
-Except with more magic added.
-
-> isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
-> isPrefixOf [] _ = True
-> isPrefixOf _ [] = False
-> isPrefixOf (x:xs) (y:ys)= x == y && isPrefixOf xs ys
-
-And Haskell. A lot of Haskell.
diff --git a/test/markups/README.lhs.html b/test/markups/README.lhs.html
deleted file mode 100644
index a2dbea79..00000000
--- a/test/markups/README.lhs.html
+++ /dev/null
@@ -1,11 +0,0 @@
-Markdown
-
-Except with more magic added.
-
-isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
-isPrefixOf [] _ = True
-isPrefixOf _ [] = False
-isPrefixOf (x:xs) (y:ys)= x == y && isPrefixOf xs ys
-
-
-And Haskell. A lot of Haskell.
From 78ee2f09fd3f18a4cf4bab5eb45a1bcd176adbb3 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 11:24:37 -0500
Subject: [PATCH 077/416] raise error if the command exits non-zero
---
lib/github/markup/command_implementation.rb | 8 +++++++-
test/markup_test.rb | 8 ++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 22c68637..a655e6d4 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -3,6 +3,8 @@
module GitHub
module Markup
+ CommandError = Class.new(Exception)
+
class CommandImplementation < Implementation
attr_reader :command, :block
@@ -31,7 +33,11 @@ def call_block(rendered, content)
def execute(command, target)
spawn = POSIX::Spawn::Child.new(*command, :input => target)
- spawn.out.gsub("\r", '')
+ if spawn.status.success?
+ spawn.out.gsub("\r", '')
+ else
+ raise CommandError.new(spawn.err)
+ end
rescue Errno::EPIPE
""
rescue Errno::ENOENT
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 742b5747..289b15b0 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -54,4 +54,12 @@ def test_fails_gracefully_on_missing_env_commands
actual = GitHub::Markup.render('README.tf', text)
assert_equal text, actual
end
+
+ def test_raises_error_if_command_exits_non_zero
+ GitHub::Markup.command('echo "failure message" && false', /fail/)
+ assert GitHub::Markup.can_render?('README.fail')
+ assert_raises GitHub::Markup::CommandError, "failure message" do
+ GitHub::Markup.render('README.fail', "stop swallowing errors")
+ end
+ end
end
From 016a9ea08dc877bb5beb35861af48e176512eec7 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 11:38:51 -0500
Subject: [PATCH 078/416] Test for failure message
---
lib/github/markup/command_implementation.rb | 2 +-
test/markup_test.rb | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index a655e6d4..9cd4dc04 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -36,7 +36,7 @@ def execute(command, target)
if spawn.status.success?
spawn.out.gsub("\r", '')
else
- raise CommandError.new(spawn.err)
+ raise CommandError.new(spawn.err.strip)
end
rescue Errno::EPIPE
""
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 289b15b0..8d65d063 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -56,10 +56,14 @@ def test_fails_gracefully_on_missing_env_commands
end
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command('echo "failure message" && false', /fail/)
+ GitHub::Markup.command('echo "failure message">&2 && false', /fail/)
assert GitHub::Markup.can_render?('README.fail')
- assert_raises GitHub::Markup::CommandError, "failure message" do
+ begin
GitHub::Markup.render('README.fail', "stop swallowing errors")
+ rescue GitHub::Markup::CommandError => e
+ assert_equal "failure message", e.message
+ else
+ fail "an exception was expected but was not raised"
end
end
end
From 8b1b254fd775beca0a6278a28a46c87593e20372 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 11:42:28 -0500
Subject: [PATCH 079/416] Do not silently fail on missing commands
---
test/markup_test.rb | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 8d65d063..b9070b1a 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -39,22 +39,6 @@ def test_knows_what_it_can_and_cannot_render
assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
end
- def test_fails_gracefully_on_missing_commands
- GitHub::Markup.command(:i_made_it_up, /mde/)
- text = 'hi there'
- assert GitHub::Markup.can_render?('README.mde')
- actual = GitHub::Markup.render('README.mde', text)
- assert_equal text, actual
- end
-
- def test_fails_gracefully_on_missing_env_commands
- GitHub::Markup.command('/usr/bin/env totally_fake', /tf/)
- text = 'hey mang'
- assert GitHub::Markup.can_render?('README.tf')
- actual = GitHub::Markup.render('README.tf', text)
- assert_equal text, actual
- end
-
def test_raises_error_if_command_exits_non_zero
GitHub::Markup.command('echo "failure message">&2 && false', /fail/)
assert GitHub::Markup.can_render?('README.fail')
From 98ff4ee7a9f29d7e3636a44c56a14a062dd4066e Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 11:45:24 -0500
Subject: [PATCH 080/416] Don't rescue Errno exceptions
---
lib/github/markup/command_implementation.rb | 4 ----
1 file changed, 4 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 9cd4dc04..d3bbafd9 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -38,10 +38,6 @@ def execute(command, target)
else
raise CommandError.new(spawn.err.strip)
end
- rescue Errno::EPIPE
- ""
- rescue Errno::ENOENT
- ""
end
end
end
From 81d82e2218498375adf1be40e9f1c87455ac1ea7 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 11:52:21 -0500
Subject: [PATCH 081/416] Extend RuntimeError, use class syntax
---
lib/github/markup/command_implementation.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index d3bbafd9..2c244407 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -3,7 +3,8 @@
module GitHub
module Markup
- CommandError = Class.new(Exception)
+ class CommandError < RuntimeError
+ end
class CommandImplementation < Implementation
attr_reader :command, :block
From 9dacfaae2be9b3c08d5c4fc8d1635f2be25d65bf Mon Sep 17 00:00:00 2001
From: flying-sheep
Date: Sat, 8 Mar 2014 09:57:43 +0100
Subject: [PATCH 082/416] circumvent docutils bug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
…by switching python 2’s default encoding
---
lib/github/commands/rest2html | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index f6f8b6e2..98e7e7e7 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2 -S
"""
rest2html - A small wrapper file for parsing ReST files at GitHub.
@@ -27,13 +27,19 @@ __author__ = "Jannis Leidel"
__license__ = "CC0"
__version__ = "0.1"
+import sys
+
+#fix docutils failing with unicode parameters to CSV-Tabl
+#TODO: remove -S switch and the following 2 lines after switching system to python 3.
+sys.setdefaultencoding('utf-8')
+import site
+
try:
import locale
locale.setlocale(locale.LC_ALL, '')
except:
pass
-import sys
import codecs
from docutils.core import publish_parts
From fa63b369cdd1146e2669ec42d1d2dbb0c0d42515 Mon Sep 17 00:00:00 2001
From: flying-sheep
Date: Sat, 8 Mar 2014 15:57:51 +0100
Subject: [PATCH 083/416] fixed call not relying on the (invalid) shebang
---
lib/github/markups.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 6fbe09e6..7f527a34 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -26,7 +26,7 @@
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
-command('rest2html', /re?st(\.txt)?/)
+command('python2 -S rest2html', /re?st(\.txt)?/)
# pod2html is nice enough to generate a full-on HTML document for us,
# so we return the favor by ripping out the good parts.
From c3522812955164c6a5e49327e201f437054628b4 Mon Sep 17 00:00:00 2001
From: flying-sheep
Date: Sat, 8 Mar 2014 16:10:48 +0100
Subject: [PATCH 084/416] =?UTF-8?q?use=20full=20path=20for=20new=20command?=
=?UTF-8?q?=20(not=20pretty=E2=80=A6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lib/github/markups.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 7f527a34..4362d51c 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -26,7 +26,7 @@
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
-command('python2 -S rest2html', /re?st(\.txt)?/)
+command("python2 -S #{File.dirname(__FILE__)}/commands/rest2html", /re?st(\.txt)?/)
# pod2html is nice enough to generate a full-on HTML document for us,
# so we return the favor by ripping out the good parts.
From 5bbd165a48fbf082f0f23c5f108f47a82bcb3428 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 7 Mar 2014 17:05:12 -0500
Subject: [PATCH 085/416] Prepare 1.1.0 release
---
HISTORY.md | 5 +++++
github-markup.gemspec | 4 +---
lib/github-markup.rb | 2 +-
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/HISTORY.md b/HISTORY.md
index 2877ebe0..1f2d91a9 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,8 @@
+## 1.1.0 (2014-03-10)
+
+* Raise GitHub::Markup::CommandError if external command exits with a non-zero status.
+* Remove support for literate Haskell (see #266)
+
## 0.5.1 (2010-09-30)
* Support relative path links in rdoc
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 71df6044..840c6b55 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-02-25'
+ s.date = '2014-03-10'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
@@ -79,8 +79,6 @@ desc
test/markups/README.asciidoc.html
test/markups/README.creole
test/markups/README.creole.html
- test/markups/README.lhs
- test/markups/README.lhs.html
test/markups/README.litcoffee
test/markups/README.litcoffee.html
test/markups/README.markdown
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index b5bf48b9..ab85cca7 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.0.3'
+ VERSION = '1.1.0'
Version = VERSION
end
end
From 3d8d5abc554088c71a0698fd6807751877a438df Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 10 Mar 2014 13:54:22 -0400
Subject: [PATCH 086/416] Release 1.1.0
From 98ce306457f9a190b4b1fc74067df0f6799add3b Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 14 Mar 2014 15:10:20 -0400
Subject: [PATCH 087/416] Add test case to demonstrate UTF-8 bug
---
lib/github/commands/rest2html | 2 +-
test/markups/README.rst | 14 ++++++++++++++
test/markups/README.rst.html | 22 +++++++++++++++++++++-
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 98e7e7e7..c54153aa 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -51,7 +51,7 @@ SETTINGS = {
'raw_enabled': False,
'strip_comments': True,
'doctitle_xform': False,
- 'report_level': 5,
+ 'report_level': 3,
'syntax_highlight' : 'none',
'math_output' : 'latex'
}
diff --git a/test/markups/README.rst b/test/markups/README.rst
index d420def0..e207534a 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -12,6 +12,20 @@ Header 2
3. Somé UTF-8°
+The UTF-8 quote character in this table used to cause python to go boom. Now docutils just displays an error inline so the user can fix it. Upgrading to Python 3 will fix this.
+
+.. csv-table:: Things that are Awesome (on a scale of 1-11)
+ :quote: ”
+
+ Thing,Awesomeness
+ Icecream, 7
+ Honey Badgers, 10.5
+ Nickelback, -2
+ Iron Man, 10
+ Iron Man 2, 3
+ Tabular Data, 5
+ Made up ratings, 11
+
============== ==========================================================
Travis http://travis-ci.org/tony/pullv
Docs http://pullv.rtfd.org
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 477abaa2..562a8e89 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -6,6 +6,26 @@ Header 2
More code, hooray
Somé UTF-8°
+The UTF-8 quote character in this table used to cause python to go boom. Now docutils just displays an error inline so the user can fix it. Upgrading to Python 3 will fix this.
+
+
System Message: ERROR/3 (<string>, line 17)
+
Error with CSV data in "csv-table" directive:
+"quotechar" must be an 1-character string
+
+.. csv-table:: Things that are Awesome (on a scale of 1-11)
+ :quote: ”
+
+ Thing,Awesomeness
+ Icecream, 7
+ Honey Badgers, 10.5
+ Nickelback, -2
+ Iron Man, 10
+ Iron Man 2, 3
+ Tabular Data, 5
+ Made up ratings, 11
+
+
+
\ No newline at end of file
+
From 6cbdd88833bbb9adfc654fe535fab509696eaf35 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 14 Mar 2014 15:13:24 -0400
Subject: [PATCH 088/416] Clean up comment
---
lib/github/commands/rest2html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index c54153aa..eff55aa3 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -29,8 +29,8 @@ __version__ = "0.1"
import sys
-#fix docutils failing with unicode parameters to CSV-Tabl
-#TODO: remove -S switch and the following 2 lines after switching system to python 3.
+# This fixes docutils failing with unicode parameters to CSV-Table. The -S
+# switch and the following 2 lines can be removed after upgrading to python 3.
sys.setdefaultencoding('utf-8')
import site
From 123fd7382510f14bee51fd19821ef2dae9a9de6b Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 3 Apr 2014 14:19:27 -0400
Subject: [PATCH 089/416] Prepare 1.1.1 release
---
HISTORY.md | 5 +++++
github-markup.gemspec | 2 +-
lib/github-markup.rb | 2 +-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/HISTORY.md b/HISTORY.md
index 1f2d91a9..9cbf1284 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,8 @@
+## 1.1.1 (2014-04-03)
+
+* Upgrade to org-ruby 0.9.1
+* Set default encoding to UTF-8 for Python 2
+
## 1.1.0 (2014-03-10)
* Raise GitHub::Markup::CommandError if external command exits with a non-zero status.
diff --git a/github-markup.gemspec b/github-markup.gemspec
index a59d7d36..b10f20d0 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-03-10'
+ s.date = '2014-04-03'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index ab85cca7..c9e6cd2a 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.1.0'
+ VERSION = '1.1.1'
Version = VERSION
end
end
From 8834f9a23e17f7371276f7b99418b7acdd720a50 Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Fri, 4 Apr 2014 06:31:03 +0900
Subject: [PATCH 090/416] Lock to org-ruby version 0.9.1
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index d27ae2e5..c26d2d70 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", ">= 0.9.1"
+gem "org-ruby", "= 0.9.1"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "asciidoctor", "= 0.1.4"
From 329fe3978f126c1a5e7898f9cc68f30bef50ea30 Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Thu, 10 Apr 2014 04:06:52 +0900
Subject: [PATCH 091/416] Set Org Ruby gem version to 0.9.1.gh to support
syntax highlighting in Github
---
Gemfile | 2 +-
lib/github/markups.rb | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index c26d2d70..a35eac1c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.1"
+gem "org-ruby", "= 0.9.1.gh"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "asciidoctor", "= 0.1.4"
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 5c0303a5..286d76b6 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -11,7 +11,10 @@
end
markup('org-ruby', /org/) do |content|
- Orgmode::Parser.new(content, :allow_include_files => false).to_html
+ Orgmode::Parser.new(content, {
+ :allow_include_files => false,
+ :skip_syntax_highlight => true
+ }).to_html
end
markup(:creole, /creole/) do |content|
From ba710cbeccd4176be23bf61414f4a3fa1d5b3f27 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 10 Apr 2014 14:14:31 -0400
Subject: [PATCH 092/416] Release 1.1.1
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index b10f20d0..0f1bd87d 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-04-03'
+ s.date = '2014-04-10'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
From db01d18c27d1e81548b748cd4527b3e891986219 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Sat, 12 Apr 2014 12:16:56 -0700
Subject: [PATCH 093/416] Swap SVG `object` tags with `image` tags
---
lib/github/commands/rest2html | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index eff55aa3..47ced6ec 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -28,6 +28,7 @@ __license__ = "CC0"
__version__ = "0.1"
import sys
+import os
# This fixes docutils failing with unicode parameters to CSV-Table. The -S
# switch and the following 2 lines can be removed after upgrading to python 3.
@@ -89,6 +90,27 @@ class GitHubHTMLTranslator(HTMLTranslator):
def depart_table(self, node):
self.body.append('\n')
+ def depart_image(self, node):
+ uri = node['uri']
+ ext = os.path.splitext(uri)[1].lower()
+ # we need to swap RST's obj with img tags
+ # see http://git.io/5me3dA
+ if ext == ".svg":
+ # preserve essential attributes
+ atts = {}
+ atts['src'] = node['uri']
+ atts['alt'] = node.get('alt', uri)
+ if 'width' in node:
+ atts['width'] = node['width']
+ if 'height' in node:
+ atts['height'] = node['height']
+
+ # toss off obj tag
+ self.body.pop()
+ # add on img with attributes
+ self.body.append(self.starttag(node, 'img', **atts))
+ self.body.append(self.context.pop())
+
def main():
"""
Parses the given ReST file or the redirected string input and returns the
From f2f9917e1f50e8ee3188e6bdee2aea240a9b73f3 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Sat, 12 Apr 2014 12:17:09 -0700
Subject: [PATCH 094/416] Add tests for swapping `object` tags with `image`
tags
---
test/markups/README.rst | 8 ++++++++
test/markups/README.rst.html | 3 +++
2 files changed, 11 insertions(+)
diff --git a/test/markups/README.rst b/test/markups/README.rst
index e207534a..fd8ad722 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -33,3 +33,11 @@ API http://pullv.readthedocs.org/en/latest/api.html
Issues https://github.com/tony/pullv/issues
Source https://github.com/tony/pullv
============== ==========================================================
+
+
+.. image:: https://scan.coverity.com/projects/621/badge.svg
+ :target: https://scan.coverity.com/projects/621
+ :alt: Coverity Scan Build Status
+
+.. image:: https://scan.coverity.com/projects/621/badge.svg
+ :alt: Coverity Scan Build Status
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 562a8e89..77990de5 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -49,3 +49,6 @@ Header 2
+
+
+
From 7a9da183776cb85b19a56c86cbef1204649acc9b Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Sat, 12 Apr 2014 15:12:08 -0700
Subject: [PATCH 095/416] Just pass along every attribute to the `ing` (except
empty values)
---
lib/github/commands/foo.rst | 7 +++++++
lib/github/commands/rest2html | 21 +++++++++++----------
2 files changed, 18 insertions(+), 10 deletions(-)
create mode 100644 lib/github/commands/foo.rst
diff --git a/lib/github/commands/foo.rst b/lib/github/commands/foo.rst
new file mode 100644
index 00000000..e0950998
--- /dev/null
+++ b/lib/github/commands/foo.rst
@@ -0,0 +1,7 @@
+
+.. image:: https://scan.coverity.com/projects/621/badge.svg
+ :target: https://scan.coverity.com/projects/621
+ :alt: Coverity Scan Build Status
+
+.. image:: https://scan.coverity.com/projects/621/badge.svg
+ :alt: Coverity Scan Build Status
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 47ced6ec..4df0ace6 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -93,21 +93,22 @@ class GitHubHTMLTranslator(HTMLTranslator):
def depart_image(self, node):
uri = node['uri']
ext = os.path.splitext(uri)[1].lower()
- # we need to swap RST's obj with img tags
+ # we need to swap RST's use of `object` with `img` tags
# see http://git.io/5me3dA
if ext == ".svg":
# preserve essential attributes
atts = {}
- atts['src'] = node['uri']
- atts['alt'] = node.get('alt', uri)
- if 'width' in node:
- atts['width'] = node['width']
- if 'height' in node:
- atts['height'] = node['height']
-
- # toss off obj tag
+ for attribute, value in node.attributes.items():
+ # we have no time for empty values
+ if value:
+ if attribute == "uri":
+ atts['src'] = value
+ else:
+ atts[attribute] = value
+
+ # toss off `object` tag
self.body.pop()
- # add on img with attributes
+ # add on `img` with attributes
self.body.append(self.starttag(node, 'img', **atts))
self.body.append(self.context.pop())
From 6f78cec499218c20c640ccba34550d5d08b0e8dc Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Tue, 15 Apr 2014 22:31:07 -0700
Subject: [PATCH 096/416] Release 1.1.2
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index c9e6cd2a..1f9e9e76 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.1.1'
+ VERSION = '1.1.2'
Version = VERSION
end
end
From 1d3063cbdcf0030627db274054330c91618063c9 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Tue, 15 Apr 2014 22:31:35 -0700
Subject: [PATCH 097/416] Release 1.1.2
---
github-markup.gemspec | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 0f1bd87d..867ca993 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-04-10'
+ s.date = '2014-04-15'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
@@ -64,6 +64,7 @@ desc
bin/github-markup
github-markup.gemspec
lib/github-markup.rb
+ lib/github/commands/foo.rst
lib/github/commands/rest2html
lib/github/markup.rb
lib/github/markup/command_implementation.rb
From 28e31d19b6e65028c0f3c2dcc93f244b7db8baab Mon Sep 17 00:00:00 2001
From: Daniel Farina
Date: Sat, 5 Apr 2014 08:46:26 -0700
Subject: [PATCH 098/416] Make rest2html program run more easily
As interpreted by a Python 2.7 interpreter on a GNU system.
This shebang form is unusual (env python2 -S), nor is relying on
whitespace between shebang entries considered portable, de-facto nor
de-jure.
In addition, reloading sys seems to be necessary to allow for
setdefaultencoding. That's apparently to prevent people from using
that symbol, but as it was working before somehow, just fix it.
---
lib/github/commands/rest2html | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 4df0ace6..ad9c58a9 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2 -S
+#!/usr/bin/env python
"""
rest2html - A small wrapper file for parsing ReST files at GitHub.
@@ -32,6 +32,7 @@ import os
# This fixes docutils failing with unicode parameters to CSV-Table. The -S
# switch and the following 2 lines can be removed after upgrading to python 3.
+reload(sys)
sys.setdefaultencoding('utf-8')
import site
From 8f706f75d5668fa1b50137d0dd6f4f2797237ff2 Mon Sep 17 00:00:00 2001
From: Daniel Farina
Date: Sat, 5 Apr 2014 09:07:23 -0700
Subject: [PATCH 099/416] Interpret titles and subtitles in rst
This hopes to make subtitles usable without changing the markup and
table-of-contents generation of documents much at all.
Previously, titles and subtitles[0] would introduce a lot of nesting
in a generated table of contents. Enable both doctitle_xform and
sectsubtitle_xform to remove those.
However, merely enabling those will cause the existing top-level,
non-title HTML header sizes to be promoted to , since titles and
subtitles are not considered "sections", changing how the HTML output
looks a rather lot.
That's not how some sampled rsts (without subtitles) on work today:
the title is biggest at , and all other sections are or
below. So set the initial_header_level to "2", so that the largest
text sections can have is , tied in size for the subtitle.
[0]: http://docutils.sourceforge.net/docs/user/rst/quickstart.html#document-title-subtitle
---
lib/github/commands/rest2html | 4 +++-
test/markups/README.rst | 5 +++++
test/markups/README.rst.html | 13 ++++++++++---
test/markups/README.rst.txt.html | 2 +-
4 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index ad9c58a9..f53442dd 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -52,7 +52,9 @@ SETTINGS = {
'file_insertion_enabled': False,
'raw_enabled': False,
'strip_comments': True,
- 'doctitle_xform': False,
+ 'doctitle_xform': True,
+ 'sectsubtitle_xform': True,
+ 'initial_header_level': 2,
'report_level': 3,
'syntax_highlight' : 'none',
'math_output' : 'latex'
diff --git a/test/markups/README.rst b/test/markups/README.rst
index fd8ad722..9074b23f 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -1,8 +1,13 @@
Header 1
========
+--------
+Subtitle
+--------
Example text.
+.. contents:: Table of Contents
+
Header 2
--------
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 77990de5..bd242190 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -1,6 +1,13 @@
-Header 1
+Header 1
+Subtitle
Example text.
-Header 2
+
+
- Blah blah code blah
- More code, hooray
@@ -8,7 +15,7 @@ Header 2
The UTF-8 quote character in this table used to cause python to go boom. Now docutils just displays an error inline so the user can fix it. Upgrading to Python 3 will fix this.
-
System Message: ERROR/3 (<string>, line 17)
+
System Message: ERROR/3 (<string>, line 22)
Error with CSV data in "csv-table" directive:
"quotechar" must be an 1-character string
diff --git a/test/markups/README.rst.txt.html b/test/markups/README.rst.txt.html
index 477abaa2..d46c426f 100644
--- a/test/markups/README.rst.txt.html
+++ b/test/markups/README.rst.txt.html
@@ -1,4 +1,4 @@
-Header 1
+Header 1
Example text.
Header 2
From 23860f4a8dec563f0f82f29cff18bd4b8083d6e3 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 17 Apr 2014 00:54:00 -0700
Subject: [PATCH 100/416] Bump to github-markup@1.2.0
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 1f9e9e76..0fad0611 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.1.2'
+ VERSION = '1.2.0'
Version = VERSION
end
end
From 689a3fe619d0b56af9dcdb91a8b602c534e0f1cb Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 17 Apr 2014 00:54:26 -0700
Subject: [PATCH 101/416] Release 1.2.0
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 867ca993..4c3eb88a 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-04-15'
+ s.date = '2014-04-17'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
From 9a58d65c1344438165cf69d792872236a14ea209 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 07:48:01 -0400
Subject: [PATCH 102/416] Disable RST warnings
---
lib/github/commands/rest2html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index f53442dd..c0084915 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -55,7 +55,7 @@ SETTINGS = {
'doctitle_xform': True,
'sectsubtitle_xform': True,
'initial_header_level': 2,
- 'report_level': 3,
+ 'report_level': 5,
'syntax_highlight' : 'none',
'math_output' : 'latex'
}
From 144f6343c04b43b9ffabd582f7ec32a025bb912d Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 07:58:12 -0400
Subject: [PATCH 103/416] update RST example
---
test/markups/README.rst | 2 +-
test/markups/README.rst.html | 21 +--------------------
2 files changed, 2 insertions(+), 21 deletions(-)
diff --git a/test/markups/README.rst b/test/markups/README.rst
index 9074b23f..6db8bbb9 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -17,7 +17,7 @@ Header 2
3. Somé UTF-8°
-The UTF-8 quote character in this table used to cause python to go boom. Now docutils just displays an error inline so the user can fix it. Upgrading to Python 3 will fix this.
+The UTF-8 quote character in this table used to cause python to go boom. Now docutils just silently ignores it.
.. csv-table:: Things that are Awesome (on a scale of 1-11)
:quote: ”
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index bd242190..bf81fb07 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -13,26 +13,7 @@
- More code, hooray
- Somé UTF-8°
-The UTF-8 quote character in this table used to cause python to go boom. Now docutils just displays an error inline so the user can fix it. Upgrading to Python 3 will fix this.
-
-
System Message: ERROR/3 (<string>, line 22)
-
Error with CSV data in "csv-table" directive:
-"quotechar" must be an 1-character string
-
-.. csv-table:: Things that are Awesome (on a scale of 1-11)
- :quote: ”
-
- Thing,Awesomeness
- Icecream, 7
- Honey Badgers, 10.5
- Nickelback, -2
- Iron Man, 10
- Iron Man 2, 3
- Tabular Data, 5
- Made up ratings, 11
-
-
-
+The UTF-8 quote character in this table used to cause python to go boom. Now docutils just silently ignores it.
From cb91a5068435b242e3e9d2598d6f07ddee30c510 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:20:08 -0400
Subject: [PATCH 104/416] use bundler's rake tasks for releasing
---
Rakefile | 124 ++----------------------------------------
github-markup.gemspec | 121 +++++------------------------------------
2 files changed, 18 insertions(+), 227 deletions(-)
diff --git a/Rakefile b/Rakefile
index 928bc9a8..5a7b12e6 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,49 +1,6 @@
-require 'rubygems'
-require 'rake'
-require 'date'
+#!/usr/bin/env rake
-#############################################################################
-#
-# Helper functions
-#
-#############################################################################
-
-def name
- @name ||= Dir['*.gemspec'].first.split('.').first
-end
-
-def version
- line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
- line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
-end
-
-def date
- Date.today.to_s
-end
-
-def rubyforge_project
- name
-end
-
-def gemspec_file
- "#{name}.gemspec"
-end
-
-def gem_file
- "#{name}-#{version}.gem"
-end
-
-def replace_header(head, header_name)
- head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
-end
-
-#############################################################################
-#
-# Standard tasks
-#
-#############################################################################
-
-task :default => :test
+require "bundler/gem_tasks"
require 'rake/testtask'
Rake::TestTask.new(:test) do |test|
@@ -54,80 +11,7 @@ end
desc "Open an irb session preloaded with this library"
task :console do
- sh "irb -rubygems -r ./lib/#{name}.rb"
-end
-
-#############################################################################
-#
-# Custom tasks (add your own tasks here)
-#
-#############################################################################
-
-desc "Kick it"
-task :kick do
- exec "kicker -e rake test lib"
-end
-
-#############################################################################
-#
-# Packaging tasks
-#
-#############################################################################
-
-desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
-task :release => :build do
- unless `git branch` =~ /^\* master$/
- puts "You must be on the master branch to release!"
- exit!
- end
- sh "git commit --allow-empty -a -m 'Release #{version}'"
- sh "git tag v#{version}"
- sh "git push origin master"
- sh "git push origin v#{version}"
- sh "gem push pkg/#{name}-#{version}.gem"
-end
-
-desc "Build #{gem_file} into the pkg directory"
-task :build => :gemspec do
- sh "mkdir -p pkg"
- sh "gem build #{gemspec_file}"
- sh "mv #{gem_file} pkg"
-end
-
-desc "Generate #{gemspec_file}"
-task :gemspec => :validate do
- # read spec file and split out manifest section
- spec = File.read(gemspec_file)
- head, manifest, tail = spec.split(" # = MANIFEST =\n")
-
- # replace name version and date
- replace_header(head, :name)
- replace_header(head, :version)
- replace_header(head, :date)
- #comment this out if your rubyforge_project has a different name
- replace_header(head, :rubyforge_project)
-
- # determine file list from git ls-files
- files = `git ls-files`.
- split("\n").
- sort.
- reject { |file| file =~ /^\./ }.
- reject { |file| file =~ /^(rdoc|pkg)/ }.
- map { |file| " #{file}" }.
- join("\n")
-
- # piece file back together and write
- manifest = " s.files = %w[\n#{files}\n ]\n"
- spec = [head, manifest, tail].join(" # = MANIFEST =\n")
- File.open(gemspec_file, 'w') { |io| io.write(spec) }
- puts "Updated #{gemspec_file}"
-end
-
-desc "Validate #{gemspec_file}"
-task :validate do
- unless Dir['VERSION*'].empty?
- puts "A `VERSION` file at root level violates Gem best practices."
- exit!
- end
+ sh "irb -I lib -r bundler/setup -r github/markup"
end
+task :default => :test
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 4c3eb88a..38604aee 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -1,113 +1,20 @@
require File.expand_path("../lib/github-markup", __FILE__)
-## This is the rakegem gemspec template. Make sure you read and understand
-## all of the comments. Some sections require modification, and others can
-## be deleted if you don't need them. Once you understand the contents of
-## this file, feel free to delete any comments that begin with two hash marks.
-## You can find comprehensive Gem::Specification documentation, at
-## http://docs.rubygems.org/read/chapter/20
Gem::Specification.new do |s|
- s.specification_version = 2 if s.respond_to? :specification_version=
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
- s.rubygems_version = '1.3.5'
-
- ## Leave these as is they will be modified for you by the rake gemspec task.
- ## If your rubyforge_project name is different, then edit it and comment out
- ## the sub! line in the Rakefile
- s.name = 'github-markup'
- s.version = GitHub::Markup::VERSION
- s.date = '2014-04-17'
- s.executables = ['github-markup']
-
- ## Make sure your summary is short. The description may be as long
- ## as you like.
- s.summary = "The code GitHub uses to render README.markup"
- s.description = < 0.1.2")
-
- ## List your development dependencies here. Development dependencies are
- ## those that are only needed during development
- #s.add_development_dependency("test-unit", "~> 2.3.0")
-
- ## Leave this section as-is. It will be automatically generated from the
- ## contents of your Git repository via the gemspec task. DO NOT REMOVE
- ## THE MANIFEST COMMENTS, they are used as delimiters by the task.
- # = MANIFEST =
- s.files = %w[
- Gemfile
- HISTORY.md
- LICENSE
- README.md
- Rakefile
- bin/github-markup
- github-markup.gemspec
- lib/github-markup.rb
- lib/github/commands/foo.rst
- lib/github/commands/rest2html
- lib/github/markup.rb
- lib/github/markup/command_implementation.rb
- lib/github/markup/gem_implementation.rb
- lib/github/markup/implementation.rb
- lib/github/markup/markdown.rb
- lib/github/markup/rdoc.rb
- lib/github/markups.rb
- script/bootstrap
- script/cibuild
- test/markup_test.rb
- test/markups/README.asciidoc
- test/markups/README.asciidoc.html
- test/markups/README.creole
- test/markups/README.creole.html
- test/markups/README.litcoffee
- test/markups/README.litcoffee.html
- test/markups/README.markdown
- test/markups/README.markdown.html
- test/markups/README.mediawiki
- test/markups/README.mediawiki.html
- test/markups/README.noformat
- test/markups/README.noformat.html
- test/markups/README.org
- test/markups/README.org.html
- test/markups/README.pod
- test/markups/README.pod.html
- test/markups/README.rdoc
- test/markups/README.rdoc.html
- test/markups/README.rst
- test/markups/README.rst.html
- test/markups/README.rst.txt
- test/markups/README.rst.txt.html
- test/markups/README.textile
- test/markups/README.textile.html
- test/markups/README.txt
- test/markups/README.txt.html
- ]
- # = MANIFEST =
-
- ## Test files will be grabbed from the file list. Make sure the path glob
- ## matches what you actually use.
- s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
-
- s.add_dependency 'posix-spawn', '~> 0.3.8'
+ s.add_dependency "posix-spawn", "~> 0.3.8"
end
From da24f16cdb2c25ae3a70a650e81acb756d0c3833 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:43:57 -0400
Subject: [PATCH 105/416] Move contributing docs to CONTRIBUTING.md
---
CONTRIBUTING.md | 65 ++++++++++++++++++++++++++++++++++++++++++++
README.md | 71 +------------------------------------------------
2 files changed, 66 insertions(+), 70 deletions(-)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..de8fc939
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,65 @@
+# Contributing
+
+Want to contribute? Great!
+
+1. Fork it.
+2. Create a branch (`git checkout -b my_markup`)
+3. Commit your changes (`git commit -am "Added Snarkdown"`)
+4. Push to the branch (`git push origin my_markup`)
+5. Open a [Pull Request][1]
+6. Enjoy a refreshing Diet Coke and wait
+
+
+There are two ways to add markups.
+
+### Commands
+
+If your markup is in a language other than Ruby, drop a translator
+script in `lib/github/commands` which accepts input on STDIN and
+returns HTML on STDOUT. See [rest2html][r2h] for an example.
+
+Once your script is in place, edit `lib/github/markups.rb` and tell
+GitHub Markup about it. Again we look to [rest2html][r2hc] for
+guidance:
+
+ command(:rest2html, /re?st(.txt)?/)
+
+Here we're telling GitHub Markup of the existence of a `rest2html`
+command which should be used for any file ending in `rest`,
+`rst`, `rest.txt` or `rst.txt`. Any regular expression will do.
+
+Finally add your [tests](#testing).
+
+### Classes
+
+If your markup can be translated using a Ruby library, that's
+great. Check out `lib/github/markups.rb` for some
+examples. Let's look at Markdown:
+
+ markup(:markdown, /md|mkdn?|markdown/) do |content|
+ Markdown.new(content).to_html
+ end
+
+We give the `markup` method three bits of information: the name of the
+file to `require`, a regular expression for extensions to match, and a
+block to run with unformatted markup which should return HTML.
+
+If you need to monkeypatch a RubyGem or something, check out the
+included RDoc example.
+
+Finally add your [tests](#testing).
+
+### Testing
+
+To run the tests:
+
+ $ rake
+
+When adding support for a new markup library, create a `README.extension` in `test/markups` along with a `README.extension.html`. As you may imagine, the `README.extension` should be your known input and the
+`README.extension.html` should be the desired output.
+
+Now run the tests: `rake`
+
+If nothing complains, congratulations!
+
+[1]: http://github.com/github/markup/pulls
diff --git a/README.md b/README.md
index 5def29b6..0016f53a 100644
--- a/README.md
+++ b/README.md
@@ -46,58 +46,6 @@ The following attributes, organized by element, are whitelisted:
Note that the id attribute is *not* whitelisted.
-Contributing
-------------
-
-Want to contribute? Great! There are two ways to add markups.
-
-
-### Commands
-
-If your markup is in a language other than Ruby, drop a translator
-script in `lib/github/commands` which accepts input on STDIN and
-returns HTML on STDOUT. See [rest2html][r2h] for an example.
-
-Once your script is in place, edit `lib/github/markups.rb` and tell
-GitHub Markup about it. Again we look to [rest2html][r2hc] for
-guidance:
-
- command(:rest2html, /re?st(.txt)?/)
-
-Here we're telling GitHub Markup of the existence of a `rest2html`
-command which should be used for any file ending in `rest`,
-`rst`, `rest.txt` or `rst.txt`. Any regular expression will do.
-
-Finally add your tests. Create a `README.extension` in `test/markups`
-along with a `README.extension.html`. As you may imagine, the
-`README.extension` should be your known input and the
-`README.extension.html` should be the desired output.
-
-Now run the tests: `rake`
-
-If nothing complains, congratulations!
-
-
-### Classes
-
-If your markup can be translated using a Ruby library, that's
-great. Check out `lib/github/markups.rb` for some
-examples. Let's look at Markdown:
-
- markup(:markdown, /md|mkdn?|markdown/) do |content|
- Markdown.new(content).to_html
- end
-
-We give the `markup` method three bits of information: the name of the
-file to `require`, a regular expression for extensions to match, and a
-block to run with unformatted markup which should return HTML.
-
-If you need to monkeypatch a RubyGem or something, check out the
-included RDoc example.
-
-Tests should be added in the same manner as described under the
-`Commands` section.
-
Installation
-----------
@@ -117,28 +65,11 @@ Or, more realistically:
GitHub::Markup.render(file, File.read(file))
-Testing
--------
-
-To run the tests:
-
- $ rake
-
-To add tests see the `Commands` section earlier in this
-README.
-
-
Contributing
------------
-1. Fork it.
-2. Create a branch (`git checkout -b my_markup`)
-3. Commit your changes (`git commit -am "Added Snarkdown"`)
-4. Push to the branch (`git push origin my_markup`)
-5. Open a [Pull Request][1]
-6. Enjoy a refreshing Diet Coke and wait
+See [Contributing](CONTRIBUTING.md)
[r2h]: lib/github/commands/rest2html
[r2hc]: lib/github/markups.rb#L51
-[1]: http://github.com/github/markup/pulls
From 5fd0b77eb09593153201a8a6171128fd52c27861 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:44:09 -0400
Subject: [PATCH 106/416] Add docs for releasing a new version
---
CONTRIBUTING.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index de8fc939..a77dce9a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -62,4 +62,18 @@ Now run the tests: `rake`
If nothing complains, congratulations!
+## Releasing a new version
+
+If you are the current maintainer of this gem:
+
+0. Bump the version number in `lib/github-markup.rb`, adhering to [Semantic Versioning](http://semver.org/)
+0. Update `HISTORY.md`
+0. Test the latest version on GitHub
+ 0. Build the new version with `rake build`
+ 0. Copy `pkg/github-markup*.gem` to `vendor/cache` in your local checkout of GitHub
+ 0. Update the version for `github-markup` in the `Gemfile`
+ 0. run `script/bootstrap`
+ 0. Run any relevant tests and test it manually from the browser.
+0. Push the new gem release with `rake release`. If you don't have permission to release to rubygems.org, contact one of the existing owners (`gem owners github-markup`) and ask them to add you.
+
[1]: http://github.com/github/markup/pulls
From dede9e8432244df336c730f76a601a505029991c Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:45:54 -0400
Subject: [PATCH 107/416] Move link references into contributing
---
CONTRIBUTING.md | 2 ++
README.md | 4 ----
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a77dce9a..c6d22727 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -77,3 +77,5 @@ If you are the current maintainer of this gem:
0. Push the new gem release with `rake release`. If you don't have permission to release to rubygems.org, contact one of the existing owners (`gem owners github-markup`) and ask them to add you.
[1]: http://github.com/github/markup/pulls
+[r2h]: lib/github/commands/rest2html
+[r2hc]: lib/github/markups.rb#L51
diff --git a/README.md b/README.md
index 0016f53a..6fce3302 100644
--- a/README.md
+++ b/README.md
@@ -69,7 +69,3 @@ Contributing
------------
See [Contributing](CONTRIBUTING.md)
-
-
-[r2h]: lib/github/commands/rest2html
-[r2hc]: lib/github/markups.rb#L51
From df9ee4c20fd54c9ed3433a9caffa14542c4210fa Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:51:15 -0400
Subject: [PATCH 108/416] installation and usage before sanitization
---
README.md | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index 6fce3302..0cda2682 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,22 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
comes with Perl >= 5.10. Lower versions should install Pod::Simple from CPAN.
+Installation
+-----------
+
+ gem install github-markup
+
+Usage
+-----
+
+ require 'github/markup'
+ GitHub::Markup.render('README.markdown', "* One\n* Two")
+
+Or, more realistically:
+
+ require 'github/markup'
+ GitHub::Markup.render(file, File.read(file))
+
HTML sanitization
-----------------
@@ -46,25 +62,6 @@ The following attributes, organized by element, are whitelisted:
Note that the id attribute is *not* whitelisted.
-
-Installation
------------
-
- gem install github-markup
-
-
-Usage
------
-
- require 'github/markup'
- GitHub::Markup.render('README.markdown', "* One\n* Two")
-
-Or, more realistically:
-
- require 'github/markup'
- GitHub::Markup.render(file, File.read(file))
-
-
Contributing
------------
From 5c9d3b3b14128af5e0a431f0a7465e557bdbac48 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 10:10:17 -0400
Subject: [PATCH 109/416] bin is not ignored
---
.gitignore | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
index e3746243..a08b381b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
*.pyc
pkg/
-bin
.bundle
Gemfile.lock
-vendor/
\ No newline at end of file
+vendor/
From 25a8b9cce4c4227bf0831a519c51dfd776547c5d Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 10:12:24 -0400
Subject: [PATCH 110/416] Fix docs for testing in GitHub
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c6d22727..57ba6e97 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -72,7 +72,7 @@ If you are the current maintainer of this gem:
0. Build the new version with `rake build`
0. Copy `pkg/github-markup*.gem` to `vendor/cache` in your local checkout of GitHub
0. Update the version for `github-markup` in the `Gemfile`
- 0. run `script/bootstrap`
+ 0. Run `bundle update --local github-markup`
0. Run any relevant tests and test it manually from the browser.
0. Push the new gem release with `rake release`. If you don't have permission to release to rubygems.org, contact one of the existing owners (`gem owners github-markup`) and ask them to add you.
From 0e4fe41ead97f84a4e6252755e537c0773f9564d Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 09:54:40 -0400
Subject: [PATCH 111/416] Release 1.2.1
---
HISTORY.md | 6 ++++++
lib/github-markup.rb | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/HISTORY.md b/HISTORY.md
index 9cbf1284..5e91187e 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,9 @@
+## 1.2.1 (2014-04-23)
+
+* Disable RST warnings [#290](https://github.com/github/markup/pull/290)
+
+[Full changelog](https://github.com/github/markup/compare/v1.2.0...v1.2.1)
+
## 1.1.1 (2014-04-03)
* Upgrade to org-ruby 0.9.1
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 0fad0611..c0fc6679 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.2.0'
+ VERSION = '1.2.1'
Version = VERSION
end
end
From ab584614d0dd72ae4986faa4af6b7a6241047be7 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 23 Apr 2014 10:14:53 -0400
Subject: [PATCH 112/416] Release 1.2.1
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 4c3eb88a..40c794d5 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
## the sub! line in the Rakefile
s.name = 'github-markup'
s.version = GitHub::Markup::VERSION
- s.date = '2014-04-17'
+ s.date = '2014-04-23'
s.executables = ['github-markup']
## Make sure your summary is short. The description may be as long
From 5762d015ac355201e4952f652c14d3da226dcc76 Mon Sep 17 00:00:00 2001
From: Martin Monperrus
Date: Fri, 2 May 2014 21:00:33 +0200
Subject: [PATCH 113/416] States that .wiki files are rendered using Mediawiki
syntax
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 0cda2682..b20a7f98 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.rdoc](http://rdoc.sourceforge.net/) -- `gem install rdoc -v 3.6.1`
* [.org](http://orgmode.org/) -- `gem install org-ruby`
* [.creole](http://wikicreole.org/) -- `gem install creole`
-* [.mediawiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
+* [.mediawiki, .wiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
* [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
* [.asciidoc, .adoc, .asc](http://asciidoc.org/) -- `gem install asciidoctor` (http://asciidoctor.org)
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
From ab9c1e8ac144dea9a0831667c54914f372cf3fc2 Mon Sep 17 00:00:00 2001
From: Leandro Lucarella
Date: Tue, 27 May 2014 16:37:15 +0200
Subject: [PATCH 114/416] rst2html: Extend the field_name_limit to 50
Field lists are rendered weirdly in reST if the field name is longer
that 14 characters. In this case the table cell where the field name is
gets a colspan=2.
For example this:
```rest
:123456789012345: too long, colspan=2
:12345678901234: OK
```
Gets translated to:
```html
123456789012345: |
| too long,
colspan=2 |
12345678901234: | OK |
```
Increasing this default value of 14 to something more reasonable, like
50, seems sensible. Even when this is just another arbitrary value,
since GitHub have a fixed total width, it seems sensible to not make it
much more longer, since if the field name is too long it will look weird
anyway.
---
lib/github/commands/rest2html | 3 ++-
test/markups/README.rst | 9 +++++++++
test/markups/README.rst.html | 19 +++++++++++++++++++
3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index c0084915..c8c8b521 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -57,7 +57,8 @@ SETTINGS = {
'initial_header_level': 2,
'report_level': 5,
'syntax_highlight' : 'none',
- 'math_output' : 'latex'
+ 'math_output' : 'latex',
+ 'field_name_limit': 50,
}
class GitHubHTMLTranslator(HTMLTranslator):
diff --git a/test/markups/README.rst b/test/markups/README.rst
index 6db8bbb9..efd1685b 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -46,3 +46,12 @@ Source https://github.com/tony/pullv
.. image:: https://scan.coverity.com/projects/621/badge.svg
:alt: Coverity Scan Build Status
+
+Field list
+----------
+
+:123456789 123456789 123456789 123456789 123456789 1: Uh-oh! This name is too long!
+:123456789 123456789 123456789 123456789 1234567890: this is a long name,
+ but no problem!
+:123456789 12345: this is not so long, but long enough for the default!
+:123456789 1234: this should work even with the default :)
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index bf81fb07..4186694d 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -5,6 +5,7 @@ Subtitle
Table of Contents
@@ -40,3 +41,21 @@
+
+
+
+
+
+123456789 123456789 123456789 123456789 123456789 1: |
+ | Uh-oh! This name is too long! |
+
+123456789 123456789 123456789 123456789 1234567890: | this is a long name,
+but no problem! |
+
+123456789 12345: | this is not so long, but long enough for the default! |
+
+123456789 1234: | this should work even with the default :) |
+
+
+
+
From 1ed7e156c67949ad273b817bc195b6aa057c352f Mon Sep 17 00:00:00 2001
From: felixphew
Date: Sat, 31 May 2014 07:31:33 +1000
Subject: [PATCH 115/416] Added .mkdn as a Markdown extension
I have already submitted a corresponding change to Linguist (see #1215)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b20a7f98..4c0aac04 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Markups
The following markups are supported. The dependencies listed are required if
you wish to run the library. You can also run `script/bootstrap` to fetch them all.
-* [.markdown, .mdown, .md](http://daringfireball.net/projects/markdown/) -- `gem install redcarpet` (https://github.com/vmg/redcarpet)
+* [.markdown, .mdown, .mkdn, .md](http://daringfireball.net/projects/markdown/) -- `gem install redcarpet` (https://github.com/vmg/redcarpet)
* [.textile](http://www.textism.com/tools/textile/) -- `gem install RedCloth`
* [.rdoc](http://rdoc.sourceforge.net/) -- `gem install rdoc -v 3.6.1`
* [.org](http://orgmode.org/) -- `gem install org-ruby`
From 83923253df150329d35b5f5bbec47e0c75165ddc Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Fri, 6 Jun 2014 12:24:24 -0400
Subject: [PATCH 116/416] link to html-pipeline in the docs
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 4c0aac04..58eb47f5 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@ GitHub Markup
=============
We use this library on GitHub when rendering your README or any other
-rich text file.
+rich text file. The generated HTML is then run through filters in the [html-pipeline](https://github.com/jch/html-pipeline) to perform things like [santization](#html-sanitization) and [syntax highlighting](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/syntax_highlight_filter.rb).
Markups
-------
From 62ab8ac092d26cdb70b9b65f0a796b9c47e182fe Mon Sep 17 00:00:00 2001
From: george2
Date: Mon, 9 Jun 2014 10:49:30 -0600
Subject: [PATCH 117/416] Fixed typo in README.md.
Just a 1-character typo fix.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 58eb47f5..1f5b145f 100644
--- a/README.md
+++ b/README.md
@@ -56,7 +56,7 @@ The following HTML elements, organized by category, are whitelisted:
The following attributes, organized by element, are whitelisted:
* a: href (http://, https://, mailto://, github-windows:// and github-mac:// URI schemes and relative paths only)
-* img: src (http:// and https::// URI schemes and relative paths only)
+* img: src (http:// and https:// URI schemes and relative paths only)
* div: itemscope, itemtype
* all: abbr, accept, accept-charset, accesskey, action, align, alt, axis, border, cellpadding, cellspacing, char, charoff, charset, checked, cite, clear, cols, colspan, color, compact, coords, datetime, dir, disabled, enctype, for, frame, headers, height, hreflang, hspace, ismap, label, lang, longdesc, maxlength, media, method, multiple, name, nohref, noshade, nowrap, prompt, readonly, rel, rev, rows, rowspan, rules, scope, selected, shape, size, span, start, summary, tabindex, target, title, type, usemap, valign, value, vspace, width, itemprop
From bf2b3a119c7d5a1ba6cd4e1bd1bacf8826313381 Mon Sep 17 00:00:00 2001
From: Yusuke Matsubara
Date: Wed, 11 Jun 2014 21:58:01 +0900
Subject: [PATCH 118/416] Update WikiCloth to 0.8.1 and support footnotes
---
Gemfile | 2 +-
test/markups/README.mediawiki | 5 +++-
test/markups/README.mediawiki.html | 48 +++++++++++++++++-------------
3 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/Gemfile b/Gemfile
index a35eac1c..84233326 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,6 +5,6 @@ gem "RedCloth"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.1.gh"
gem "creole", "~>0.3.6"
-gem "wikicloth", "=0.6.0"
+gem "wikicloth", "=0.8.1"
gem "asciidoctor", "= 0.1.4"
gem "rake"
diff --git a/test/markups/README.mediawiki b/test/markups/README.mediawiki
index f7c394cd..36c3ef6b 100644
--- a/test/markups/README.mediawiki
+++ b/test/markups/README.mediawiki
@@ -21,4 +21,7 @@ For projects requiring multiple scripting languages, JSR223 is a good fit. Thoug
The full [http://jruby-embed.kenai.com/docs/ API documentation] has all the gory details. It's worth talking about a couple of the finer points here.
= Previous Embedding JRuby Page=
-We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the [[JavaIntegration|legacy embedding]] page.
\ No newline at end of file
+We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the [[JavaIntegration|legacy embedding]][This link goes nowhere.] page.
+
+= References =
+
diff --git a/test/markups/README.mediawiki.html b/test/markups/README.mediawiki.html
index e8400592..a84d3d7b 100644
--- a/test/markups/README.mediawiki.html
+++ b/test/markups/README.mediawiki.html
@@ -1,35 +1,41 @@
-
-» JRuby Project Wiki Home Page
+
» JRuby Project Wiki Home Page
Embedding JRuby
-
Using Java from Ruby is JRuby's best-known feature---but you can also go in the other direction, and use Ruby from Java. There are several different ways to do this. You can execute entire Ruby scripts, call individual Ruby methods, or even implement a Java interface in Ruby (thus allowing you to treat Ruby objects like Java ones). We refer to all these techniques generically as "embedding." This section will explain how to embed JRuby in your Java project.
+
+
+
+
+Red Bridge (JRuby Embed)
-
-
-
-
Red Bridge (JRuby Embed)
-JRuby has long had a private embedding API, which was closely tied to the runtime's internals and therefore changed frequently as JRuby evolved. Since version 1.4, however, we have also provided a more stable public API, known as Red Bridge or JRuby Embed. Existing Java programs written to the legacy API should still work, but we strongly recommend Red Bridge for all new projects.
+JRuby has long had a private embedding API, which was closely tied to the runtime's internals and therefore changed frequently as JRuby evolved. Since version 1.4, however, we have also provided a more stable public API, known as Red Bridge or JRuby Embed. Existing Java programs written to the legacy API should still work, but we strongly recommend Red Bridge for all new projects.
+
+
+Features of Red Bridge
+
-
-
Features of Red Bridge
Red Bridge consists of two layers: Embed Core on the bottom, and implementations of JSR223 and BSF on top. Embed Core is JRuby-specific, and can take advantage of much of JRuby's power. JSR223 and BSF are more general interfaces that provide a common ground across scripting languages.
+Red Bridge consists of two layers: Embed Core on the bottom, and implementations of JSR223 and BSF on top. Embed Core is JRuby-specific, and can take advantage of much of JRuby's power. JSR223 and BSF are more general interfaces that provide a common ground across scripting languages.
+
+Which API should you use? For projects where Ruby is the only scripting language involved, we recommend Embed Core for the following reasons:
+
-
-Which API should you use? For projects where Ruby is the only scripting language involved, we recommend Embed Core for the following reasons:
-
-
- With Embed Core, you can create several Ruby environments in one JVM, and configure them individually (via
org.jruby.RubyInstanceConfig
. With the other APIs, configuration options can only be set globally, via the System
properties.
- - Embed Core offers several shortcuts, such as loading scripts from a
java.io.InputStream
, or returning Java-friendly objects from Ruby code. These allow you to skip a lot of boilerplate.
+- With Embed Core, you can create several Ruby environments in one JVM, and configure them individually (via
org.jruby.RubyInstanceConfig
. With the other APIs, configuration options can only be set globally, via the System
properties. - Embed Core offers several shortcuts, such as loading scripts from a
java.io.InputStream
, or returning Java-friendly objects from Ruby code. These allow you to skip a lot of boilerplate.
+For projects requiring multiple scripting languages, JSR223 is a good fit. Though the API is language-independent, JRuby's implementation of it allows you to set some Ruby-specific options. In particular, you can control the threading model of the scripting engine, the lifetime of local variables, compilation mode, and how line numbers are displayed.
+
+The full API documentation has all the gory details. It's worth talking about a couple of the finer points here.
+
-
-
For projects requiring multiple scripting languages, JSR223 is a good fit. Though the API is language-independent, JRuby's implementation of it allows you to set some Ruby-specific options. In particular, you can control the threading model of the scripting engine, the lifetime of local variables, compilation mode, and how line numbers are displayed.
+Previous Embedding JRuby Page
-
-The full API documentation has all the gory details. It's worth talking about a couple of the finer points here.
-
-
Previous Embedding JRuby Page
We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the legacy embedding page.
+We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the legacy embedding[1] page.
+
+References
+
+
+- ^ This link goes nowhere.
\ No newline at end of file
From bc1a936c5936f9918a655ce7bd2d4073fb7afb1b Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 11 Jun 2014 14:51:11 -0400
Subject: [PATCH 119/416] bump version and update history
---
HISTORY.md | 6 ++++++
lib/github-markup.rb | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/HISTORY.md b/HISTORY.md
index 5e91187e..01ea4831 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,9 @@
+## 1.3.0 (unreleased)
+
+* Upgrade wikicloth to 0.8.1 [#317](https://github.com/github/markup/pull/317)
+
+[Full changelog](https://github.com/github/markup/compare/v1.2.1...v1.3.0)
+
## 1.2.1 (2014-04-23)
* Disable RST warnings [#290](https://github.com/github/markup/pull/290)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index c0fc6679..18124c91 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.2.1'
+ VERSION = '1.3.0'
Version = VERSION
end
end
From 8c7ade076546af6b398d44d145b3b1111483f5c7 Mon Sep 17 00:00:00 2001
From: Neven Sajko
Date: Sun, 15 Jun 2014 19:58:36 +0200
Subject: [PATCH 120/416] Fix a spelling mistake
Add an 'i' to "santization".
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1f5b145f..92974f49 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@ GitHub Markup
=============
We use this library on GitHub when rendering your README or any other
-rich text file. The generated HTML is then run through filters in the [html-pipeline](https://github.com/jch/html-pipeline) to perform things like [santization](#html-sanitization) and [syntax highlighting](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/syntax_highlight_filter.rb).
+rich text file. The generated HTML is then run through filters in the [html-pipeline](https://github.com/jch/html-pipeline) to perform things like [sanitization](#html-sanitization) and [syntax highlighting](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/syntax_highlight_filter.rb).
Markups
-------
From 8892c83d1c70ce7e1306360355737f124817d199 Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Sun, 22 Jun 2014 01:57:03 +0900
Subject: [PATCH 121/416] Lock version of Org Ruby to 0.9.7
---
Gemfile | 2 +-
test/markups/README.org.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index a35eac1c..897d60e7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.1.gh"
+gem "org-ruby", "= 0.9.7"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "asciidoctor", "= 0.1.4"
diff --git a/test/markups/README.org.html b/test/markups/README.org.html
index 30ea31cf..0326e393 100644
--- a/test/markups/README.org.html
+++ b/test/markups/README.org.html
@@ -1,4 +1,4 @@
-org-ruby
+org-ruby
Status: | Under Development |
Location: | http://github.com/wallyqs/org-ruby |
From c02c304e14b4b02fc00f73618e5255586f903a35 Mon Sep 17 00:00:00 2001
From: Robert Schilling
Date: Wed, 30 Jul 2014 18:19:57 +0200
Subject: [PATCH 122/416] Force encoding of posix_spawn output
---
lib/github/markup/command_implementation.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 2c244407..170e9b0a 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -35,7 +35,7 @@ def call_block(rendered, content)
def execute(command, target)
spawn = POSIX::Spawn::Child.new(*command, :input => target)
if spawn.status.success?
- spawn.out.gsub("\r", '')
+ spawn.out.gsub("\r", '').force_encoding(target.encoding)
else
raise CommandError.new(spawn.err.strip)
end
From a18341278261f703ee506d428fb69b1064b2c301 Mon Sep 17 00:00:00 2001
From: Robert Schilling
Date: Thu, 31 Jul 2014 22:19:41 +0200
Subject: [PATCH 123/416] Force encoding of posix_spawn output
---
test/markup_test.rb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index b9070b1a..3269e0d6 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -1,3 +1,5 @@
+# encoding: UTF-8
+
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../lib"
require 'github/markup'
@@ -50,4 +52,9 @@ def test_raises_error_if_command_exits_non_zero
fail "an exception was expected but was not raised"
end
end
+
+ def test_preserve_markup
+ content = "Noël"
+ assert_equal content.encoding.name, GitHub::Markup.render('Foo.rst', content).encoding.name
+ end
end
From 7012598d8ea284ac34f8c28120598be3e7fbd2d7 Mon Sep 17 00:00:00 2001
From: Paul Chaignon
Date: Thu, 7 Aug 2014 16:32:17 +0200
Subject: [PATCH 124/416] Render RMarkdown (.rmd) as Markdown
---
lib/github/markup/markdown.rb | 2 +-
test/markup_test.rb | 1 +
test/markups/README.rmd | 3 +++
test/markups/README.rmd.html | 6 ++++++
4 files changed, 11 insertions(+), 1 deletion(-)
create mode 100644 test/markups/README.rmd
create mode 100644 test/markups/README.rmd.html
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index f4ef99dc..07f7ff87 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -25,7 +25,7 @@ class Markdown < Implementation
}
def initialize
- super(/md|mkdn?|mdwn|mdown|markdown|litcoffee/)
+ super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/)
end
def load
diff --git a/test/markup_test.rb b/test/markup_test.rb
index b9070b1a..cc7f74bf 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -35,6 +35,7 @@ class MarkupTest < Test::Unit::TestCase
def test_knows_what_it_can_and_cannot_render
assert_equal false, GitHub::Markup.can_render?('README.html')
assert_equal true, GitHub::Markup.can_render?('README.markdown')
+ assert_equal true, GitHub::Markup.can_render?('README.rmd')
assert_equal false, GitHub::Markup.can_render?('README.cmd')
assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
end
diff --git a/test/markups/README.rmd b/test/markups/README.rmd
new file mode 100644
index 00000000..f9f5f702
--- /dev/null
+++ b/test/markups/README.rmd
@@ -0,0 +1,3 @@
+# Title
+* One
+* Two
diff --git a/test/markups/README.rmd.html b/test/markups/README.rmd.html
new file mode 100644
index 00000000..e712d1c7
--- /dev/null
+++ b/test/markups/README.rmd.html
@@ -0,0 +1,6 @@
+Title
+
+
From cc2d3fb6654c685a89c2bfb73279c745b10ade11 Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Sat, 16 Aug 2014 09:30:58 +0900
Subject: [PATCH 125/416] Update Org Ruby versoin to 0.9.8
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 897d60e7..b79a2552 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.7"
+gem "org-ruby", "= 0.9.8"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "asciidoctor", "= 0.1.4"
From 14fc76bc9e09f49b499a2a9d617df760d754221d Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 21 Aug 2014 14:27:27 -0700
Subject: [PATCH 126/416] Organize the README's whitelisted elements a bit
better
---
README.md | 216 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 197 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index 92974f49..15cd968a 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,11 @@ Or, more realistically:
require 'github/markup'
GitHub::Markup.render(file, File.read(file))
+Contributing
+------------
+
+See [Contributing](CONTRIBUTING.md)
+
HTML sanitization
-----------------
@@ -44,25 +49,198 @@ HTML rendered by the various markup language processors gets passed through an [
The following HTML elements, organized by category, are whitelisted:
-* Headings: h1, h2, h3, h4, h5, h6, h7, h8
-* Prose: p, div, blockquote
-* Preformatted: pre
-* Inline: b, i, strong, em, tt, code, ins, del, sup, sub, kbd, samp, q, var
-* Lists: ol, ul, li, dl, dt, dd
-* Tables: table, thead, tbody, tfoot, tr, td, th
-* Breaks: br, hr
-* Ruby (East Asian): ruby, rt, rp
+
+ - Headings
+ -
+
+ h1
+ h2
+ h3
+ h4
+ h5
+ h6
+ h7
+ h8
+
+
+
+ - Prose
+ -
+
+
+
+ - Formatted
+ -
+
+
+
+ - Inline
+ -
+
+ b
+ i
+ strong
+ em
+ tt
+ code
+ ins
+ del
+ sup
+ sub
+ kbd
+ samp
+ q
+ var
+
+
+
+ - Lists
+ -
+
+ ol
+ ul
+ li
+ dl
+ dt
+ dd
+
+
+
+ - Tables
+ -
+
+ table
+ thead
+ tbody
+ tfoot
+ tr
+ td
+ th
+
+
+
+ - Breaks
+ -
+
+
+
+ - Ruby (East Asian)
+ -
+
+
+
The following attributes, organized by element, are whitelisted:
-* a: href (http://, https://, mailto://, github-windows:// and github-mac:// URI schemes and relative paths only)
-* img: src (http:// and https:// URI schemes and relative paths only)
-* div: itemscope, itemtype
-* all: abbr, accept, accept-charset, accesskey, action, align, alt, axis, border, cellpadding, cellspacing, char, charoff, charset, checked, cite, clear, cols, colspan, color, compact, coords, datetime, dir, disabled, enctype, for, frame, headers, height, hreflang, hspace, ismap, label, lang, longdesc, maxlength, media, method, multiple, name, nohref, noshade, nowrap, prompt, readonly, rel, rev, rows, rowspan, rules, scope, selected, shape, size, span, start, summary, tabindex, target, title, type, usemap, valign, value, vspace, width, itemprop
-
-Note that the id attribute is *not* whitelisted.
-
-Contributing
-------------
-
-See [Contributing](CONTRIBUTING.md)
+
+ a
+ -
+
+ href
(http://
, https://
, mailto://
, github-windows://
, and github-mac://
URI schemes and relative paths only)
+
+
+
+ img
+ -
+
+ src
(http://
and https://
URI schemes and relative paths only)
+
+
+
+ div
+ -
+
+
+
+ - All
+ -
+
+ abbr
+ accept
+ accept-charset
+ accesskey
+ action
+ align
+ alt
+ axis
+ border
+ cellpadding
+ cellspacing
+ char
+ charoff
+ charset
+ checked
+ cite
+ clear
+ cols
+ colspan
+ color
+ compact
+ coords
+ datetime
+ dir
+ disabled
+ enctype
+ for
+ frame
+ headers
+ height
+ hreflang
+ hspace
+ ismap
+ label
+ lang
+ longdesc
+ maxlength
+ media
+ method
+ multiple
+ name
+ nohref
+ noshade
+ nowrap
+ prompt
+ readonly
+ rel
+ rev
+ rows
+ rowspan
+ rules
+ scope
+ selected
+ shape
+ size
+ span
+ start
+ summary
+ tabindex
+ target
+ title
+ type
+ usemap
+ valign
+ value
+ vspace
+ width
+ itemprop
+
+
+
+
+Note that the `id` attribute is *not* whitelisted.
From 65ef71bd15e1721c30d58bb50e906f8ffd25dc1d Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 21 Aug 2014 14:31:58 -0700
Subject: [PATCH 127/416] Tables are cooler
---
README.md | 206 +++++-------------------------------------------------
1 file changed, 16 insertions(+), 190 deletions(-)
diff --git a/README.md b/README.md
index 15cd968a..25399944 100644
--- a/README.md
+++ b/README.md
@@ -49,198 +49,24 @@ HTML rendered by the various markup language processors gets passed through an [
The following HTML elements, organized by category, are whitelisted:
-
- - Headings
- -
-
- h1
- h2
- h3
- h4
- h5
- h6
- h7
- h8
-
-
-
- - Prose
- -
-
-
-
- - Formatted
- -
-
-
-
- - Inline
- -
-
- b
- i
- strong
- em
- tt
- code
- ins
- del
- sup
- sub
- kbd
- samp
- q
- var
-
-
-
- - Lists
- -
-
- ol
- ul
- li
- dl
- dt
- dd
-
-
-
- - Tables
- -
-
- table
- thead
- tbody
- tfoot
- tr
- td
- th
-
-
-
- - Breaks
- -
-
-
-
- - Ruby (East Asian)
- -
-
-
-
+|Type | Elements
+|------|----------
+|Headings | `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `h7`, `h8`
+|Prose | `p`, `div`, `blockquote`
+|Formatted | `pre`
+| Inline | `b`, `i`, `strong`, `em`, `tt`, `code`, `ins`, `del`, `sup`, `sub`, `kbd`, `samp`, `q`, `var`
+| Lists | `ol`, `ul`, `li`, `dl`, `dt`, `dd`
+| Tables | `table`, `thead`, `tbody`, `tfoot`, `tr`, `td`, `th`
+| Breaks | `br`, `hr
+| Ruby (East Asian) | `ruby`, `rt`, `rp`
The following attributes, organized by element, are whitelisted:
-
- a
- -
-
- href
(http://
, https://
, mailto://
, github-windows://
, and github-mac://
URI schemes and relative paths only)
-
-
-
- img
- -
-
- src
(http://
and https://
URI schemes and relative paths only)
-
-
-
- div
- -
-
-
-
- - All
- -
-
- abbr
- accept
- accept-charset
- accesskey
- action
- align
- alt
- axis
- border
- cellpadding
- cellspacing
- char
- charoff
- charset
- checked
- cite
- clear
- cols
- colspan
- color
- compact
- coords
- datetime
- dir
- disabled
- enctype
- for
- frame
- headers
- height
- hreflang
- hspace
- ismap
- label
- lang
- longdesc
- maxlength
- media
- method
- multiple
- name
- nohref
- noshade
- nowrap
- prompt
- readonly
- rel
- rev
- rows
- rowspan
- rules
- scope
- selected
- shape
- size
- span
- start
- summary
- tabindex
- target
- title
- type
- usemap
- valign
- value
- vspace
- width
- itemprop
-
-
-
+|Element | Attributes
+|------|----------
+| `a` | `href` (`http://`, `https://`, `mailto://`, `github-windows://`, and `github-mac://` URI schemes and relative paths only)
+| `img` | `src` (`http://` and `https://` URI schemes and relative paths only)
+| `div` | `itemscope`, `itemtype`
+| All | `abbr`, `accept`, `accept-charset`, `accesskey`, `action`, `align`, `alt`, `axis`, `border`, `cellpadding`, `cellspacing`, `char`, `charoff`, `charset`, `checked`, `cite`, `clear`, `cols`, `colspan`, `color`, `compact`, `coords`, `datetime`, `dir`, `disabled`, `enctype`, `for`, `frame`, `headers`, `height`, `hreflang`, `hspace`, `ismap`, `label`, `lang`, `longdesc`, `maxlength`, `media`, `method`, `multiple`, `name`, `nohref`, `noshade`, `nowrap`, `prompt`, `readonly`, `rel`, `rev`, `rows`, `rowspan`, `rules`, `scope`, `selected`, `shape`, `size`, `span`, `start`, `summary`, `tabindex`, `target`, `title`, `type`, `usemap`, `valign`, `value`, `vspace`, `width`, `itemprop`
Note that the `id` attribute is *not* whitelisted.
From c1d67e6e1721044eb92eab4438b1a87a9e035103 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 21 Aug 2014 15:12:49 -0700
Subject: [PATCH 128/416] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 25399944..d6d0c8b1 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ The following HTML elements, organized by category, are whitelisted:
| Inline | `b`, `i`, `strong`, `em`, `tt`, `code`, `ins`, `del`, `sup`, `sub`, `kbd`, `samp`, `q`, `var`
| Lists | `ol`, `ul`, `li`, `dl`, `dt`, `dd`
| Tables | `table`, `thead`, `tbody`, `tfoot`, `tr`, `td`, `th`
-| Breaks | `br`, `hr
+| Breaks | `br`, `hr`
| Ruby (East Asian) | `ruby`, `rt`, `rp`
The following attributes, organized by element, are whitelisted:
From 3749f8361e3d676f93a692506294f4c984e15f3d Mon Sep 17 00:00:00 2001
From: Waldemar Quevedo
Date: Sat, 30 Aug 2014 00:17:24 +0900
Subject: [PATCH 129/416] Change to use 0.9.9 which includes comments regex
bugfix
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index b79a2552..4f6a06f6 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,7 @@ gemspec
gem "redcarpet"
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.8"
+gem "org-ruby", "= 0.9.9"
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.6.0"
gem "asciidoctor", "= 0.1.4"
From 1e7d83fd1e605db9f0d975482c2891a19bfeaf6b Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Thu, 4 Sep 2014 22:52:20 +0200
Subject: [PATCH 130/416] Escape the filepath to rest2html so paths containing
spaces will be passed to CommandImplementation#execute correctly.
---
lib/github/markups.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 286d76b6..eb562909 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,4 +1,5 @@
require "github/markup/markdown"
+require "shellwords"
markups << GitHub::Markup::Markdown.new
@@ -29,7 +30,7 @@
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
-command("python2 -S #{File.dirname(__FILE__)}/commands/rest2html", /re?st(\.txt)?/)
+command("python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html", /re?st(\.txt)?/)
# pod2html is nice enough to generate a full-on HTML document for us,
# so we return the favor by ripping out the good parts.
From b057de29dc990d77fc84828f8952b8b0593775e2 Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Thu, 28 Aug 2014 23:16:19 +0200
Subject: [PATCH 131/416] Makes github/markup compatible with JRuby.
---
Gemfile | 4 +-
github-markup.gemspec | 2 +-
lib/github/markup/command_implementation.rb | 42 +++++++++++++++++----
3 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/Gemfile b/Gemfile
index a35eac1c..6c7a9ab6 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,6 +1,8 @@
source "http://rubygems.org"
gemspec
-gem "redcarpet"
+
+gem "redcarpet", :platforms => :ruby
+gem "kramdown", :platforms => :jruby
gem "RedCloth"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.1.gh"
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 38604aee..18392cb2 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,5 +16,5 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
- s.add_dependency "posix-spawn", "~> 0.3.8"
+ s.add_dependency "posix-spawn", "~> 0.3.8" unless RUBY_PLATFORM == 'java'
end
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 2c244407..f62c790e 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -1,4 +1,9 @@
-require "posix-spawn"
+if RUBY_PLATFORM == 'java'
+ require "open3"
+else
+ require "posix-spawn"
+end
+
require "github/markup/implementation"
module GitHub
@@ -31,15 +36,36 @@ def call_block(rendered, content)
rendered
end
end
-
- def execute(command, target)
- spawn = POSIX::Spawn::Child.new(*command, :input => target)
- if spawn.status.success?
- spawn.out.gsub("\r", '')
- else
- raise CommandError.new(spawn.err.strip)
+
+ if RUBY_PLATFORM == 'java'
+ def execute(command, target)
+ output = Open3.popen3(*command) do |stdin, stdout, stderr, wait_thr|
+ stdin.puts target
+ stdin.close
+ if wait_thr.value.success?
+ stdout.readlines
+ else
+ raise CommandError.new(stderr.readlines.join('').strip)
+ end
+ end
+ sanitize(output.join(''))
+ end
+ else
+ def execute(command, target)
+ spawn = POSIX::Spawn::Child.new(*command, :input => target)
+ if spawn.status.success?
+ sanitize(spawn.out)
+ else
+ raise CommandError.new(spawn.err.strip)
+ end
+
end
end
+
+ def sanitize(input)
+ input.gsub("\r", '')
+ end
+
end
end
end
From 4bd71615650b5aba709f701a8ef3553fdb8ddded Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Tue, 9 Sep 2014 00:19:50 +0200
Subject: [PATCH 132/416] Implement assert_html_equal.
---
test/markup_test.rb | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index b9070b1a..7fab6a37 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -2,6 +2,34 @@
require 'github/markup'
require 'test/unit'
+require 'nokogiri'
+require 'nokogiri/diff'
+
+def normalize_html(text)
+ text.strip!
+ text.gsub!(/\s\s+/,' ')
+ text.gsub!(/\p{Pi}|\p{Pf}|"/u,'"')
+ text.gsub!("\u2026",'...')
+ text
+end
+
+def assert_html_equal(expected, actual, msg = nil)
+ assert_block(msg) do
+ expected_doc = Nokogiri::HTML(expected) {|config| config.noblanks}
+ actual_doc = Nokogiri::HTML(actual) {|config| config.noblanks}
+
+ expected_doc.search('//text()').each {|node| node.content = normalize_html node.content}
+ actual_doc.search('//text()').each {|node| node.content = normalize_html node.content}
+
+ expected_doc.diff(actual_doc) do |change, node|
+ if change != ' ' && !node.blank? then
+ if change == "+"
+ break unless node.to_html =~ /id="*"/
+ end
+ end
+ end
+ end
+end
class MarkupTest < Test::Unit::TestCase
Dir['test/markups/README.*'].each do |readme|
@@ -25,9 +53,8 @@ class MarkupTest < Test::Unit::TestCase
f.read
end
- assert expected == actual, <
Date: Tue, 9 Sep 2014 00:24:46 +0200
Subject: [PATCH 133/416] Add nokogiri and nokogiri-diff to gemspec
---
github-markup.gemspec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 18392cb2..e544fc3f 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -17,4 +17,6 @@ Gem::Specification.new do |s|
s.require_paths = %w[lib]
s.add_dependency "posix-spawn", "~> 0.3.8" unless RUBY_PLATFORM == 'java'
+ s.add_development_dependency 'nokogiri', '~> 1.6.1'
+ s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
end
From e6b5dd157722a0e59b6ab22e3e15522c1cecf84c Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Tue, 9 Sep 2014 00:29:00 +0200
Subject: [PATCH 134/416] Trying to test jruby on travis.
---
.travis.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index efbff2ca..5b54647f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,8 @@ rvm:
- 1.9.3
- 2.0.0
- 2.1.1
+jdk:
+ - oraclejdk7
+ - openjdk7
notifications:
disabled: true
-bundler_args: --without development
From 3dc4915df9099aafc9500bd17fc4a3190b71b466 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Tue, 9 Sep 2014 00:42:01 +0200
Subject: [PATCH 135/416] Restore descriptive error message for test failures
---
test/markup_test.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 7fab6a37..a76e0632 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -54,7 +54,8 @@ class MarkupTest < Test::Unit::TestCase
end
assert_html_equal expected, actual, <
Date: Tue, 9 Sep 2014 11:14:15 +0200
Subject: [PATCH 136/416] Add jruby to travis.
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 5b54647f..b05c680a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,7 @@ rvm:
- 1.9.3
- 2.0.0
- 2.1.1
+ - jruby-19mode
jdk:
- oraclejdk7
- openjdk7
From 940d9425b8c3a9e2bcf6488c5bbcf12c2d79466d Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Tue, 9 Sep 2014 11:15:33 +0200
Subject: [PATCH 137/416] Skip test_raises_error_if_command_exits_non_zero on
JRuby until https://github.com/jruby/jruby/issues/1947 is resolved.
---
test/markup_test.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index a76e0632..4d344ea1 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -68,6 +68,7 @@ def test_knows_what_it_can_and_cannot_render
end
def test_raises_error_if_command_exits_non_zero
+ skip("Skipping this test on JRuby until https://github.com/jruby/jruby/issues/1947 is fixed.") if RUBY_PLATFORM == 'java'
GitHub::Markup.command('echo "failure message">&2 && false', /fail/)
assert GitHub::Markup.can_render?('README.fail')
begin
From e1ea5782ebf09bb187e30cde04a0a1f09c4149ff Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Tue, 9 Sep 2014 15:49:55 +0200
Subject: [PATCH 138/416] Refactor changes to be ignored in diff. Fix bug that
incorrectly ignored '-' changes.
---
test/markup_test.rb | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 4d344ea1..812e4903 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -21,11 +21,10 @@ def assert_html_equal(expected, actual, msg = nil)
expected_doc.search('//text()').each {|node| node.content = normalize_html node.content}
actual_doc.search('//text()').each {|node| node.content = normalize_html node.content}
+ ignore_changes = {"+" => Regexp.union(/^\s*id=".*"\s*$/), "-" => nil}
expected_doc.diff(actual_doc) do |change, node|
if change != ' ' && !node.blank? then
- if change == "+"
- break unless node.to_html =~ /id="*"/
- end
+ break unless node.to_html =~ ignore_changes[change]
end
end
end
From 26309c3117cacc01463fc68060da3452d839a5c5 Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Tue, 9 Sep 2014 16:44:53 +0200
Subject: [PATCH 139/416] Wrap shell command in a script as a workaround for
https://github.com/jruby/jruby/issues/1947.
---
test/fixtures/fail.sh | 3 +++
test/markup_test.rb | 3 +--
2 files changed, 4 insertions(+), 2 deletions(-)
create mode 100755 test/fixtures/fail.sh
diff --git a/test/fixtures/fail.sh b/test/fixtures/fail.sh
new file mode 100755
index 00000000..d6ec62b6
--- /dev/null
+++ b/test/fixtures/fail.sh
@@ -0,0 +1,3 @@
+#/usr/bin/env bash
+
+echo "failure message">&2 && false
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 812e4903..4e86a766 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -67,8 +67,7 @@ def test_knows_what_it_can_and_cannot_render
end
def test_raises_error_if_command_exits_non_zero
- skip("Skipping this test on JRuby until https://github.com/jruby/jruby/issues/1947 is fixed.") if RUBY_PLATFORM == 'java'
- GitHub::Markup.command('echo "failure message">&2 && false', /fail/)
+ GitHub::Markup.command('test/fixtures/fail.sh', /fail/)
assert GitHub::Markup.can_render?('README.fail')
begin
GitHub::Markup.render('README.fail', "stop swallowing errors")
From 84b4912a5ba2bbf9cf357189ab26ba1965ef93c0 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Wed, 10 Sep 2014 00:22:08 +0200
Subject: [PATCH 140/416] Fix shebang in fail.sh
---
test/fixtures/fail.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/fixtures/fail.sh b/test/fixtures/fail.sh
index d6ec62b6..e89de54f 100755
--- a/test/fixtures/fail.sh
+++ b/test/fixtures/fail.sh
@@ -1,3 +1,3 @@
-#/usr/bin/env bash
+#!/usr/bin/env bash
echo "failure message">&2 && false
From bde4a7b244ac6b82b2bfd7429e6d5ed798d913f0 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 11 Sep 2014 16:03:31 -0400
Subject: [PATCH 141/416] Perform case-insensitive test for file extensions
---
lib/github/markup/implementation.rb | 2 +-
test/markup_test.rb | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 463a39d4..9962d182 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -21,7 +21,7 @@ def match?(filename)
private
def file_ext_regexp
- @file_ext_regexp ||= /\.(#{regexp})\z/
+ @file_ext_regexp ||= /\.(#{regexp})\z/i
end
end
end
diff --git a/test/markup_test.rb b/test/markup_test.rb
index cc7f74bf..7a1f459f 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -36,6 +36,7 @@ def test_knows_what_it_can_and_cannot_render
assert_equal false, GitHub::Markup.can_render?('README.html')
assert_equal true, GitHub::Markup.can_render?('README.markdown')
assert_equal true, GitHub::Markup.can_render?('README.rmd')
+ assert_equal true, GitHub::Markup.can_render?('README.Rmd')
assert_equal false, GitHub::Markup.can_render?('README.cmd')
assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
end
From d41a9e1fe65225e727f03ed68aa4849ef4b97816 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 11 Sep 2014 16:49:21 -0400
Subject: [PATCH 142/416] Case-insensitive on just markdown
---
lib/github/markup/implementation.rb | 2 +-
lib/github/markup/markdown.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 9962d182..463a39d4 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -21,7 +21,7 @@ def match?(filename)
private
def file_ext_regexp
- @file_ext_regexp ||= /\.(#{regexp})\z/i
+ @file_ext_regexp ||= /\.(#{regexp})\z/
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 07f7ff87..8ad9722f 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -25,7 +25,7 @@ class Markdown < Implementation
}
def initialize
- super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/)
+ super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i)
end
def load
From 27e20f0ef190fbc59d4b176b1ce317faa5a3ea31 Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Thu, 11 Sep 2014 23:23:20 +0200
Subject: [PATCH 143/416] Added exclude matrix to .travis.yml in order to
prevent every regular ruby being tested twice.
---
.travis.yml | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index b05c680a..71eb9cb9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,8 +4,23 @@ rvm:
- 2.0.0
- 2.1.1
- jruby-19mode
+ - jruby-head
jdk:
- oraclejdk7
- openjdk7
+matrix:
+ exclude:
+ - rvm: 1.9.3
+ jdk: oraclejdk7
+ - rvm: 1.9.3
+ jdk: openjdk7
+ - rvm: 2.0.0
+ jdk: oraclejdk7
+ - rvm: 2.0.0
+ jdk: openjdk7
+ - rvm: 2.1.1
+ jdk: oraclejdk7
+ - rvm: 2.1.1
+ jdk: openjdk7
notifications:
disabled: true
From 505356f14d64ae3fc0a2073751d2c4c8a7d4fede Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 11 Sep 2014 17:22:45 -0400
Subject: [PATCH 144/416] Update Changelog for 1.3.0
---
HISTORY.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/HISTORY.md b/HISTORY.md
index 01ea4831..0cfdac48 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,6 +1,10 @@
-## 1.3.0 (unreleased)
+## 1.3.0 (2014-09-11)
+* Extend the field limit for tables to 50 characters for RST [#306](https://github.com/github/markup/pull/306)
+* Add `.mkdn` as a supported markdown extension [#308](https://github.com/github/markup/pull/308)
* Upgrade wikicloth to 0.8.1 [#317](https://github.com/github/markup/pull/317)
+* Force encoding of posix-spawn output [#338](https://github.com/github/markup/pull/338)
+* Add `.rmd` as a supported markdown extension [#343](https://github.com/github/markup/pull/343)
[Full changelog](https://github.com/github/markup/compare/v1.2.1...v1.3.0)
From 3d2e100f129c9ed3288a99f763e7b7157f85cef4 Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Sat, 13 Sep 2014 14:32:49 +0200
Subject: [PATCH 145/416] Test both jdk7 and jdk8 (with just oraclejdk).
---
.travis.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 71eb9cb9..6ff89be7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,20 +7,20 @@ rvm:
- jruby-head
jdk:
- oraclejdk7
- - openjdk7
+ - oraclejdk8
matrix:
exclude:
- rvm: 1.9.3
jdk: oraclejdk7
- rvm: 1.9.3
- jdk: openjdk7
+ jdk: oraclejdk8
- rvm: 2.0.0
jdk: oraclejdk7
- rvm: 2.0.0
- jdk: openjdk7
+ jdk: oraclejdk8
- rvm: 2.1.1
jdk: oraclejdk7
- rvm: 2.1.1
- jdk: openjdk7
+ jdk: oraclejdk8
notifications:
disabled: true
From 5652cef6dc7fbb4f21cc5cea2677f445e14625f4 Mon Sep 17 00:00:00 2001
From: Bart Kamphorst
Date: Sun, 14 Sep 2014 16:03:32 +0200
Subject: [PATCH 146/416] Install platform-specific dependencies in
ext/mkrf_conf.rb.
---
.travis.yml | 1 +
Rakefile | 2 +-
ext/mkrf_conf.rb | 15 +++++++++++++++
github-markup.gemspec | 3 ++-
4 files changed, 19 insertions(+), 2 deletions(-)
create mode 100644 ext/mkrf_conf.rb
diff --git a/.travis.yml b/.travis.yml
index 6ff89be7..cdbff3e4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,5 @@
before_install: sudo pip install docutils
+script: bundle exec rake test
rvm:
- 1.9.3
- 2.0.0
diff --git a/Rakefile b/Rakefile
index 5a7b12e6..a436eba6 100644
--- a/Rakefile
+++ b/Rakefile
@@ -14,4 +14,4 @@ task :console do
sh "irb -I lib -r bundler/setup -r github/markup"
end
-task :default => :test
+task :default
\ No newline at end of file
diff --git a/ext/mkrf_conf.rb b/ext/mkrf_conf.rb
new file mode 100644
index 00000000..6b69b6ce
--- /dev/null
+++ b/ext/mkrf_conf.rb
@@ -0,0 +1,15 @@
+require 'rubygems'
+require 'rubygems/command.rb'
+require 'rubygems/dependency_installer.rb'
+begin
+ Gem::Command.build_args = ARGV
+ rescue NoMethodError
+end
+installer = Gem::DependencyInstaller.new
+begin
+ unless RUBY_PLATFORM == 'java'
+ installer.install "posix-spawn", "~> 0.3.8"
+ end
+rescue
+ exit(1)
+end
diff --git a/github-markup.gemspec b/github-markup.gemspec
index e544fc3f..01d6263e 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -15,8 +15,9 @@ Gem::Specification.new do |s|
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
+ s.extensions = "ext/mkrf_conf.rb"
- s.add_dependency "posix-spawn", "~> 0.3.8" unless RUBY_PLATFORM == 'java'
+ # See ext/mkrf_conf.rb for platform-specific dependencies
s.add_development_dependency 'nokogiri', '~> 1.6.1'
s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
end
From b7a6adfbad126a43d3f74a8d53767956e6ce883a Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Sun, 14 Sep 2014 22:51:20 +0200
Subject: [PATCH 147/416] Document change in the way tests are run
---
CONTRIBUTING.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 57ba6e97..e5867fa1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -53,12 +53,12 @@ Finally add your [tests](#testing).
To run the tests:
- $ rake
+ $ rake test
When adding support for a new markup library, create a `README.extension` in `test/markups` along with a `README.extension.html`. As you may imagine, the `README.extension` should be your known input and the
`README.extension.html` should be the desired output.
-Now run the tests: `rake`
+Now run the tests: `rake test`
If nothing complains, congratulations!
From 4f1d5748a54f38a39514831ea7999eb748af3da5 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Sun, 14 Sep 2014 23:07:29 +0200
Subject: [PATCH 148/416] Fix travis and do not require org-ruby on jruby
---
.travis.yml | 6 ------
Gemfile | 2 +-
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index cdbff3e4..373f1603 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,15 +13,9 @@ matrix:
exclude:
- rvm: 1.9.3
jdk: oraclejdk7
- - rvm: 1.9.3
- jdk: oraclejdk8
- rvm: 2.0.0
jdk: oraclejdk7
- - rvm: 2.0.0
- jdk: oraclejdk8
- rvm: 2.1.1
jdk: oraclejdk7
- - rvm: 2.1.1
- jdk: oraclejdk8
notifications:
disabled: true
diff --git a/Gemfile b/Gemfile
index fb7b8dac..050ec38c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,7 +5,7 @@ gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.1.gh"
+gem "org-ruby", "= 0.9.1.gh", :platforms => :ruby
gem "creole", "~>0.3.6"
gem "wikicloth", "=0.8.1"
gem "asciidoctor", "= 0.1.4"
From 63faf67c996939ad57ced169719f324bc20d3cbd Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Sun, 14 Sep 2014 23:12:38 +0200
Subject: [PATCH 149/416] disable mediawiki on jruby, add org-ruby
---
Gemfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 050ec38c..5e42bad2 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,8 +5,8 @@ gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
gem "RedCloth"
gem "rdoc", "~>3.6"
-gem "org-ruby", "= 0.9.1.gh", :platforms => :ruby
+gem "org-ruby", "= 0.9.1.gh"
gem "creole", "~>0.3.6"
-gem "wikicloth", "=0.8.1"
+gem "wikicloth", "=0.8.1", :platforms => :ruby
gem "asciidoctor", "= 0.1.4"
gem "rake"
From 92aa5e5dff6d012bc5359de396a39b9933397a95 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Mon, 15 Sep 2014 00:25:41 +0200
Subject: [PATCH 150/416] Gemfile: other wikicloth on jruby, posix-spawn on
ruby.
---
Gemfile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 5e42bad2..218754e1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,12 +1,13 @@
source "http://rubygems.org"
gemspec
+gem "posix-spawn", :platforms => :ruby
gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
gem "RedCloth"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.1.gh"
gem "creole", "~>0.3.6"
-gem "wikicloth", "=0.8.1", :platforms => :ruby
+gem "wikicloth", RUBY_PLATFORM == "java" ? "=0.8.0" : "=0.8.1"
gem "asciidoctor", "= 0.1.4"
gem "rake"
From 1748e5f828b24c5d4590b07411f29fb1feccd3ec Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Mon, 15 Sep 2014 00:26:02 +0200
Subject: [PATCH 151/416] Fix bug in CommandImplementation#sanitize due to
incorrect merging.
---
lib/github/markup/command_implementation.rb | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index e85c7149..7e44fd6c 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -48,21 +48,21 @@ def execute(command, target)
raise CommandError.new(stderr.readlines.join('').strip)
end
end
- sanitize(output.join(''))
+ sanitize(output.join(''), target.encoding)
end
else
def execute(command, target)
spawn = POSIX::Spawn::Child.new(*command, :input => target)
if spawn.status.success?
- sanitize(spawn.out)
+ sanitize(spawn.out, target.encoding)
else
raise CommandError.new(spawn.err.strip)
end
end
end
- def sanitize(input)
- input.gsub("\r", '').force_encoding(target.encoding)
+ def sanitize(input, encoding)
+ input.gsub("\r", '').force_encoding(encoding)
end
end
From 3ec9eafef282fe303d6600784f37b9329ec1f2e5 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Mon, 15 Sep 2014 19:01:52 +0200
Subject: [PATCH 152/416] Disable mediawiki on jruby
---
Gemfile | 2 +-
test/markup_test.rb | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 218754e1..09589c1f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,6 +8,6 @@ gem "RedCloth"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.1.gh"
gem "creole", "~>0.3.6"
-gem "wikicloth", RUBY_PLATFORM == "java" ? "=0.8.0" : "=0.8.1"
+gem "wikicloth", :platforms => :ruby
gem "asciidoctor", "= 0.1.4"
gem "rake"
diff --git a/test/markup_test.rb b/test/markup_test.rb
index ca470fee..a98706b1 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -38,8 +38,9 @@ class MarkupTest < Test::Unit::TestCase
markup = readme.split('/').last.gsub(/^README\./, '')
define_method "test_#{markup}" do
- source = File.read(readme)
+ skip "Skipping MediaWiki test because wikicloth is currently not compatible with JRuby." if markup == "mediawiki" && RUBY_PLATFORM == "java"
+ source = File.read(readme)
expected_file = "#{readme}.html"
expected = File.read(expected_file).rstrip
actual = GitHub::Markup.render(readme, File.read(readme)).rstrip.force_encoding("utf-8")
From c3a04237cae36293614af0c530b08ec757825510 Mon Sep 17 00:00:00 2001
From: Dawa Ometto
Date: Mon, 15 Sep 2014 19:49:07 +0200
Subject: [PATCH 153/416] Do not test against jruby-head (unstable)
---
.travis.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 373f1603..41081436 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,6 @@ rvm:
- 2.0.0
- 2.1.1
- jruby-19mode
- - jruby-head
jdk:
- oraclejdk7
- oraclejdk8
From b1e4fb6ee6125ed5365b6d3b3204953907cbb51c Mon Sep 17 00:00:00 2001
From: Stephen Caraher
Date: Fri, 19 Sep 2014 01:43:03 +1000
Subject: [PATCH 154/416] use not for rst inline literals
---
lib/github/commands/rest2html | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index c8c8b521..ca9f26ff 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -86,6 +86,14 @@ class GitHubHTMLTranslator(HTMLTranslator):
else:
self.body.append(self.starttag(node, 'pre'))
+ # always wrap two-backtick rst inline literals in , not
+ # this also avoids the generation of superfluous tags
+ def visit_literal(self, node):
+ self.body.append(self.starttag(node, 'code', suffix=''))
+
+ def depart_literal(self, node):
+ self.body.append('
')
+
def visit_table(self, node):
classes = ' '.join(['docutils', self.settings.table_style]).strip()
self.body.append(
From bd75dc1f873291b0da2fb2b2b6f8f94f4bbc6e51 Mon Sep 17 00:00:00 2001
From: Stephen Caraher
Date: Fri, 19 Sep 2014 03:24:06 +1000
Subject: [PATCH 155/416] updated rst html tests to expect not
---
test/markups/README.rst.html | 4 ++--
test/markups/README.rst.txt.html | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 4186694d..09c2bf32 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -10,8 +10,8 @@ Subtitle
-- Blah blah code blah
-- More code, hooray
+- Blah blah
code
blah
+- More
code
, hooray
- Somé UTF-8°
The UTF-8 quote character in this table used to cause python to go boom. Now docutils just silently ignores it.
diff --git a/test/markups/README.rst.txt.html b/test/markups/README.rst.txt.html
index d46c426f..c8e8b33d 100644
--- a/test/markups/README.rst.txt.html
+++ b/test/markups/README.rst.txt.html
@@ -2,8 +2,8 @@ Header 1
Example text.
Header 2
-- Blah blah code blah
-- More code, hooray
+- Blah blah
code
blah
+- More
code
, hooray
- Somé UTF-8°
From 9e5907663c80f15328c495c0937bf69199078f7c Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 29 Sep 2014 11:55:51 -0400
Subject: [PATCH 156/416] Refactor rdoc impelementation
---
lib/github/markup/rdoc.rb | 11 ++++++-----
lib/github/markups.rb | 5 ++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index 5bf14639..dcbdf32c 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -1,20 +1,21 @@
+require "github/markup/implementation"
require "rdoc"
require "rdoc/markup/to_html"
module GitHub
module Markup
- class RDoc
- def initialize(content)
- @content = content
+ class RDoc < Implementation
+ def initialize
+ super /rdoc/
end
- def to_html
+ def render(content)
if ::RDoc::VERSION.to_i >= 4
h = ::RDoc::Markup::ToHtml.new(::RDoc::Options.new)
else
h = ::RDoc::Markup::ToHtml.new
end
- h.convert(@content)
+ h.convert(content)
end
end
end
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index eb562909..1915b662 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,4 +1,5 @@
require "github/markup/markdown"
+require "github/markup/rdoc"
require "shellwords"
markups << GitHub::Markup::Markdown.new
@@ -7,9 +8,7 @@
RedCloth.new(content).to_html
end
-markup('github/markup/rdoc', /rdoc/) do |content|
- GitHub::Markup::RDoc.new(content).to_html
-end
+markups << GitHub::Markup::RDoc.new
markup('org-ruby', /org/) do |content|
Orgmode::Parser.new(content, {
From 7a06537713a8a6e56192f2f2c8a082319b7b99d5 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 29 Sep 2014 11:56:27 -0400
Subject: [PATCH 157/416] add #name to all markup implementations
---
lib/github/markup.rb | 4 ++--
lib/github/markup/command_implementation.rb | 5 +++--
lib/github/markup/gem_implementation.rb | 4 ++++
lib/github/markup/markdown.rb | 4 ++++
lib/github/markup/rdoc.rb | 4 ++++
lib/github/markups.rb | 12 ++++++++----
test/markup_test.rb | 14 +++++++++++++-
7 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index 4e3bf917..88d8a45e 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -30,12 +30,12 @@ def markup(file, pattern, opts = {}, &block)
markups << GemImplementation.new(pattern, file, &block)
end
- def command(command, regexp, &block)
+ def command(command, regexp, name, &block)
if File.exists?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- markups << CommandImplementation.new(regexp, command, &block)
+ markups << CommandImplementation.new(regexp, command, name, &block)
end
def can_render?(filename)
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index 170e9b0a..1115535f 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -7,12 +7,13 @@ class CommandError < RuntimeError
end
class CommandImplementation < Implementation
- attr_reader :command, :block
+ attr_reader :command, :block, :name
- def initialize(regexp, command, &block)
+ def initialize(regexp, command, name, &block)
super regexp
@command = command.to_s
@block = block
+ @name = name
end
def render(content)
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
index a9f80b75..270f5a88 100644
--- a/lib/github/markup/gem_implementation.rb
+++ b/lib/github/markup/gem_implementation.rb
@@ -21,6 +21,10 @@ def render(content)
load
renderer.call(content)
end
+
+ def name
+ gem_name
+ end
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 8ad9722f..c3b51bfb 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -44,6 +44,10 @@ def render(content)
@renderer.call(content)
end
+ def name
+ "markdown"
+ end
+
private
def try_require(file)
require file
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index dcbdf32c..5448f455 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -17,6 +17,10 @@ def render(content)
end
h.convert(content)
end
+
+ def name
+ "rdoc"
+ end
end
end
end
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 1915b662..0165f4a4 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -11,8 +11,8 @@
markups << GitHub::Markup::RDoc.new
markup('org-ruby', /org/) do |content|
- Orgmode::Parser.new(content, {
- :allow_include_files => false,
+ Orgmode::Parser.new(content, {
+ :allow_include_files => false,
:skip_syntax_highlight => true
}).to_html
end
@@ -29,14 +29,18 @@
Asciidoctor.render(content, :safe => :secure, :attributes => %w(showtitle idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
-command("python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html", /re?st(\.txt)?/)
+command(
+ "python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html",
+ /re?st(\.txt)?/,
+ "restructuredtext"
+)
# pod2html is nice enough to generate a full-on HTML document for us,
# so we return the favor by ripping out the good parts.
#
# Any block passed to `command` will be handed the command's STDOUT for
# post processing.
-command('/usr/bin/env perl -MPod::Simple::HTML -e Pod::Simple::HTML::go', /pod/) do |rendered|
+command('/usr/bin/env perl -MPod::Simple::HTML -e Pod::Simple::HTML::go', /pod/, "pod") do |rendered|
if rendered =~ /\s*(.+)\s*/mi
$1
end
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 392424f7..9a54262c 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -43,8 +43,20 @@ def test_knows_what_it_can_and_cannot_render
assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
end
+ def test_each_render_has_a_name
+ assert_equal "markdown", GitHub::Markup.renderer('README.md').name
+ assert_equal "redcloth", GitHub::Markup.renderer('README.textile').name
+ assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc').name
+ assert_equal "org-ruby", GitHub::Markup.renderer('README.org').name
+ assert_equal "creole", GitHub::Markup.renderer('README.creole').name
+ assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki').name
+ assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc').name
+ assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst').name
+ assert_equal "pod", GitHub::Markup.renderer('README.pod').name
+ end
+
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command('echo "failure message">&2 && false', /fail/)
+ GitHub::Markup.command('echo "failure message">&2 && false', /fail/, "fail")
assert GitHub::Markup.can_render?('README.fail')
begin
GitHub::Markup.render('README.fail', "stop swallowing errors")
From 50befce17286d6c915f994222df29255f1c204b9 Mon Sep 17 00:00:00 2001
From: Paul Chaignon
Date: Mon, 20 Oct 2014 19:10:49 -0400
Subject: [PATCH 158/416] Replace the deprecated RedcarpetCompat instance
---
lib/github/markup/markdown.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 8ad9722f..f2744ca3 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -8,7 +8,7 @@ class Markdown < Implementation
GitHub::Markdown.render(content)
},
"redcarpet" => proc { |content|
- RedcarpetCompat.new(content).to_html
+ Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(content)
},
"rdiscount" => proc { |content|
RDiscount.new(content).to_html
From 090eea9ea860d9d54578ac11c7aea544f595ddc0 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 3 Nov 2014 23:00:05 -0500
Subject: [PATCH 159/416] Remove test rst file
---
lib/github/commands/foo.rst | 7 -------
1 file changed, 7 deletions(-)
delete mode 100644 lib/github/commands/foo.rst
diff --git a/lib/github/commands/foo.rst b/lib/github/commands/foo.rst
deleted file mode 100644
index e0950998..00000000
--- a/lib/github/commands/foo.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-
-.. image:: https://scan.coverity.com/projects/621/badge.svg
- :target: https://scan.coverity.com/projects/621
- :alt: Coverity Scan Build Status
-
-.. image:: https://scan.coverity.com/projects/621/badge.svg
- :alt: Coverity Scan Build Status
From e559e02a947e3c3eb58fee87da9bcf74d56f1885 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Thu, 13 Nov 2014 09:42:00 -0500
Subject: [PATCH 160/416] Release 1.3.1
---
HISTORY.md | 6 ++++++
lib/github-markup.rb | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/HISTORY.md b/HISTORY.md
index 0cfdac48..2c2ca4e2 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,3 +1,9 @@
+## 1.3.1 (2014-11-13)
+
+* Fix name error when trying to use newer versions of RedCarpet [#387](https://github.com/github/markup/pull/387)
+
+[Full changelog](https://github.com/github/markup/compare/v1.3.0...v1.3.1)
+
## 1.3.0 (2014-09-11)
* Extend the field limit for tables to 50 characters for RST [#306](https://github.com/github/markup/pull/306)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 18124c91..2f98a768 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.3.0'
+ VERSION = '1.3.1'
Version = VERSION
end
end
From cb554eee94669b0cca89b5895033f73c4759dc69 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 20 Nov 2014 21:07:39 -0800
Subject: [PATCH 161/416] Update test suite to rely on the Minitest gem
---
github-markup.gemspec | 1 +
test/markup_test.rb | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 38604aee..927462dc 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -17,4 +17,5 @@ Gem::Specification.new do |s|
s.require_paths = %w[lib]
s.add_dependency "posix-spawn", "~> 0.3.8"
+ s.add_dependency 'minitest', '~> 5.4.3'
end
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 392424f7..894b3dba 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -3,9 +3,9 @@
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../lib"
require 'github/markup'
-require 'test/unit'
+require 'minitest/autorun'
-class MarkupTest < Test::Unit::TestCase
+class MarkupTest < Minitest::Test
Dir['test/markups/README.*'].each do |readme|
next if readme =~ /html$/
markup = readme.split('/').last.gsub(/^README\./, '')
From 5f32f708f6650ee71cbfe2808e2502afe9d18577 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 20 Nov 2014 21:19:51 -0800
Subject: [PATCH 162/416] Reparations to the travis.yml file
---
.travis.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index efbff2ca..1bb21db3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,9 @@
+language: ruby
before_install: sudo pip install docutils
rvm:
- 1.9.3
- 2.0.0
- 2.1.1
notifications:
- disabled: true
+ email: false
bundler_args: --without development
From f062f519a20cbba382f6ff66a6d5fd5ee88f528a Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 22 Dec 2014 12:37:50 -0500
Subject: [PATCH 163/416] Remove rarely used docs for adding new markup
langauges
---
CONTRIBUTING.md | 45 ---------------------------------------------
1 file changed, 45 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 57ba6e97..935fa2e2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,57 +9,12 @@ Want to contribute? Great!
5. Open a [Pull Request][1]
6. Enjoy a refreshing Diet Coke and wait
-
-There are two ways to add markups.
-
-### Commands
-
-If your markup is in a language other than Ruby, drop a translator
-script in `lib/github/commands` which accepts input on STDIN and
-returns HTML on STDOUT. See [rest2html][r2h] for an example.
-
-Once your script is in place, edit `lib/github/markups.rb` and tell
-GitHub Markup about it. Again we look to [rest2html][r2hc] for
-guidance:
-
- command(:rest2html, /re?st(.txt)?/)
-
-Here we're telling GitHub Markup of the existence of a `rest2html`
-command which should be used for any file ending in `rest`,
-`rst`, `rest.txt` or `rst.txt`. Any regular expression will do.
-
-Finally add your [tests](#testing).
-
-### Classes
-
-If your markup can be translated using a Ruby library, that's
-great. Check out `lib/github/markups.rb` for some
-examples. Let's look at Markdown:
-
- markup(:markdown, /md|mkdn?|markdown/) do |content|
- Markdown.new(content).to_html
- end
-
-We give the `markup` method three bits of information: the name of the
-file to `require`, a regular expression for extensions to match, and a
-block to run with unformatted markup which should return HTML.
-
-If you need to monkeypatch a RubyGem or something, check out the
-included RDoc example.
-
-Finally add your [tests](#testing).
-
### Testing
To run the tests:
$ rake
-When adding support for a new markup library, create a `README.extension` in `test/markups` along with a `README.extension.html`. As you may imagine, the `README.extension` should be your known input and the
-`README.extension.html` should be the desired output.
-
-Now run the tests: `rake`
-
If nothing complains, congratulations!
## Releasing a new version
From 2156565106b6fcdab0bf0b2272439dbf52aff1ef Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 22 Dec 2014 11:38:19 -0500
Subject: [PATCH 164/416] Minitest should be a development dependency
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 927462dc..fb74b2f8 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -17,5 +17,5 @@ Gem::Specification.new do |s|
s.require_paths = %w[lib]
s.add_dependency "posix-spawn", "~> 0.3.8"
- s.add_dependency 'minitest', '~> 5.4.3'
+ s.add_development_dependency 'minitest', '~> 5.4.3'
end
From ef25634ef980a5f6a8f0fc8552ee20ce999ef766 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 22 Dec 2014 12:51:21 -0500
Subject: [PATCH 165/416] Render with HTML pipeline
---
github-markup.gemspec | 2 ++
test/markup_test.rb | 14 +++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index fb74b2f8..965b941b 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -18,4 +18,6 @@ Gem::Specification.new do |s|
s.add_dependency "posix-spawn", "~> 0.3.8"
s.add_development_dependency 'minitest', '~> 5.4.3'
+ s.add_development_dependency 'html-pipeline', '~> 1.0'
+ s.add_development_dependency 'sanitize'
end
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 894b3dba..1f62a46f 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -4,8 +4,20 @@
require 'github/markup'
require 'minitest/autorun'
+require 'html/pipeline'
class MarkupTest < Minitest::Test
+ class MarkupFilter < HTML::Pipeline::Filter
+ def call
+ filename = context[:filename]
+ GitHub::Markup.render(filename, File.read(filename)).rstrip.force_encoding("utf-8")
+ end
+ end
+
+ Pipeline = HTML::Pipeline.new [
+ MarkupFilter
+ ]
+
Dir['test/markups/README.*'].each do |readme|
next if readme =~ /html$/
markup = readme.split('/').last.gsub(/^README\./, '')
@@ -15,7 +27,7 @@ class MarkupTest < Minitest::Test
expected_file = "#{readme}.html"
expected = File.read(expected_file).rstrip
- actual = GitHub::Markup.render(readme, File.read(readme)).rstrip.force_encoding("utf-8")
+ actual = Pipeline.to_html(nil, :filename => readme)
if source != expected
assert(source != actual, "#{markup} did not render anything")
From ebe8e64b5c622bb1fe0bad171e041ab38e04c38c Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Mon, 22 Dec 2014 13:03:41 -0500
Subject: [PATCH 166/416] Use sanitization filter in tests
---
test/markup_test.rb | 5 +-
test/markups/README.asciidoc.html | 29 +++++------
test/markups/README.creole.html | 6 ++-
test/markups/README.litcoffee.html | 12 ++---
test/markups/README.markdown.html | 2 +-
test/markups/README.mediawiki.html | 44 +++++++++++-----
test/markups/README.noformat.html | 2 +-
test/markups/README.org.html | 77 +++++++++++++++------------
test/markups/README.pod.html | 53 ++++++-------------
test/markups/README.rdoc.html | 15 +++---
test/markups/README.rmd.html | 2 +-
test/markups/README.rst.html | 84 +++++++++++++++++-------------
test/markups/README.rst.txt.html | 39 ++++++++------
test/markups/README.txt.html | 2 +-
14 files changed, 198 insertions(+), 174 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 1f62a46f..1221eb2b 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -10,12 +10,13 @@ class MarkupTest < Minitest::Test
class MarkupFilter < HTML::Pipeline::Filter
def call
filename = context[:filename]
- GitHub::Markup.render(filename, File.read(filename)).rstrip.force_encoding("utf-8")
+ GitHub::Markup.render(filename, File.read(filename)).strip.force_encoding("utf-8")
end
end
Pipeline = HTML::Pipeline.new [
- MarkupFilter
+ MarkupFilter,
+ HTML::Pipeline::SanitizationFilter
]
Dir['test/markups/README.*'].each do |readme|
diff --git a/test/markups/README.asciidoc.html b/test/markups/README.asciidoc.html
index 0692ac1d..4f06d0f9 100644
--- a/test/markups/README.asciidoc.html
+++ b/test/markups/README.asciidoc.html
@@ -1,8 +1,8 @@
Document Title
-
-
First Section
-
-
+
+
First Section
+
+
-
One
@@ -14,26 +14,25 @@ First Section
-
-
Second Section
-
-
+
+
Second Section
+
+
-
- Note
+ |
+ Note
|
-
+ |
Here is some source code.
|
-
-
+
\ No newline at end of file
diff --git a/test/markups/README.creole.html b/test/markups/README.creole.html
index cc16572f..ec67cd0f 100644
--- a/test/markups/README.creole.html
+++ b/test/markups/README.creole.html
@@ -1,4 +1,8 @@
-
H1
H2
paragraph of text that will be turned into a paragraph element. It can go over several lines with line breaks, it will be turned into a contiguous paragraph element.
You can force a linebreak in your paragraph text
thusly.
- a list element
- 2nd list element
pre formatted text
+H1
H2
paragraph of text that will be turned into a paragraph element. It can go over several lines with line breaks, it will be turned into a contiguous paragraph element.
You can force a linebreak in your paragraph text
thusly.
+- a list element
+
+- 2nd list element
+
pre formatted text
$ ls -la
total 56
diff --git a/test/markups/README.litcoffee.html b/test/markups/README.litcoffee.html
index e33f2349..5caa8780 100644
--- a/test/markups/README.litcoffee.html
+++ b/test/markups/README.litcoffee.html
@@ -6,13 +6,13 @@ Literate CoffeeScript Test
comment comment
-test "basic literate CoffeeScript parsing", ->
+test "basic literate CoffeeScript parsing", ->
ok yes
now with a...
-test "broken up indentation", ->
+test "broken up indentation", ->
... broken up ...
@@ -27,7 +27,7 @@ Literate CoffeeScript Test
Code must be separated from text by a blank line.
-test "code blocks must be preceded by a blank line", ->
+test "code blocks must be preceded by a blank line", ->
The next line is part of the text and will not be executed.
@@ -38,7 +38,7 @@
Literate CoffeeScript Test
Code in backticks is not parsed
and...
-test "comments in indented blocks work", ->
+test "comments in indented blocks work", ->
do ->
do ->
# Regular comment.
@@ -62,5 +62,5 @@ Literate CoffeeScript Test
Tabs work too:
-test "tabbed code", ->
- ok yes
+test "tabbed code", ->
+ ok yes
\ No newline at end of file
diff --git a/test/markups/README.markdown.html b/test/markups/README.markdown.html
index a1b9abab..ab0cc685 100644
--- a/test/markups/README.markdown.html
+++ b/test/markups/README.markdown.html
@@ -1,4 +1,4 @@
+
\ No newline at end of file
diff --git a/test/markups/README.mediawiki.html b/test/markups/README.mediawiki.html
index a84d3d7b..6f9ac5e3 100644
--- a/test/markups/README.mediawiki.html
+++ b/test/markups/README.mediawiki.html
@@ -1,19 +1,29 @@
-
-» JRuby Project Wiki Home Page
-
Embedding JRuby
+» JRuby Project Wiki Home Page
+
Embedding JRuby
Using Java from Ruby is JRuby's best-known feature---but you can also go in the other direction, and use Ruby from Java. There are several different ways to do this. You can execute entire Ruby scripts, call individual Ruby methods, or even implement a Java interface in Ruby (thus allowing you to treat Ruby objects like Java ones). We refer to all these techniques generically as "embedding." This section will explain how to embed JRuby in your Java project.
-
-
-
-Red Bridge (JRuby Embed)
+
+
+
+
+Red Bridge (JRuby Embed)
JRuby has long had a private embedding API, which was closely tied to the runtime's internals and therefore changed frequently as JRuby evolved. Since version 1.4, however, we have also provided a more stable public API, known as Red Bridge or JRuby Embed. Existing Java programs written to the legacy API should still work, but we strongly recommend Red Bridge for all new projects.
-Features of Red Bridge
+
+Features of Red Bridge
Red Bridge consists of two layers: Embed Core on the bottom, and implementations of JSR223 and BSF on top. Embed Core is JRuby-specific, and can take advantage of much of JRuby's power. JSR223 and BSF are more general interfaces that provide a common ground across scripting languages.
@@ -23,19 +33,25 @@
API documentation has all the gory details. It's worth talking about a couple of the finer points here.
-Previous Embedding JRuby Page
+
+Previous Embedding JRuby Page
-We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the legacy embedding[1] page.
+
We recommend using Embed Core; however, if you're maintaining code that uses the old API, you can find its documentation on the legacy embedding[1] page.
-References
+
+References
-- ^ This link goes nowhere.
\ No newline at end of file
+-
+^ This link goes nowhere.
\ No newline at end of file
diff --git a/test/markups/README.noformat.html b/test/markups/README.noformat.html
index b36565cc..c2e3c5fd 100644
--- a/test/markups/README.noformat.html
+++ b/test/markups/README.noformat.html
@@ -1,2 +1,2 @@
* One
-* Two
+* Two
\ No newline at end of file
diff --git a/test/markups/README.org.html b/test/markups/README.org.html
index 0326e393..73f9cf4b 100644
--- a/test/markups/README.org.html
+++ b/test/markups/README.org.html
@@ -1,38 +1,47 @@
-org-ruby
+org-ruby
-1 Description
+1 Description
Helpful Ruby routines for parsing orgmode files. The most
significant thing this library does today is convert orgmode files
to textile. Currently, you cannot do much to customize the
conversion. The supplied textile conversion is optimized for
- extracting “content” from the orgfile as opposed to “metadata.”
-2 History
-2.1 2014-02-08: Version 0.9.0
+ extracting “content” from the orgfile as opposed to “metadata.”
+2 History
+2.1 2014-02-08: Version 0.9.0
- - Let’s make sure
#+INCLUDE:
is not supported
+ - Let’s make sure
#+INCLUDE:
is not supported
- And confirm that syntax highlight is supported
-
+
module GitHub
module Markup
- VERSION = 'test'
+ VERSION = 'test'
Version = VERSION
end
end
-2.2 2009-12-30: Version 0.5.1
+2.2 2009-12-30: Version 0.5.1
- - Minor enhancement: Recognize lines starting with “:” as examples.
+ - Minor enhancement: Recognize lines starting with “:” as examples.
- Minor enhancement: Recognize #+BEGIN_SRC as source blocks
- - Minor enhancement: Add “src” and “example” classes to <pre> blocks.
+ - Minor enhancement: Add “src” and “example” classes to <pre> blocks.
-2.3 2009-12-30: Version 0.5.0
+2.3 2009-12-30: Version 0.5.0
- Parse (but not necessarily use) in-buffer settings. The following
in-buffer settings are used:
@@ -47,7 +56,7 @@
2.3 2009-12-30: Version
the tree to export
- Rewrite “file:(blah).org” links to “http:(blah).html” links. This
+ Rewrite “file:(blah).org” links to “http:(blah).html” links. This
makes the inter-links to other org-mode files work.
Uses <th> tags inside table rows that precede table separators.
Bugfixes:
@@ -56,7 +65,7 @@ 2.3 2009-12-30: Version
-2.4 2009-12-29: Version 0.4.2
+2.4 2009-12-29: Version 0.4.2
- Got rid of the extraneous newline at the start of code blocks.
- Everything now shows up in code blocks, even org-mode metadata.
@@ -67,59 +76,59 @@ 2.4 2009-12-29: Version
-2.5 2009-12-29: Version 0.4.1
+2.5 2009-12-29: Version 0.4.1
- HTML is now escaped by default
- org-mode comments will show up in a code block.
-2.6 2009-12-29: Version 0.4
+2.6 2009-12-29: Version 0.4
-2.7 2009-12-27: Version 0.3
+2.7 2009-12-27: Version 0.3
- - Uses rubypants to get better typography (smart quotes, elipses, etc…).
+ - Uses rubypants to get better typography (smart quotes, elipses, etc…).
- Fixed bugs:
- Tables and lists did not get properly closed at the end of file
- - You couldn’t do inline formatting inside table cells
+ - You couldn’t do inline formatting inside table cells
- Characters in PRE blocks were not HTML escaped.
-2.8 2009-12-26: Version 0.2
+2.8 2009-12-26: Version 0.2
- Added
to_html
output on the parser.
- Added support for the full range of inline markup: bold,
- italic,
code
, verbatim
, underline, strikethrough.
+ italic, code
, verbatim
, underline, strikethrough.
- Lots of refactoring to make the code more maintainable.
-2.9 2009-12-23: Version 0.1
+2.9 2009-12-23: Version 0.1
+
\ No newline at end of file
diff --git a/test/markups/README.pod.html b/test/markups/README.pod.html
index 8bc00b37..73ea8409 100644
--- a/test/markups/README.pod.html
+++ b/test/markups/README.pod.html
@@ -1,20 +1,14 @@
-
+
-
+
-
+
This is a port of the MATLAB/Octave programming language to Parrot.
See the ROADMAP file for more information on the status of this project,
and what else needs to be done.
-
+
Primary goals are:
@@ -22,9 +16,7 @@
.
-DEPENDENCIES
+DEPENDENCIES
Matrixy depends on these dependencies:
-Parrot
+Parrot
To get a proper version of Parrot to build Matrixy,
you will need to check out and build Parrot from source:
@@ -67,42 +55,31 @@ svn co http://svn.parrot.org/parrot/trunk parrot
cd parrot
perl Configure.pl
- make && make test && make install-dev
+ make && make test && make install-dev
-Parrot-Linear-Algebra
+Parrot-Linear-Algebra
The linear algebra package for Parrot is available separately and provides functionality required by Matrixy. This includes matrix data types and matrix manipulation libraries
-BUILDING
+BUILDING
Once all dependencies are in place, you can build Matrixy using this sequence of commands:
perl Configure.pl
nmake test
-TODO
+TODO
* Parser
* Standard Builtins
* Test against Octave Test Suite.
-BUGS
+BUGS
Lots!
-CONTACT
+CONTACT
If you need to contact the Matrixy team, go to the project home page at:
-www.github.com\Whiteknight\matrixy
-
+www.github.com\Whiteknight\matrixy
\ No newline at end of file
diff --git a/test/markups/README.rdoc.html b/test/markups/README.rdoc.html
index b53c3b70..93770dde 100644
--- a/test/markups/README.rdoc.html
+++ b/test/markups/README.rdoc.html
@@ -1,11 +1,12 @@
-
-This is an absolute link. So is this: github.com
+This is an absolute link. So is this: github.com
-This is a relative link. So is this: rawr.html
+This is a relative link. So is this: rawr.html
\ No newline at end of file
diff --git a/test/markups/README.rmd.html b/test/markups/README.rmd.html
index e712d1c7..39644656 100644
--- a/test/markups/README.rmd.html
+++ b/test/markups/README.rmd.html
@@ -3,4 +3,4 @@ Title
+
\ No newline at end of file
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 09c2bf32..a074e8d5 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -1,61 +1,73 @@
-Header 1
-Subtitle
+Header 1
+Subtitle
Example text.
-
+
-
Second Section
+
Another Section
@@ -34,5 +37,23 @@ Second Section
puts "Hello, World!"
+
+
+-
+
❏ todo
+
+-
+
✓ done
+
+
+
+
+
+
-
\ No newline at end of file
From 4daed5252d4b24d7a4d727cde44d83f0668452d8 Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 00:16:23 -0500
Subject: [PATCH 202/416] Display unknown restructuredText directives
This addresses issue #514.
Previous behavior was to silently ignore unknown directives and
comments, which made .rst documents that utilized rst extensions
appear to be incomplete. This fix allows all the information to
be displayed, and further allows comments to be placed to indicate
that the github rst viewer is not the preferred viewer for the
document.
This patch will not alter the appearance of any document that
is specifically coded for display at github which doesn't use
restucturedText comments.
Additional possible enhancements include figuring out how to
gray out this text, and/or to support a special github directive
at the start of the text file that controls whether this new
behavior is enabled.
---
lib/github/commands/rest2html | 53 +++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index b9dc5c29..065e7f66 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -48,6 +48,59 @@ from docutils import nodes
from docutils.parsers.rst import roles
from docutils.core import publish_parts
from docutils.writers.html4css1 import Writer, HTMLTranslator
+from docutils.parsers.rst.states import Body
+from docutils import nodes
+
+# By default, docutils provides two choices for unknown directives:
+# - Show errors if the reporting level is high enough
+# - Silently do not display them otherwise
+# Comments are not displayed, either.
+
+# This code monkey-patches docutils to show preformatted lines
+# in both these cases.
+
+# Recommended practice for repositories with rst files:
+# - If github is the preferred viewer for the rst files (e.g. README.rst),
+# then design the files to properly display for github. E.g., do not
+# include unknown directives or restructuredText comments.
+# - If github is NOT the preferred viewer for the rst files (e.g.
+# the files are designed to be used with sphinx extensions at readthedocs)
+# then include a restructuredText comment at the top of the file
+# explaining that the document will display much more nicely with its
+# preferred viewer, e.g. at readthedocs.
+
+original_behavior = False # Documents original docutils behavior
+
+def unknown_directive(self, type_name):
+ lineno = self.state_machine.abs_line_number()
+ indented, indent, offset, blank_finish = \
+ self.state_machine.get_first_known_indented(0, strip_indent=False)
+ text = '\n'.join(indented)
+ if original_behavior:
+ error = self.reporter.error(
+ 'Unknown directive type "%s".' % type_name,
+ nodes.literal_block(text, text), line=lineno)
+ return [error], blank_finish
+ else:
+ return [nodes.literal_block(text, text)], blank_finish
+
+def comment(self, match):
+ if not match.string[match.end():].strip() \
+ and self.state_machine.is_next_line_blank(): # an empty comment?
+ return [nodes.comment()], 1 # "A tiny but practical wart."
+ indented, indent, offset, blank_finish = \
+ self.state_machine.get_first_known_indented(match.end())
+ while indented and not indented[-1].strip():
+ indented.trim_end()
+ text = '\n'.join(indented)
+ if original_behavior:
+ return [nodes.comment(text, text)], blank_finish
+ else:
+ return [nodes.literal_block(text, text)], blank_finish
+
+Body.comment = comment
+Body.unknown_directive = unknown_directive
+
SETTINGS = {
'cloak_email_addresses': False,
From f68fcab3e83971f128b252429635702c3f48f449 Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 10:38:31 -0500
Subject: [PATCH 203/416] Add github display control comment
Also add test file to show new operation.
---
lib/github/commands/rest2html | 20 ++++--
test/markups/README.directives.rst | 103 +++++++++++++++++++++++++++++
2 files changed, 118 insertions(+), 5 deletions(-)
create mode 100644 test/markups/README.directives.rst
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 065e7f66..d517a9df 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -70,6 +70,7 @@ from docutils import nodes
# preferred viewer, e.g. at readthedocs.
original_behavior = False # Documents original docutils behavior
+github_display = True
def unknown_directive(self, type_name):
lineno = self.state_machine.abs_line_number()
@@ -81,8 +82,10 @@ def unknown_directive(self, type_name):
'Unknown directive type "%s".' % type_name,
nodes.literal_block(text, text), line=lineno)
return [error], blank_finish
- else:
+ elif github_display:
return [nodes.literal_block(text, text)], blank_finish
+ else:
+ return [nodes.comment(text, text)], blank_finish
def comment(self, match):
if not match.string[match.end():].strip() \
@@ -92,11 +95,18 @@ def comment(self, match):
self.state_machine.get_first_known_indented(match.end())
while indented and not indented[-1].strip():
indented.trim_end()
+ if not original_behavior:
+ firstline = ''.join(indented[:1]).split()
+ if ' '.join(firstline[:2]) == 'github display':
+ if len(firstline) == 3 and firstline[2] in ('on', 'off'):
+ global github_display
+ github_display = firstline[2] == 'on'
+ if len(indented) == 1:
+ return [nodes.comment()], 1
+ text = '\n'.join(indented[1:])
+ return [nodes.literal_block(text, text)], blank_finish
text = '\n'.join(indented)
- if original_behavior:
- return [nodes.comment(text, text)], blank_finish
- else:
- return [nodes.literal_block(text, text)], blank_finish
+ return [nodes.comment(text, text)], blank_finish
Body.comment = comment
Body.unknown_directive = unknown_directive
diff --git a/test/markups/README.directives.rst b/test/markups/README.directives.rst
new file mode 100644
index 00000000..f9016423
--- /dev/null
+++ b/test/markups/README.directives.rst
@@ -0,0 +1,103 @@
+==================================================
+restructuredText (rst) directives and comments
+==================================================
+
+Introduction
+=================
+
+An rst directive starts with two periods, and has a keyword
+followed by two colons, like this::
+
+ .. MyDirective::
+
+The rst parser is quite flexible and configurable. Directives
+may be added for specialized operations. Sphinx is a system
+that was designed for writing documentation, and, for example,
+readthedocs.org uses sphinx.
+
+Display of rst files at github needs to cover two distinct
+use-cases:
+
+- The github display is the primary method for displaying
+ the file (e.g. for README.rst files)
+
+- The github display is incidental to the primary method
+ for displaying the file (e.g. for readthedocs documentation)
+
+Currently, github handles the first case fine, but could
+confuse viewers for the second case, because sometimes
+content is missing from the github display.
+
+It would seem that one possibility for distinguishing these
+two cases is to add a github directive to control the display.
+
+Unfortunately, this would place a burden on every other rst
+parser to ignore the github directive (some of them will error
+on unknown directives).
+
+Instead, we can assign semantic content to specific comments.
+
+This is a fairly ugly hack, but it has the benefit of not
+requiring any document changes that would create problems with
+any conformant parser.
+
+
+The proposed special comment is::
+
+ .. github display [on | off]
+
+
+If you pass this the "on" value, then all unknown directives
+will be displayed as literal code blocks. If you pass this
+the "off" value, then unknown directives will not be displayed.
+
+In addition to controlling the display of literal code blocks,
+this also allows you to show comments specifically for github.
+
+For example, somebody could place this at the top of their file::
+
+ .. github display
+
+ This file was designed to be viewed at readthedocs. Some
+ content will not display properly when viewing using the
+ github browser.
+
+Tests
+==========
+
+By default, unknown directives should be displayed.
+
+.. UnknownDirective:: This is an unknown directive
+
+ it has a lot of stuff underneath it
+
+But we can turn this off, and the next directive should
+not be displayed.
+
+.. github display off
+
+.. UnknownDirective:: This is an unknown directive
+
+ it has a lot of stuff underneath it
+
+Or we can turn it back on...
+
+.. github display on
+
+.. UnknownDirective:: This is an unknown directive (3)
+
+ it has a lot of stuff underneath it
+
+Here is a comment that should display at github
+
+.. github display
+
+ YOU SHOULD SEE THIS!
+
+And here is a comment that should not display at github
+
+.. foobar
+
+ YOU SHOULD NOT SEE THIS!
+
+This concludes the tests.
From 0c6261a91d0fffceac6d956f932938e8c0b14dbd Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 10:42:27 -0500
Subject: [PATCH 204/416] Add HTML output of directives test
---
test/markups/README.directives.rst.html | 75 +++++++++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 test/markups/README.directives.rst.html
diff --git a/test/markups/README.directives.rst.html b/test/markups/README.directives.rst.html
new file mode 100644
index 00000000..df4f3be3
--- /dev/null
+++ b/test/markups/README.directives.rst.html
@@ -0,0 +1,75 @@
+restructuredText (rst) directives and comments
+
+Introduction
+An rst directive starts with two periods, and has a keyword
+followed by two colons, like this:
+
+.. MyDirective::
+
+The rst parser is quite flexible and configurable. Directives
+may be added for specialized operations. Sphinx is a system
+that was designed for writing documentation, and, for example,
+readthedocs.org uses sphinx.
+Display of rst files at github needs to cover two distinct
+use-cases:
+
+- The github display is the primary method for displaying
+the file (e.g. for README.rst files)
+- The github display is incidental to the primary method
+for displaying the file (e.g. for readthedocs documentation)
+
+Currently, github handles the first case fine, but could
+confuse viewers for the second case, because sometimes
+content is missing from the github display.
+It would seem that one possibility for distinguishing these
+two cases is to add a github directive to control the display.
+Unfortunately, this would place a burden on every other rst
+parser to ignore the github directive (some of them will error
+on unknown directives).
+Instead, we can assign semantic content to specific comments.
+This is a fairly ugly hack, but it has the benefit of not
+requiring any document changes that would create problems with
+any conformant parser.
+The proposed special comment is:
+
+.. github display [on | off]
+
+If you pass this the "on" value, then all unknown directives
+will be displayed as literal code blocks. If you pass this
+the "off" value, then unknown directives will not be displayed.
+In addition to controlling the display of literal code blocks,
+this also allows you to show comments specifically for github.
+For example, somebody could place this at the top of their file:
+
+.. github display
+
+ This file was designed to be viewed at readthedocs. Some
+ content will not display properly when viewing using the
+ github browser.
+
+
+Tests
+By default, unknown directives should be displayed.
+
+.. UnknownDirective:: This is an unknown directive
+
+ it has a lot of stuff underneath it
+
+
+But we can turn this off, and the next directive should
+not be displayed.
+Or we can turn it back on...
+
+.. UnknownDirective:: This is an unknown directive (3)
+
+ it has a lot of stuff underneath it
+
+
+Here is a comment that should display at github
+
+
+YOU SHOULD SEE THIS!
+
+And here is a comment that should not display at github
+This concludes the tests.
+
From cf688b2eac3c1a94966878bf7c2b3e1e9a583369 Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 11:23:07 -0500
Subject: [PATCH 205/416] Update expected test result
My docutils configuration must be slightly different than github's.
---
test/markups/README.directives.rst.html | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/test/markups/README.directives.rst.html b/test/markups/README.directives.rst.html
index df4f3be3..f42c58f2 100644
--- a/test/markups/README.directives.rst.html
+++ b/test/markups/README.directives.rst.html
@@ -1,4 +1,4 @@
-restructuredText (rst) directives and comments
+restructuredText (rst) directives and comments
Introduction
An rst directive starts with two periods, and has a keyword
@@ -12,7 +12,7 @@
Introduction
readthedocs.org uses sphinx.
Display of rst files at github needs to cover two distinct
use-cases:
-
+
- The github display is the primary method for displaying
the file (e.g. for README.rst files)
- The github display is incidental to the primary method
@@ -34,9 +34,9 @@
Introduction
.. github display [on | off]
-If you pass this the "on" value, then all unknown directives
+
If you pass this the "on" value, then all unknown directives
will be displayed as literal code blocks. If you pass this
-the "off" value, then unknown directives will not be displayed.
+the "off" value, then unknown directives will not be displayed.
In addition to controlling the display of literal code blocks,
this also allows you to show comments specifically for github.
For example, somebody could place this at the top of their file:
@@ -71,5 +71,4 @@ Tests
YOU SHOULD SEE THIS!
And here is a comment that should not display at github
-This concludes the tests.
-
+This concludes the tests.
\ No newline at end of file
From ff25f45e7ef329cff0d2b8ac17f0e519fffb8910 Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 14:35:52 -0500
Subject: [PATCH 206/416] Add HTML classes for comments and unknown directives
---
lib/github/commands/rest2html | 8 ++++++--
test/markups/README.directives.rst.html | 11 ++++++-----
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index d517a9df..4fc23755 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -83,7 +83,9 @@ def unknown_directive(self, type_name):
nodes.literal_block(text, text), line=lineno)
return [error], blank_finish
elif github_display:
- return [nodes.literal_block(text, text)], blank_finish
+ cls = ['unknown_directive']
+ result = [nodes.literal_block(text, text, classes=cls)]
+ return result, blank_finish
else:
return [nodes.comment(text, text)], blank_finish
@@ -104,7 +106,9 @@ def comment(self, match):
if len(indented) == 1:
return [nodes.comment()], 1
text = '\n'.join(indented[1:])
- return [nodes.literal_block(text, text)], blank_finish
+ cls = ['github_comment']
+ result = [nodes.literal_block(text, text, classes=cls)]
+ return result, blank_finish
text = '\n'.join(indented)
return [nodes.comment(text, text)], blank_finish
diff --git a/test/markups/README.directives.rst.html b/test/markups/README.directives.rst.html
index f42c58f2..df4f3be3 100644
--- a/test/markups/README.directives.rst.html
+++ b/test/markups/README.directives.rst.html
@@ -1,4 +1,4 @@
-restructuredText (rst) directives and comments
+restructuredText (rst) directives and comments
Introduction
An rst directive starts with two periods, and has a keyword
@@ -12,7 +12,7 @@
Introduction
readthedocs.org uses sphinx.
Display of rst files at github needs to cover two distinct
use-cases:
-
+
- The github display is the primary method for displaying
the file (e.g. for README.rst files)
- The github display is incidental to the primary method
@@ -34,9 +34,9 @@
Introduction
.. github display [on | off]
-If you pass this the "on" value, then all unknown directives
+
If you pass this the "on" value, then all unknown directives
will be displayed as literal code blocks. If you pass this
-the "off" value, then unknown directives will not be displayed.
+the "off" value, then unknown directives will not be displayed.
In addition to controlling the display of literal code blocks,
this also allows you to show comments specifically for github.
For example, somebody could place this at the top of their file:
@@ -71,4 +71,5 @@ Tests
YOU SHOULD SEE THIS!
And here is a comment that should not display at github
-This concludes the tests.
\ No newline at end of file
+This concludes the tests.
+
From 01fb321c18c924705b1bc906619a55a57c939f8e Mon Sep 17 00:00:00 2001
From: Patrick Maupin
Date: Fri, 26 Jun 2015 14:45:49 -0500
Subject: [PATCH 207/416] Update expected results
---
test/markups/README.directives.rst.html | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/test/markups/README.directives.rst.html b/test/markups/README.directives.rst.html
index df4f3be3..f42c58f2 100644
--- a/test/markups/README.directives.rst.html
+++ b/test/markups/README.directives.rst.html
@@ -1,4 +1,4 @@
-restructuredText (rst) directives and comments
+restructuredText (rst) directives and comments
Introduction
An rst directive starts with two periods, and has a keyword
@@ -12,7 +12,7 @@
Introduction
readthedocs.org uses sphinx.
Display of rst files at github needs to cover two distinct
use-cases:
-
+
- The github display is the primary method for displaying
the file (e.g. for README.rst files)
- The github display is incidental to the primary method
@@ -34,9 +34,9 @@
Introduction
.. github display [on | off]
-If you pass this the "on" value, then all unknown directives
+
If you pass this the "on" value, then all unknown directives
will be displayed as literal code blocks. If you pass this
-the "off" value, then unknown directives will not be displayed.
+the "off" value, then unknown directives will not be displayed.
In addition to controlling the display of literal code blocks,
this also allows you to show comments specifically for github.
For example, somebody could place this at the top of their file:
@@ -71,5 +71,4 @@ Tests
YOU SHOULD SEE THIS!
And here is a comment that should not display at github
-This concludes the tests.
-
+This concludes the tests.
\ No newline at end of file
From 44cfb29895ab2b6f09ff5efa3194248911f22d40 Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Wed, 8 Jul 2015 14:12:47 -0400
Subject: [PATCH 208/416] Add code of conduct to contributing guidelines
---
CONTRIBUTING.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 83784b46..318fbe9b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,8 @@
# Contributing
+This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code.
+[code-of-conduct]: http://todogroup.org/opencodeofconduct/#GitHub%20Markup/opensource@github.com
+
This library's only job is to decide which markup format to use and call out to an external library to convert the markup to HTML (see the [README](README.md) for more information on how markup is rendered on GitHub.com).
If you are having an issue with:
From f34f5387f10ff784a3c62bb5f73bb236354f6f7b Mon Sep 17 00:00:00 2001
From: kakwa
Date: Sat, 18 Jul 2015 10:41:16 +0200
Subject: [PATCH 209/416] pep8 compliance
---
lib/github/commands/rest2html | 58 +++++++++++++++++++----------------
1 file changed, 31 insertions(+), 27 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index b9dc5c29..9200b705 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -58,18 +58,20 @@ SETTINGS = {
'sectsubtitle_xform': True,
'initial_header_level': 2,
'report_level': 5,
- 'syntax_highlight' : 'none',
- 'math_output' : 'latex',
+ 'syntax_highlight': 'none',
+ 'math_output': 'latex',
'field_name_limit': 50,
}
+
class GitHubHTMLTranslator(HTMLTranslator):
+
# removes the tag wrapped around docs
# see also: http://bit.ly/1exfq2h (warning! sourceforge link.)
def depart_document(self, node):
HTMLTranslator.depart_document(self, node)
- self.html_body.pop(0) # pop the starting
off
- self.html_body.pop() # pop the ending
off
+ self.html_body.pop(0) # pop the starting
off
+ self.html_body.pop() # pop the ending
off
# technique for visiting sections, without generating additional divs
# see also: http://bit.ly/NHtyRx
@@ -102,36 +104,38 @@ class GitHubHTMLTranslator(HTMLTranslator):
def visit_table(self, node):
classes = ' '.join(['docutils', self.settings.table_style]).strip()
self.body.append(
- self.starttag(node, 'table', CLASS=classes))
+ self.starttag(node, 'table', CLASS=classes))
def depart_table(self, node):
self.body.append('
\n')
def depart_image(self, node):
- uri = node['uri']
- ext = os.path.splitext(uri)[1].lower()
- # we need to swap RST's use of `object` with `img` tags
- # see http://git.io/5me3dA
- if ext == ".svg":
- # preserve essential attributes
- atts = {}
- for attribute, value in node.attributes.items():
- # we have no time for empty values
- if value:
- if attribute == "uri":
- atts['src'] = value
- else:
- atts[attribute] = value
-
- # toss off `object` tag
- self.body.pop()
+ uri = node['uri']
+ ext = os.path.splitext(uri)[1].lower()
+ # we need to swap RST's use of `object` with `img` tags
+ # see http://git.io/5me3dA
+ if ext == ".svg":
+ # preserve essential attributes
+ atts = {}
+ for attribute, value in node.attributes.items():
+ # we have no time for empty values
+ if value:
+ if attribute == "uri":
+ atts['src'] = value
+ else:
+ atts[attribute] = value
+
+ # toss off `object` tag
+ self.body.pop()
# add on `img` with attributes
- self.body.append(self.starttag(node, 'img', **atts))
- self.body.append(self.context.pop())
+ self.body.append(self.starttag(node, 'img', **atts))
+ self.body.append(self.context.pop())
+
def kbd(name, rawtext, text, lineno, inliner, options=None, content=None):
- return [nodes.raw('', '
%s' % text, format='html')], []
+ return [nodes.raw('', '
%s' % text, format='html')], []
+
def main():
"""
@@ -143,9 +147,9 @@ def main():
"""
try:
text = codecs.open(sys.argv[1], 'r', 'utf-8').read()
- except IOError: # given filename could not be found
+ except IOError: # given filename could not be found
return ''
- except IndexError: # no filename given
+ except IndexError: # no filename given
text = sys.stdin.read()
writer = Writer()
From 68557d2756e62cf5a12f4648dcc36dc99169645f Mon Sep 17 00:00:00 2001
From: kakwa
Date: Sat, 18 Jul 2015 10:42:01 +0200
Subject: [PATCH 210/416] enable raw html
---
lib/github/commands/rest2html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 9200b705..6f9ff7c7 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -52,7 +52,7 @@ from docutils.writers.html4css1 import Writer, HTMLTranslator
SETTINGS = {
'cloak_email_addresses': False,
'file_insertion_enabled': False,
- 'raw_enabled': False,
+ 'raw_enabled': True,
'strip_comments': True,
'doctitle_xform': True,
'sectsubtitle_xform': True,
From 04c5f11c6a9d0b8fc9d879a1d68b8216e297570e Mon Sep 17 00:00:00 2001
From: Brandon Keepers
Date: Sun, 19 Jul 2015 21:39:46 -0700
Subject: [PATCH 211/416] uphold => honor
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 318fbe9b..0236a554 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
# Contributing
-This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code.
+This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to honor this code.
[code-of-conduct]: http://todogroup.org/opencodeofconduct/#GitHub%20Markup/opensource@github.com
This library's only job is to decide which markup format to use and call out to an external library to convert the markup to HTML (see the [README](README.md) for more information on how markup is rendered on GitHub.com).
From 5716bc1e41383f50f8f7740b37449ffb8721c5ab Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 31 Jul 2015 11:29:52 -0700
Subject: [PATCH 212/416] :gem: bump to 1.4.0
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index cd9adf3c..ef1dc9f4 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.3.3'
+ VERSION = '1.4.0'
Version = VERSION
end
end
From c5e6585d92daecd531090eb800aa4b8a440baf32 Mon Sep 17 00:00:00 2001
From: Alex Willmer
Date: Wed, 2 Sep 2015 14:58:43 +0100
Subject: [PATCH 213/416] Added doctest blocks to reStructuredText
Many Python projects use Sphinx to create documentation from .rst markup.
Using a doctest:: directive the markup can include blocks of code that is both
tested and rendered in the final documentation. These blocks are not rendered
on github.com though, e.g. in a README.rst.
To remedy this (without adding Sphinx as a dependency) this PR aliases
doctest:: directives to code:: directives,. The language of such blocks is set
to 'python', since doctest only supports Python.
Refs dateutil/dateutil#83
---
lib/github/commands/rest2html | 18 +++++++++++++++++-
test/markups/README.rst | 13 +++++++++++++
test/markups/README.rst.html | 10 ++++++++++
3 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index b9dc5c29..13b56c1f 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -45,7 +45,8 @@ except:
import codecs
from docutils import nodes
-from docutils.parsers.rst import roles
+from docutils.parsers.rst import directives, roles
+from docutils.parsers.rst.directives.body import CodeBlock
from docutils.core import publish_parts
from docutils.writers.html4css1 import Writer, HTMLTranslator
@@ -63,6 +64,18 @@ SETTINGS = {
'field_name_limit': 50,
}
+
+class DoctestDirective(CodeBlock):
+ """Render Sphinx 'doctest:: [group]' blocks as 'code:: python'
+ """
+
+ def run(self):
+ """Discard any doctest group argument, render contents as python code
+ """
+ self.arguments = ['python']
+ return super(DoctestDirective, self).run()
+
+
class GitHubHTMLTranslator(HTMLTranslator):
# removes the tag wrapped around docs
# see also: http://bit.ly/1exfq2h (warning! sourceforge link.)
@@ -153,6 +166,9 @@ def main():
roles.register_canonical_role('kbd', kbd)
+ # Render source code in Sphinx doctest blocks
+ directives.register_directive('doctest', DoctestDirective)
+
parts = publish_parts(text, writer=writer, settings_overrides=SETTINGS)
if 'html_body' in parts:
html = parts['html_body']
diff --git a/test/markups/README.rst b/test/markups/README.rst
index ccabe9e7..4e3e1be5 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -31,6 +31,19 @@ The UTF-8 quote character in this table used to cause python to go boom. Now doc
Tabular Data, 5
Made up ratings, 11
+.. code::
+
+ A block of code
+
+.. code:: python
+
+ python.code('hooray')
+
+.. doctest:: ignored
+
+ >>> some_function()
+ 'result'
+
============== ==========================================================
Travis http://travis-ci.org/tony/pullv
Docs http://pullv.rtfd.org
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index af777045..c29fa34e 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -16,6 +16,16 @@
Header 2
Somé UTF-8°
The UTF-8 quote character in this table used to cause python to go boom. Now docutils just silently ignores it.
+
+A block of code
+
+
+python.code('hooray')
+
+
+>>> some_function()
+'result'
+
From 5393ae93cd0f51d9990e3a33c30d44ce4c64a235 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 1 Oct 2015 01:01:13 -0700
Subject: [PATCH 214/416] Add test for raw RST
---
test/markups/README.rst | 5 +++++
test/markups/README.rst.html | 2 ++
2 files changed, 7 insertions(+)
diff --git a/test/markups/README.rst b/test/markups/README.rst
index 4e3e1be5..0bd4267e 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -72,3 +72,8 @@ Field list
someone@somewhere.org
Press :kbd:`Ctrl+C` to quit
+
+
+.. raw:: html
+
+ RAW HTML!
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index c29fa34e..21f9a76d 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -87,3 +87,5 @@ Field list
someone@somewhere.org
Press Ctrl+C to quit
+
+RAW HTML!
p {color:blue;}
From eb4ea4f6d72e1f0d3d51e1b21946bdbd4ed0947c Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 1 Oct 2015 01:04:43 -0700
Subject: [PATCH 215/416] Drop 1.9.3
---
.travis.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 0a44f56e..dceeb4db 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,6 @@
language: ruby
before_install: sudo pip install docutils
rvm:
- - 1.9.3
- 2.0.0
- 2.1.1
- jruby-19mode
From 6a5895852891d695f49a248cc4098e045310abb1 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 1 Oct 2015 01:04:57 -0700
Subject: [PATCH 216/416] Ensure `sudo: false`
---
.travis.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index dceeb4db..abcc525c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,6 @@
language: ruby
-before_install: sudo pip install docutils
+sudo: false
+before_install: pip install docutils
rvm:
- 2.0.0
- 2.1.1
From 8b22d8221b41f8ce99faeed5f8c21a1cd8a3477c Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 1 Oct 2015 01:05:05 -0700
Subject: [PATCH 217/416] Not so many Git depths
---
.travis.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index abcc525c..45731388 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,3 +9,5 @@ jdk:
- oraclejdk8
notifications:
email: false
+git:
+ depth: 10
From 5759fa0091ebf959168bf3b3da5a6028dbd7c0b2 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Thu, 1 Oct 2015 01:09:13 -0700
Subject: [PATCH 218/416] Properly install `python-docutils`
---
.travis.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 45731388..9d71d6b8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
language: ruby
sudo: false
-before_install: pip install docutils
rvm:
- 2.0.0
- 2.1.1
@@ -11,3 +10,7 @@ notifications:
email: false
git:
depth: 10
+addons:
+ apt:
+ packages:
+ - python-docutils
From 5f7d58f9ecf787a029ce0be316211aab3c6c2365 Mon Sep 17 00:00:00 2001
From: Serguei Okladnikov
Date: Fri, 1 Apr 2016 18:10:42 +0000
Subject: [PATCH 219/416] allow multiple files for command line tool
useful for prepare for printing multiple documents:
github-markup repo/docs/*
instead of
echo repo/docs/* | xargs github-markup
---
bin/github-markup | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/bin/github-markup b/bin/github-markup
index 76e5e369..17ac1cab 100755
--- a/bin/github-markup
+++ b/bin/github-markup
@@ -3,8 +3,26 @@
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../lib"
require 'github/markup'
-if ARGV[0] && File.exists?(file = ARGV[0])
- puts GitHub::Markup.render(file)
-else
- puts "usage: #$0 FILE"
+if ARGV.size < 1
+ print "usage: #$0 FILE [ FILES ... ]\n"
+ exit
end
+
+sources = []
+
+ARGV.each { |s|
+ begin
+ file = File.open( s, "r" )
+ sources.push [ s, file ]
+ rescue Exception => e
+ print "error: #{e.message}\n"
+ ensure
+ end
+}
+
+sources.each { |s|
+ name,file = s
+ print GitHub::Markup.render( name, file.read )
+ file.close
+}
+
From 418da907838f6c1808d7354a5be01595e0eea7a5 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:06:24 -0700
Subject: [PATCH 220/416] Gotta cache 'em all
---
.travis.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 9d71d6b8..2affce3b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,7 +10,7 @@ notifications:
email: false
git:
depth: 10
-addons:
- apt:
- packages:
- - python-docutils
+before_install: sudo pip install docutils
+cache:
+ - bundler
+ - pip
From 2cb105cc4a90348ce2e88357eb114b252acab1a2 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:08:26 -0700
Subject: [PATCH 221/416] no sudo
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 2affce3b..ac4c0541 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,7 +10,7 @@ notifications:
email: false
git:
depth: 10
-before_install: sudo pip install docutils
+before_install: pip install docutils
cache:
- bundler
- pip
From d54fdcdb13221d9566745b77b42428e17ae57483 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:11:34 -0700
Subject: [PATCH 222/416] Fine come back sudo
---
.travis.yml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index ac4c0541..6a407b33 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,4 @@
language: ruby
-sudo: false
rvm:
- 2.0.0
- 2.1.1
@@ -10,7 +9,7 @@ notifications:
email: false
git:
depth: 10
-before_install: pip install docutils
+before_install: sudo pip install docutils
cache:
- bundler
- pip
From 863ca20086353ac49f79d285ad41bc8a9cd2911e Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:15:04 -0700
Subject: [PATCH 223/416] do we need this
---
.travis.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 6a407b33..efdde4e1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,7 +9,8 @@ notifications:
email: false
git:
depth: 10
-before_install: sudo pip install docutils
+sudo: false
+# before_install: sudo pip install docutils
cache:
- bundler
- pip
From a56c587f58af47232a25b66fdd380829682a6d92 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:17:02 -0700
Subject: [PATCH 224/416] Lock it
---
github-markup.gemspec | 1 +
1 file changed, 1 insertion(+)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 62e4770b..a906474f 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
+ s.add_development_dependency 'activesupport', '~> 4.0'
s.add_development_dependency 'minitest', '~> 5.4.3'
s.add_development_dependency 'html-pipeline', '~> 1.0'
s.add_development_dependency 'sanitize', '~> 2.1.0'
From 35b68c7f5c51fcdab368742fbdc843c662900287 Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:20:10 -0700
Subject: [PATCH 225/416] Yep need it.
---
.travis.yml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index efdde4e1..6a407b33 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,8 +9,7 @@ notifications:
email: false
git:
depth: 10
-sudo: false
-# before_install: sudo pip install docutils
+before_install: sudo pip install docutils
cache:
- bundler
- pip
From 6413e7b42ad02f2c4c936f79bf7fe6ba8eb4119a Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:31:26 -0700
Subject: [PATCH 226/416] JRuby needs this for C
---
.travis.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 6a407b33..ae456462 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,3 +13,6 @@ before_install: sudo pip install docutils
cache:
- bundler
- pip
+env:
+ global:
+ - "JRUBY_OPTS=-Xcext.enabled=true"
From cf74e842dfd082d8001417c1bb94edd2ae06d61b Mon Sep 17 00:00:00 2001
From: Garen Torikian
Date: Fri, 22 Jul 2016 09:48:31 -0700
Subject: [PATCH 227/416] It never ends
---
.travis.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index ae456462..878d01da 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,3 +16,6 @@ cache:
env:
global:
- "JRUBY_OPTS=-Xcext.enabled=true"
+matrix:
+ allow_failures:
+ - rvm: jruby-19mode
From 53211f7bb407750d23b9c01b217c4d47e108bf95 Mon Sep 17 00:00:00 2001
From: Gabriel Mazetto
Date: Wed, 24 Aug 2016 15:42:53 +0200
Subject: [PATCH 228/416] Makes rest2html work in both python2 and python3
---
lib/github/commands/rest2html | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..958cd3cf 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -31,9 +31,11 @@ import sys
import os
# This fixes docutils failing with unicode parameters to CSV-Table. The -S
-# switch and the following 2 lines can be removed after upgrading to python 3.
-reload(sys)
-sys.setdefaultencoding('utf-8')
+# switch and the following 3 lines can be removed after upgrading to python 3.
+if sys.version_info[0] < 3:
+ reload(sys)
+ sys.setdefaultencoding('utf-8')
+
import site
try:
From 62ff5993081920ad75016f2b87019dd14e3af137 Mon Sep 17 00:00:00 2001
From: Gabriel Mazetto
Date: Tue, 6 Sep 2016 21:13:53 +0200
Subject: [PATCH 229/416] Handle sys.stdin and sys.stdout encoding issues in
python 3.x
This code will keep current behavior for python 2.x.
---
lib/github/commands/rest2html | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 958cd3cf..db3b1bfa 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -45,6 +45,7 @@ except:
pass
import codecs
+import io
from docutils import nodes
from docutils.parsers.rst import directives, roles
@@ -164,7 +165,11 @@ def main():
except IOError: # given filename could not be found
return ''
except IndexError: # no filename given
- text = sys.stdin.read()
+ if sys.version_info[0] < 3: # python 2.x
+ text = sys.stdin.read()
+ else: # python 3
+ input_stream = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
+ text = input_stream.read()
writer = Writer()
writer.translator_class = GitHubHTMLTranslator
@@ -187,5 +192,9 @@ def main():
return ''
if __name__ == '__main__':
- sys.stdout.write("%s%s" % (main(), "\n"))
+ if sys.version_info[0] < 3: # python 2.x
+ sys.stdout.write("%s%s" % (main(), "\n"))
+ else: # python 3
+ output_stream = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
+ output_stream.write("%s%s" % (main(), "\n"))
sys.stdout.flush()
From 88ab49174890e7ab8f76c35f075a045ece619ed5 Mon Sep 17 00:00:00 2001
From: ericsnowcurrently
Date: Wed, 5 Oct 2016 11:18:45 -0700
Subject: [PATCH 230/416] Use a more contemporary install command for .rst
format.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 92e570c3..2b153719 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.org](http://orgmode.org/) -- `gem install org-ruby`
* [.creole](http://wikicreole.org/) -- `gem install creole`
* [.mediawiki, .wiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
-* [.rst](http://docutils.sourceforge.net/rst.html) -- `easy_install docutils`
+* [.rst](http://docutils.sourceforge.net/rst.html) -- `python3 -m pip install sphinx`
* [.asciidoc, .adoc, .asc](http://asciidoc.org/) -- `gem install asciidoctor` (http://asciidoctor.org)
* [.pod](http://search.cpan.org/dist/perl/pod/perlpod.pod) -- `Pod::Simple::HTML`
comes with Perl >= 5.10. Lower versions should install [Pod::Simple](http://search.cpan.org/~dwheeler/Pod-Simple-3.28/lib/Pod/Simple.pod) from CPAN.
From a62c5cd5114e19fda59d71241fa2d52fa791fff6 Mon Sep 17 00:00:00 2001
From: strixaluco
Date: Mon, 24 Oct 2016 10:39:21 +0800
Subject: [PATCH 231/416] rdoc URL updated
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 92e570c3..789ffaa7 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ you wish to run the library. You can also run `script/bootstrap` to fetch them a
* [.markdown, .mdown, .mkdn, .md](http://daringfireball.net/projects/markdown/) -- `gem install redcarpet` (https://github.com/vmg/redcarpet)
* [.textile](http://www.textism.com/tools/textile/) -- `gem install RedCloth`
-* [.rdoc](http://rdoc.sourceforge.net/) -- `gem install rdoc -v 3.6.1`
+* [.rdoc](https://rdoc.github.io/rdoc/) -- `gem install rdoc -v 3.6.1`
* [.org](http://orgmode.org/) -- `gem install org-ruby`
* [.creole](http://wikicreole.org/) -- `gem install creole`
* [.mediawiki, .wiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
From d9748cadc9e208283a079898d6c6e64e4eeb408b Mon Sep 17 00:00:00 2001
From: hcpl
Date: Tue, 1 Nov 2016 20:28:24 +0200
Subject: [PATCH 232/416] Remove the sectsubtitle_xform setting
---
lib/github/commands/rest2html | 1 -
1 file changed, 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..082d3671 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -56,7 +56,6 @@ SETTINGS = {
'raw_enabled': True,
'strip_comments': True,
'doctitle_xform': True,
- 'sectsubtitle_xform': True,
'initial_header_level': 2,
'report_level': 5,
'syntax_highlight': 'none',
From 59aa433ec7b8a42bd04bb1c8566d5ee5948689a3 Mon Sep 17 00:00:00 2001
From: Manuel Krebber
Date: Tue, 29 Nov 2016 13:32:56 +0100
Subject: [PATCH 233/416] Added support for highlighting doctest blocks in
reStructuredText files.
---
lib/github/commands/rest2html | 3 +++
test/markups/README.rst | 3 +++
test/markups/README.rst.html | 4 ++++
3 files changed, 10 insertions(+)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..dd3f560d 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -105,6 +105,9 @@ class GitHubHTMLTranslator(HTMLTranslator):
else:
self.body.append(self.starttag(node, 'pre'))
+ def visit_doctest_block(self, node):
+ self.body.append(self.starttag(node, 'pre', lang='pycon'))
+
# always wrap two-backtick rst inline literals in , not
# this also avoids the generation of superfluous tags
def visit_literal(self, node):
diff --git a/test/markups/README.rst b/test/markups/README.rst
index 0bd4267e..54bd71ce 100644
--- a/test/markups/README.rst
+++ b/test/markups/README.rst
@@ -44,6 +44,9 @@ The UTF-8 quote character in this table used to cause python to go boom. Now doc
>>> some_function()
'result'
+>>> some_function()
+'result'
+
============== ==========================================================
Travis http://travis-ci.org/tony/pullv
Docs http://pullv.rtfd.org
diff --git a/test/markups/README.rst.html b/test/markups/README.rst.html
index 21f9a76d..7b8e9fca 100644
--- a/test/markups/README.rst.html
+++ b/test/markups/README.rst.html
@@ -26,6 +26,10 @@ Header 2
>>> some_function()
'result'
+
+>>> some_function()
+'result'
+
From e97e4769e1e43fa27193596e968d529537c94f6c Mon Sep 17 00:00:00 2001
From: Dmitry Shachnev
Date: Thu, 22 Dec 2016 11:06:39 +0300
Subject: [PATCH 234/416] Make rest2html work with docutils 0.13
In that docutils version, HTMLTranslator.visit_image no longer appends
empty string to self.context, so trying to pop() from there raises an
IndexError.
Instead of the hard-coded pop call, call the overridden method, which will
call pop() on docutils 0.12 and will do nothing on docutils 0.13.
Fixes #971.
Also, fix the comment indentation.
---
lib/github/commands/rest2html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..fff69fc6 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -139,9 +139,9 @@ class GitHubHTMLTranslator(HTMLTranslator):
# toss off `object` tag
self.body.pop()
- # add on `img` with attributes
+ # add on `img` with attributes
self.body.append(self.starttag(node, 'img', **atts))
- self.body.append(self.context.pop())
+ HTMLTranslator.depart_image(self, node)
def kbd(name, rawtext, text, lineno, inliner, options=None, content=None):
From 6904a21bd966c138e7dbd7f1ec24fe511c17891e Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 30 Jan 2017 14:30:48 +1100
Subject: [PATCH 235/416] Add CommonMarker gem
---
lib/github/markup/markdown.rb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 8ccf7f07..8e396a32 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -4,6 +4,9 @@ module GitHub
module Markup
class Markdown < Implementation
MARKDOWN_GEMS = {
+ "commonmarker" => proc { |content|
+ CommonMarker.render_html(content, :default, %i[tagfilter autolink table strikethrough])
+ },
"github/markdown" => proc { |content|
GitHub::Markdown.render(content)
},
From 0c2da9734f44920dedf32471e60cf56163ff2b26 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 30 Jan 2017 14:33:38 +1100
Subject: [PATCH 236/416] :gem: bump to 1.4.1
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index ef1dc9f4..89cce44e 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.0'
+ VERSION = '1.4.1'
Version = VERSION
end
end
From e494209fea8568455e563840a6a4f955d2162d07 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 9 Mar 2017 09:32:41 +1100
Subject: [PATCH 237/416] Ruby 1.9 adjustments
---
Gemfile | 1 +
lib/github/markup/markdown.rb | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 637836b0..a5c14b0e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,3 +11,4 @@ gem "creole", "~>0.3.6"
gem "wikicloth", "=0.8.1", :platforms => :ruby
gem "asciidoctor", "= 1.5.2"
gem "rake"
+gem "rinku", '~> 1'
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 8e396a32..014f37fe 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -5,7 +5,7 @@ module Markup
class Markdown < Implementation
MARKDOWN_GEMS = {
"commonmarker" => proc { |content|
- CommonMarker.render_html(content, :default, %i[tagfilter autolink table strikethrough])
+ CommonMarker.render_html(content, :default, [:tagfilter, :autolink, :table, :strikethrough])
},
"github/markdown" => proc { |content|
GitHub::Markdown.render(content)
From 5ded14c01037b09dadb8940da4224930c78cde7c Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 9 Mar 2017 09:33:37 +1100
Subject: [PATCH 238/416] :gem: bump to 1.4.2
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 89cce44e..cd11c1d0 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.1'
+ VERSION = '1.4.2'
Version = VERSION
end
end
From 26dee7157ae3b1efe428b21333f00084eaabff21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jesper=20R=C3=B8nn-Jensen?=
Date: Mon, 13 Mar 2017 15:44:48 +0100
Subject: [PATCH 239/416] (chore) (refactor) pipe result of each gsub instead
of modifying original
Simpler to just pipe the result of each command to the next.
---
test/markup_test.rb | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 4c8fdf45..970f98d1 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -9,11 +9,10 @@
require 'nokogiri/diff'
def normalize_html(text)
- text.strip!
- text.gsub!(/\s\s+/,' ')
- text.gsub!(/\p{Pi}|\p{Pf}|"/u,'"')
- text.gsub!("\u2026",'...')
- text
+ text.strip
+ .gsub(/\s\s+/,' ')
+ .gsub!(/\p{Pi}|\p{Pf}|"/u,'"')
+ .gsub!("\u2026",'...')
end
def assert_html_equal(expected, actual, msg = nil)
From 549f59cdcf2f9ef4e5c9675ce0eb48bc700f74e2 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 14 Mar 2017 20:12:54 +1100
Subject: [PATCH 240/416] Bump for latest CommonMarker
---
lib/github/markup/markdown.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 014f37fe..521e0756 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -5,7 +5,7 @@ module Markup
class Markdown < Implementation
MARKDOWN_GEMS = {
"commonmarker" => proc { |content|
- CommonMarker.render_html(content, :default, [:tagfilter, :autolink, :table, :strikethrough])
+ CommonMarker.render_html(content, :DEFAULT, [:tagfilter, :autolink, :table, :strikethrough])
},
"github/markdown" => proc { |content|
GitHub::Markdown.render(content)
From 23f435f6c4ccddc8dcf6e67938d6e4760232b697 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 14 Mar 2017 20:13:12 +1100
Subject: [PATCH 241/416] :gem: bump to 1.4.3
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index cd11c1d0..686ce59d 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.2'
+ VERSION = '1.4.3'
Version = VERSION
end
end
From 7370b3f875b41d688add03cd5ad21a9b24c510ec Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 09:24:15 +1100
Subject: [PATCH 242/416] Don't append to ESCAPED_TAGS forever.
---
lib/github/markups.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 89f1b410..90350396 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -23,7 +23,7 @@
markup(:wikicloth, /mediawiki|wiki/) do |content|
wikicloth = WikiCloth::WikiCloth.new(:data => content)
- WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt'
+ WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt' unless WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS.include?('tt')
wikicloth.to_html(:noedit => true)
end
From 0183799c923540b7085256aecb48f0db61932109 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 09:48:03 +1100
Subject: [PATCH 243/416] :gem: bump to 1.4.4
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 686ce59d..cfcff229 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.3'
+ VERSION = '1.4.4'
Version = VERSION
end
end
From 004694189a51f4a99cce68edd4690c55a77047dd Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 10:50:25 +1100
Subject: [PATCH 244/416] Use metacpan.org for searches
---
lib/github/commands/pod2html | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/github/commands/pod2html b/lib/github/commands/pod2html
index b9539468..0bf436f6 100755
--- a/lib/github/commands/pod2html
+++ b/lib/github/commands/pod2html
@@ -6,6 +6,7 @@ use Pod::Simple::XHTML 3.11;
my $p = Pod::Simple::XHTML->new;
$p->html_header('');
$p->html_footer('');
+$p->perldoc_url_prefix('http://metacpan.org/search?q=');
$p->strip_verbatim_indent(sub {
my $lines = shift;
(my $indent = $lines->[0]) =~ s/\S.*//;
From c69660e045ed9f0da3fc8bc9862b86255c32e44a Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 10:56:56 +1100
Subject: [PATCH 245/416] Attempt install on Travis
---
.travis.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index b6591f59..bced84b0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,9 @@ notifications:
git:
depth: 10
before_install:
+ - sudo apt-get install perl
+ - curl -L http://cpanmin.us | perl - --sudo App::cpanminus
+ - sudo cpanm --installdeps --notest Pod::Simple
- sudo pip install docutils
cache:
- bundler
From 8c693c60321a420f1c097e2cf3c461fa0fb0db27 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 11:00:49 +1100
Subject: [PATCH 246/416] Drop "-w"
---
lib/github/commands/pod2html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/commands/pod2html b/lib/github/commands/pod2html
index 0bf436f6..538da8f8 100755
--- a/lib/github/commands/pod2html
+++ b/lib/github/commands/pod2html
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl -w
+#!/usr/bin/env perl
use strict;
use Pod::Simple::XHTML 3.11;
From 774bb322c47a8447d2be85a4a8b68f8918b4df06 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 16 Mar 2017 11:09:36 +1100
Subject: [PATCH 247/416] Only pop context when installed docutils wants
This changed at some point recently. (My system docutils wanted to do
this, but the current latest on PyPI (0.13.1) doesn't.) This is an
old-style object (!) so we have to use this hack.
---
lib/github/commands/rest2html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..3cfd8ad5 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -141,7 +141,7 @@ class GitHubHTMLTranslator(HTMLTranslator):
self.body.pop()
# add on `img` with attributes
self.body.append(self.starttag(node, 'img', **atts))
- self.body.append(self.context.pop())
+ HTMLTranslator.depart_image(self, node)
def kbd(name, rawtext, text, lineno, inliner, options=None, content=None):
From 179819e484f59b1ef07f343d4e5a124e7d537caf Mon Sep 17 00:00:00 2001
From: Paul Chaignon
Date: Wed, 19 Aug 2015 19:06:08 +0200
Subject: [PATCH 248/416] Use Linguist to detect the language
---
Gemfile | 1 +
lib/github/markup.rb | 26 +++++++++------
lib/github/markup/command_implementation.rb | 4 +--
lib/github/markup/gem_implementation.rb | 4 +--
lib/github/markup/implementation.rb | 15 +++------
lib/github/markup/markdown.rb | 2 +-
lib/github/markup/rdoc.rb | 2 +-
lib/github/markups.rb | 15 +++++----
test/markup_test.rb | 36 ++++++++++-----------
9 files changed, 54 insertions(+), 51 deletions(-)
diff --git a/Gemfile b/Gemfile
index edd0c249..0482a419 100644
--- a/Gemfile
+++ b/Gemfile
@@ -12,3 +12,4 @@ gem "wikicloth", "=0.8.3"
gem "asciidoctor", "= 1.5.2"
gem "rake"
gem "rinku", '~> 1'
+gem "github-linguist", ">= 4.7.5"
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index ddc7312f..c5a6ad84 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -37,7 +37,7 @@ def preload!
def render(filename, content = nil)
content ||= File.read(filename)
- if impl = renderer(filename)
+ if impl = renderer(filename, content)
impl.render(content)
else
content
@@ -53,9 +53,9 @@ def render_s(symbol, content)
content
end
end
-
- def markup(symbol, file, pattern, opts = {}, &block)
- markup_impl(symbol, GemImplementation.new(pattern, file, &block))
+
+ def markup(symbol, gem_name, pattern, opts = {}, &block)
+ markup_impl(symbol, GemImplementation.new(pattern, gem_name, &block))
end
def markup_impl(symbol, impl)
@@ -65,24 +65,30 @@ def markup_impl(symbol, impl)
markups[symbol] = impl
end
- def command(symbol, command, regexp, name, &block)
+ def command(symbol, command, languages, name, &block)
if File.exist?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- markup_impl(symbol, CommandImplementation.new(regexp, command, name, &block))
+ markup_impl(symbol, CommandImplementation.new(languages, command, name, &block))
end
- def can_render?(filename)
- !!renderer(filename)
+ def can_render?(filename, content)
+ !!renderer(filename, content)
end
- def renderer(filename)
+ def renderer(filename, content)
+ language = language(filename, content)
markup_impls.find { |impl|
- impl.match?(filename)
+ impl.match?(language)
}
end
+ def language(filename, content)
+ blob = Linguist::Blob.new(filename, content)
+ return Linguist.detect(blob)
+ end
+
# Define markups
markups_rb = File.dirname(__FILE__) + '/markups.rb'
instance_eval File.read(markups_rb), markups_rb
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index be3f6b46..d0f2fc47 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -15,8 +15,8 @@ class CommandError < RuntimeError
class CommandImplementation < Implementation
attr_reader :command, :block, :name
- def initialize(regexp, command, name, &block)
- super regexp
+ def initialize(languages, command, name, &block)
+ super languages
@command = command.to_s
@block = block
@name = name
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
index 270f5a88..08383f52 100644
--- a/lib/github/markup/gem_implementation.rb
+++ b/lib/github/markup/gem_implementation.rb
@@ -5,8 +5,8 @@ module Markup
class GemImplementation < Implementation
attr_reader :gem_name, :renderer
- def initialize(regexp, gem_name, &renderer)
- super regexp
+ def initialize(languages, gem_name, &renderer)
+ super languages
@gem_name = gem_name.to_s
@renderer = renderer
end
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 463a39d4..46df1510 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -1,10 +1,10 @@
module GitHub
module Markup
class Implementation
- attr_reader :regexp
+ attr_reader :languages
- def initialize(regexp)
- @regexp = regexp
+ def initialize(languages)
+ @languages = languages
end
def load
@@ -15,13 +15,8 @@ def render(content)
raise NotImplementedError, "subclasses of GitHub::Markup::Implementation must define #render"
end
- def match?(filename)
- file_ext_regexp =~ filename
- end
-
- private
- def file_ext_regexp
- @file_ext_regexp ||= /\.(#{regexp})\z/
+ def match?(language)
+ languages.include? language
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 521e0756..6d2607ee 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -28,7 +28,7 @@ class Markdown < Implementation
}
def initialize
- super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i)
+ super([Linguist::Language["Markdown"], Linguist::Language["RMarkdown"], Linguist::Language["Literate CoffeeScript"]])
end
def load
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index bc008cb4..e96ddf07 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -6,7 +6,7 @@ module GitHub
module Markup
class RDoc < Implementation
def initialize
- super(/rdoc/)
+ super([Linguist::Language["RDoc"]])
end
def render(content)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index e951fb16..24ecaffa 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,33 +1,34 @@
require "github/markup/markdown"
require "github/markup/rdoc"
require "shellwords"
+require "linguist"
markup_impl(::GitHub::Markups::MARKUP_MARKDOWN, ::GitHub::Markup::Markdown.new)
-markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, /textile/) do |content|
+markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, [Linguist::Language["Textile"]]) do |content|
RedCloth.new(content).to_html
end
markup_impl(::GitHub::Markups::MARKUP_RDOC, GitHub::Markup::RDoc.new)
-markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', /org/) do |content|
+markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', [Linguist::Language["Org"]]) do |content|
Orgmode::Parser.new(content, {
:allow_include_files => false,
:skip_syntax_highlight => true
}).to_html
end
-markup(::GitHub::Markups::MARKUP_CREOLE, :creole, /creole/) do |content|
+markup(::GitHub::Markups::MARKUP_CREOLE, :creole, [Linguist::Language["Creole"]]) do |content|
Creole.creolize(content)
end
-markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, /mediawiki|wiki/) do |content|
+markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, [Linguist::Language["MediaWiki"]]) do |content|
wikicloth = WikiCloth::WikiCloth.new(:data => content)
WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt' unless WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS.include?('tt')
wikicloth.to_html(:noedit => true)
end
-markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, /adoc|asc(iidoc)?/) do |content|
+markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, [Linguist::Language["AsciiDoc"]]) do |content|
Asciidoctor::Compliance.unique_id_start_index = 1
Asciidoctor.convert(content, :safe => :secure, :attributes => %w(showtitle=@ idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
@@ -35,8 +36,8 @@
command(
::GitHub::Markups::MARKUP_RST,
"python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html",
- /re?st(\.txt)?/,
+ [Linguist::Language["reStructuredText"]],
"restructuredtext"
)
-command(::GitHub::Markups::MARKUP_POD, :pod2html, /pod/, "pod")
+command(::GitHub::Markups::MARKUP_POD, :pod2html, [Linguist::Language["Pod"]], "pod")
diff --git a/test/markup_test.rb b/test/markup_test.rb
index d0b6d09a..6c8365d4 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -77,24 +77,24 @@ def call
end
def test_knows_what_it_can_and_cannot_render
- assert_equal false, GitHub::Markup.can_render?('README.html')
- assert_equal true, GitHub::Markup.can_render?('README.markdown')
- assert_equal true, GitHub::Markup.can_render?('README.rmd')
- assert_equal true, GitHub::Markup.can_render?('README.Rmd')
- assert_equal false, GitHub::Markup.can_render?('README.cmd')
- assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
+ assert_equal false, GitHub::Markup.can_render?('README.html', 'Title
')
+ assert_equal true, GitHub::Markup.can_render?('README.markdown', '=== Title')
+ assert_equal true, GitHub::Markup.can_render?('README.rmd', '=== Title')
+ assert_equal true, GitHub::Markup.can_render?('README.Rmd', '=== Title')
+ assert_equal false, GitHub::Markup.can_render?('README.cmd', 'echo 1')
+ assert_equal true, GitHub::Markup.can_render?('README.litcoffee', 'Title')
end
def test_each_render_has_a_name
- assert_equal "markdown", GitHub::Markup.renderer('README.md').name
- assert_equal "redcloth", GitHub::Markup.renderer('README.textile').name
- assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc').name
- assert_equal "org-ruby", GitHub::Markup.renderer('README.org').name
- assert_equal "creole", GitHub::Markup.renderer('README.creole').name
- assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki').name
- assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc').name
- assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst').name
- assert_equal "pod", GitHub::Markup.renderer('README.pod').name
+ assert_equal "markdown", GitHub::Markup.renderer('README.md', '=== Title').name
+ assert_equal "redcloth", GitHub::Markup.renderer('README.textile', '* One').name
+ assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc', '* One').name
+ assert_equal "org-ruby", GitHub::Markup.renderer('README.org', '* Title').name
+ assert_equal "creole", GitHub::Markup.renderer('README.creole', '= Title =').name
+ assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki', 'Title
').name
+ assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc', '== Title').name
+ assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst', 'Title').name
+ assert_equal "pod", GitHub::Markup.renderer('README.pod', '=begin').name
end
def test_rendering_by_symbol
@@ -102,10 +102,10 @@ def test_rendering_by_symbol
end
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', /fail/, 'fail')
- assert GitHub::Markup.can_render?('README.fail')
+ GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', [Linguist::Language['Java']], 'fail')
+ assert GitHub::Markup.can_render?('README.java', 'stop swallowing errors')
begin
- GitHub::Markup.render('README.fail', "stop swallowing errors")
+ GitHub::Markup.render('README.java', "stop swallowing errors")
rescue GitHub::Markup::CommandError => e
assert_equal "failure message", e.message
else
From 75578714e1242aa3660dd052cb430923a4078d65 Mon Sep 17 00:00:00 2001
From: Serguei Okladnikov
Date: Thu, 16 Mar 2017 13:11:18 +0400
Subject: [PATCH 249/416] return error code to shell
---
bin/github-markup | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/bin/github-markup b/bin/github-markup
index 17ac1cab..0d442bb2 100755
--- a/bin/github-markup
+++ b/bin/github-markup
@@ -5,7 +5,7 @@ require 'github/markup'
if ARGV.size < 1
print "usage: #$0 FILE [ FILES ... ]\n"
- exit
+ exit 1
end
sources = []
@@ -15,13 +15,13 @@ ARGV.each { |s|
file = File.open( s, "r" )
sources.push [ s, file ]
rescue Exception => e
- print "error: #{e.message}\n"
+ $stderr.print "error: #{e.message}\n"
+ exit 1
ensure
end
}
-sources.each { |s|
- name,file = s
+sources.each { |name, file|
print GitHub::Markup.render( name, file.read )
file.close
}
From 60293d9edbfc1014d29f98ebb42a6ba749d30770 Mon Sep 17 00:00:00 2001
From: Kannan Goundan
Date: Thu, 16 Mar 2017 21:37:55 -0700
Subject: [PATCH 250/416] bin/github-markup: Follow symlinks to find
installation folder.
---
bin/github-markup | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bin/github-markup b/bin/github-markup
index 76e5e369..829b3413 100755
--- a/bin/github-markup
+++ b/bin/github-markup
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-$LOAD_PATH.unshift File.dirname(__FILE__) + "/../lib"
+$LOAD_PATH.unshift File.dirname(File.realpath(__FILE__)) + "/../lib"
require 'github/markup'
if ARGV[0] && File.exists?(file = ARGV[0])
From 93853fc269fb17dbb8d5b3931c672648182d7cf6 Mon Sep 17 00:00:00 2001
From: Vicent Marti
Date: Fri, 17 Mar 2017 11:48:52 +0100
Subject: [PATCH 251/416] Bump to 1.4.5
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index cfcff229..e19f743f 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.4'
+ VERSION = '1.4.5'
Version = VERSION
end
end
From 28710c27d1a07bde43dd5c97119655d5d9a0f157 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 20 Mar 2017 14:20:35 +1100
Subject: [PATCH 252/416] Allow empty blobs in Linguist
---
Gemfile | 2 +-
lib/github/markup.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 0482a419..836667ba 100644
--- a/Gemfile
+++ b/Gemfile
@@ -12,4 +12,4 @@ gem "wikicloth", "=0.8.3"
gem "asciidoctor", "= 1.5.2"
gem "rake"
gem "rinku", '~> 1'
-gem "github-linguist", ">= 4.7.5"
+gem "github-linguist", ">= 5.0.7"
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index c5a6ad84..712ef7c7 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -86,7 +86,7 @@ def renderer(filename, content)
def language(filename, content)
blob = Linguist::Blob.new(filename, content)
- return Linguist.detect(blob)
+ return Linguist.detect(blob, allow_empty: true)
end
# Define markups
From 7c2096e5f09c2b4ff27a028e351c2a786e2d3c8f Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 20 Mar 2017 14:20:47 +1100
Subject: [PATCH 253/416] :gem: bump to 1.4.6
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index e19f743f..24bc80ab 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.5'
+ VERSION = '1.4.6'
Version = VERSION
end
end
From 5685837fbddb60d6b7a5ed8870add3d5fabe16e9 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 20 Mar 2017 18:06:25 +1100
Subject: [PATCH 254/416] Fix CONTRIBUTING.md link
---
CONTRIBUTING.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0236a554..8daf522d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,7 @@
# Contributing
This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to honor this code.
+
[code-of-conduct]: http://todogroup.org/opencodeofconduct/#GitHub%20Markup/opensource@github.com
This library's only job is to decide which markup format to use and call out to an external library to convert the markup to HTML (see the [README](README.md) for more information on how markup is rendered on GitHub.com).
From 40023768d4d8ca719da3637857a435733ae53f61 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 21 Mar 2017 10:16:08 +1100
Subject: [PATCH 255/416] Fix up Gemfile/gemspec
---
Gemfile | 2 --
github-markup.gemspec | 9 ++++++---
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Gemfile b/Gemfile
index 836667ba..29454c5c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,5 +11,3 @@ gem "creole", "~>0.3.6"
gem "wikicloth", "=0.8.3"
gem "asciidoctor", "= 1.5.2"
gem "rake"
-gem "rinku", '~> 1'
-gem "github-linguist", ">= 5.0.7"
diff --git a/github-markup.gemspec b/github-markup.gemspec
index a906474f..f52621ff 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,10 +16,13 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
+ s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.7"
+ s.add_dependency "rinku", '~> 1'
+ s.add_development_dependency 'rake', '~> 12'
s.add_development_dependency 'activesupport', '~> 4.0'
- s.add_development_dependency 'minitest', '~> 5.4.3'
+ s.add_development_dependency 'minitest', '~> 5.4', '>= 5.4.3'
s.add_development_dependency 'html-pipeline', '~> 1.0'
- s.add_development_dependency 'sanitize', '~> 2.1.0'
- s.add_development_dependency 'nokogiri', '~> 1.6.1'
+ s.add_development_dependency 'sanitize', '~> 2.1', '>= 2.1.0'
+ s.add_development_dependency 'nokogiri', '~> 1.6', '>= 1.6.1'
s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
end
From c3aa7582da42506b1323009618c16ad8095f8977 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 21 Mar 2017 10:21:23 +1100
Subject: [PATCH 256/416] Switch Markdown dependency to commonmarker
---
Gemfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile b/Gemfile
index 29454c5c..1079130d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -4,7 +4,7 @@ gemspec
gem "posix-spawn", :platforms => :ruby
gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
-gem "RedCloth"
+gem "commonmarker", "~> 0.14.9"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.9"
gem "creole", "~>0.3.6"
From c7b5e1405234ad0e2b07fed00b3bf92ae46d7bf6 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 21 Mar 2017 10:23:43 +1100
Subject: [PATCH 257/416] Update README.md
---
README.md | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index dee00b31..6c60a7ea 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,13 @@ GitHub Markup
This library is the first step of a journey that every markup file in a repository goes on before it is rendered on GitHub.com:
-0. This library converts the raw markup to HTML. See the list of [supported markup formats](#markups) below.
-0. The HTML is sanitized, aggressively removing things that could harm you and your kin—such as `script` tags, inline-styles, and `class` or `id` attributes. See the [sanitization filter](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/sanitization_filter.rb) for the full whitelist.
-0. Syntax highlighting is performed on code blocks. See [github/linguist](https://github.com/github/linguist#syntax-highlighting) for more information about syntax highlighting.
-0. The HTML is passed through other filters in the [html-pipeline](https://github.com/jch/html-pipeline) that add special sauce, such as [emoji](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/emoji_filter.rb), [task lists](https://github.com/github/task_list/blob/master/lib/task_list/filter.rb), [named anchors](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb), [CDN caching for images](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/camo_filter.rb), and [autolinking](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/autolink_filter.rb).
-0. The resulting HTML is rendered on GitHub.com.
+1. This library converts the raw markup to HTML. See the list of [supported markup formats](#markups) below.
+1. The HTML is sanitized, aggressively removing things that could harm you and your kin—such as `script` tags, inline-styles, and `class` or `id` attributes. See the [sanitization filter](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/sanitization_filter.rb) for the full whitelist.
+1. Syntax highlighting is performed on code blocks. See [github/linguist](https://github.com/github/linguist#syntax-highlighting) for more information about syntax highlighting.
+1. The HTML is passed through other filters in the [html-pipeline](https://github.com/jch/html-pipeline) that add special sauce, such as [emoji](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/emoji_filter.rb), [task lists](https://github.com/github/task_list/blob/master/lib/task_list/filter.rb), [named anchors](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb), [CDN caching for images](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/camo_filter.rb), and [autolinking](https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/autolink_filter.rb).
+1. The resulting HTML is rendered on GitHub.com.
+
+Please note that **only the first step** is covered by this gem — the rest happens on GitHub.com. In particular, `markup` itself does no sanitization of the resulting HTML, as it expects that to be covered by whatever pipeline is consuming the HTML.
Please see our [contributing guidelines](CONTRIBUTING.md) before reporting an issue.
@@ -17,7 +19,7 @@ Markups
The following markups are supported. The dependencies listed are required if
you wish to run the library. You can also run `script/bootstrap` to fetch them all.
-* [.markdown, .mdown, .mkdn, .md](http://daringfireball.net/projects/markdown/) -- `gem install redcarpet` (https://github.com/vmg/redcarpet)
+* [.markdown, .mdown, .mkdn, .md](http://daringfireball.net/projects/markdown/) -- `gem install commonmarker` (https://github.com/gjtorikian/commonmarker)
* [.textile](http://www.textism.com/tools/textile/) -- `gem install RedCloth`
* [.rdoc](https://rdoc.github.io/rdoc/) -- `gem install rdoc -v 3.6.1`
* [.org](http://orgmode.org/) -- `gem install org-ruby`
@@ -67,4 +69,4 @@ GitHub::Markup.render_s(GitHub::Markups::MARKUP_MARKDOWN, '* One\n* Two')
Contributing
------------
-See [Contributing](CONTRIBUTING.md)
+See [Contributing](CONTRIBUTING.md).
From b373ed5aba229fae41160e2daf63b2e008136322 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Tue, 21 Mar 2017 18:41:34 +1100
Subject: [PATCH 258/416] :gem: bump to 1.4.7
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 24bc80ab..85d9a346 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.6'
+ VERSION = '1.4.7'
Version = VERSION
end
end
From cc638bd23b3df66a4390e393afb9b6d769d8ff9a Mon Sep 17 00:00:00 2001
From: Dan Book
Date: Tue, 21 Mar 2017 23:54:54 -0400
Subject: [PATCH 259/416] Link directly to pod pages on metacpan
---
lib/github/commands/pod2html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github/commands/pod2html b/lib/github/commands/pod2html
index 538da8f8..faf46e4a 100755
--- a/lib/github/commands/pod2html
+++ b/lib/github/commands/pod2html
@@ -6,7 +6,7 @@ use Pod::Simple::XHTML 3.11;
my $p = Pod::Simple::XHTML->new;
$p->html_header('');
$p->html_footer('');
-$p->perldoc_url_prefix('http://metacpan.org/search?q=');
+$p->perldoc_url_prefix('https://metacpan.org/pod/');
$p->strip_verbatim_indent(sub {
my $lines = shift;
(my $indent = $lines->[0]) =~ s/\S.*//;
From f36ba9ff0e91a6dae8ddcaf0184c3277e7cefe8d Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 15:04:51 +1100
Subject: [PATCH 260/416] Try some fixes for Travis
---
.travis.yml | 3 +++
github-markup.gemspec | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index bced84b0..39f45602 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,9 @@ git:
depth: 10
before_install:
- sudo apt-get install perl
+ - sudo add-apt-repository --yes ppa:kalakris/cmake
+ - sudo apt-get update -qq
+ - sudo apt-get install cmake
- curl -L http://cpanmin.us | perl - --sudo App::cpanminus
- sudo cpanm --installdeps --notest Pod::Simple
- sudo pip install docutils
diff --git a/github-markup.gemspec b/github-markup.gemspec
index f52621ff..ca9263da 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -23,6 +23,6 @@ Gem::Specification.new do |s|
s.add_development_dependency 'minitest', '~> 5.4', '>= 5.4.3'
s.add_development_dependency 'html-pipeline', '~> 1.0'
s.add_development_dependency 'sanitize', '~> 2.1', '>= 2.1.0'
- s.add_development_dependency 'nokogiri', '~> 1.6', '>= 1.6.1'
+ s.add_development_dependency 'nokogiri', '~> 1.6'
s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
end
From 585dba5a6d5460ca40631814d6632a70ea86d83c Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 15:10:30 +1100
Subject: [PATCH 261/416] Be really specific about Nokogiri
---
github-markup.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index ca9263da..0990bb3f 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -23,6 +23,6 @@ Gem::Specification.new do |s|
s.add_development_dependency 'minitest', '~> 5.4', '>= 5.4.3'
s.add_development_dependency 'html-pipeline', '~> 1.0'
s.add_development_dependency 'sanitize', '~> 2.1', '>= 2.1.0'
- s.add_development_dependency 'nokogiri', '~> 1.6'
+ s.add_development_dependency 'nokogiri', '1.6.8.1'
s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
end
From b0a461ea7dd6412b3939521b683da7d26282b8d9 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 15:11:34 +1100
Subject: [PATCH 262/416] RedCloth back into GemFile for textile
---
Gemfile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Gemfile b/Gemfile
index 1079130d..01010778 100644
--- a/Gemfile
+++ b/Gemfile
@@ -4,6 +4,7 @@ gemspec
gem "posix-spawn", :platforms => :ruby
gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
+gem "RedCloth"
gem "commonmarker", "~> 0.14.9"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.9"
From e6f1ce6b4c85c898bc85d9979a055d3b86995ddc Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 15:14:20 +1100
Subject: [PATCH 263/416] Fix litcoffee test fixture
---
test/markups/README.litcoffee.html | 41 +++++++++++-------------------
1 file changed, 15 insertions(+), 26 deletions(-)
diff --git a/test/markups/README.litcoffee.html b/test/markups/README.litcoffee.html
index 5caa8780..51ffe528 100644
--- a/test/markups/README.litcoffee.html
+++ b/test/markups/README.litcoffee.html
@@ -1,43 +1,28 @@
Literate CoffeeScript Test
-
-Taken from https://github.com/jashkenas/coffee-script/blob/master/test/literate.litcoffee
+Taken from https://github.com/jashkenas/coffee-script/blob/master/test/literate.litcoffee
-
comment comment
-
test "basic literate CoffeeScript parsing", ->
ok yes
-
now with a...
-
test "broken up indentation", ->
-
... broken up ...
-
do ->
-
... nested block.
-
ok yes
-
Code must be separated from text by a blank line.
-
test "code blocks must be preceded by a blank line", ->
-
The next line is part of the text and will not be executed.
- fail()
-
+fail()
ok yes
-
Code in backticks is not parsed
and...
-
test "comments in indented blocks work", ->
do ->
do ->
@@ -49,18 +34,22 @@ Literate CoffeeScript Test
ok yes
-
Regular Markdown features,
like links and unordered lists, are fine:
-
-I
-Am
-A
-List
+-
+
I
+
+-
+
Am
+
+-
+
A
+
+-
+
List
+
-
Tabs work too:
-
test "tabbed code", ->
- ok yes
\ No newline at end of file
+ok yes
From 4ed5a130f405a4217ff6bc3ef47555a582dac0c5 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 16:33:11 +1100
Subject: [PATCH 264/416] Use :GITHUB_PRE_LANG
---
Gemfile | 2 +-
lib/github/markup/markdown.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 01010778..d057e0e4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,7 +5,7 @@ gem "posix-spawn", :platforms => :ruby
gem "redcarpet", :platforms => :ruby
gem "kramdown", :platforms => :jruby
gem "RedCloth"
-gem "commonmarker", "~> 0.14.9"
+gem "commonmarker", "~> 0.14.12"
gem "rdoc", "~>3.6"
gem "org-ruby", "= 0.9.9"
gem "creole", "~>0.3.6"
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 6d2607ee..0d8555c3 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -5,7 +5,7 @@ module Markup
class Markdown < Implementation
MARKDOWN_GEMS = {
"commonmarker" => proc { |content|
- CommonMarker.render_html(content, :DEFAULT, [:tagfilter, :autolink, :table, :strikethrough])
+ CommonMarker.render_html(content, :GITHUB_PRE_LANG, [:tagfilter, :autolink, :table, :strikethrough])
},
"github/markdown" => proc { |content|
GitHub::Markdown.render(content)
From 64b676bc6ed43f2fef09601dee9ecaf1e2f3ab81 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 16:40:25 +1100
Subject: [PATCH 265/416] Fix dependencies
---
github-markup.gemspec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 0990bb3f..ebec6a19 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
- s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.7"
- s.add_dependency "rinku", '~> 1'
+ s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.8"
+ s.add_dependency "rinku"
s.add_development_dependency 'rake', '~> 12'
s.add_development_dependency 'activesupport', '~> 4.0'
s.add_development_dependency 'minitest', '~> 5.4', '>= 5.4.3'
From db774f6441f8ae5c80da41725aa4ddcc5653cd0c Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Wed, 22 Mar 2017 16:34:04 +1100
Subject: [PATCH 266/416] :gem: bump for 1.4.8
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 85d9a346..196c838a 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.7'
+ VERSION = '1.4.8'
Version = VERSION
end
end
From ec0eb75ae13755cae9e655770e592959d800a6a1 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Thu, 23 Mar 2017 12:02:45 +1100
Subject: [PATCH 267/416] Update Textile link, fixes #590
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6c60a7ea..059109b1 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ The following markups are supported. The dependencies listed are required if
you wish to run the library. You can also run `script/bootstrap` to fetch them all.
* [.markdown, .mdown, .mkdn, .md](http://daringfireball.net/projects/markdown/) -- `gem install commonmarker` (https://github.com/gjtorikian/commonmarker)
-* [.textile](http://www.textism.com/tools/textile/) -- `gem install RedCloth`
+* [.textile](https://www.promptworks.com/textile) -- `gem install RedCloth`
* [.rdoc](https://rdoc.github.io/rdoc/) -- `gem install rdoc -v 3.6.1`
* [.org](http://orgmode.org/) -- `gem install org-ruby`
* [.creole](http://wikicreole.org/) -- `gem install creole`
From bbee330095529e0a428b42b01a68fbefed89c7e8 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 27 Mar 2017 13:06:57 +1100
Subject: [PATCH 268/416] Revert #537 temporarily for final 1.4 release
---
github-markup.gemspec | 1 -
lib/github/markup.rb | 26 ++++++---------
lib/github/markup/command_implementation.rb | 4 +--
lib/github/markup/gem_implementation.rb | 4 +--
lib/github/markup/implementation.rb | 15 ++++++---
lib/github/markup/markdown.rb | 2 +-
lib/github/markup/rdoc.rb | 2 +-
lib/github/markups.rb | 15 ++++-----
test/markup_test.rb | 36 ++++++++++-----------
9 files changed, 51 insertions(+), 54 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index ebec6a19..6320a489 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,6 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
- s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.8"
s.add_dependency "rinku"
s.add_development_dependency 'rake', '~> 12'
s.add_development_dependency 'activesupport', '~> 4.0'
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index 712ef7c7..ddc7312f 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -37,7 +37,7 @@ def preload!
def render(filename, content = nil)
content ||= File.read(filename)
- if impl = renderer(filename, content)
+ if impl = renderer(filename)
impl.render(content)
else
content
@@ -53,9 +53,9 @@ def render_s(symbol, content)
content
end
end
-
- def markup(symbol, gem_name, pattern, opts = {}, &block)
- markup_impl(symbol, GemImplementation.new(pattern, gem_name, &block))
+
+ def markup(symbol, file, pattern, opts = {}, &block)
+ markup_impl(symbol, GemImplementation.new(pattern, file, &block))
end
def markup_impl(symbol, impl)
@@ -65,30 +65,24 @@ def markup_impl(symbol, impl)
markups[symbol] = impl
end
- def command(symbol, command, languages, name, &block)
+ def command(symbol, command, regexp, name, &block)
if File.exist?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- markup_impl(symbol, CommandImplementation.new(languages, command, name, &block))
+ markup_impl(symbol, CommandImplementation.new(regexp, command, name, &block))
end
- def can_render?(filename, content)
- !!renderer(filename, content)
+ def can_render?(filename)
+ !!renderer(filename)
end
- def renderer(filename, content)
- language = language(filename, content)
+ def renderer(filename)
markup_impls.find { |impl|
- impl.match?(language)
+ impl.match?(filename)
}
end
- def language(filename, content)
- blob = Linguist::Blob.new(filename, content)
- return Linguist.detect(blob, allow_empty: true)
- end
-
# Define markups
markups_rb = File.dirname(__FILE__) + '/markups.rb'
instance_eval File.read(markups_rb), markups_rb
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index d0f2fc47..be3f6b46 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -15,8 +15,8 @@ class CommandError < RuntimeError
class CommandImplementation < Implementation
attr_reader :command, :block, :name
- def initialize(languages, command, name, &block)
- super languages
+ def initialize(regexp, command, name, &block)
+ super regexp
@command = command.to_s
@block = block
@name = name
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
index 08383f52..270f5a88 100644
--- a/lib/github/markup/gem_implementation.rb
+++ b/lib/github/markup/gem_implementation.rb
@@ -5,8 +5,8 @@ module Markup
class GemImplementation < Implementation
attr_reader :gem_name, :renderer
- def initialize(languages, gem_name, &renderer)
- super languages
+ def initialize(regexp, gem_name, &renderer)
+ super regexp
@gem_name = gem_name.to_s
@renderer = renderer
end
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 46df1510..463a39d4 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -1,10 +1,10 @@
module GitHub
module Markup
class Implementation
- attr_reader :languages
+ attr_reader :regexp
- def initialize(languages)
- @languages = languages
+ def initialize(regexp)
+ @regexp = regexp
end
def load
@@ -15,8 +15,13 @@ def render(content)
raise NotImplementedError, "subclasses of GitHub::Markup::Implementation must define #render"
end
- def match?(language)
- languages.include? language
+ def match?(filename)
+ file_ext_regexp =~ filename
+ end
+
+ private
+ def file_ext_regexp
+ @file_ext_regexp ||= /\.(#{regexp})\z/
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 0d8555c3..e3a9b77c 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -28,7 +28,7 @@ class Markdown < Implementation
}
def initialize
- super([Linguist::Language["Markdown"], Linguist::Language["RMarkdown"], Linguist::Language["Literate CoffeeScript"]])
+ super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i)
end
def load
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index e96ddf07..bc008cb4 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -6,7 +6,7 @@ module GitHub
module Markup
class RDoc < Implementation
def initialize
- super([Linguist::Language["RDoc"]])
+ super(/rdoc/)
end
def render(content)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 24ecaffa..e951fb16 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,34 +1,33 @@
require "github/markup/markdown"
require "github/markup/rdoc"
require "shellwords"
-require "linguist"
markup_impl(::GitHub::Markups::MARKUP_MARKDOWN, ::GitHub::Markup::Markdown.new)
-markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, [Linguist::Language["Textile"]]) do |content|
+markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, /textile/) do |content|
RedCloth.new(content).to_html
end
markup_impl(::GitHub::Markups::MARKUP_RDOC, GitHub::Markup::RDoc.new)
-markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', [Linguist::Language["Org"]]) do |content|
+markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', /org/) do |content|
Orgmode::Parser.new(content, {
:allow_include_files => false,
:skip_syntax_highlight => true
}).to_html
end
-markup(::GitHub::Markups::MARKUP_CREOLE, :creole, [Linguist::Language["Creole"]]) do |content|
+markup(::GitHub::Markups::MARKUP_CREOLE, :creole, /creole/) do |content|
Creole.creolize(content)
end
-markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, [Linguist::Language["MediaWiki"]]) do |content|
+markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, /mediawiki|wiki/) do |content|
wikicloth = WikiCloth::WikiCloth.new(:data => content)
WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt' unless WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS.include?('tt')
wikicloth.to_html(:noedit => true)
end
-markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, [Linguist::Language["AsciiDoc"]]) do |content|
+markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, /adoc|asc(iidoc)?/) do |content|
Asciidoctor::Compliance.unique_id_start_index = 1
Asciidoctor.convert(content, :safe => :secure, :attributes => %w(showtitle=@ idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
@@ -36,8 +35,8 @@
command(
::GitHub::Markups::MARKUP_RST,
"python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html",
- [Linguist::Language["reStructuredText"]],
+ /re?st(\.txt)?/,
"restructuredtext"
)
-command(::GitHub::Markups::MARKUP_POD, :pod2html, [Linguist::Language["Pod"]], "pod")
+command(::GitHub::Markups::MARKUP_POD, :pod2html, /pod/, "pod")
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 6c8365d4..d0b6d09a 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -77,24 +77,24 @@ def call
end
def test_knows_what_it_can_and_cannot_render
- assert_equal false, GitHub::Markup.can_render?('README.html', 'Title
')
- assert_equal true, GitHub::Markup.can_render?('README.markdown', '=== Title')
- assert_equal true, GitHub::Markup.can_render?('README.rmd', '=== Title')
- assert_equal true, GitHub::Markup.can_render?('README.Rmd', '=== Title')
- assert_equal false, GitHub::Markup.can_render?('README.cmd', 'echo 1')
- assert_equal true, GitHub::Markup.can_render?('README.litcoffee', 'Title')
+ assert_equal false, GitHub::Markup.can_render?('README.html')
+ assert_equal true, GitHub::Markup.can_render?('README.markdown')
+ assert_equal true, GitHub::Markup.can_render?('README.rmd')
+ assert_equal true, GitHub::Markup.can_render?('README.Rmd')
+ assert_equal false, GitHub::Markup.can_render?('README.cmd')
+ assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
end
def test_each_render_has_a_name
- assert_equal "markdown", GitHub::Markup.renderer('README.md', '=== Title').name
- assert_equal "redcloth", GitHub::Markup.renderer('README.textile', '* One').name
- assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc', '* One').name
- assert_equal "org-ruby", GitHub::Markup.renderer('README.org', '* Title').name
- assert_equal "creole", GitHub::Markup.renderer('README.creole', '= Title =').name
- assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki', 'Title
').name
- assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc', '== Title').name
- assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst', 'Title').name
- assert_equal "pod", GitHub::Markup.renderer('README.pod', '=begin').name
+ assert_equal "markdown", GitHub::Markup.renderer('README.md').name
+ assert_equal "redcloth", GitHub::Markup.renderer('README.textile').name
+ assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc').name
+ assert_equal "org-ruby", GitHub::Markup.renderer('README.org').name
+ assert_equal "creole", GitHub::Markup.renderer('README.creole').name
+ assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki').name
+ assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc').name
+ assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst').name
+ assert_equal "pod", GitHub::Markup.renderer('README.pod').name
end
def test_rendering_by_symbol
@@ -102,10 +102,10 @@ def test_rendering_by_symbol
end
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', [Linguist::Language['Java']], 'fail')
- assert GitHub::Markup.can_render?('README.java', 'stop swallowing errors')
+ GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', /fail/, 'fail')
+ assert GitHub::Markup.can_render?('README.fail')
begin
- GitHub::Markup.render('README.java', "stop swallowing errors")
+ GitHub::Markup.render('README.fail', "stop swallowing errors")
rescue GitHub::Markup::CommandError => e
assert_equal "failure message", e.message
else
From 3087f06280a52362a2258c8e509c5da06a2b826c Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 27 Mar 2017 13:07:17 +1100
Subject: [PATCH 269/416] :gem: bump for 1.4.9
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index 196c838a..fe275b43 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.8'
+ VERSION = '1.4.9'
Version = VERSION
end
end
From a970742bd4aaba60aa8b6b42609b9ebb38d15ca9 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 27 Mar 2017 13:09:05 +1100
Subject: [PATCH 270/416] Revert "Revert #537 temporarily for final 1.4
release"
This reverts commit bbee330095529e0a428b42b01a68fbefed89c7e8.
---
github-markup.gemspec | 1 +
lib/github/markup.rb | 26 +++++++++------
lib/github/markup/command_implementation.rb | 4 +--
lib/github/markup/gem_implementation.rb | 4 +--
lib/github/markup/implementation.rb | 15 +++------
lib/github/markup/markdown.rb | 2 +-
lib/github/markup/rdoc.rb | 2 +-
lib/github/markups.rb | 15 +++++----
test/markup_test.rb | 36 ++++++++++-----------
9 files changed, 54 insertions(+), 51 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index 6320a489..ebec6a19 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
+ s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.8"
s.add_dependency "rinku"
s.add_development_dependency 'rake', '~> 12'
s.add_development_dependency 'activesupport', '~> 4.0'
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index ddc7312f..712ef7c7 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -37,7 +37,7 @@ def preload!
def render(filename, content = nil)
content ||= File.read(filename)
- if impl = renderer(filename)
+ if impl = renderer(filename, content)
impl.render(content)
else
content
@@ -53,9 +53,9 @@ def render_s(symbol, content)
content
end
end
-
- def markup(symbol, file, pattern, opts = {}, &block)
- markup_impl(symbol, GemImplementation.new(pattern, file, &block))
+
+ def markup(symbol, gem_name, pattern, opts = {}, &block)
+ markup_impl(symbol, GemImplementation.new(pattern, gem_name, &block))
end
def markup_impl(symbol, impl)
@@ -65,24 +65,30 @@ def markup_impl(symbol, impl)
markups[symbol] = impl
end
- def command(symbol, command, regexp, name, &block)
+ def command(symbol, command, languages, name, &block)
if File.exist?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- markup_impl(symbol, CommandImplementation.new(regexp, command, name, &block))
+ markup_impl(symbol, CommandImplementation.new(languages, command, name, &block))
end
- def can_render?(filename)
- !!renderer(filename)
+ def can_render?(filename, content)
+ !!renderer(filename, content)
end
- def renderer(filename)
+ def renderer(filename, content)
+ language = language(filename, content)
markup_impls.find { |impl|
- impl.match?(filename)
+ impl.match?(language)
}
end
+ def language(filename, content)
+ blob = Linguist::Blob.new(filename, content)
+ return Linguist.detect(blob, allow_empty: true)
+ end
+
# Define markups
markups_rb = File.dirname(__FILE__) + '/markups.rb'
instance_eval File.read(markups_rb), markups_rb
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index be3f6b46..d0f2fc47 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -15,8 +15,8 @@ class CommandError < RuntimeError
class CommandImplementation < Implementation
attr_reader :command, :block, :name
- def initialize(regexp, command, name, &block)
- super regexp
+ def initialize(languages, command, name, &block)
+ super languages
@command = command.to_s
@block = block
@name = name
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
index 270f5a88..08383f52 100644
--- a/lib/github/markup/gem_implementation.rb
+++ b/lib/github/markup/gem_implementation.rb
@@ -5,8 +5,8 @@ module Markup
class GemImplementation < Implementation
attr_reader :gem_name, :renderer
- def initialize(regexp, gem_name, &renderer)
- super regexp
+ def initialize(languages, gem_name, &renderer)
+ super languages
@gem_name = gem_name.to_s
@renderer = renderer
end
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 463a39d4..46df1510 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -1,10 +1,10 @@
module GitHub
module Markup
class Implementation
- attr_reader :regexp
+ attr_reader :languages
- def initialize(regexp)
- @regexp = regexp
+ def initialize(languages)
+ @languages = languages
end
def load
@@ -15,13 +15,8 @@ def render(content)
raise NotImplementedError, "subclasses of GitHub::Markup::Implementation must define #render"
end
- def match?(filename)
- file_ext_regexp =~ filename
- end
-
- private
- def file_ext_regexp
- @file_ext_regexp ||= /\.(#{regexp})\z/
+ def match?(language)
+ languages.include? language
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index e3a9b77c..0d8555c3 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -28,7 +28,7 @@ class Markdown < Implementation
}
def initialize
- super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i)
+ super([Linguist::Language["Markdown"], Linguist::Language["RMarkdown"], Linguist::Language["Literate CoffeeScript"]])
end
def load
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index bc008cb4..e96ddf07 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -6,7 +6,7 @@ module GitHub
module Markup
class RDoc < Implementation
def initialize
- super(/rdoc/)
+ super([Linguist::Language["RDoc"]])
end
def render(content)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index e951fb16..24ecaffa 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,33 +1,34 @@
require "github/markup/markdown"
require "github/markup/rdoc"
require "shellwords"
+require "linguist"
markup_impl(::GitHub::Markups::MARKUP_MARKDOWN, ::GitHub::Markup::Markdown.new)
-markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, /textile/) do |content|
+markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, [Linguist::Language["Textile"]]) do |content|
RedCloth.new(content).to_html
end
markup_impl(::GitHub::Markups::MARKUP_RDOC, GitHub::Markup::RDoc.new)
-markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', /org/) do |content|
+markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', [Linguist::Language["Org"]]) do |content|
Orgmode::Parser.new(content, {
:allow_include_files => false,
:skip_syntax_highlight => true
}).to_html
end
-markup(::GitHub::Markups::MARKUP_CREOLE, :creole, /creole/) do |content|
+markup(::GitHub::Markups::MARKUP_CREOLE, :creole, [Linguist::Language["Creole"]]) do |content|
Creole.creolize(content)
end
-markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, /mediawiki|wiki/) do |content|
+markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, [Linguist::Language["MediaWiki"]]) do |content|
wikicloth = WikiCloth::WikiCloth.new(:data => content)
WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt' unless WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS.include?('tt')
wikicloth.to_html(:noedit => true)
end
-markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, /adoc|asc(iidoc)?/) do |content|
+markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, [Linguist::Language["AsciiDoc"]]) do |content|
Asciidoctor::Compliance.unique_id_start_index = 1
Asciidoctor.convert(content, :safe => :secure, :attributes => %w(showtitle=@ idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
@@ -35,8 +36,8 @@
command(
::GitHub::Markups::MARKUP_RST,
"python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html",
- /re?st(\.txt)?/,
+ [Linguist::Language["reStructuredText"]],
"restructuredtext"
)
-command(::GitHub::Markups::MARKUP_POD, :pod2html, /pod/, "pod")
+command(::GitHub::Markups::MARKUP_POD, :pod2html, [Linguist::Language["Pod"]], "pod")
diff --git a/test/markup_test.rb b/test/markup_test.rb
index d0b6d09a..6c8365d4 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -77,24 +77,24 @@ def call
end
def test_knows_what_it_can_and_cannot_render
- assert_equal false, GitHub::Markup.can_render?('README.html')
- assert_equal true, GitHub::Markup.can_render?('README.markdown')
- assert_equal true, GitHub::Markup.can_render?('README.rmd')
- assert_equal true, GitHub::Markup.can_render?('README.Rmd')
- assert_equal false, GitHub::Markup.can_render?('README.cmd')
- assert_equal true, GitHub::Markup.can_render?('README.litcoffee')
+ assert_equal false, GitHub::Markup.can_render?('README.html', 'Title
')
+ assert_equal true, GitHub::Markup.can_render?('README.markdown', '=== Title')
+ assert_equal true, GitHub::Markup.can_render?('README.rmd', '=== Title')
+ assert_equal true, GitHub::Markup.can_render?('README.Rmd', '=== Title')
+ assert_equal false, GitHub::Markup.can_render?('README.cmd', 'echo 1')
+ assert_equal true, GitHub::Markup.can_render?('README.litcoffee', 'Title')
end
def test_each_render_has_a_name
- assert_equal "markdown", GitHub::Markup.renderer('README.md').name
- assert_equal "redcloth", GitHub::Markup.renderer('README.textile').name
- assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc').name
- assert_equal "org-ruby", GitHub::Markup.renderer('README.org').name
- assert_equal "creole", GitHub::Markup.renderer('README.creole').name
- assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki').name
- assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc').name
- assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst').name
- assert_equal "pod", GitHub::Markup.renderer('README.pod').name
+ assert_equal "markdown", GitHub::Markup.renderer('README.md', '=== Title').name
+ assert_equal "redcloth", GitHub::Markup.renderer('README.textile', '* One').name
+ assert_equal "rdoc", GitHub::Markup.renderer('README.rdoc', '* One').name
+ assert_equal "org-ruby", GitHub::Markup.renderer('README.org', '* Title').name
+ assert_equal "creole", GitHub::Markup.renderer('README.creole', '= Title =').name
+ assert_equal "wikicloth", GitHub::Markup.renderer('README.wiki', 'Title
').name
+ assert_equal "asciidoctor", GitHub::Markup.renderer('README.adoc', '== Title').name
+ assert_equal "restructuredtext", GitHub::Markup.renderer('README.rst', 'Title').name
+ assert_equal "pod", GitHub::Markup.renderer('README.pod', '=begin').name
end
def test_rendering_by_symbol
@@ -102,10 +102,10 @@ def test_rendering_by_symbol
end
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', /fail/, 'fail')
- assert GitHub::Markup.can_render?('README.fail')
+ GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', [Linguist::Language['Java']], 'fail')
+ assert GitHub::Markup.can_render?('README.java', 'stop swallowing errors')
begin
- GitHub::Markup.render('README.fail', "stop swallowing errors")
+ GitHub::Markup.render('README.java', "stop swallowing errors")
rescue GitHub::Markup::CommandError => e
assert_equal "failure message", e.message
else
From 665ab4d007ad0831098a269fe876a89995b88200 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 27 Mar 2017 13:09:28 +1100
Subject: [PATCH 271/416] Linguist optional; fallback to filenames
---
github-markup.gemspec | 2 +-
lib/github/markup.rb | 22 +++++++++++++-------
lib/github/markup/command_implementation.rb | 4 ++--
lib/github/markup/gem_implementation.rb | 4 ++--
lib/github/markup/implementation.rb | 23 +++++++++++++++++----
lib/github/markup/markdown.rb | 4 +++-
lib/github/markup/rdoc.rb | 2 +-
lib/github/markups.rb | 16 +++++++-------
test/markup_test.rb | 2 +-
9 files changed, 52 insertions(+), 27 deletions(-)
diff --git a/github-markup.gemspec b/github-markup.gemspec
index ebec6a19..69e10b45 100644
--- a/github-markup.gemspec
+++ b/github-markup.gemspec
@@ -16,7 +16,6 @@ Gem::Specification.new do |s|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = %w[lib]
- s.add_dependency "github-linguist", "~> 5.0", ">= 5.0.8"
s.add_dependency "rinku"
s.add_development_dependency 'rake', '~> 12'
s.add_development_dependency 'activesupport', '~> 4.0'
@@ -25,4 +24,5 @@ Gem::Specification.new do |s|
s.add_development_dependency 'sanitize', '~> 2.1', '>= 2.1.0'
s.add_development_dependency 'nokogiri', '1.6.8.1'
s.add_development_dependency 'nokogiri-diff', '~> 0.2.0'
+ s.add_development_dependency "github-linguist", "~> 5.0", ">= 5.0.8"
end
diff --git a/lib/github/markup.rb b/lib/github/markup.rb
index 712ef7c7..f7befbe0 100644
--- a/lib/github/markup.rb
+++ b/lib/github/markup.rb
@@ -1,3 +1,9 @@
+begin
+ require "linguist"
+rescue LoadError
+ # Rely on extensions instead.
+end
+
require "github/markup/command_implementation"
require "github/markup/gem_implementation"
@@ -54,8 +60,8 @@ def render_s(symbol, content)
end
end
- def markup(symbol, gem_name, pattern, opts = {}, &block)
- markup_impl(symbol, GemImplementation.new(pattern, gem_name, &block))
+ def markup(symbol, gem_name, regexp, languages, opts = {}, &block)
+ markup_impl(symbol, GemImplementation.new(regexp, languages, gem_name, &block))
end
def markup_impl(symbol, impl)
@@ -65,12 +71,12 @@ def markup_impl(symbol, impl)
markups[symbol] = impl
end
- def command(symbol, command, languages, name, &block)
+ def command(symbol, command, regexp, languages, name, &block)
if File.exist?(file = File.dirname(__FILE__) + "/commands/#{command}")
command = file
end
- markup_impl(symbol, CommandImplementation.new(languages, command, name, &block))
+ markup_impl(symbol, CommandImplementation.new(regexp, languages, command, name, &block))
end
def can_render?(filename, content)
@@ -80,13 +86,15 @@ def can_render?(filename, content)
def renderer(filename, content)
language = language(filename, content)
markup_impls.find { |impl|
- impl.match?(language)
+ impl.match?(filename, language)
}
end
def language(filename, content)
- blob = Linguist::Blob.new(filename, content)
- return Linguist.detect(blob, allow_empty: true)
+ if defined?(::Linguist)
+ blob = Linguist::Blob.new(filename, content)
+ return Linguist.detect(blob, allow_empty: true)
+ end
end
# Define markups
diff --git a/lib/github/markup/command_implementation.rb b/lib/github/markup/command_implementation.rb
index d0f2fc47..439ed293 100644
--- a/lib/github/markup/command_implementation.rb
+++ b/lib/github/markup/command_implementation.rb
@@ -15,8 +15,8 @@ class CommandError < RuntimeError
class CommandImplementation < Implementation
attr_reader :command, :block, :name
- def initialize(languages, command, name, &block)
- super languages
+ def initialize(regexp, languages, command, name, &block)
+ super(regexp, languages)
@command = command.to_s
@block = block
@name = name
diff --git a/lib/github/markup/gem_implementation.rb b/lib/github/markup/gem_implementation.rb
index 08383f52..1391de97 100644
--- a/lib/github/markup/gem_implementation.rb
+++ b/lib/github/markup/gem_implementation.rb
@@ -5,8 +5,8 @@ module Markup
class GemImplementation < Implementation
attr_reader :gem_name, :renderer
- def initialize(languages, gem_name, &renderer)
- super languages
+ def initialize(regexp, languages, gem_name, &renderer)
+ super(regexp, languages)
@gem_name = gem_name.to_s
@renderer = renderer
end
diff --git a/lib/github/markup/implementation.rb b/lib/github/markup/implementation.rb
index 46df1510..fb31165b 100644
--- a/lib/github/markup/implementation.rb
+++ b/lib/github/markup/implementation.rb
@@ -1,10 +1,15 @@
module GitHub
module Markup
class Implementation
+ attr_reader :regexp
attr_reader :languages
- def initialize(languages)
- @languages = languages
+ def initialize(regexp, languages)
+ @regexp = regexp
+
+ if defined?(::Linguist)
+ @languages = languages.map {|l| Linguist::Language[l]}
+ end
end
def load
@@ -15,8 +20,18 @@ def render(content)
raise NotImplementedError, "subclasses of GitHub::Markup::Implementation must define #render"
end
- def match?(language)
- languages.include? language
+ def match?(filename, language)
+ if defined?(::Linguist)
+ languages.include? language
+ else
+ file_ext_regexp =~ filename
+ end
+ end
+
+ private
+
+ def file_ext_regexp
+ @file_ext_regexp ||= /\.(#{regexp})\z/
end
end
end
diff --git a/lib/github/markup/markdown.rb b/lib/github/markup/markdown.rb
index 0d8555c3..0894fa03 100644
--- a/lib/github/markup/markdown.rb
+++ b/lib/github/markup/markdown.rb
@@ -28,7 +28,9 @@ class Markdown < Implementation
}
def initialize
- super([Linguist::Language["Markdown"], Linguist::Language["RMarkdown"], Linguist::Language["Literate CoffeeScript"]])
+ super(
+ /md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i,
+ ["Markdown", "RMarkdown", "Literate CoffeeScript"])
end
def load
diff --git a/lib/github/markup/rdoc.rb b/lib/github/markup/rdoc.rb
index e96ddf07..1064f24b 100644
--- a/lib/github/markup/rdoc.rb
+++ b/lib/github/markup/rdoc.rb
@@ -6,7 +6,7 @@ module GitHub
module Markup
class RDoc < Implementation
def initialize
- super([Linguist::Language["RDoc"]])
+ super(/rdoc/, ["RDoc"])
end
def render(content)
diff --git a/lib/github/markups.rb b/lib/github/markups.rb
index 24ecaffa..538ee7d0 100644
--- a/lib/github/markups.rb
+++ b/lib/github/markups.rb
@@ -1,34 +1,33 @@
require "github/markup/markdown"
require "github/markup/rdoc"
require "shellwords"
-require "linguist"
markup_impl(::GitHub::Markups::MARKUP_MARKDOWN, ::GitHub::Markup::Markdown.new)
-markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, [Linguist::Language["Textile"]]) do |content|
+markup(::GitHub::Markups::MARKUP_TEXTILE, :redcloth, /textile/, ["Textile"]) do |content|
RedCloth.new(content).to_html
end
markup_impl(::GitHub::Markups::MARKUP_RDOC, GitHub::Markup::RDoc.new)
-markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', [Linguist::Language["Org"]]) do |content|
+markup(::GitHub::Markups::MARKUP_ORG, 'org-ruby', /org/, ["Org"]) do |content|
Orgmode::Parser.new(content, {
:allow_include_files => false,
:skip_syntax_highlight => true
}).to_html
end
-markup(::GitHub::Markups::MARKUP_CREOLE, :creole, [Linguist::Language["Creole"]]) do |content|
+markup(::GitHub::Markups::MARKUP_CREOLE, :creole, /creole/, ["Creole"]) do |content|
Creole.creolize(content)
end
-markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, [Linguist::Language["MediaWiki"]]) do |content|
+markup(::GitHub::Markups::MARKUP_MEDIAWIKI, :wikicloth, /mediawiki|wiki/, ["MediaWiki"]) do |content|
wikicloth = WikiCloth::WikiCloth.new(:data => content)
WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt' unless WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS.include?('tt')
wikicloth.to_html(:noedit => true)
end
-markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, [Linguist::Language["AsciiDoc"]]) do |content|
+markup(::GitHub::Markups::MARKUP_ASCIIDOC, :asciidoctor, /adoc|asc(iidoc)?/, ["AsciiDoc"]) do |content|
Asciidoctor::Compliance.unique_id_start_index = 1
Asciidoctor.convert(content, :safe => :secure, :attributes => %w(showtitle=@ idprefix idseparator=- env=github env-github source-highlighter=html-pipeline))
end
@@ -36,8 +35,9 @@
command(
::GitHub::Markups::MARKUP_RST,
"python2 -S #{Shellwords.escape(File.dirname(__FILE__))}/commands/rest2html",
- [Linguist::Language["reStructuredText"]],
+ /re?st(\.txt)?/,
+ ["reStructuredText"],
"restructuredtext"
)
-command(::GitHub::Markups::MARKUP_POD, :pod2html, [Linguist::Language["Pod"]], "pod")
+command(::GitHub::Markups::MARKUP_POD, :pod2html, /pod/, ["Pod"], "pod")
diff --git a/test/markup_test.rb b/test/markup_test.rb
index 6c8365d4..ccd1818e 100644
--- a/test/markup_test.rb
+++ b/test/markup_test.rb
@@ -102,7 +102,7 @@ def test_rendering_by_symbol
end
def test_raises_error_if_command_exits_non_zero
- GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', [Linguist::Language['Java']], 'fail')
+ GitHub::Markup.command(:doesntmatter, 'test/fixtures/fail.sh', /fail/, ['Java'], 'fail')
assert GitHub::Markup.can_render?('README.java', 'stop swallowing errors')
begin
GitHub::Markup.render('README.java', "stop swallowing errors")
From 3b342a4666352a2b8f96f6e52b310da31f63a9a6 Mon Sep 17 00:00:00 2001
From: Yuki Izumi
Date: Mon, 27 Mar 2017 13:17:58 +1100
Subject: [PATCH 272/416] :gem: bump to 1.5.0
---
lib/github-markup.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/github-markup.rb b/lib/github-markup.rb
index fe275b43..37db64f9 100644
--- a/lib/github-markup.rb
+++ b/lib/github-markup.rb
@@ -1,6 +1,6 @@
module GitHub
module Markup
- VERSION = '1.4.9'
+ VERSION = '1.5.0'
Version = VERSION
end
end
From 0c845949591878b6b9551417961474a85ffbad77 Mon Sep 17 00:00:00 2001
From: PikachuEXE