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 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 File.join(File.dirname(__FILE__), 'rack-add-headers')
5
+ require 'rack/contrib'
6
6
 
7
- %w{gemspec rb}.each do |ext|
8
- Rack::Mime::MIME_TYPES.merge! ".#{ext}" => 'text/plain'
9
- end
7
+ require 'nice_kramdown_template'
10
8
 
11
- app = Rack::Builder.app do
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
- files = Rack::Directory.new('.')
11
+ Tilt.register(NiceKramdownTemplate, 'md')
12
+
13
+ app = Rack::Builder.app do
14
14
 
15
- use AddHeaders, 'X-Content-Type-Options' => 'nosniff', 'Cache-Control' => 'no-store'
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
- files.call(env)
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.4
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: 2011-08-22 00:00:00.000000000 +01:00
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: &2153622020 !ruby/object:Gem::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: *2153622020
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: &2153621580 !ruby/object:Gem::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: *2153621580
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: 1.6.2
99
+ rubygems_version: 2.5.1
69
100
  signing_key:
70
- specification_version: 3
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
@@ -1,15 +0,0 @@
1
- class AddHeaders
2
-
3
- def initialize(app, headers)
4
- @app = app
5
- @injected_headers = headers
6
- end
7
-
8
- def call(env)
9
- status, headers, body = @app.call(env)
10
- headers.merge! @injected_headers
11
- [status, headers, body]
12
-
13
- end
14
- end
15
-