markdown_presenter 0.5.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/markdown_presenter.rb +33 -2
- metadata +58 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e0f76e3b85122c82c27e93edbfb226b8dd0e22e
|
4
|
+
data.tar.gz: cdf2edbed93f4f4a2bcf05c1a94e96aa86e477ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd5ffbbc9f3bb9e94a260fe7f9a1f67dbb02e3ff7b1428af18eac8d9940596629b01678abc4ee159cc206a6108542d46e5ce05588acbe5e2e718800ba7f954ea
|
7
|
+
data.tar.gz: d9276ce559af73f0edc3838a2ca73a5528fdc2e5d1bfd036605c540596efddb712e01032471fdeb5908ae799fcd2798e16b91dd057a8594caa372098e56e86b8
|
data/lib/markdown_presenter.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'haml'
|
4
4
|
require 'kramdown'
|
5
|
+
require 'nokogiri'
|
6
|
+
require 'open-uri'
|
7
|
+
require 'base64'
|
8
|
+
require 'mime/types'
|
5
9
|
|
6
10
|
def present title, content
|
7
11
|
template = File.read(File.join(File.dirname(__FILE__), "../presenter.html.haml"))
|
@@ -27,8 +31,35 @@ def content_of filename
|
|
27
31
|
end
|
28
32
|
end
|
29
33
|
|
34
|
+
def data_uri_for url
|
35
|
+
begin
|
36
|
+
response = open(url)
|
37
|
+
encoded_image = Base64.encode64 response.read
|
38
|
+
content_type = response.respond_to?(:meta) ? response.meta['content-type'] : MIME::Types.type_for(url[-3..url.size]).first.content_type
|
39
|
+
"data:#{content_type};base64,#{encoded_image}"
|
40
|
+
rescue
|
41
|
+
$stderr.puts "WARNING: An exception occurred trying to construct a data URI. We will fall back to the original URL.", $!, $!.backtrace
|
42
|
+
url
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def embed content
|
47
|
+
doc = Nokogiri::HTML(content)
|
48
|
+
tags_and_attributes = [['img', 'src'], ['link','href'], ['script', 'src']]
|
49
|
+
tags_and_attributes.each do |tag_name, src|
|
50
|
+
doc.css(tag_name).each do |tag|
|
51
|
+
tag[src] = data_uri_for tag[src]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
doc.css("body").inner_html
|
55
|
+
end
|
56
|
+
|
30
57
|
def process filename
|
31
|
-
puts present(filename, content_of(filename))
|
58
|
+
puts present(filename, embed(content_of(filename)))
|
32
59
|
end
|
33
60
|
|
34
|
-
|
61
|
+
if __FILE__ == $0
|
62
|
+
($stderr.puts "Specify a filename in argument."; exit 1) if ARGV.empty?
|
63
|
+
|
64
|
+
process ARGV[0]
|
65
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthieu Tanguay-Carel
|
@@ -9,7 +9,63 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-01-16 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: haml
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: kramdown
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: nokogiri
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mime-types
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
13
69
|
description: Transforms a markdown file into an HTML presentation
|
14
70
|
email: matthieutc@gmail.com
|
15
71
|
executables:
|