guide-em-up 0.2.0 → 0.3.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.
- data/README.md +3 -0
- data/data/themes/pochtron.erb +3 -4
- data/lib/guide-em-up/browser.rb +14 -4
- data/lib/guide-em-up/guide.rb +16 -6
- data/lib/guide-em-up/version.rb +1 -1
- metadata +15 -15
data/README.md
CHANGED
@@ -15,6 +15,9 @@ It's really simple:
|
|
15
15
|
3. Launch `guide-em-up` and open http://localhost:9000 in your browser
|
16
16
|
4. Select your guide and enjoy :-)
|
17
17
|
|
18
|
+
You must also install [pygments](http://pygments.org/) if you want syntax
|
19
|
+
highlighting.
|
20
|
+
|
18
21
|
|
19
22
|
Issues or Suggestions
|
20
23
|
---------------------
|
data/data/themes/pochtron.erb
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
<link href='http://fonts.googleapis.com/css?family=Ubuntu&v2' rel='stylesheet' type='text/css'>
|
7
7
|
<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono&v2' rel='stylesheet' type='text/css'>
|
8
8
|
<style>
|
9
|
+
section, article { display: block; }
|
10
|
+
|
9
11
|
#container {
|
10
12
|
margin: 0 auto;
|
11
13
|
max-width: 920px;
|
@@ -31,10 +33,7 @@
|
|
31
33
|
</head>
|
32
34
|
<body>
|
33
35
|
<section id="container">
|
34
|
-
<
|
35
|
-
<h1><%= title %></h1>
|
36
|
-
<h2><%= Date.today.strftime "%d/%m/%Y" %></h2>
|
37
|
-
</header>
|
36
|
+
<h1><%= title %> – <%= Date.today.strftime "%d/%m/%Y" %></h1>
|
38
37
|
<article>
|
39
38
|
<%= content %>
|
40
39
|
</article>
|
data/lib/guide-em-up/browser.rb
CHANGED
@@ -18,7 +18,7 @@ module GuideEmUp
|
|
18
18
|
filename = File.join(@root, path_info)
|
19
19
|
datafile = File.join(@data, path_info)
|
20
20
|
if File.file?(filename)
|
21
|
-
|
21
|
+
serve_file(filename)
|
22
22
|
elsif filename.include? ".."
|
23
23
|
unauthorized_access
|
24
24
|
elsif File.directory?(filename)
|
@@ -35,6 +35,15 @@ module GuideEmUp
|
|
35
35
|
|
36
36
|
protected
|
37
37
|
|
38
|
+
def serve_file(filename)
|
39
|
+
mime = Rack::Mime.mime_type(File.extname filename)
|
40
|
+
if mime =~ /^(audio|image|video)\//
|
41
|
+
serve_data(filename, mime)
|
42
|
+
else
|
43
|
+
serve_guide(filename)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
38
47
|
def serve_guide(filename)
|
39
48
|
body = Guide.new(filename, @theme.template).html
|
40
49
|
[200, {
|
@@ -51,11 +60,12 @@ module GuideEmUp
|
|
51
60
|
}, [body] ]
|
52
61
|
end
|
53
62
|
|
54
|
-
def serve_data(filename)
|
63
|
+
def serve_data(filename, mime=nil)
|
55
64
|
if File.exists?(filename)
|
56
|
-
body
|
65
|
+
body = File.read(filename)
|
66
|
+
mime ||= Rack::Mime.mime_type(File.extname filename)
|
57
67
|
[200, {
|
58
|
-
"Content-Type" =>
|
68
|
+
"Content-Type" => mime,
|
59
69
|
"Content-Length" => Rack::Utils.bytesize(body).to_s,
|
60
70
|
}, [body] ]
|
61
71
|
else
|
data/lib/guide-em-up/guide.rb
CHANGED
@@ -6,11 +6,12 @@ require "yajl"
|
|
6
6
|
|
7
7
|
|
8
8
|
module GuideEmUp
|
9
|
-
class Guide < Struct.new(:filename, :title, :template)
|
9
|
+
class Guide < Struct.new(:filename, :directory, :title, :template)
|
10
10
|
def initialize(filename, template)
|
11
|
-
self.filename
|
12
|
-
self.
|
13
|
-
self.
|
11
|
+
self.filename = filename
|
12
|
+
self.directory = File.dirname(filename)
|
13
|
+
self.title = File.basename(filename)
|
14
|
+
self.template = template
|
14
15
|
@codemap = {}
|
15
16
|
end
|
16
17
|
|
@@ -27,11 +28,20 @@ module GuideEmUp
|
|
27
28
|
|
28
29
|
def content
|
29
30
|
raw = File.read(filename)
|
30
|
-
tmp = extract_code(raw)
|
31
|
-
|
31
|
+
tmp = extract_code(insert_include raw, directory)
|
32
|
+
ext = [:autolink, :generate_toc, :no_intraemphasis, :smart, :strikethrough, :tables]
|
33
|
+
red = Redcarpet.new(tmp, *ext)
|
32
34
|
process_code red.to_html
|
33
35
|
end
|
34
36
|
|
37
|
+
def insert_include(md, dir)
|
38
|
+
md.gsub(/!INCLUDE (\S+)/) do
|
39
|
+
file = File.join(dir, $1)
|
40
|
+
idir = File.dirname(file)
|
41
|
+
insert_include File.read(file), idir
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
35
45
|
# Code taken from gollum (http://github.com/github/gollum)
|
36
46
|
def extract_code(md)
|
37
47
|
md.gsub(/^``` ?(.+?)\r?\n(.+?)\r?\n```\r?$/m) do
|
data/lib/guide-em-up/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guide-em-up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08
|
12
|
+
date: 2011-09-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: goliath
|
16
|
-
requirement: &
|
16
|
+
requirement: &76805740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.9'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *76805740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: redcarpet
|
27
|
-
requirement: &
|
27
|
+
requirement: &76805410 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.17'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *76805410
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: erubis
|
38
|
-
requirement: &
|
38
|
+
requirement: &76805140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '2.7'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *76805140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yajl-ruby
|
49
|
-
requirement: &
|
49
|
+
requirement: &76804850 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0.8'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *76804850
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: albino
|
60
|
-
requirement: &
|
60
|
+
requirement: &76804560 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '1.3'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *76804560
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
|
-
requirement: &
|
71
|
+
requirement: &76804290 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '2.3'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *76804290
|
80
80
|
description: Slide'em up is a tool for writing guides in markdown
|
81
81
|
email: bruno.michel@af83.com
|
82
82
|
executables:
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 1.8.
|
140
|
+
rubygems_version: 1.8.9
|
141
141
|
signing_key:
|
142
142
|
specification_version: 3
|
143
143
|
summary: Slide'em up is a tool for writing guides in markdown and generates one-page
|