md-server 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/nice_html_converter.rb +44 -0
- data/lib/nice_kramdown_template.rb +14 -0
- data/md-server +11 -8
- metadata +53 -22
- data/rack-add-headers.rb +0 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f34de7d3a9d22f4bbb536c5563e1dde35f37ec21
|
4
|
+
data.tar.gz: d7d4c3425dd8c4e7b644c405d54f4c4be3514f0f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8c598570bfb7f8e78d36a4aa55e67b8d8235c26407949f02407973afbd83ff10865ff8493e91bb1795809d4a551f13b1680c402790c87229942a8ab5b1d7d1ab
|
7
|
+
data.tar.gz: a0aad31ba782856a0e402b182fe51045c7d5016e67e3c04f5303fd7a66376ac3010f2d154c528976a69ad277853ee021c5c52a45638ba450b0449fb78f05df8b
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'kramdown'
|
2
|
+
|
3
|
+
# Converts Markdown to HTML, and adds a bit of CSS and a title element.
|
4
|
+
class NiceHtmlConverter < Kramdown::Converter::Html
|
5
|
+
|
6
|
+
STYLE = <<EOS
|
7
|
+
<style>
|
8
|
+
body {
|
9
|
+
padding-top: 1.5em;
|
10
|
+
padding-left: 15%;
|
11
|
+
padding-right: 15%;
|
12
|
+
}
|
13
|
+
|
14
|
+
p {
|
15
|
+
line-height: 1.3;
|
16
|
+
}
|
17
|
+
|
18
|
+
pre {
|
19
|
+
padding: 1em;
|
20
|
+
background-color: #e7e7e7;
|
21
|
+
overflow: auto;
|
22
|
+
}
|
23
|
+
</style>
|
24
|
+
EOS
|
25
|
+
|
26
|
+
def initialize(*args)
|
27
|
+
@title = nil
|
28
|
+
super
|
29
|
+
end
|
30
|
+
|
31
|
+
def convert_header(el, indent)
|
32
|
+
if !@title
|
33
|
+
@title = el.options[:raw_text]
|
34
|
+
end
|
35
|
+
|
36
|
+
super
|
37
|
+
end
|
38
|
+
|
39
|
+
def convert_root(*args)
|
40
|
+
result = super # super needs to be called first to set @title.
|
41
|
+
title = "<title>#{@title}</title>" if @title
|
42
|
+
"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n#{title}\n#{STYLE}\n#{result}"
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'tilt'
|
2
|
+
require 'nice_html_converter'
|
3
|
+
|
4
|
+
class NiceKramdownTemplate < Tilt::KramdownTemplate
|
5
|
+
|
6
|
+
def evaluate(scope, locals, &block)
|
7
|
+
result, warnings = NiceHtmlConverter.convert(@engine.root, @engine.options)
|
8
|
+
if warnings.length > 0
|
9
|
+
puts warnings
|
10
|
+
end
|
11
|
+
@output ||= result
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
data/md-server
CHANGED
@@ -2,17 +2,20 @@
|
|
2
2
|
|
3
3
|
require 'rack'
|
4
4
|
require 'tilt'
|
5
|
-
require
|
5
|
+
require 'rack/contrib'
|
6
6
|
|
7
|
-
|
8
|
-
Rack::Mime::MIME_TYPES.merge! ".#{ext}" => 'text/plain'
|
9
|
-
end
|
7
|
+
require 'nice_kramdown_template'
|
10
8
|
|
11
|
-
|
9
|
+
Rack::Mime::MIME_TYPES.merge! Hash[Rack::Mime::MIME_TYPES.map{|k,v| [k, 'text/plain'] if v.start_with?('text/x-') }.compact]
|
12
10
|
|
13
|
-
|
11
|
+
Tilt.register(NiceKramdownTemplate, 'md')
|
12
|
+
|
13
|
+
app = Rack::Builder.app do
|
14
14
|
|
15
|
-
use
|
15
|
+
use Rack::ResponseHeaders do |headers|
|
16
|
+
headers['X-Content-Type-Options'] = 'nosniff'
|
17
|
+
headers['Cache-Control'] = 'no-store'
|
18
|
+
end
|
16
19
|
|
17
20
|
run lambda { |env|
|
18
21
|
path = env['PATH_INFO'][1..-1]
|
@@ -25,7 +28,7 @@ app = Rack::Builder.app do
|
|
25
28
|
return [500, {"Content-Type" => "text/plain"}, ["#{le}\nYou need to install the appropriate gem."]]
|
26
29
|
end
|
27
30
|
|
28
|
-
|
31
|
+
Rack::Directory.new('.').call(env)
|
29
32
|
}
|
30
33
|
|
31
34
|
end
|
metadata
CHANGED
@@ -1,39 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: md-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matt Wildig
|
9
8
|
autorequire:
|
10
|
-
bindir: .
|
9
|
+
bindir: "."
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable:
|
11
|
+
date: 2016-08-07 00:00:00.000000000 Z
|
14
12
|
dependencies:
|
15
13
|
- !ruby/object:Gem::Dependency
|
16
14
|
name: rack
|
17
|
-
requirement:
|
18
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
19
16
|
requirements:
|
20
|
-
- -
|
17
|
+
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
|
-
version_requirements:
|
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: rack-contrib
|
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'
|
26
41
|
- !ruby/object:Gem::Dependency
|
27
42
|
name: tilt
|
28
|
-
requirement:
|
29
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
45
|
+
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
|
-
version_requirements:
|
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: kramdown
|
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'
|
37
69
|
description:
|
38
70
|
email:
|
39
71
|
executables:
|
@@ -41,33 +73,32 @@ executables:
|
|
41
73
|
extensions: []
|
42
74
|
extra_rdoc_files: []
|
43
75
|
files:
|
76
|
+
- "./md-server"
|
77
|
+
- lib/nice_html_converter.rb
|
78
|
+
- lib/nice_kramdown_template.rb
|
44
79
|
- md-server
|
45
|
-
- rack-add-headers.rb
|
46
|
-
- ./md-server
|
47
|
-
has_rdoc: true
|
48
80
|
homepage:
|
49
81
|
licenses: []
|
82
|
+
metadata: {}
|
50
83
|
post_install_message:
|
51
84
|
rdoc_options: []
|
52
85
|
require_paths:
|
53
86
|
- lib
|
54
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
88
|
requirements:
|
57
|
-
- -
|
89
|
+
- - ">="
|
58
90
|
- !ruby/object:Gem::Version
|
59
91
|
version: '0'
|
60
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
93
|
requirements:
|
63
|
-
- -
|
94
|
+
- - ">="
|
64
95
|
- !ruby/object:Gem::Version
|
65
96
|
version: '0'
|
66
97
|
requirements: []
|
67
98
|
rubyforge_project:
|
68
|
-
rubygems_version:
|
99
|
+
rubygems_version: 2.5.1
|
69
100
|
signing_key:
|
70
|
-
specification_version:
|
101
|
+
specification_version: 4
|
71
102
|
summary: Simple server to show you what your markdown and other templates looks like
|
72
103
|
when converted to html.
|
73
104
|
test_files: []
|
data/rack-add-headers.rb
DELETED