github-markup 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -2
- data/github-markup.gemspec +1 -0
- data/lib/github-markup.rb +1 -1
- data/lib/github/commands/rest2html +48 -29
- data/lib/github/markup/markdown.rb +3 -0
- data/lib/github/markups.rb +3 -1
- data/test/markups/README.mediawiki +3 -0
- data/test/markups/README.mediawiki.html +3 -0
- data/test/markups/README.rst +18 -0
- data/test/markups/README.rst.html +12 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afc82c320a97a18e1f5b60f73dc24655e976a44b
|
4
|
+
data.tar.gz: 191b767ae24fda9f343857c6a74c308b87cb91f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e377067276eedcc237ad87a899b023308def31c966c6cc13ed038d5738d70a6a5536a551acf77d88094270fb23b1b4e12259d1c49a60f12cc0ba3ae55fc4f4c
|
7
|
+
data.tar.gz: 3a379abbdebf7fa103412865ebd0b702cd6b14ea3144720e12f6f6e4a1f48f95e79f8e1e6a5003878e074b41cd905530f1bf310e70dd95b6e30e40203b2b0986
|
data/.travis.yml
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
language: ruby
|
2
|
-
before_install: sudo pip install docutils
|
3
2
|
rvm:
|
4
|
-
- 1.9.3
|
5
3
|
- 2.0.0
|
6
4
|
- 2.1.1
|
7
5
|
- jruby-19mode
|
@@ -9,3 +7,15 @@ jdk:
|
|
9
7
|
- oraclejdk8
|
10
8
|
notifications:
|
11
9
|
email: false
|
10
|
+
git:
|
11
|
+
depth: 10
|
12
|
+
before_install: sudo pip install docutils
|
13
|
+
cache:
|
14
|
+
- bundler
|
15
|
+
- pip
|
16
|
+
env:
|
17
|
+
global:
|
18
|
+
- "JRUBY_OPTS=-Xcext.enabled=true"
|
19
|
+
matrix:
|
20
|
+
allow_failures:
|
21
|
+
- rvm: jruby-19mode
|
data/github-markup.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
17
17
|
s.require_paths = %w[lib]
|
18
18
|
|
19
|
+
s.add_development_dependency 'activesupport', '~> 4.0'
|
19
20
|
s.add_development_dependency 'minitest', '~> 5.4.3'
|
20
21
|
s.add_development_dependency 'html-pipeline', '~> 1.0'
|
21
22
|
s.add_development_dependency 'sanitize', '~> 2.1.0'
|
data/lib/github-markup.rb
CHANGED
@@ -45,31 +45,45 @@ except:
|
|
45
45
|
import codecs
|
46
46
|
|
47
47
|
from docutils import nodes
|
48
|
-
from docutils.parsers.rst import roles
|
48
|
+
from docutils.parsers.rst import directives, roles
|
49
|
+
from docutils.parsers.rst.directives.body import CodeBlock
|
49
50
|
from docutils.core import publish_parts
|
50
51
|
from docutils.writers.html4css1 import Writer, HTMLTranslator
|
51
52
|
|
52
53
|
SETTINGS = {
|
53
54
|
'cloak_email_addresses': False,
|
54
55
|
'file_insertion_enabled': False,
|
55
|
-
'raw_enabled':
|
56
|
+
'raw_enabled': True,
|
56
57
|
'strip_comments': True,
|
57
58
|
'doctitle_xform': True,
|
58
59
|
'sectsubtitle_xform': True,
|
59
60
|
'initial_header_level': 2,
|
60
61
|
'report_level': 5,
|
61
|
-
'syntax_highlight'
|
62
|
-
'math_output'
|
62
|
+
'syntax_highlight': 'none',
|
63
|
+
'math_output': 'latex',
|
63
64
|
'field_name_limit': 50,
|
64
65
|
}
|
65
66
|
|
67
|
+
|
68
|
+
class DoctestDirective(CodeBlock):
|
69
|
+
"""Render Sphinx 'doctest:: [group]' blocks as 'code:: python'
|
70
|
+
"""
|
71
|
+
|
72
|
+
def run(self):
|
73
|
+
"""Discard any doctest group argument, render contents as python code
|
74
|
+
"""
|
75
|
+
self.arguments = ['python']
|
76
|
+
return super(DoctestDirective, self).run()
|
77
|
+
|
78
|
+
|
66
79
|
class GitHubHTMLTranslator(HTMLTranslator):
|
80
|
+
|
67
81
|
# removes the <div class="document"> tag wrapped around docs
|
68
82
|
# see also: http://bit.ly/1exfq2h (warning! sourceforge link.)
|
69
83
|
def depart_document(self, node):
|
70
84
|
HTMLTranslator.depart_document(self, node)
|
71
|
-
self.html_body.pop(0)
|
72
|
-
self.html_body.pop()
|
85
|
+
self.html_body.pop(0) # pop the starting <div> off
|
86
|
+
self.html_body.pop() # pop the ending </div> off
|
73
87
|
|
74
88
|
# technique for visiting sections, without generating additional divs
|
75
89
|
# see also: http://bit.ly/NHtyRx
|
@@ -102,36 +116,38 @@ class GitHubHTMLTranslator(HTMLTranslator):
|
|
102
116
|
def visit_table(self, node):
|
103
117
|
classes = ' '.join(['docutils', self.settings.table_style]).strip()
|
104
118
|
self.body.append(
|
105
|
-
|
119
|
+
self.starttag(node, 'table', CLASS=classes))
|
106
120
|
|
107
121
|
def depart_table(self, node):
|
108
122
|
self.body.append('</table>\n')
|
109
123
|
|
110
124
|
def depart_image(self, node):
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
125
|
+
uri = node['uri']
|
126
|
+
ext = os.path.splitext(uri)[1].lower()
|
127
|
+
# we need to swap RST's use of `object` with `img` tags
|
128
|
+
# see http://git.io/5me3dA
|
129
|
+
if ext == ".svg":
|
130
|
+
# preserve essential attributes
|
131
|
+
atts = {}
|
132
|
+
for attribute, value in node.attributes.items():
|
133
|
+
# we have no time for empty values
|
134
|
+
if value:
|
135
|
+
if attribute == "uri":
|
136
|
+
atts['src'] = value
|
137
|
+
else:
|
138
|
+
atts[attribute] = value
|
139
|
+
|
140
|
+
# toss off `object` tag
|
141
|
+
self.body.pop()
|
128
142
|
# add on `img` with attributes
|
129
|
-
|
130
|
-
|
143
|
+
self.body.append(self.starttag(node, 'img', **atts))
|
144
|
+
self.body.append(self.context.pop())
|
145
|
+
|
131
146
|
|
132
147
|
def kbd(name, rawtext, text, lineno, inliner, options=None, content=None):
|
133
148
|
|
134
|
-
|
149
|
+
return [nodes.raw('', '<kbd>%s</kbd>' % text, format='html')], []
|
150
|
+
|
135
151
|
|
136
152
|
def main():
|
137
153
|
"""
|
@@ -143,9 +159,9 @@ def main():
|
|
143
159
|
"""
|
144
160
|
try:
|
145
161
|
text = codecs.open(sys.argv[1], 'r', 'utf-8').read()
|
146
|
-
except IOError:
|
162
|
+
except IOError: # given filename could not be found
|
147
163
|
return ''
|
148
|
-
except IndexError:
|
164
|
+
except IndexError: # no filename given
|
149
165
|
text = sys.stdin.read()
|
150
166
|
|
151
167
|
writer = Writer()
|
@@ -153,6 +169,9 @@ def main():
|
|
153
169
|
|
154
170
|
roles.register_canonical_role('kbd', kbd)
|
155
171
|
|
172
|
+
# Render source code in Sphinx doctest blocks
|
173
|
+
directives.register_directive('doctest', DoctestDirective)
|
174
|
+
|
156
175
|
parts = publish_parts(text, writer=writer, settings_overrides=SETTINGS)
|
157
176
|
if 'html_body' in parts:
|
158
177
|
html = parts['html_body']
|
@@ -4,6 +4,9 @@ module GitHub
|
|
4
4
|
module Markup
|
5
5
|
class Markdown < Implementation
|
6
6
|
MARKDOWN_GEMS = {
|
7
|
+
"commonmarker" => proc { |content|
|
8
|
+
CommonMarker.render_html(content, :default, %i[tagfilter autolink table strikethrough])
|
9
|
+
},
|
7
10
|
"github/markdown" => proc { |content|
|
8
11
|
GitHub::Markdown.render(content)
|
9
12
|
},
|
data/lib/github/markups.rb
CHANGED
@@ -22,7 +22,9 @@ markup(:creole, /creole/) do |content|
|
|
22
22
|
end
|
23
23
|
|
24
24
|
markup(:wikicloth, /mediawiki|wiki/) do |content|
|
25
|
-
WikiCloth::WikiCloth.new(:data => content)
|
25
|
+
wikicloth = WikiCloth::WikiCloth.new(:data => content)
|
26
|
+
WikiCloth::WikiBuffer::HTMLElement::ESCAPED_TAGS << 'tt'
|
27
|
+
wikicloth.to_html(:noedit => true)
|
26
28
|
end
|
27
29
|
|
28
30
|
markup(:asciidoctor, /adoc|asc(iidoc)?/) do |content|
|
@@ -6,6 +6,9 @@ __TOC__
|
|
6
6
|
|
7
7
|
= Red Bridge (JRuby Embed) =
|
8
8
|
|
9
|
+
<tt>one-<two</tt>
|
10
|
+
<pre>a-b</pre>
|
11
|
+
|
9
12
|
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 [[DirectJRubyEmbedding|legacy API]] should still work, but we strongly recommend Red Bridge for all new projects.
|
10
13
|
|
11
14
|
== Features of Red Bridge ==
|
@@ -18,6 +18,9 @@ Using Java from Ruby is JRuby's best-known feature---but you can also go in the
|
|
18
18
|
<a name="Red_Bridge_JRuby_Embed"></a>Red Bridge (JRuby Embed)</h1>
|
19
19
|
|
20
20
|
|
21
|
+
<p><tt>one-<two</tt>
|
22
|
+
</p><pre>a-b</pre>
|
23
|
+
|
21
24
|
|
22
25
|
<p>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 <a href="DirectJRubyEmbedding">legacy API</a> should still work, but we strongly recommend Red Bridge for all new projects.
|
23
26
|
</p>
|
data/test/markups/README.rst
CHANGED
@@ -31,6 +31,19 @@ The UTF-8 quote character in this table used to cause python to go boom. Now doc
|
|
31
31
|
Tabular Data, 5
|
32
32
|
Made up ratings, 11
|
33
33
|
|
34
|
+
.. code::
|
35
|
+
|
36
|
+
A block of code
|
37
|
+
|
38
|
+
.. code:: python
|
39
|
+
|
40
|
+
python.code('hooray')
|
41
|
+
|
42
|
+
.. doctest:: ignored
|
43
|
+
|
44
|
+
>>> some_function()
|
45
|
+
'result'
|
46
|
+
|
34
47
|
============== ==========================================================
|
35
48
|
Travis http://travis-ci.org/tony/pullv
|
36
49
|
Docs http://pullv.rtfd.org
|
@@ -59,3 +72,8 @@ Field list
|
|
59
72
|
someone@somewhere.org
|
60
73
|
|
61
74
|
Press :kbd:`Ctrl+C` to quit
|
75
|
+
|
76
|
+
|
77
|
+
.. raw:: html
|
78
|
+
|
79
|
+
<p><strong>RAW HTML!</strong></p><style> p {color:blue;} </style>
|
@@ -16,6 +16,16 @@
|
|
16
16
|
<li>Somé UTF-8°</li>
|
17
17
|
</ol>
|
18
18
|
<p>The UTF-8 quote character in this table used to cause python to go boom. Now docutils just silently ignores it.</p>
|
19
|
+
<pre>
|
20
|
+
A block of code
|
21
|
+
</pre>
|
22
|
+
<pre lang="python">
|
23
|
+
python.code('hooray')
|
24
|
+
</pre>
|
25
|
+
<pre lang="python">
|
26
|
+
>>> some_function()
|
27
|
+
'result'
|
28
|
+
</pre>
|
19
29
|
<table>
|
20
30
|
|
21
31
|
|
@@ -77,3 +87,5 @@ but no problem!</td>
|
|
77
87
|
<p><a href="mailto:someone@somewhere.org">someone@somewhere.org</a></p>
|
78
88
|
|
79
89
|
<p>Press <kbd>Ctrl+C</kbd> to quit</p>
|
90
|
+
|
91
|
+
<p><strong>RAW HTML!</strong></p> p {color:blue;}
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-markup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wanstrath
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: minitest
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
176
|
version: '0'
|
163
177
|
requirements: []
|
164
178
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.5.1
|
166
180
|
signing_key:
|
167
181
|
specification_version: 4
|
168
182
|
summary: The code GitHub uses to render README.markup
|