rblosxom 0.1.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/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
+