servedown 0.0.1

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: d4e98b8fda1df402230c7c78233e069442a236a5
4
+ data.tar.gz: ff2e985f3c434596808d4ae8f9ba9dbef39dd1df
5
+ SHA512:
6
+ metadata.gz: db6f96877eb0825b66014879da046b154ef0bc1a65c35a3cea9966006f8088b81a6db92985f87102aa8e422bff894ceb4864ce937f28b1184c8b1e95c7eacf12
7
+ data.tar.gz: b14fe403e0e58738a86a68e812d50afa24a6c26d402c77b8aa0c1f500f3694be75deeec421dc4c37dfa551c283fceea4c4ec0cf80f0d76cf5b633ddf15e3aa07
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in servedown.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Leon Rische
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Servedown
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'servedown'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install servedown
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/servedown/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/bin/servedown ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'servedown/application/app.rb'
4
+
5
+ Servedown::App.run!
@@ -0,0 +1,18 @@
1
+ require 'sinatra/base'
2
+ require 'kramdown'
3
+
4
+ module Servedown
5
+ class App < Sinatra::Base
6
+ get '/' do
7
+ @files = Dir['./**/*.md']
8
+ haml :index
9
+ end
10
+
11
+ get '/view' do
12
+ file = params['file']
13
+ text = File.open(file).read
14
+ @html = Kramdown::Document.new(text).to_html
15
+ haml :view
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,297 @@
1
+ body {
2
+ font-family: Helvetica, arial, sans-serif;
3
+ font-size: 14px;
4
+ line-height: 1.6;
5
+ padding-top: 10px;
6
+ padding-bottom: 10px;
7
+ background-color: white;
8
+ padding: 30px; }
9
+
10
+ body > *:first-child {
11
+ margin-top: 0 !important; }
12
+ body > *:last-child {
13
+ margin-bottom: 0 !important; }
14
+
15
+ a {
16
+ color: #4183C4; }
17
+ a.absent {
18
+ color: #cc0000; }
19
+ a.anchor {
20
+ display: block;
21
+ padding-left: 30px;
22
+ margin-left: -30px;
23
+ cursor: pointer;
24
+ position: absolute;
25
+ top: 0;
26
+ left: 0;
27
+ bottom: 0; }
28
+
29
+ h1, h2, h3, h4, h5, h6 {
30
+ margin: 20px 0 10px;
31
+ padding: 0;
32
+ font-weight: bold;
33
+ -webkit-font-smoothing: antialiased;
34
+ cursor: text;
35
+ position: relative; }
36
+
37
+ h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
38
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
39
+ text-decoration: none; }
40
+
41
+ h1 tt, h1 code {
42
+ font-size: inherit; }
43
+
44
+ h2 tt, h2 code {
45
+ font-size: inherit; }
46
+
47
+ h3 tt, h3 code {
48
+ font-size: inherit; }
49
+
50
+ h4 tt, h4 code {
51
+ font-size: inherit; }
52
+
53
+ h5 tt, h5 code {
54
+ font-size: inherit; }
55
+
56
+ h6 tt, h6 code {
57
+ font-size: inherit; }
58
+
59
+ h1 {
60
+ font-size: 28px;
61
+ color: black; }
62
+
63
+ h2 {
64
+ font-size: 24px;
65
+ border-bottom: 1px solid #cccccc;
66
+ color: black; }
67
+
68
+ h3 {
69
+ font-size: 18px; }
70
+
71
+ h4 {
72
+ font-size: 16px; }
73
+
74
+ h5 {
75
+ font-size: 14px; }
76
+
77
+ h6 {
78
+ color: #777777;
79
+ font-size: 14px; }
80
+
81
+ p, blockquote, ul, ol, dl, li, table, pre {
82
+ margin: 15px 0; }
83
+
84
+ hr {
85
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
86
+ border: 0 none;
87
+ color: #cccccc;
88
+ height: 4px;
89
+ padding: 0;
90
+ }
91
+
92
+ body > h2:first-child {
93
+ margin-top: 0;
94
+ padding-top: 0; }
95
+ body > h1:first-child {
96
+ margin-top: 0;
97
+ padding-top: 0; }
98
+ body > h1:first-child + h2 {
99
+ margin-top: 0;
100
+ padding-top: 0; }
101
+ body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
102
+ margin-top: 0;
103
+ padding-top: 0; }
104
+
105
+ a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
106
+ margin-top: 0;
107
+ padding-top: 0; }
108
+
109
+ h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
110
+ margin-top: 0; }
111
+
112
+ li p.first {
113
+ display: inline-block; }
114
+ li {
115
+ margin: 0; }
116
+ ul, ol {
117
+ padding-left: 30px; }
118
+
119
+ ul :first-child, ol :first-child {
120
+ margin-top: 0; }
121
+
122
+ dl {
123
+ padding: 0; }
124
+ dl dt {
125
+ font-size: 14px;
126
+ font-weight: bold;
127
+ font-style: italic;
128
+ padding: 0;
129
+ margin: 15px 0 5px; }
130
+ dl dt:first-child {
131
+ padding: 0; }
132
+ dl dt > :first-child {
133
+ margin-top: 0; }
134
+ dl dt > :last-child {
135
+ margin-bottom: 0; }
136
+ dl dd {
137
+ margin: 0 0 15px;
138
+ padding: 0 15px; }
139
+ dl dd > :first-child {
140
+ margin-top: 0; }
141
+ dl dd > :last-child {
142
+ margin-bottom: 0; }
143
+
144
+ blockquote {
145
+ border-left: 4px solid #dddddd;
146
+ padding: 0 15px;
147
+ color: #777777; }
148
+ blockquote > :first-child {
149
+ margin-top: 0; }
150
+ blockquote > :last-child {
151
+ margin-bottom: 0; }
152
+
153
+ table {
154
+ padding: 0;border-collapse: collapse; }
155
+ table tr {
156
+ border-top: 1px solid #cccccc;
157
+ background-color: white;
158
+ margin: 0;
159
+ padding: 0; }
160
+ table tr:nth-child(2n) {
161
+ background-color: #f8f8f8; }
162
+ table tr th {
163
+ font-weight: bold;
164
+ border: 1px solid #cccccc;
165
+ margin: 0;
166
+ padding: 6px 13px; }
167
+ table tr td {
168
+ border: 1px solid #cccccc;
169
+ margin: 0;
170
+ padding: 6px 13px; }
171
+ table tr th :first-child, table tr td :first-child {
172
+ margin-top: 0; }
173
+ table tr th :last-child, table tr td :last-child {
174
+ margin-bottom: 0; }
175
+
176
+ img {
177
+ max-width: 100%; }
178
+
179
+ span.frame {
180
+ display: block;
181
+ overflow: hidden; }
182
+ span.frame > span {
183
+ border: 1px solid #dddddd;
184
+ display: block;
185
+ float: left;
186
+ overflow: hidden;
187
+ margin: 13px 0 0;
188
+ padding: 7px;
189
+ width: auto; }
190
+ span.frame span img {
191
+ display: block;
192
+ float: left; }
193
+ span.frame span span {
194
+ clear: both;
195
+ color: #333333;
196
+ display: block;
197
+ padding: 5px 0 0; }
198
+ span.align-center {
199
+ display: block;
200
+ overflow: hidden;
201
+ clear: both; }
202
+ span.align-center > span {
203
+ display: block;
204
+ overflow: hidden;
205
+ margin: 13px auto 0;
206
+ text-align: center; }
207
+ span.align-center span img {
208
+ margin: 0 auto;
209
+ text-align: center; }
210
+ span.align-right {
211
+ display: block;
212
+ overflow: hidden;
213
+ clear: both; }
214
+ span.align-right > span {
215
+ display: block;
216
+ overflow: hidden;
217
+ margin: 13px 0 0;
218
+ text-align: right; }
219
+ span.align-right span img {
220
+ margin: 0;
221
+ text-align: right; }
222
+ span.float-left {
223
+ display: block;
224
+ margin-right: 13px;
225
+ overflow: hidden;
226
+ float: left; }
227
+ span.float-left span {
228
+ margin: 13px 0 0; }
229
+ span.float-right {
230
+ display: block;
231
+ margin-left: 13px;
232
+ overflow: hidden;
233
+ float: right; }
234
+ span.float-right > span {
235
+ display: block;
236
+ overflow: hidden;
237
+ margin: 13px auto 0;
238
+ text-align: right; }
239
+
240
+ code, tt {
241
+ margin: 0 2px;
242
+ padding: 0 5px;
243
+ white-space: nowrap;
244
+ border: 1px solid #eaeaea;
245
+ background-color: #f8f8f8;
246
+ border-radius: 3px; }
247
+
248
+ pre code {
249
+ margin: 0;
250
+ padding: 0;
251
+ white-space: pre;
252
+ border: none;
253
+ background: transparent; }
254
+
255
+ .highlight pre {
256
+ background-color: #f8f8f8;
257
+ border: 1px solid #cccccc;
258
+ font-size: 13px;
259
+ line-height: 19px;
260
+ overflow: auto;
261
+ padding: 6px 10px;
262
+ border-radius: 3px; }
263
+
264
+ pre {
265
+ background-color: #f8f8f8;
266
+ border: 1px solid #cccccc;
267
+ font-size: 13px;
268
+ line-height: 19px;
269
+ overflow: auto;
270
+ padding: 6px 10px;
271
+ border-radius: 3px; }
272
+ pre code, pre tt {
273
+ background-color: transparent;
274
+ border: none; }
275
+
276
+ sup {
277
+ font-size: 0.83em;
278
+ vertical-align: super;
279
+ line-height: 0;
280
+ }
281
+ * {
282
+ -webkit-print-color-adjust: exact;
283
+ }
284
+ @media screen and (min-width: 914px) {
285
+ body {
286
+ width: 854px;
287
+ margin:0 auto;
288
+ }
289
+ }
290
+ @media print {
291
+ table, pre {
292
+ page-break-inside: avoid;
293
+ }
294
+ pre {
295
+ word-wrap: break-word;
296
+ }
297
+ }
@@ -0,0 +1,5 @@
1
+ - unless @files.empty?
2
+ %ul
3
+ - @files.each do |file|
4
+ %li
5
+ %a{href: "view?file=#{file}"} file
@@ -0,0 +1,7 @@
1
+ !!! 5
2
+ %head
3
+ %meta{charset: "utf-8"}
4
+ %link{rel: "stylesheet", href: "github.css"}
5
+ %script{src: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"}
6
+ %body
7
+ = yield
@@ -0,0 +1 @@
1
+ = @html
data/lib/servedown.rb ADDED
@@ -0,0 +1,2 @@
1
+ module Servedown
2
+ end
data/servedown.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'servedown'
7
+ spec.version = '0.0.1'
8
+ spec.authors = ['Leon Rische']
9
+ spec.email = ['hello@l3kn.de']
10
+ spec.summary = 'Serve a directory of markdown files'
11
+ spec.description = 'Generates a browseable index of markdown files'
12
+ spec.homepage = 'http://l3kn.de'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_development_dependency 'bundler', '~> 1.6'
21
+ spec.add_development_dependency 'rake'
22
+ spec.add_runtime_dependency 'sinatra'
23
+ spec.add_runtime_dependency 'haml'
24
+ spec.add_runtime_dependency 'kramdown'
25
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: servedown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Leon Rische
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: sinatra
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: haml
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'
69
+ - !ruby/object:Gem::Dependency
70
+ name: kramdown
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Generates a browseable index of markdown files
84
+ email:
85
+ - hello@l3kn.de
86
+ executables:
87
+ - servedown
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - .gitignore
92
+ - Gemfile
93
+ - LICENSE.txt
94
+ - README.md
95
+ - Rakefile
96
+ - bin/servedown
97
+ - lib/servedown.rb
98
+ - lib/servedown/application/app.rb
99
+ - lib/servedown/application/public/github.css
100
+ - lib/servedown/application/views/index.haml
101
+ - lib/servedown/application/views/layout.haml
102
+ - lib/servedown/application/views/view.haml
103
+ - servedown.gemspec
104
+ homepage: http://l3kn.de
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.0.3
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Serve a directory of markdown files
128
+ test_files: []
129
+ has_rdoc: