ghpreview 0.0.7 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +65 -0
- data/Gemfile +6 -1
- data/README.md +10 -5
- data/Rakefile +3 -1
- data/bin/ghpreview +9 -8
- data/ghpreview.gemspec +32 -14
- data/lib/ghpreview.rb +8 -2
- data/lib/ghpreview/converter.rb +29 -0
- data/lib/ghpreview/previewer.rb +13 -75
- data/lib/ghpreview/template.erb +2 -0
- data/lib/ghpreview/version.rb +3 -1
- data/lib/ghpreview/viewer.rb +26 -0
- data/lib/ghpreview/watcher.rb +26 -0
- data/lib/ghpreview/wrapper.rb +42 -0
- data/spec/converter_spec.rb +19 -0
- data/spec/preview_readme +6 -0
- data/spec/watch_readme +6 -0
- data/spec/wrapper_spec.rb +20 -0
- metadata +175 -43
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ecd6a28a4028bf030b8c9e94cb16ee9d6cb4764de12830f4e09340a001578508
|
4
|
+
data.tar.gz: 1f046c3bf96a82d23bbe5823ba9c8cbfa8d492fdab231cbb0a5306bd080a0f76
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4c9f845b3d78a8c13aff8a2d292b4a66fde9c6dcaf806101bff274179b7af4760e802ecd1ea68da80ba5524a4e49cf09adb96633f66835fa280e9681d39a7a20
|
7
|
+
data.tar.gz: 5f799472562d73c65b3bb8b758064f4d60c1fcd6c00b62d78f2624705b22108abd8287d5397269cf8f1ca18dfaf33ab7f3e5b4f3a71fc9be156e86b7bfb13b7c
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.2.0 - September 30th, 2019
|
4
|
+
|
5
|
+
- First update after 6 years: Udpate gem versions to get the gem working again with modern rubies.
|
6
|
+
- Currently tested in: 2.4, 2.5, 2.6 and ruby-head
|
7
|
+
|
8
|
+
## 0.1.1 - December 23, 2013
|
9
|
+
|
10
|
+
- Specify html-pipeline dependencies. Also now using Bundler to sandbox the required gems. This should make it fail if the dependencies are not specified in the gemspec.
|
11
|
+
- Require rspec
|
12
|
+
|
13
|
+
## 0.1.0 - December 22, 2013
|
14
|
+
|
15
|
+
- Update Listener and use new API
|
16
|
+
- Update versions of html-pipeline and github-linguist
|
17
|
+
|
18
|
+
## 0.0.9 - August 9, 2013
|
19
|
+
|
20
|
+
- Include anchor links in headings
|
21
|
+
|
22
|
+
## 0.0.8 - June 22, 2013
|
23
|
+
|
24
|
+
- Add convenience executables for testing
|
25
|
+
- Extract Viewer, Wrapper, Converter, Watcher.
|
26
|
+
- Allow an alternative browser to be used with the -a switch on GNU/Linux.
|
27
|
+
|
28
|
+
## 0.0.7 - April 4, 2013
|
29
|
+
|
30
|
+
- Alow an alternate browser to be used with the -a switch on Mac.
|
31
|
+
|
32
|
+
## 0.0.6 - January 4, 2013
|
33
|
+
|
34
|
+
- SIGINT trapping and error handling
|
35
|
+
- Updates dependency versions
|
36
|
+
|
37
|
+
## 0.0.5 - December 20, 2012
|
38
|
+
|
39
|
+
- Lock version of github-linguist to known working version
|
40
|
+
|
41
|
+
## 0.0.4 - December 18, 2012
|
42
|
+
|
43
|
+
- Remove CamoFilter, add asset_root for EmojiFilter
|
44
|
+
- Add note about icu.
|
45
|
+
|
46
|
+
## 0.0.3 - November 30, 2012
|
47
|
+
|
48
|
+
- Cache the stylesheets for a week
|
49
|
+
- Avoids using the GitHub API and uses Github's html-pipeline.
|
50
|
+
- Refactor obfuscated code.
|
51
|
+
- Improvements on the README
|
52
|
+
|
53
|
+
## 0.0.2 - November 26, 2012
|
54
|
+
|
55
|
+
- Avoid SSL verifications errors when using open-uri
|
56
|
+
- Adds Linux compatibility
|
57
|
+
- Cache the fingerprinted stylesheets links for a day
|
58
|
+
- Use ERB for HTML template
|
59
|
+
- Add live updating preview as a command line option
|
60
|
+
- Rename to ghpreview for better tab-completion
|
61
|
+
|
62
|
+
## 0.0.1 - November 26, 2012
|
63
|
+
|
64
|
+
- Initial release with executable.
|
65
|
+
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -33,10 +33,14 @@ option:
|
|
33
33
|
$ ghpreview -w README.md
|
34
34
|
```
|
35
35
|
|
36
|
-
To use an alternate browser
|
36
|
+
To use an alternate browser, use the `-a` (or `--application`) option:
|
37
37
|
|
38
38
|
```bash
|
39
|
+
# On Mac:
|
39
40
|
$ ghpreview -a Safari.app README.md
|
41
|
+
|
42
|
+
# On GNU/Linux:
|
43
|
+
$ ghpreview -a konqueror README.md
|
40
44
|
```
|
41
45
|
|
42
46
|
## Why is this better than X?
|
@@ -56,7 +60,8 @@ and Github's own stylesheets to style it :octocat:
|
|
56
60
|
## Contributing
|
57
61
|
|
58
62
|
1. Fork it
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
64
|
+
1. Write specs (`bundle exec rspec spec`)
|
65
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
66
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
67
|
+
1. Create new Pull Request
|
data/Rakefile
CHANGED
data/bin/ghpreview
CHANGED
@@ -1,32 +1,33 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
trap(
|
4
|
+
trap('INT') { exit }
|
4
5
|
require 'optparse'
|
5
6
|
require 'ghpreview'
|
6
7
|
|
7
8
|
options = {}
|
8
9
|
|
9
10
|
optparse = OptionParser.new do |opts|
|
10
|
-
opts.banner =
|
11
|
-
opts.separator
|
11
|
+
opts.banner = 'Usage: ghpreview [options] FILE'
|
12
|
+
opts.separator ''
|
12
13
|
|
13
|
-
opts.on(
|
14
|
+
opts.on('-w', '--watch', 'Watch for changes') do |w|
|
14
15
|
options[:watch] = w
|
15
16
|
end
|
16
17
|
|
17
|
-
opts.on(
|
18
|
+
opts.on('-a', '--application APP', 'Alternate browser') do |a|
|
18
19
|
options[:application] = a
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
|
-
def valid_file?
|
23
|
-
filename
|
23
|
+
def valid_file?(filename)
|
24
|
+
filename && File.exist?(filename) && File.file?(filename)
|
24
25
|
end
|
25
26
|
|
26
27
|
begin
|
27
28
|
optparse.parse!
|
28
29
|
unless valid_file? ARGV[0]
|
29
|
-
puts
|
30
|
+
puts 'Missing markdown file.'
|
30
31
|
puts optparse
|
31
32
|
exit
|
32
33
|
end
|
data/ghpreview.gemspec
CHANGED
@@ -1,25 +1,43 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'ghpreview/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
8
|
+
gem.name = 'ghpreview'
|
8
9
|
gem.version = GHPreview::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email = [
|
11
|
-
gem.description =
|
10
|
+
gem.authors = ['Adam McCrea', 'Fernando Briano']
|
11
|
+
gem.email = ['fernando@picandocodigo.net', 'adam@adamlogic.com']
|
12
|
+
gem.description = 'Command line utility for previewing Markdown files with Github styling'
|
12
13
|
gem.summary = gem.description
|
13
|
-
gem.homepage =
|
14
|
+
gem.homepage = 'http://github.com/edgecase/ghpreview'
|
14
15
|
|
15
|
-
gem.files = `git ls-files`.split(
|
16
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
17
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths = [
|
19
|
+
gem.require_paths = ['lib']
|
20
|
+
gem.metadata = {
|
21
|
+
"bug_tracker_uri" => "https://github.com/edgecase/ghpreview/issues",
|
22
|
+
"changelog_uri" => "https://github.com/edgecase/ghpreview/blob/master/CHANGELOG.md",
|
23
|
+
"documentation_uri" => "https://github.com/edgecase/ghpreview/blob/master/README.md#gamesdb",
|
24
|
+
"homepage_uri" => "https://github.com/edgecase/ghpreview",
|
25
|
+
"source_code_uri" => "https://github.com/edgecase/ghpreview",
|
26
|
+
}
|
19
27
|
|
20
|
-
gem.add_dependency '
|
28
|
+
gem.add_dependency 'bundler'
|
29
|
+
gem.add_dependency 'commonmarker', '~> 0.16'
|
30
|
+
gem.add_dependency 'escape_utils', '~> 1.0'
|
31
|
+
gem.add_dependency 'gemoji', '~> 2.0'
|
32
|
+
gem.add_dependency 'github-linguist', '~> 7.6'
|
33
|
+
gem.add_dependency 'github-markdown', '~> 0.6'
|
34
|
+
gem.add_dependency 'html-pipeline', '~> 2.12'
|
35
|
+
gem.add_dependency 'httpclient', '~> 2.8'
|
36
|
+
gem.add_dependency 'listen', '~> 3.1.5'
|
21
37
|
gem.add_dependency 'rb-fsevent'
|
22
|
-
gem.add_dependency '
|
23
|
-
gem.add_dependency '
|
24
|
-
gem.add_dependency '
|
38
|
+
gem.add_dependency 'rinku', '~> 1.7'
|
39
|
+
gem.add_dependency 'rouge', '~> 3.1'
|
40
|
+
gem.add_dependency 'sanitize', '~> 4.4.0'
|
41
|
+
|
42
|
+
gem.add_development_dependency 'byebug'
|
25
43
|
end
|
data/lib/ghpreview.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'html/pipeline'
|
4
|
+
|
5
|
+
module GHPreview
|
6
|
+
class Converter
|
7
|
+
def self.to_html(markdown)
|
8
|
+
context = {
|
9
|
+
asset_root: 'https://github.githubassets.com/images/icons/',
|
10
|
+
base_url: 'https://github.githubassets.com/images/icons/',
|
11
|
+
gfm: false
|
12
|
+
}
|
13
|
+
|
14
|
+
pipeline = HTML::Pipeline.new([
|
15
|
+
HTML::Pipeline::MarkdownFilter,
|
16
|
+
HTML::Pipeline::SanitizationFilter,
|
17
|
+
HTML::Pipeline::ImageMaxWidthFilter,
|
18
|
+
HTML::Pipeline::TableOfContentsFilter,
|
19
|
+
HTML::Pipeline::HttpsFilter,
|
20
|
+
HTML::Pipeline::AutolinkFilter,
|
21
|
+
HTML::Pipeline::MentionFilter,
|
22
|
+
HTML::Pipeline::EmojiFilter,
|
23
|
+
HTML::Pipeline::SyntaxHighlightFilter
|
24
|
+
], context)
|
25
|
+
|
26
|
+
pipeline.call(markdown)[:output].to_s
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/ghpreview/previewer.rb
CHANGED
@@ -1,94 +1,32 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'converter'
|
4
|
+
require_relative 'wrapper'
|
5
|
+
require_relative 'viewer'
|
6
|
+
require_relative 'watcher'
|
5
7
|
|
6
8
|
module GHPreview
|
7
9
|
class Previewer
|
8
|
-
HTML_FILEPATH = '/tmp/ghpreview.html'
|
9
|
-
RAW_TEMPLATE_FILEPATH = "#{File.dirname(__FILE__)}/template.erb"
|
10
|
-
STYLED_TEMPLATE_FILEPATH = "/tmp/ghpreview-template.erb"
|
11
|
-
HOMEPAGE = 'https://github.com'
|
12
|
-
TEMPLATE_CACHE_DURATION = 60 * 60 * 24 * 7 # one week
|
13
|
-
|
14
10
|
def initialize(md_filepath, options = {})
|
15
|
-
|
16
|
-
@http = HTTPClient.new
|
17
|
-
generate_template_with_fingerprinted_stylesheet_links
|
11
|
+
Wrapper.generate_template_with_fingerprinted_stylesheet_links
|
18
12
|
|
13
|
+
@md_filepath = md_filepath
|
19
14
|
@application = options[:application]
|
15
|
+
|
20
16
|
options[:watch] ? listen : open
|
21
17
|
end
|
22
18
|
|
23
19
|
def listen
|
24
20
|
puts "Previewing #{@md_filepath}. CTRL-C to stop."
|
25
|
-
|
26
|
-
|
27
|
-
filename = File.basename(@md_filepath)
|
28
|
-
dirname = File.dirname(File.expand_path(@md_filepath))
|
29
|
-
|
30
|
-
Listen.to(dirname, filter: /#{filename}$/) do |modified|
|
21
|
+
Watcher.watch @md_filepath do
|
31
22
|
open
|
32
23
|
end
|
33
24
|
end
|
34
25
|
|
35
26
|
def open
|
36
|
-
html =
|
37
|
-
html =
|
38
|
-
|
39
|
-
|
40
|
-
if RUBY_PLATFORM =~ /linux/
|
41
|
-
command = 'xdg-open'
|
42
|
-
else
|
43
|
-
command = @application ? "open -a #{@application}" : 'open'
|
44
|
-
end
|
45
|
-
`#{command} #{HTML_FILEPATH}`
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
def markdown_to_html
|
51
|
-
markdown = File.read(@md_filepath)
|
52
|
-
|
53
|
-
context = {
|
54
|
-
asset_root: "http://assets.github.com/images/icons/",
|
55
|
-
gfm: false
|
56
|
-
}
|
57
|
-
|
58
|
-
pipeline = HTML::Pipeline.new([
|
59
|
-
HTML::Pipeline::MarkdownFilter,
|
60
|
-
HTML::Pipeline::SanitizationFilter,
|
61
|
-
HTML::Pipeline::ImageMaxWidthFilter,
|
62
|
-
HTML::Pipeline::HttpsFilter,
|
63
|
-
HTML::Pipeline::MentionFilter,
|
64
|
-
HTML::Pipeline::EmojiFilter,
|
65
|
-
HTML::Pipeline::SyntaxHighlightFilter
|
66
|
-
], context)
|
67
|
-
result = pipeline.call(markdown)[:output].to_s
|
68
|
-
end
|
69
|
-
|
70
|
-
def generate_template_with_fingerprinted_stylesheet_links
|
71
|
-
if stale_template?(STYLED_TEMPLATE_FILEPATH)
|
72
|
-
stylesheet_links = @http.get(HOMEPAGE).body.split("\n").select do |line|
|
73
|
-
line =~ /https:.*github.*\.css/
|
74
|
-
end.join
|
75
|
-
|
76
|
-
raw_template = File.read(RAW_TEMPLATE_FILEPATH)
|
77
|
-
styled_template = ERB.new(raw_template).result(binding)
|
78
|
-
File.open(STYLED_TEMPLATE_FILEPATH, 'w') do |f|
|
79
|
-
f.write(styled_template)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def stale_template?(filepath)
|
85
|
-
return true unless File.exists?(filepath)
|
86
|
-
File.mtime(filepath) < (Time.now - TEMPLATE_CACHE_DURATION)
|
87
|
-
end
|
88
|
-
|
89
|
-
def wrap_content_with_full_document(content)
|
90
|
-
template = File.read(STYLED_TEMPLATE_FILEPATH)
|
91
|
-
ERB.new(template).result(binding)
|
27
|
+
html = Converter.to_html(File.read(@md_filepath))
|
28
|
+
html = Wrapper.wrap_html(html)
|
29
|
+
Viewer.view_html html, @application
|
92
30
|
end
|
93
31
|
end
|
94
32
|
end
|
data/lib/ghpreview/template.erb
CHANGED
data/lib/ghpreview/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GHPreview
|
4
|
+
class Viewer
|
5
|
+
HTML_FILEPATH = '/tmp/ghpreview.html'
|
6
|
+
|
7
|
+
def self.view_html(html, application = nil)
|
8
|
+
File.open(HTML_FILEPATH, 'w') { |f| f << html }
|
9
|
+
|
10
|
+
if RUBY_PLATFORM =~ /linux/
|
11
|
+
command = if application
|
12
|
+
`#{application} #{HTML_FILEPATH} </dev/null &>/dev/null &`
|
13
|
+
else
|
14
|
+
`xdg-open #{HTML_FILEPATH}`
|
15
|
+
end
|
16
|
+
else
|
17
|
+
command = if application
|
18
|
+
"open -a #{application}"
|
19
|
+
else
|
20
|
+
'open'
|
21
|
+
end
|
22
|
+
`#{command} #{HTML_FILEPATH}`
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'listen'
|
4
|
+
|
5
|
+
module GHPreview
|
6
|
+
class Watcher
|
7
|
+
def self.watch(filepath)
|
8
|
+
yield
|
9
|
+
|
10
|
+
filename = File.basename(filepath)
|
11
|
+
dirname = File.dirname(File.expand_path(filepath))
|
12
|
+
|
13
|
+
listener = Listen.to(dirname, filter: /#{filename}$/) do |_modified|
|
14
|
+
yield
|
15
|
+
end
|
16
|
+
listener.start
|
17
|
+
|
18
|
+
Signal.trap('INT') do
|
19
|
+
listener.stop
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
|
23
|
+
sleep
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'erb'
|
4
|
+
require 'httpclient'
|
5
|
+
|
6
|
+
module GHPreview
|
7
|
+
class Wrapper
|
8
|
+
GITHUB_URL = 'https://github.com'
|
9
|
+
STYLED_TEMPLATE_FILEPATH = '/tmp/ghpreview-template.erb'
|
10
|
+
TEMPLATE_CACHE_DURATION = 60 * 60 * 24 * 7 # one week
|
11
|
+
RAW_TEMPLATE_FILEPATH = "#{File.dirname(__FILE__)}/template.erb"
|
12
|
+
|
13
|
+
def self.generate_template_with_fingerprinted_stylesheet_links
|
14
|
+
http = HTTPClient.new
|
15
|
+
|
16
|
+
if stale_template?(STYLED_TEMPLATE_FILEPATH)
|
17
|
+
stylesheet_links = http.get(GITHUB_URL).body.split("\n").select do |line|
|
18
|
+
line =~ /https:.*github.*\.css/
|
19
|
+
end.join
|
20
|
+
|
21
|
+
raw_template = File.read(RAW_TEMPLATE_FILEPATH)
|
22
|
+
styled_template = ERB.new(raw_template).result(binding)
|
23
|
+
File.open(STYLED_TEMPLATE_FILEPATH, 'w') do |f|
|
24
|
+
f.write(styled_template)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.wrap_html(content)
|
30
|
+
template = File.read(STYLED_TEMPLATE_FILEPATH)
|
31
|
+
ERB.new(template).result(binding)
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def self.stale_template?(filepath)
|
37
|
+
return true unless File.exist?(filepath)
|
38
|
+
|
39
|
+
File.mtime(filepath) < (Time.now - TEMPLATE_CACHE_DURATION)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../lib/ghpreview/converter'
|
4
|
+
|
5
|
+
describe GHPreview::Converter do
|
6
|
+
let(:converter) { GHPreview::Converter }
|
7
|
+
|
8
|
+
it 'converts markdown to HTML' do
|
9
|
+
expect(converter.to_html('*Foo*')).to eql('<p><em>Foo</em></p>')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'includes anchor links in headings' do
|
13
|
+
expect(converter.to_html('# Foo')).to eql("<h1>\n<a id=\"foo\" class=\"anchor\" href=\"#foo\" aria-hidden=\"true\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a>Foo</h1>")
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'passes through non-ASCII characters' do
|
17
|
+
expect(converter.to_html('Baña')).to eql('<p>Baña</p>')
|
18
|
+
end
|
19
|
+
end
|
data/spec/preview_readme
ADDED
data/spec/watch_readme
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../lib/ghpreview/wrapper'
|
4
|
+
|
5
|
+
describe GHPreview::Wrapper do
|
6
|
+
let(:wrapper) { GHPreview::Wrapper }
|
7
|
+
|
8
|
+
it 'wraps an HTML fragment in a full document' do
|
9
|
+
fragment = '<h1>foo</h1>'
|
10
|
+
expect(wrapper.wrap_html(fragment)).to include('<html>')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'passes through non-ASCII chars' do
|
14
|
+
expect(wrapper.wrap_html('<h1>Baña</h1>')).to include('Baña')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'specifies the charset' do
|
18
|
+
expect(wrapper.wrap_html('# foo')).to include("charset='utf-8'")
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,105 +1,223 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghpreview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Adam McCrea
|
8
|
+
- Fernando Briano
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-09-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
|
-
- -
|
18
|
+
- - ">="
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '0'
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '0'
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
29
|
+
name: commonmarker
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
|
-
- -
|
32
|
+
- - "~>"
|
36
33
|
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
34
|
+
version: '0.16'
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
|
-
- -
|
39
|
+
- - "~>"
|
44
40
|
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
41
|
+
version: '0.16'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: escape_utils
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: gemoji
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: github-linguist
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '7.6'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '7.6'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: github-markdown
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0.6'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0.6'
|
46
98
|
- !ruby/object:Gem::Dependency
|
47
99
|
name: html-pipeline
|
48
100
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
101
|
requirements:
|
51
|
-
- -
|
102
|
+
- - "~>"
|
52
103
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
104
|
+
version: '2.12'
|
54
105
|
type: :runtime
|
55
106
|
prerelease: false
|
56
107
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
108
|
requirements:
|
59
|
-
- -
|
109
|
+
- - "~>"
|
60
110
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
111
|
+
version: '2.12'
|
62
112
|
- !ruby/object:Gem::Dependency
|
63
113
|
name: httpclient
|
64
114
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
115
|
requirements:
|
67
|
-
- -
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '2.8'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '2.8'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: listen
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 3.1.5
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 3.1.5
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rb-fsevent
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
68
145
|
- !ruby/object:Gem::Version
|
69
146
|
version: '0'
|
70
147
|
type: :runtime
|
71
148
|
prerelease: false
|
72
149
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
150
|
requirements:
|
75
|
-
- -
|
151
|
+
- - ">="
|
76
152
|
- !ruby/object:Gem::Version
|
77
153
|
version: '0'
|
78
154
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
155
|
+
name: rinku
|
80
156
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
157
|
requirements:
|
83
|
-
- -
|
158
|
+
- - "~>"
|
84
159
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
160
|
+
version: '1.7'
|
86
161
|
type: :runtime
|
87
162
|
prerelease: false
|
88
163
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
164
|
requirements:
|
91
|
-
- -
|
165
|
+
- - "~>"
|
92
166
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
167
|
+
version: '1.7'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: rouge
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '3.1'
|
175
|
+
type: :runtime
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '3.1'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: sanitize
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - "~>"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 4.4.0
|
189
|
+
type: :runtime
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - "~>"
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 4.4.0
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: byebug
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
94
210
|
description: Command line utility for previewing Markdown files with Github styling
|
95
211
|
email:
|
212
|
+
- fernando@picandocodigo.net
|
96
213
|
- adam@adamlogic.com
|
97
214
|
executables:
|
98
215
|
- ghpreview
|
99
216
|
extensions: []
|
100
217
|
extra_rdoc_files: []
|
101
218
|
files:
|
102
|
-
- .gitignore
|
219
|
+
- ".gitignore"
|
220
|
+
- CHANGELOG.md
|
103
221
|
- Gemfile
|
104
222
|
- LICENSE.txt
|
105
223
|
- README.md
|
@@ -107,32 +225,46 @@ files:
|
|
107
225
|
- bin/ghpreview
|
108
226
|
- ghpreview.gemspec
|
109
227
|
- lib/ghpreview.rb
|
228
|
+
- lib/ghpreview/converter.rb
|
110
229
|
- lib/ghpreview/previewer.rb
|
111
230
|
- lib/ghpreview/template.erb
|
112
231
|
- lib/ghpreview/version.rb
|
113
|
-
|
232
|
+
- lib/ghpreview/viewer.rb
|
233
|
+
- lib/ghpreview/watcher.rb
|
234
|
+
- lib/ghpreview/wrapper.rb
|
235
|
+
- spec/converter_spec.rb
|
236
|
+
- spec/preview_readme
|
237
|
+
- spec/watch_readme
|
238
|
+
- spec/wrapper_spec.rb
|
239
|
+
homepage: http://github.com/edgecase/ghpreview
|
114
240
|
licenses: []
|
241
|
+
metadata:
|
242
|
+
bug_tracker_uri: https://github.com/edgecase/ghpreview/issues
|
243
|
+
changelog_uri: https://github.com/edgecase/ghpreview/blob/master/CHANGELOG.md
|
244
|
+
documentation_uri: https://github.com/edgecase/ghpreview/blob/master/README.md#gamesdb
|
245
|
+
homepage_uri: https://github.com/edgecase/ghpreview
|
246
|
+
source_code_uri: https://github.com/edgecase/ghpreview
|
115
247
|
post_install_message:
|
116
248
|
rdoc_options: []
|
117
249
|
require_paths:
|
118
250
|
- lib
|
119
251
|
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
252
|
requirements:
|
122
|
-
- -
|
253
|
+
- - ">="
|
123
254
|
- !ruby/object:Gem::Version
|
124
255
|
version: '0'
|
125
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
-
none: false
|
127
257
|
requirements:
|
128
|
-
- -
|
258
|
+
- - ">="
|
129
259
|
- !ruby/object:Gem::Version
|
130
260
|
version: '0'
|
131
261
|
requirements: []
|
132
|
-
|
133
|
-
rubygems_version: 1.8.23
|
262
|
+
rubygems_version: 3.0.6
|
134
263
|
signing_key:
|
135
|
-
specification_version:
|
264
|
+
specification_version: 4
|
136
265
|
summary: Command line utility for previewing Markdown files with Github styling
|
137
|
-
test_files:
|
138
|
-
|
266
|
+
test_files:
|
267
|
+
- spec/converter_spec.rb
|
268
|
+
- spec/preview_readme
|
269
|
+
- spec/watch_readme
|
270
|
+
- spec/wrapper_spec.rb
|