rblosxom 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS ADDED
@@ -0,0 +1 @@
1
+ * Percy Lau <percy.lau@gmail.com>
data/ChangeLog ADDED
@@ -0,0 +1,3 @@
1
+ 2009-12-20 Percy Lau <percy.lau@gmail.com> 0.1.0
2
+
3
+ * rblosxom init
data/INSTALL ADDED
@@ -0,0 +1,25 @@
1
+ INSTALL
2
+ -------
3
+
4
+ 安装 rblosxom gem:
5
+ $ gem install rblosxom --source http://gemcutter.org
6
+
7
+ 运行 demo:
8
+ $ rbloxom-demo
9
+
10
+ 通过浏览器访问 http://127.0.0.1:7878/
11
+
12
+ HACKING
13
+ -------
14
+
15
+ 下载 source
16
+ $ hg clone https://itsucks@bitbucket.org/itsucks/rblosxom
17
+
18
+ 需要安装 sinatra, haml, rdiscount, compass, compass-960-plugin
19
+ $ gem install sinatra, haml, rdiscount, compass, compass-960-plugin
20
+
21
+ 定制 theme:
22
+ $ compass -r ninesixty -f 960 --sass-dir=sass --css-dir=stylesheets --javascript-dir=javascripts --images-dir=images public
23
+
24
+ 更新 css:
25
+ $ compass -u public
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Percy Lau, http://yunism.org/
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,43 @@
1
+ README
2
+ ======
3
+ [rblosxom][rblosxom]是一个[blosxom][blosxom]程序,
4
+ 它使用了下面的框架和工具:
5
+
6
+ - [sinatra][sinatra]
7
+ - [haml][haml]
8
+ - [rdiscount][rdiscount]
9
+ - [compass-960][compass_960]
10
+
11
+ 目前这个版本也是第一个版本0.1.0,功能还不多。
12
+
13
+ Author
14
+ ------
15
+ Percy Lau <percy.lau@gmail.com>
16
+
17
+ Changelog
18
+ ---------
19
+ Please see the [Changelog][changelog].
20
+
21
+ Install
22
+ -------
23
+ Please see the [INSTALL][install].
24
+
25
+ More Information
26
+ ----------------
27
+ Please see the [wiki][wiki].
28
+
29
+ License
30
+ -------
31
+ Released under [MIT License][license].
32
+
33
+
34
+ [blosxom]: http://blosxom.sourceforge.net/
35
+ [sinatra]: http://www.sinatrarb.com/
36
+ [haml]: http://haml.hamptoncatlin.com/
37
+ [rdiscount]: http://github.com/rtomayko/rdiscount/
38
+ [compass_960]: http://github.com/chriseppstein/compass-960-plugin/
39
+ [rblosxom]: http://bitbucket.org/itsucks/rblosxom/
40
+ [wiki]: http://bitbucket.org/itsucks/rblosxom/wiki/
41
+ [license]: http://bitbucket.org/itsucks/rblosxom/src/tip/MIT-LICENSE
42
+ [install]: http://bitbucket.org/itsucks/rblosxom/src/tip/INSTALL
43
+ [changelog]: http://bitbucket.org/itsucks/rblosxom/src/tip/ChangeLog
data/bin/rblosxom-demo ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'rack'
4
+ require 'rblosxom'
5
+
6
+ options = {:Port => 7878, :Host => "0.0.0.0", :AccessLog => []}
7
+
8
+ install_dir = File.join(Gem.dir, "gems", "rblosxom-#{Rblosxom::Version::STRING}")
9
+ rackup_file = File.join(install_dir, "config/rackup.ru")
10
+ inner_app = eval "Rack::Builder.new {( " + File.read(rackup_file) + "\n )}.to_app", nil, rackup_file
11
+
12
+ begin
13
+ server = Rack::Handler::Mongrel
14
+ rescue LoadError => e
15
+ server = Rack::Handler::WEBrick
16
+ end
17
+
18
+ app = Rack::Builder.new {
19
+ use Rack::CommonLogger, $stderr unless server.name =~ /CGI/
20
+ use Rack::ShowExceptions
21
+ use Rack::Lint
22
+ run inner_app
23
+ }.to_app
24
+
25
+ server.run app, options
26
+
27
+ # vim: ft=ruby:fenc=utf-8:sw=4:ts=4:sts=4:et:
28
+ # rblosxom-demo.rb end here
data/config/rackup.ru ADDED
@@ -0,0 +1,16 @@
1
+ require 'sinatra'
2
+ require 'rblosxom'
3
+
4
+ disable :run
5
+ set :root, File.expand_path("../", File.dirname(__FILE__))
6
+
7
+ $LOAD_PATH.unshift File.expand_path("../demo", File.dirname(__FILE__))
8
+ require 'rapp'
9
+ map "/" do
10
+ run Rblosxom::Rblosxom
11
+ end
12
+
13
+ require 'grid'
14
+ map '/grid' do
15
+ run Rblosxom::Grid
16
+ end
data/demo/grid.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'rblosxom/base'
2
+
3
+ module Rblosxom
4
+ class Grid < App
5
+ set :public, File.join(root, "public")
6
+ set :views, File.join(root, "views")
7
+
8
+ get '/?' do
9
+ set_common_variables
10
+ haml :grid, :layout => false, :locals => { }
11
+ end
12
+ end
13
+ end
14
+
15
+ # vim: ft=ruby:fenc=utf-8:sw=4:ts=4:sts=4:et:
16
+ # grid.rb end here
data/demo/rapp.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rblosxom/base'
2
+ require 'rdiscount'
3
+
4
+ module Rblosxom
5
+ class Rblosxom < App
6
+ set :public, File.join(root, "public")
7
+ set :views, File.join(root, "views")
8
+
9
+ get '/?' do
10
+ set_common_variables
11
+ content = File.read(File.expand_path("../README.rdoc", File.dirname(__FILE__)))
12
+ haml :index, :layout => true, :locals => { :readme => content }
13
+ end
14
+ end
15
+ end
16
+
17
+ # vim: ft=ruby:fenc=utf-8:sw=4:ts=4:sts=4:et:
18
+ # rapp.rb end here
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'sinatra/base'
3
+ require 'haml'
4
+ require 'yaml'
5
+
6
+ module Rblosxom
7
+ # Version number.
8
+ module Version
9
+ unless defined? MAJOR
10
+ STRING = Gem::Specification.load(File.expand_path("../../rblosxom.gemspec", File.dirname(__FILE__))).version.to_s
11
+ MAJOR, MINOR, PATCH = STRING.split(".").map { |i| i.to_i }
12
+ end
13
+ end
14
+
15
+ module Helpers
16
+ def set_common_variables
17
+ @config = options.config
18
+
19
+ require 'date'
20
+ @footer = { :year => %/#{DateTime.now.year}/, :copyright => %/#{options.config["copyright"]}/, :generator => %/rblosxom #{::Rblosxom::Version::STRING}/ }
21
+ end
22
+ end
23
+
24
+ class App < Sinatra::Application
25
+ unless defined? CONFIG
26
+ CONFIG = YAML.load(<<-END)
27
+ title: Rblosxom
28
+ slogan: My Slogan.
29
+ description: Ruby based blosxom.
30
+ language: en
31
+ datadir: /data
32
+ url: http://bitbucket.org/itsucks/rblosxom/
33
+ depth: 0
34
+ num_entries: 40
35
+ file_extension: mkd
36
+ default_flavour: html
37
+ show_future_entries: 0
38
+ theme: default
39
+ logger_level: info
40
+ copyright: Rblosxom
41
+ END
42
+ end
43
+
44
+ set :config, Proc.new { (defined? config_file) ? YAML::load(File.read(config_file)) : CONFIG }
45
+ set :public, Proc.new { root && File.join(root, "themes", config["theme"], "public") }
46
+ include Helpers
47
+ end
48
+ end
49
+
50
+ # vim: ft=ruby:fenc=utf-8:sw=4:ts=4:sts=4:et:
51
+ # base.rb end here
data/lib/rblosxom.rb ADDED
@@ -0,0 +1,8 @@
1
+ $: << File.dirname(__FILE__) unless $:.include?(File.dirname(__FILE__))
2
+
3
+ %w{base}.each do |file|
4
+ require File.join('rblosxom', file)
5
+ end
6
+
7
+ # vim: ft=ruby:fenc=utf-8:sw=4:ts=4:sts=4:et:
8
+ # rblosxom.rb end here
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ !col_12 = "12_col.gif"
2
+ !col_16 = "16_col.gif"
3
+
4
+ /* selector= container
5
+ =showgrid(!debug_selector = "#wrap", !grid_pic = "12_col.gif")
6
+ #{!debug_selector}
7
+ :background
8
+ :image= image_url(!grid_pic)
9
+ :repeat repeat-y
@@ -0,0 +1,16 @@
1
+ /* add 960 pull, push classes
2
+ =grid-push(!n, !cols = !ninesixty_columns)
3
+ :left= (!ninesixty_grid_width / !cols) * !n
4
+
5
+ =grid-pushs(!cols = !ninesixty_columns)
6
+ @for !n from 1 through !cols - 1
7
+ .push_#{!n}
8
+ +grid-push(!n, !cols)
9
+
10
+ =grid-pull(!n, !cols = !ninesixty_columns)
11
+ :left= -(!ninesixty_grid_width / !cols) * !n
12
+
13
+ =grid-pulls(!cols = !ninesixty_columns)
14
+ @for !n from 1 through !cols - 1
15
+ .pull_#{!n}
16
+ +grid-pull(!n, !cols)
@@ -0,0 +1,30 @@
1
+ =sticky-footer(!footer_height = "3em", !root_selector = "#wrap", !content_selector = "#main", !footer_selector = "#footer")
2
+ *
3
+ :margin 0
4
+ :padding 0
5
+ html, body, #{!root_selector}
6
+ :height 100%
7
+ body > #{!root_selector}
8
+ :height auto
9
+ :min-height 100%
10
+ #{!content_selector}
11
+ :padding-bottom #{!footer_height} /* must be same height as the footer */
12
+ #{!footer_selector}
13
+ :position relative
14
+ :margin-top -#{!footer_height} /* negative value of footer height */
15
+ :height #{!footer_height}
16
+ :clear both
17
+ .clearfix
18
+ :display inline-block
19
+ .clearfix:after
20
+ :content "."
21
+ :display block
22
+ :height 0
23
+ :clear both
24
+ :visibility hidden
25
+ /* Hides from IE-mac \*/
26
+ * html .clearfix
27
+ :height 1%
28
+ .clearfix
29
+ :display block
30
+ /* End hide from IE-mac */
@@ -0,0 +1,83 @@
1
+ // Layout
2
+ // %body
3
+ // #wrap
4
+ // #header
5
+ // #main.clearfix
6
+ // .g12
7
+ // .g16
8
+ // #footer
9
+
10
+ /* @import compass/reset.sass
11
+ /* +global-reset
12
+ @import compass/utilities/general/clearfix.sass
13
+
14
+ @import 960/grid.sass
15
+ @import 960/text.sass
16
+ +text
17
+
18
+ @import _grid.sass
19
+ @import _debug.sass
20
+ @import _sticky_footer.sass
21
+
22
+ !background_color = #123
23
+ !text_color = #27261f
24
+ !footer_height = 3em
25
+
26
+ body
27
+ :background-color= !background_color
28
+ :color= !text_color
29
+
30
+ #header, #footer, .g12, .g16
31
+ +grid-container
32
+ +clearfix
33
+
34
+ .g12
35
+ +grids
36
+ +grid-prefixes
37
+ +grid-suffixes
38
+ +grid-pushs
39
+ +grid-pulls
40
+ +grid-children
41
+ :margin-bottom 20px
42
+
43
+ .g16
44
+ +grids(16)
45
+ +grid-prefixes(16)
46
+ +grid-suffixes(16)
47
+ +grid-pushs(16)
48
+ +grid-pulls(16)
49
+ +grid-children
50
+
51
+ #header
52
+ h1
53
+ +grid(12,12)
54
+ :text-align center
55
+ :padding-top 20px
56
+ a
57
+ :color white
58
+ :text-decoration none
59
+ &:hover
60
+ :color white
61
+ :text-decoration none
62
+
63
+ #main
64
+ h2
65
+ :padding 20px 0px 0px
66
+ :text-align center
67
+ p
68
+ :border 1px solid #666
69
+ :overflow hidden
70
+ :padding 10px 0
71
+ :text-align center
72
+ :margin-bottom 20px
73
+
74
+ #footer
75
+ p
76
+ +grid(12,12)
77
+ :color white
78
+
79
+ +sticky-footer(!footer_height, "#wrap", "#main", "#footer")
80
+
81
+ // Debug
82
+ +showgrid(".g12")
83
+ +showgrid(".g16", !col_16)
@@ -0,0 +1,122 @@
1
+ // Layout
2
+ // %body
3
+ // #wrap
4
+ // #header
5
+ // #main.clearfix
6
+ // .g12
7
+ // .content
8
+ // .sidebar
9
+ // #footer
10
+
11
+ /* @import compass/reset.sass
12
+ /* +global-reset
13
+ @import compass/utilities/general/clearfix.sass
14
+
15
+ @import 960/grid.sass
16
+ @import 960/text.sass
17
+ +text
18
+
19
+ @import _grid.sass
20
+ @import _debug.sass
21
+ @import _sticky_footer.sass
22
+
23
+ !background_color = white
24
+ !text_color = #666
25
+ !header_height = 80px
26
+ !footer_height = 3em
27
+
28
+ body
29
+ :background-color= !background_color
30
+ :color= !text_color
31
+
32
+ #header, #footer, .g12
33
+ +grid-container
34
+ +clearfix
35
+
36
+ .g12
37
+ +grids
38
+ +grid-prefixes
39
+ +grid-suffixes
40
+ +grid-pushs
41
+ +grid-pulls
42
+ +grid-children
43
+
44
+ #header
45
+ :height= !header_height
46
+ :border-bottom 2px solid #F90
47
+ h1
48
+ +grid(6,12)
49
+ :color #F90
50
+ :letter-spacing -1px
51
+ :margin 30px 0px 0px 15px
52
+ :padding 0
53
+ :font-weight normal
54
+ span
55
+ :font-size 16px
56
+ :color #FFC875
57
+ ul
58
+ +grid(6,12)
59
+ :list-style-type none
60
+ :text-align right
61
+ :color #CCC
62
+ :padding 0
63
+ :margin 40px 15px 0 0
64
+ li
65
+ :display inline
66
+ :margin 0 0 0 10px
67
+ a
68
+ :text-decoration none
69
+ :color #999
70
+ :font-weight bold
71
+ &:after
72
+ :text-decoration none
73
+ :color #333
74
+ &.active
75
+ :text-decoration none
76
+ :color #F90
77
+ :font-weight bold
78
+
79
+ #main
80
+ p
81
+ :margin 0 15px 15px 15px
82
+ h1
83
+ :color #F90
84
+ :font-size 140%
85
+ h2, h3
86
+ :margin 0 0 15px 0
87
+ :padding 5px 15px
88
+ :font-size 120%
89
+ :font-weight normal
90
+ :color #F90
91
+ :border-bottom 1px solid #E5E5E5
92
+ .content
93
+ +grid(8,12)
94
+ img
95
+ :border 1px solid #CDCDCD
96
+ :float left
97
+ :margin 0px 15px 5px
98
+ :padding 5px
99
+ .sidebar
100
+ +grid(4,12)
101
+
102
+ #footer
103
+ .inner
104
+ +grid(12,12)
105
+ :border-top 2px solid #F90
106
+ :color #999
107
+ a
108
+ :color #999
109
+ :text-decoration none
110
+ &:hover
111
+ :color #F90
112
+ :text-decoration none
113
+ .left
114
+ :float left
115
+ .right
116
+ :float right
117
+ :text-align right
118
+
119
+ +sticky-footer(!footer_height, "#wrap", "#main", "#footer")
120
+
121
+ // Debug
122
+ /* +showgrid(".g12")
@@ -0,0 +1,210 @@
1
+ /* @import compass/reset.sass */
2
+ /* +global-reset */
3
+ body { font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; }
4
+
5
+ a:focus { outline: 1px dotted invert; }
6
+
7
+ hr { border-color: #ccc; border-style: solid; border-width: 1px 0 0; clear: both; height: 0; }
8
+
9
+ h1 { font-size: 25px; }
10
+
11
+ h2 { font-size: 23px; }
12
+
13
+ h3 { font-size: 21px; }
14
+
15
+ h4 { font-size: 19px; }
16
+
17
+ h5 { font-size: 17px; }
18
+
19
+ h6 { font-size: 15px; }
20
+
21
+ ol { list-style: decimal; }
22
+
23
+ ul { list-style: square; }
24
+
25
+ li { margin-left: 30px; }
26
+
27
+ p, dl, hr, h1, h2, h3, h4, h5, h6, ol, ul, pre, table, address, fieldset { margin-bottom: 20px; }
28
+
29
+ /* add 960 pull, push classes */
30
+
31
+ /* selector= container */
32
+
33
+ body { background-color: #112233; color: #27261f; }
34
+
35
+ #header, #footer, .g12, .g16 { margin-left: auto; margin-right: auto; width: 960px; overflow: hidden; display: inline-block; }
36
+ #header, #footer, .g12, .g16 { display: block; }
37
+
38
+ .g12 { margin-bottom: 20px; }
39
+ .g12 .grid_1, .g12 .grid_2, .g12 .grid_3, .g12 .grid_4, .g12 .grid_5, .g12 .grid_6, .g12 .grid_7, .g12 .grid_8, .g12 .grid_9, .g12 .grid_10, .g12 .grid_11, .g12 .grid_12 { display: inline; float: left; margin-left: 10px; margin-right: 10px; }
40
+ .g12 .grid_1 { width: 60px; }
41
+ .g12 .grid_2 { width: 140px; }
42
+ .g12 .grid_3 { width: 220px; }
43
+ .g12 .grid_4 { width: 300px; }
44
+ .g12 .grid_5 { width: 380px; }
45
+ .g12 .grid_6 { width: 460px; }
46
+ .g12 .grid_7 { width: 540px; }
47
+ .g12 .grid_8 { width: 620px; }
48
+ .g12 .grid_9 { width: 700px; }
49
+ .g12 .grid_10 { width: 780px; }
50
+ .g12 .grid_11 { width: 860px; }
51
+ .g12 .grid_12 { width: 940px; }
52
+ .g12 .prefix_1 { padding-left: 80px; }
53
+ .g12 .prefix_2 { padding-left: 160px; }
54
+ .g12 .prefix_3 { padding-left: 240px; }
55
+ .g12 .prefix_4 { padding-left: 320px; }
56
+ .g12 .prefix_5 { padding-left: 400px; }
57
+ .g12 .prefix_6 { padding-left: 480px; }
58
+ .g12 .prefix_7 { padding-left: 560px; }
59
+ .g12 .prefix_8 { padding-left: 640px; }
60
+ .g12 .prefix_9 { padding-left: 720px; }
61
+ .g12 .prefix_10 { padding-left: 800px; }
62
+ .g12 .prefix_11 { padding-left: 880px; }
63
+ .g12 .suffix_1 { padding-right: 80px; }
64
+ .g12 .suffix_2 { padding-right: 160px; }
65
+ .g12 .suffix_3 { padding-right: 240px; }
66
+ .g12 .suffix_4 { padding-right: 320px; }
67
+ .g12 .suffix_5 { padding-right: 400px; }
68
+ .g12 .suffix_6 { padding-right: 480px; }
69
+ .g12 .suffix_7 { padding-right: 560px; }
70
+ .g12 .suffix_8 { padding-right: 640px; }
71
+ .g12 .suffix_9 { padding-right: 720px; }
72
+ .g12 .suffix_10 { padding-right: 800px; }
73
+ .g12 .suffix_11 { padding-right: 880px; }
74
+ .g12 .push_1 { left: 80px; }
75
+ .g12 .push_2 { left: 160px; }
76
+ .g12 .push_3 { left: 240px; }
77
+ .g12 .push_4 { left: 320px; }
78
+ .g12 .push_5 { left: 400px; }
79
+ .g12 .push_6 { left: 480px; }
80
+ .g12 .push_7 { left: 560px; }
81
+ .g12 .push_8 { left: 640px; }
82
+ .g12 .push_9 { left: 720px; }
83
+ .g12 .push_10 { left: 800px; }
84
+ .g12 .push_11 { left: 880px; }
85
+ .g12 .pull_1 { left: -80px; }
86
+ .g12 .pull_2 { left: -160px; }
87
+ .g12 .pull_3 { left: -240px; }
88
+ .g12 .pull_4 { left: -320px; }
89
+ .g12 .pull_5 { left: -400px; }
90
+ .g12 .pull_6 { left: -480px; }
91
+ .g12 .pull_7 { left: -560px; }
92
+ .g12 .pull_8 { left: -640px; }
93
+ .g12 .pull_9 { left: -720px; }
94
+ .g12 .pull_10 { left: -800px; }
95
+ .g12 .pull_11 { left: -880px; }
96
+ .g12 .alpha { margin-left: 0; }
97
+ .g12 .omega { margin-right: 0; }
98
+
99
+ .g16 .grid_1, .g16 .grid_2, .g16 .grid_3, .g16 .grid_4, .g16 .grid_5, .g16 .grid_6, .g16 .grid_7, .g16 .grid_8, .g16 .grid_9, .g16 .grid_10, .g16 .grid_11, .g16 .grid_12, .g16 .grid_13, .g16 .grid_14, .g16 .grid_15, .g16 .grid_16 { display: inline; float: left; margin-left: 10px; margin-right: 10px; }
100
+ .g16 .grid_1 { width: 40px; }
101
+ .g16 .grid_2 { width: 100px; }
102
+ .g16 .grid_3 { width: 160px; }
103
+ .g16 .grid_4 { width: 220px; }
104
+ .g16 .grid_5 { width: 280px; }
105
+ .g16 .grid_6 { width: 340px; }
106
+ .g16 .grid_7 { width: 400px; }
107
+ .g16 .grid_8 { width: 460px; }
108
+ .g16 .grid_9 { width: 520px; }
109
+ .g16 .grid_10 { width: 580px; }
110
+ .g16 .grid_11 { width: 640px; }
111
+ .g16 .grid_12 { width: 700px; }
112
+ .g16 .grid_13 { width: 760px; }
113
+ .g16 .grid_14 { width: 820px; }
114
+ .g16 .grid_15 { width: 880px; }
115
+ .g16 .grid_16 { width: 940px; }
116
+ .g16 .prefix_1 { padding-left: 60px; }
117
+ .g16 .prefix_2 { padding-left: 120px; }
118
+ .g16 .prefix_3 { padding-left: 180px; }
119
+ .g16 .prefix_4 { padding-left: 240px; }
120
+ .g16 .prefix_5 { padding-left: 300px; }
121
+ .g16 .prefix_6 { padding-left: 360px; }
122
+ .g16 .prefix_7 { padding-left: 420px; }
123
+ .g16 .prefix_8 { padding-left: 480px; }
124
+ .g16 .prefix_9 { padding-left: 540px; }
125
+ .g16 .prefix_10 { padding-left: 600px; }
126
+ .g16 .prefix_11 { padding-left: 660px; }
127
+ .g16 .prefix_12 { padding-left: 720px; }
128
+ .g16 .prefix_13 { padding-left: 780px; }
129
+ .g16 .prefix_14 { padding-left: 840px; }
130
+ .g16 .prefix_15 { padding-left: 900px; }
131
+ .g16 .suffix_1 { padding-right: 60px; }
132
+ .g16 .suffix_2 { padding-right: 120px; }
133
+ .g16 .suffix_3 { padding-right: 180px; }
134
+ .g16 .suffix_4 { padding-right: 240px; }
135
+ .g16 .suffix_5 { padding-right: 300px; }
136
+ .g16 .suffix_6 { padding-right: 360px; }
137
+ .g16 .suffix_7 { padding-right: 420px; }
138
+ .g16 .suffix_8 { padding-right: 480px; }
139
+ .g16 .suffix_9 { padding-right: 540px; }
140
+ .g16 .suffix_10 { padding-right: 600px; }
141
+ .g16 .suffix_11 { padding-right: 660px; }
142
+ .g16 .suffix_12 { padding-right: 720px; }
143
+ .g16 .suffix_13 { padding-right: 780px; }
144
+ .g16 .suffix_14 { padding-right: 840px; }
145
+ .g16 .suffix_15 { padding-right: 900px; }
146
+ .g16 .push_1 { left: 60px; }
147
+ .g16 .push_2 { left: 120px; }
148
+ .g16 .push_3 { left: 180px; }
149
+ .g16 .push_4 { left: 240px; }
150
+ .g16 .push_5 { left: 300px; }
151
+ .g16 .push_6 { left: 360px; }
152
+ .g16 .push_7 { left: 420px; }
153
+ .g16 .push_8 { left: 480px; }
154
+ .g16 .push_9 { left: 540px; }
155
+ .g16 .push_10 { left: 600px; }
156
+ .g16 .push_11 { left: 660px; }
157
+ .g16 .push_12 { left: 720px; }
158
+ .g16 .push_13 { left: 780px; }
159
+ .g16 .push_14 { left: 840px; }
160
+ .g16 .push_15 { left: 900px; }
161
+ .g16 .pull_1 { left: -60px; }
162
+ .g16 .pull_2 { left: -120px; }
163
+ .g16 .pull_3 { left: -180px; }
164
+ .g16 .pull_4 { left: -240px; }
165
+ .g16 .pull_5 { left: -300px; }
166
+ .g16 .pull_6 { left: -360px; }
167
+ .g16 .pull_7 { left: -420px; }
168
+ .g16 .pull_8 { left: -480px; }
169
+ .g16 .pull_9 { left: -540px; }
170
+ .g16 .pull_10 { left: -600px; }
171
+ .g16 .pull_11 { left: -660px; }
172
+ .g16 .pull_12 { left: -720px; }
173
+ .g16 .pull_13 { left: -780px; }
174
+ .g16 .pull_14 { left: -840px; }
175
+ .g16 .pull_15 { left: -900px; }
176
+ .g16 .alpha { margin-left: 0; }
177
+ .g16 .omega { margin-right: 0; }
178
+
179
+ #header h1 { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 940px; text-align: center; padding-top: 20px; }
180
+ #header a { color: white; text-decoration: none; }
181
+ #header a:hover { color: white; text-decoration: none; }
182
+
183
+ #main h2 { padding: 20px 0px 0px; text-align: center; }
184
+ #main p { border: 1px solid #666; overflow: hidden; padding: 10px 0; text-align: center; margin-bottom: 20px; }
185
+
186
+ #footer p { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 940px; color: white; }
187
+
188
+ * { margin: 0; padding: 0; }
189
+
190
+ html, body, #wrap { height: 100%; }
191
+
192
+ body > #wrap { height: auto; min-height: 100%; }
193
+
194
+ #main { padding-bottom: 3em /* must be same height as the footer */; }
195
+
196
+ #footer { position: relative; margin-top: -3em /* negative value of footer height */; height: 3em; clear: both; }
197
+
198
+ .clearfix { display: inline-block; }
199
+
200
+ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
201
+
202
+ /* Hides from IE-mac \ */
203
+ * html .clearfix { height: 1%; }
204
+
205
+ .clearfix { display: block; }
206
+
207
+ /* End hide from IE-mac */
208
+ .g12 { background-image: url('/images/12_col.gif?1261042258'); background-repeat: repeat-y; }
209
+
210
+ .g16 { background-image: url('/images/16_col.gif?1261042258'); background-repeat: repeat-y; }
@@ -0,0 +1,140 @@
1
+ /* @import compass/reset.sass */
2
+ /* +global-reset */
3
+ body { font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; }
4
+
5
+ a:focus { outline: 1px dotted invert; }
6
+
7
+ hr { border-color: #ccc; border-style: solid; border-width: 1px 0 0; clear: both; height: 0; }
8
+
9
+ h1 { font-size: 25px; }
10
+
11
+ h2 { font-size: 23px; }
12
+
13
+ h3 { font-size: 21px; }
14
+
15
+ h4 { font-size: 19px; }
16
+
17
+ h5 { font-size: 17px; }
18
+
19
+ h6 { font-size: 15px; }
20
+
21
+ ol { list-style: decimal; }
22
+
23
+ ul { list-style: square; }
24
+
25
+ li { margin-left: 30px; }
26
+
27
+ p, dl, hr, h1, h2, h3, h4, h5, h6, ol, ul, pre, table, address, fieldset { margin-bottom: 20px; }
28
+
29
+ /* add 960 pull, push classes */
30
+
31
+ /* selector= container */
32
+
33
+ body { background-color: white; color: #666666; }
34
+
35
+ #header, #footer, .g12 { margin-left: auto; margin-right: auto; width: 960px; overflow: hidden; display: inline-block; }
36
+ #header, #footer, .g12 { display: block; }
37
+
38
+ .g12 .grid_1, .g12 .grid_2, .g12 .grid_3, .g12 .grid_4, .g12 .grid_5, .g12 .grid_6, .g12 .grid_7, .g12 .grid_8, .g12 .grid_9, .g12 .grid_10, .g12 .grid_11, .g12 .grid_12 { display: inline; float: left; margin-left: 10px; margin-right: 10px; }
39
+ .g12 .grid_1 { width: 60px; }
40
+ .g12 .grid_2 { width: 140px; }
41
+ .g12 .grid_3 { width: 220px; }
42
+ .g12 .grid_4 { width: 300px; }
43
+ .g12 .grid_5 { width: 380px; }
44
+ .g12 .grid_6 { width: 460px; }
45
+ .g12 .grid_7 { width: 540px; }
46
+ .g12 .grid_8 { width: 620px; }
47
+ .g12 .grid_9 { width: 700px; }
48
+ .g12 .grid_10 { width: 780px; }
49
+ .g12 .grid_11 { width: 860px; }
50
+ .g12 .grid_12 { width: 940px; }
51
+ .g12 .prefix_1 { padding-left: 80px; }
52
+ .g12 .prefix_2 { padding-left: 160px; }
53
+ .g12 .prefix_3 { padding-left: 240px; }
54
+ .g12 .prefix_4 { padding-left: 320px; }
55
+ .g12 .prefix_5 { padding-left: 400px; }
56
+ .g12 .prefix_6 { padding-left: 480px; }
57
+ .g12 .prefix_7 { padding-left: 560px; }
58
+ .g12 .prefix_8 { padding-left: 640px; }
59
+ .g12 .prefix_9 { padding-left: 720px; }
60
+ .g12 .prefix_10 { padding-left: 800px; }
61
+ .g12 .prefix_11 { padding-left: 880px; }
62
+ .g12 .suffix_1 { padding-right: 80px; }
63
+ .g12 .suffix_2 { padding-right: 160px; }
64
+ .g12 .suffix_3 { padding-right: 240px; }
65
+ .g12 .suffix_4 { padding-right: 320px; }
66
+ .g12 .suffix_5 { padding-right: 400px; }
67
+ .g12 .suffix_6 { padding-right: 480px; }
68
+ .g12 .suffix_7 { padding-right: 560px; }
69
+ .g12 .suffix_8 { padding-right: 640px; }
70
+ .g12 .suffix_9 { padding-right: 720px; }
71
+ .g12 .suffix_10 { padding-right: 800px; }
72
+ .g12 .suffix_11 { padding-right: 880px; }
73
+ .g12 .push_1 { left: 80px; }
74
+ .g12 .push_2 { left: 160px; }
75
+ .g12 .push_3 { left: 240px; }
76
+ .g12 .push_4 { left: 320px; }
77
+ .g12 .push_5 { left: 400px; }
78
+ .g12 .push_6 { left: 480px; }
79
+ .g12 .push_7 { left: 560px; }
80
+ .g12 .push_8 { left: 640px; }
81
+ .g12 .push_9 { left: 720px; }
82
+ .g12 .push_10 { left: 800px; }
83
+ .g12 .push_11 { left: 880px; }
84
+ .g12 .pull_1 { left: -80px; }
85
+ .g12 .pull_2 { left: -160px; }
86
+ .g12 .pull_3 { left: -240px; }
87
+ .g12 .pull_4 { left: -320px; }
88
+ .g12 .pull_5 { left: -400px; }
89
+ .g12 .pull_6 { left: -480px; }
90
+ .g12 .pull_7 { left: -560px; }
91
+ .g12 .pull_8 { left: -640px; }
92
+ .g12 .pull_9 { left: -720px; }
93
+ .g12 .pull_10 { left: -800px; }
94
+ .g12 .pull_11 { left: -880px; }
95
+ .g12 .alpha { margin-left: 0; }
96
+ .g12 .omega { margin-right: 0; }
97
+
98
+ #header { height: 80px; border-bottom: 2px solid #F90; }
99
+ #header h1 { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 460px; color: #F90; letter-spacing: -1px; margin: 30px 0px 0px 15px; padding: 0; font-weight: normal; }
100
+ #header h1 span { font-size: 16px; color: #FFC875; }
101
+ #header ul { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 460px; list-style-type: none; text-align: right; color: #CCC; padding: 0; margin: 40px 15px 0 0; }
102
+ #header ul li { display: inline; margin: 0 0 0 10px; }
103
+ #header ul li a { text-decoration: none; color: #999; font-weight: bold; }
104
+ #header ul li a:after { text-decoration: none; color: #333; }
105
+ #header ul li a.active { text-decoration: none; color: #F90; font-weight: bold; }
106
+
107
+ #main p { margin: 0 15px 15px 15px; }
108
+ #main h1 { color: #F90; font-size: 140%; }
109
+ #main h2, #main h3 { margin: 0 0 15px 0; padding: 5px 15px; font-size: 120%; font-weight: normal; color: #F90; border-bottom: 1px solid #E5E5E5; }
110
+ #main .content { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 620px; }
111
+ #main .content img { border: 1px solid #CDCDCD; float: left; margin: 0px 15px 5px; padding: 5px; }
112
+ #main .sidebar { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 300px; }
113
+
114
+ #footer .inner { display: inline; float: left; margin-left: 10px; margin-right: 10px; width: 940px; border-top: 2px solid #F90; color: #999; }
115
+ #footer .inner a { color: #999; text-decoration: none; }
116
+ #footer .inner a:hover { color: #F90; text-decoration: none; }
117
+ #footer .inner .left { float: left; }
118
+ #footer .inner .right { float: right; text-align: right; }
119
+
120
+ * { margin: 0; padding: 0; }
121
+
122
+ html, body, #wrap { height: 100%; }
123
+
124
+ body > #wrap { height: auto; min-height: 100%; }
125
+
126
+ #main { padding-bottom: 3em /* must be same height as the footer */; }
127
+
128
+ #footer { position: relative; margin-top: -3em /* negative value of footer height */; height: 3em; clear: both; }
129
+
130
+ .clearfix { display: inline-block; }
131
+
132
+ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
133
+
134
+ /* Hides from IE-mac \ */
135
+ * html .clearfix { height: 1%; }
136
+
137
+ .clearfix { display: block; }
138
+
139
+ /* End hide from IE-mac */
140
+ /* +showgrid(".g12") */
data/rblosxom.gemspec ADDED
@@ -0,0 +1,41 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'rblosxom'
3
+ s.version = '0.1.0'
4
+ s.date = '2009-12-18'
5
+
6
+ s.description = "Ruby based Blosxom."
7
+ s.summary = "rblosxom is a Blosxom program written in ruby."
8
+
9
+ s.authors = ["Percy Lau"]
10
+ s.email = "percy.lau@gmail.com"
11
+ s.requirements << 'Ruby, version 1.8.0 (or newer)'
12
+
13
+ # = MANIFEST =
14
+ s.files = Dir["lib/**/*.rb",
15
+ "bin/rblosxom-demo",
16
+ "README.rdoc",
17
+ "INSTALL",
18
+ "ChangeLog",
19
+ "MIT-LICENSE",
20
+ "AUTHORS",
21
+ "config/rackup.ru",
22
+ "demo/*.rb",
23
+ "public/**/*.gif",
24
+ "public/**/*.sass",
25
+ "public/**/*.css",
26
+ "views/**/*.haml",
27
+ "rblosxom.gemspec"]
28
+ # = MANIFEST =
29
+
30
+ s.executables = ["rblosxom-demo"]
31
+ s.extra_rdoc_files = %w[README.rdoc MIT-LICENSE]
32
+ s.add_dependency 'sinatra', '>= 0.9.4'
33
+ s.add_dependency 'haml', '>= 2.2.14'
34
+ s.add_dependency 'rdiscount', '>= 1.5.5'
35
+ s.add_development_dependency 'compass-960-plugin', '>= 0.9.11', '< 1.0'
36
+
37
+ s.has_rdoc = true
38
+ s.homepage = "http://bitbucket.org/itsucks/#{s.name}"
39
+ s.rubygems_version = '1.3.5'
40
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "#{s.name} #{s.version}", "--main", "README.rdoc", "--webcvs", "http://bitbucket.org/itsucks/#{s.name}"]
41
+ end
data/views/footer.haml ADDED
@@ -0,0 +1,4 @@
1
+ %p
2
+ = %/&copy;#{@footer[:year]}/
3
+ %a{:title=>"rbloxom home", :href=>"#{@config['url']}"}
4
+ %strong= @footer[:copyright]
data/views/grid.haml ADDED
@@ -0,0 +1,230 @@
1
+ !!! 1.1 Strict
2
+ %html{html_attrs('en')}
3
+ %head
4
+ %title
5
+ = @config["title"]
6
+ compass-960 grid
7
+ %meta{ "http-equiv" => "Content-Type", "content" => "application/xhtml+xml; charset=utf-8" }
8
+ %meta{ "http-equiv" => "Content-Language", "content" => "zh-cn" }
9
+
10
+ %meta{ "name" => "Language", "content" => "chinese" }
11
+ %meta{ "name" => "robots", "content" => "index, follow, all" }
12
+ %meta{ "name" => "generator", "content" => "#{@footer[:generator]}" }
13
+ %meta{ :name => "robots", :content => "index, follow, noarchive" }
14
+ %meta{ :name => "googlebot", :content => "noarchive" }
15
+
16
+ %link{ :rel => "stylesheet", :href => "/stylesheets/grid.css", :media => "screen", :type => "text/css" }
17
+
18
+ %body
19
+ #wrap
20
+ #header
21
+ %h1
22
+ %a{:href=>"http://960.gs/"} 960 Grid System
23
+ #main.clearfix
24
+ .g12
25
+ %h2 12 Column Grid
26
+ .grid_12
27
+ %p 940
28
+
29
+ .grid_1
30
+ %p 60
31
+ .grid_11
32
+ %p 860
33
+
34
+ .grid_2
35
+ %p 140
36
+ .grid_10
37
+ %p 780
38
+
39
+ .grid_3
40
+ %p 220
41
+ .grid_9
42
+ %p 700
43
+
44
+ .grid_4
45
+ %p 300
46
+ .grid_8
47
+ %p 620
48
+
49
+ .grid_5
50
+ %p 380
51
+ .grid_7
52
+ %p 540
53
+
54
+ .grid_6
55
+ %p 460
56
+ .grid_6
57
+ %p 460
58
+
59
+ .grid_1.suffix_11
60
+ %p 60
61
+
62
+ .grid_1.prefix_1.suffix_10
63
+ %p 60
64
+
65
+ .grid_1.prefix_2.suffix_9
66
+ %p 60
67
+
68
+ .grid_1.prefix_3.suffix_8
69
+ %p 60
70
+
71
+ .grid_1.prefix_4.suffix_7
72
+ %p 60
73
+
74
+ .grid_1.prefix_5.suffix_6
75
+ %p 60
76
+
77
+ .grid_1.prefix_6.suffix_5
78
+ %p 60
79
+
80
+ .grid_1.prefix_7.suffix_4
81
+ %p 60
82
+
83
+ .grid_1.prefix_8.suffix_3
84
+ %p 60
85
+
86
+ .grid_1.prefix_9.suffix_2
87
+ %p 60
88
+
89
+ .grid_1.prefix_10.suffix_1
90
+ %p 60
91
+
92
+ .grid_1.prefix_11
93
+ %p 60
94
+
95
+ .grid_6.push_6
96
+ .grid_1.alpha
97
+ %p 60
98
+ .grid_5.omega
99
+ %p 380
100
+ .grid_3.alpha
101
+ %p 220
102
+ .grid_3.omega
103
+ %p 220
104
+
105
+ .grid_6.pull_6
106
+ .grid_3.alpha
107
+ %p 220
108
+ .grid_3.omega
109
+ %p 220
110
+ .grid_1.alpha
111
+ %p 60
112
+ .grid_5.omega
113
+ %p 380
114
+
115
+ .g16
116
+ %h2 16 Column Grid
117
+ .grid_16
118
+ %p 940
119
+
120
+ .grid_1
121
+ %p 40
122
+ .grid_15
123
+ %p 880
124
+
125
+ .grid_2
126
+ %p 100
127
+ .grid_14
128
+ %p 820
129
+
130
+ .grid_3
131
+ %p 160
132
+ .grid_13
133
+ %p 760
134
+
135
+ .grid_4
136
+ %p 220
137
+ .grid_12
138
+ %p 700
139
+
140
+ .grid_5
141
+ %p 280
142
+ .grid_11
143
+ %p 640
144
+
145
+ .grid_6
146
+ %p 340
147
+ .grid_10
148
+ %p 580
149
+
150
+ .grid_7
151
+ %p 400
152
+ .grid_9
153
+ %p 520
154
+
155
+ .grid_8
156
+ %p 460
157
+ .grid_8
158
+ %p 560
159
+
160
+ .grid_1.suffix_15
161
+ %p 40
162
+
163
+ .grid_1.prefix_1.suffix_14
164
+ %p 40
165
+
166
+ .grid_1.prefix_2.suffix_13
167
+ %p 40
168
+
169
+ .grid_1.prefix_3.suffix_12
170
+ %p 40
171
+
172
+ .grid_1.prefix_4.suffix_11
173
+ %p 40
174
+
175
+ .grid_1.prefix_5.suffix_10
176
+ %p 40
177
+
178
+ .grid_1.prefix_6.suffix_9
179
+ %p 40
180
+
181
+ .grid_1.prefix_7.suffix_8
182
+ %p 40
183
+
184
+ .grid_1.prefix_8.suffix_7
185
+ %p 40
186
+
187
+ .grid_1.prefix_9.suffix_6
188
+ %p 40
189
+
190
+ .grid_1.prefix_10.suffix_5
191
+ %p 40
192
+
193
+ .grid_1.prefix_11.suffix_4
194
+ %p 40
195
+
196
+ .grid_1.prefix_12.suffix_3
197
+ %p 40
198
+
199
+ .grid_1.prefix_13.suffix_2
200
+ %p 40
201
+
202
+ .grid_1.prefix_14.suffix_1
203
+ %p 40
204
+
205
+ .grid_1.prefix_15
206
+ %p 40
207
+
208
+ .grid_8.push_8
209
+ .grid_1.alpha
210
+ %p 40
211
+ .grid_7.omega
212
+ %p 400
213
+ .grid_4.alpha
214
+ %p 220
215
+ .grid_4.omega
216
+ %p 220
217
+
218
+ .grid_8.pull_8
219
+ .grid_4.alpha
220
+ %p 220
221
+ .grid_4.omega
222
+ %p 220
223
+ .grid_1.alpha
224
+ %p 40
225
+ .grid_7.omega
226
+ %p 400
227
+ #footer
228
+ %p
229
+ generated with
230
+ = @footer[:generator]
data/views/header.haml ADDED
@@ -0,0 +1,10 @@
1
+ %h1
2
+ = @config["title"]
3
+ = ::Rblosxom::Version::STRING
4
+ %ul
5
+ %li
6
+ %a{:class=>"active", :title=>"rblosxom", :href=>"/"} rblosxom
7
+ %li
8
+ |
9
+ %li
10
+ %a{:title=>"960 grid demo", :href=>"/grid"} grid
data/views/index.haml ADDED
@@ -0,0 +1,8 @@
1
+ #wrap
2
+ #header= haml :header, :layout => false
3
+ #main.clearfix
4
+ .g12
5
+ :markdown
6
+ #{readme}
7
+
8
+ #footer= haml :footer, :layout => false, :locals => { }
data/views/layout.haml ADDED
@@ -0,0 +1,16 @@
1
+ !!! 1.1 Strict
2
+ %html{html_attrs('en')}
3
+ %head
4
+ %title= @config["title"]
5
+ %meta{ "http-equiv" => "Content-Type", "content" => "application/xhtml+xml; charset=utf-8" }
6
+ %meta{ "http-equiv" => "Content-Language", "content" => "zh-cn" }
7
+
8
+ %meta{ "name" => "Language", "content" => "chinese" }
9
+ %meta{ "name" => "robots", "content" => "index, follow, all" }
10
+ %meta{ "name" => "generator", "content" => "#{@config["generator"]}" }
11
+ %meta{ :name => "robots", :content => "index, follow, noarchive" }
12
+ %meta{ :name => "googlebot", :content => "noarchive" }
13
+
14
+ %link{ :rel => "stylesheet", :href => "/stylesheets/screen.css", :media => "screen", :type => "text/css" }
15
+
16
+ %body= yield
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rblosxom
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Percy Lau
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-18 00:00:00 +08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sinatra
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.4
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: haml
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.2.14
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rdiscount
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.5.5
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: compass-960-plugin
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.11
54
+ - - <
55
+ - !ruby/object:Gem::Version
56
+ version: "1.0"
57
+ version:
58
+ description: Ruby based Blosxom.
59
+ email: percy.lau@gmail.com
60
+ executables:
61
+ - rblosxom-demo
62
+ extensions: []
63
+
64
+ extra_rdoc_files:
65
+ - README.rdoc
66
+ - MIT-LICENSE
67
+ files:
68
+ - lib/rblosxom/base.rb
69
+ - lib/rblosxom.rb
70
+ - bin/rblosxom-demo
71
+ - README.rdoc
72
+ - INSTALL
73
+ - ChangeLog
74
+ - MIT-LICENSE
75
+ - AUTHORS
76
+ - config/rackup.ru
77
+ - demo/grid.rb
78
+ - demo/rapp.rb
79
+ - public/images/12_col.gif
80
+ - public/images/16_col.gif
81
+ - public/sass/_sticky_footer.sass
82
+ - public/sass/_grid.sass
83
+ - public/sass/grid.sass
84
+ - public/sass/_debug.sass
85
+ - public/sass/screen.sass
86
+ - public/stylesheets/screen.css
87
+ - public/stylesheets/grid.css
88
+ - views/header.haml
89
+ - views/grid.haml
90
+ - views/layout.haml
91
+ - views/index.haml
92
+ - views/footer.haml
93
+ - rblosxom.gemspec
94
+ has_rdoc: true
95
+ homepage: http://bitbucket.org/itsucks/rblosxom
96
+ licenses: []
97
+
98
+ post_install_message:
99
+ rdoc_options:
100
+ - --line-numbers
101
+ - --inline-source
102
+ - --title
103
+ - rblosxom 0.1.0
104
+ - --main
105
+ - README.rdoc
106
+ - --webcvs
107
+ - http://bitbucket.org/itsucks/rblosxom
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: "0"
115
+ version:
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: "0"
121
+ version:
122
+ requirements:
123
+ - Ruby, version 1.8.0 (or newer)
124
+ rubyforge_project:
125
+ rubygems_version: 1.3.5
126
+ signing_key:
127
+ specification_version: 3
128
+ summary: rblosxom is a Blosxom program written in ruby.
129
+ test_files: []
130
+