rack-jekyll 0.1 → 0.2
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.markdown +24 -6
- data/lib/rack/jekyll/test.rb +37 -0
- data/lib/rack/jekyll.rb +9 -2
- metadata +13 -2
data/README.markdown
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
Rack-Jekyll
|
2
2
|
===========
|
3
3
|
|
4
|
-
Transform your Jekyll app into Rack application
|
4
|
+
Transform your [Jekyll](http://github.com/mojombo/jekyll) app into [Rack](http://github.com/rack/rack) application
|
5
5
|
|
6
|
-
You can run it with rackup and shotgun.
|
6
|
+
You can run it with rackup and [shotgun](http://github.com/rtomakyo/shotgun).
|
7
7
|
|
8
|
-
Demo: [http://bry4n.heroku.com/](http://bry4n.heroku.com/)
|
8
|
+
Heroku Demo: [http://bry4n.heroku.com/](http://bry4n.heroku.com/)
|
9
9
|
|
10
10
|
### How to use it?
|
11
11
|
|
12
|
-
*config.ru* is required in order to run with shotgun and rackup. Even you can deploy your jekyll app to Heroku!
|
12
|
+
*config.ru* is required in order to run with shotgun and rackup. Even you can deploy your jekyll app to [Heroku!](http://www.heroku.com/)
|
13
13
|
|
14
14
|
Copy this and put in config.ru in your jekyll's root directory.
|
15
15
|
|
@@ -24,6 +24,24 @@ config.ru:
|
|
24
24
|
That's it.
|
25
25
|
|
26
26
|
|
27
|
-
|
27
|
+
Heroku:
|
28
28
|
|
29
|
-
|
29
|
+
You need to generate pages and git-add pages and git-commit before you deploy your jekyll to Heroku
|
30
|
+
|
31
|
+
1) cd to your jekyll directory
|
32
|
+
|
33
|
+
2) add config.ru (see example above)
|
34
|
+
|
35
|
+
3) build pages, type: jekyll
|
36
|
+
|
37
|
+
4) git init && git add .
|
38
|
+
|
39
|
+
5) git commit -m "first heroku app"
|
40
|
+
|
41
|
+
6) heroku create
|
42
|
+
|
43
|
+
7) git push heroku master
|
44
|
+
|
45
|
+
## 404 page
|
46
|
+
|
47
|
+
You can create a new file: `404.html` with YAML Front Matter. See my [Heroku Demo 404](http://bry4n.heroku.com/show/me/404/)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "rack"
|
2
|
+
require "rack/request"
|
3
|
+
require "rack/response"
|
4
|
+
|
5
|
+
module Rack
|
6
|
+
class Jekyll
|
7
|
+
class Test
|
8
|
+
attr_accessor :config, :url
|
9
|
+
def initialize(config)
|
10
|
+
@url = ''
|
11
|
+
@config = config
|
12
|
+
@files = %w{_fake/ _fake/index.html _fake/3/2/1/helloworld/index.html _fake/css/test.css _fake/js/test.js}
|
13
|
+
end
|
14
|
+
|
15
|
+
def call(env)
|
16
|
+
request = Request.new(env)
|
17
|
+
path_info = "_fake" + request.path_info
|
18
|
+
ext = ''
|
19
|
+
if @files.include?(path_info)
|
20
|
+
if path_info =~ /(\/?)$/
|
21
|
+
if path_info !~ /\.(css|js|jpe?g|gif|png|mov|mp3)$/i
|
22
|
+
path_info += $1.nil? ? "/index.html" : "index.html"
|
23
|
+
end
|
24
|
+
ext = $1 if path_info =~ /(\.\S+)$/i
|
25
|
+
end
|
26
|
+
mime = Mime.mime_type(ext)
|
27
|
+
body = "Jekyll/Rack"
|
28
|
+
[200, {"Content-Type" => mime, "Content-length" => body.length.to_s}, [body]]
|
29
|
+
else
|
30
|
+
ext = $1 if path_info =~ /(\.\S+)$/i
|
31
|
+
mime = Mime.mime_type(ext)
|
32
|
+
[404, {"Content-Type" => mime}, ["Not found"]]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/rack/jekyll.rb
CHANGED
@@ -9,7 +9,7 @@ module Rack
|
|
9
9
|
@path = opts[:path].nil? ? "_site" : opts[:path]
|
10
10
|
@files = Dir[@path + "/**/*"].inspect
|
11
11
|
if Dir[@path + "/**/*"].empty?
|
12
|
-
system("jekyll")
|
12
|
+
system("jekyll #{@path}")
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -30,7 +30,14 @@ module Rack
|
|
30
30
|
else
|
31
31
|
ext = $1 if path_info =~ /(\.\S+)$/i
|
32
32
|
mime = Mime.mime_type(ext)
|
33
|
-
|
33
|
+
status = 404
|
34
|
+
body = "Not found"
|
35
|
+
if ::File.exist?(@path + "/404.html")
|
36
|
+
status = 200
|
37
|
+
body = ::File.read(@path + "/404.html")
|
38
|
+
mime = Mime.mime_type(".html")
|
39
|
+
end
|
40
|
+
[status, {"Content-Type" => mime, "Content-Type" => body.length.to_s}, [body]]
|
34
41
|
end
|
35
42
|
end
|
36
43
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-jekyll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.2"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Goines
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-17 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +32,16 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: bacon
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
35
45
|
description: Transform your jekyll based app into a Rack application
|
36
46
|
email: bryan@ffiirree.com
|
37
47
|
executables: []
|
@@ -44,6 +54,7 @@ files:
|
|
44
54
|
- README.markdown
|
45
55
|
- LICENSE
|
46
56
|
- lib/rack/jekyll.rb
|
57
|
+
- lib/rack/jekyll/test.rb
|
47
58
|
has_rdoc: false
|
48
59
|
homepage: http://github.com/bry4n/rack-jekyll
|
49
60
|
licenses: []
|