rog 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +340 -0
- data/README +44 -0
- data/Rakefile +123 -0
- data/bin/rog +53 -0
- data/lib/rog.rb +66 -0
- data/lib/rog/app.rb +121 -0
- data/lib/rog/blog.rb +283 -0
- data/lib/rog/builtin.rf +67 -0
- data/lib/rog/page.rb +31 -0
- data/lib/rog/post.rb +80 -0
- data/lib/rog/project/README +49 -0
- data/lib/rog/project/Rakefile +26 -0
- data/lib/rog/project/blog/blog.yaml +20 -0
- data/lib/rog/project/blog/layouts/post_mini.thtml +14 -0
- data/lib/rog/project/blog/layouts/soft_green.thtml +80 -0
- data/lib/rog/project/blog/layouts/soft_green_archive.thtml +17 -0
- data/lib/rog/project/blog/layouts/soft_green_post.thtml +14 -0
- data/lib/rog/project/blog/layouts/soft_green_static.thtml +87 -0
- data/lib/rog/project/blog/pages/COMMON.rb +11 -0
- data/lib/rog/project/blog/pages/about.rb +7 -0
- data/lib/rog/project/blog/pages/about.thtml +3 -0
- data/lib/rog/project/blog/pages/archives/README +1 -0
- data/lib/rog/project/blog/pages/index.rb +12 -0
- data/lib/rog/project/blog/pages/index.thtml +0 -0
- data/lib/rog/project/blog/pages/posts/COMMON.rb +1 -0
- data/lib/rog/project/blog/pages/posts/README +1 -0
- data/lib/rog/project/blog/res/images/cc_powered.png +0 -0
- data/lib/rog/project/blog/res/images/copyleft_powered.png +0 -0
- data/lib/rog/project/blog/res/images/emacs_powered.png +0 -0
- data/lib/rog/project/blog/res/images/gnulinux_powered.png +0 -0
- data/lib/rog/project/blog/res/images/header.jpg +0 -0
- data/lib/rog/project/blog/res/images/rog_powered.png +0 -0
- data/lib/rog/project/blog/res/images/rote-tiny.png +0 -0
- data/lib/rog/project/blog/res/images/ruby_powered.png +0 -0
- data/lib/rog/project/blog/res/styles.css +171 -0
- data/lib/rog/project/blog/templates/archive-month.rb.tpl +9 -0
- data/lib/rog/project/blog/templates/archive-month.thtml.tpl +0 -0
- data/lib/rog/project/blog/templates/archive-tag.rb.tpl +9 -0
- data/lib/rog/project/blog/templates/archive-tag.thtml.tpl +0 -0
- data/lib/rog/project/blog/templates/post.rb.tpl +7 -0
- data/lib/rog/project/blog/templates/post.thtml.tpl +1 -0
- data/lib/rog/rogtasks.rb +143 -0
- data/tests/data/blog.yaml +21 -0
- data/tests/data/layouts/post_mini.thtml +14 -0
- data/tests/data/layouts/soft_green.thtml +87 -0
- data/tests/data/layouts/soft_green_archive.thtml +17 -0
- data/tests/data/layouts/soft_green_post.thtml +14 -0
- data/tests/data/layouts/soft_green_static.thtml +87 -0
- data/tests/data/pages/COMMON.rb +11 -0
- data/tests/data/pages/about.rb +7 -0
- data/tests/data/pages/about.thtml +3 -0
- data/tests/data/pages/index.rb +12 -0
- data/tests/data/pages/index.thtml +0 -0
- data/tests/data/pages/posts/20050603-prova123.rb +3 -0
- data/tests/data/pages/posts/20050603-prova123.thtml +0 -0
- data/tests/data/templates/archive-month.rb.tpl +9 -0
- data/tests/data/templates/archive-month.thtml.tpl +0 -0
- data/tests/data/templates/archive-tag.rb.tpl +9 -0
- data/tests/data/templates/archive-tag.thtml.tpl +0 -0
- data/tests/data/templates/post.rb.tpl +7 -0
- data/tests/data/templates/post.thtml.tpl +1 -0
- data/tests/tc_rogblog.rb +52 -0
- data/tests/tc_rogpost.rb +44 -0
- data/tests/tc_rogtasks.rb +35 -0
- data/tests/ts_rog.rb +9 -0
- metadata +142 -0
@@ -0,0 +1,11 @@
|
|
1
|
+
# Shared code for all pages below this directory.
|
2
|
+
#
|
3
|
+
# This is executed for every file transformed, in the binding of
|
4
|
+
# the appropriate Rote::Page instance. Individual page sources
|
5
|
+
# ([pagename].rb) override anything defined here.
|
6
|
+
#
|
7
|
+
# Any COMMON.rb files found in directories above this will also
|
8
|
+
# be loaded.
|
9
|
+
@site_title = "$cat /dev/random - ripley's miscellanous debris"
|
10
|
+
|
11
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
In this directory rog read all archives.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Page code for the 'index' page. We call a few methods to
|
2
|
+
# set layout and formatting, and then create a custom variable
|
3
|
+
# for use in the layout.
|
4
|
+
|
5
|
+
# Apply the 'archive' layout
|
6
|
+
layout 'soft_green_archive'
|
7
|
+
|
8
|
+
# Set a var with the page title
|
9
|
+
@page_title = 'Blog Index'
|
10
|
+
|
11
|
+
# Get the last posts
|
12
|
+
@blog_posts = $blog.get_last_posts
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
page_filter Rote::Filters::Syntax.new
|
@@ -0,0 +1 @@
|
|
1
|
+
In this directory rog read all the blog posts.
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,171 @@
|
|
1
|
+
body {
|
2
|
+
font-family:Verdana, Arial, Helvetica, sans-serif;
|
3
|
+
font-size: 0.8em;
|
4
|
+
margin: 0;
|
5
|
+
padding: 0;
|
6
|
+
background-color:#182801;
|
7
|
+
}
|
8
|
+
|
9
|
+
.conteneur {
|
10
|
+
margin-top: 10px;
|
11
|
+
position: absolute;
|
12
|
+
width: 740px;
|
13
|
+
left: 50%;
|
14
|
+
margin-left: -370px;
|
15
|
+
border:0px solid #182801;
|
16
|
+
color: #182801;
|
17
|
+
background-color:#7A9431;
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
.header {
|
22
|
+
background-image: url("images/header.jpg");
|
23
|
+
background-repeat: no-repeat;
|
24
|
+
height:160px;
|
25
|
+
padding-left:50px;
|
26
|
+
padding-top:40px;
|
27
|
+
max-width:490px;
|
28
|
+
border-bottom:1px solid #182801;
|
29
|
+
color: #F5F8EF;
|
30
|
+
background-color:#182801;
|
31
|
+
}
|
32
|
+
|
33
|
+
.menu {
|
34
|
+
float:right;
|
35
|
+
margin: 0px;
|
36
|
+
padding:0px;
|
37
|
+
margin-left:20px;
|
38
|
+
border-left:1px solid #182801;
|
39
|
+
}
|
40
|
+
|
41
|
+
.buttons {
|
42
|
+
float:right;
|
43
|
+
position:relative;
|
44
|
+
margin: 0px;
|
45
|
+
padding: 0px;
|
46
|
+
margin-left:88%;
|
47
|
+
}
|
48
|
+
|
49
|
+
.buttons img {
|
50
|
+
margin: 1px;
|
51
|
+
border: 0px;
|
52
|
+
}
|
53
|
+
|
54
|
+
* html .menu {
|
55
|
+
margin-left: -3px;
|
56
|
+
}
|
57
|
+
|
58
|
+
.centre {
|
59
|
+
padding:20px;
|
60
|
+
padding-left:40px;
|
61
|
+
}
|
62
|
+
|
63
|
+
.pied {
|
64
|
+
float: right;
|
65
|
+
margin-bottom: 0px;
|
66
|
+
height: 25px;
|
67
|
+
text-align:right;
|
68
|
+
position: relative;
|
69
|
+
width: 740px;
|
70
|
+
background-color:#7A9431;
|
71
|
+
}
|
72
|
+
|
73
|
+
.pied div {
|
74
|
+
width: 740px;
|
75
|
+
}
|
76
|
+
|
77
|
+
.pied * {
|
78
|
+
margin-right: 4px;
|
79
|
+
background-color:#7A9431;
|
80
|
+
}
|
81
|
+
|
82
|
+
.menu-list {
|
83
|
+
list-style-type: none;
|
84
|
+
margin:0px 0px 0px 0px;
|
85
|
+
padding:0px;
|
86
|
+
}
|
87
|
+
|
88
|
+
* html .menu li{
|
89
|
+
margin-bottom:-3px;
|
90
|
+
}
|
91
|
+
|
92
|
+
.menu li {
|
93
|
+
margin:0px;
|
94
|
+
border-bottom:1px solid #182801;
|
95
|
+
color: #D9CEB8;
|
96
|
+
font-size: 1.1em;
|
97
|
+
text-decoration: none;
|
98
|
+
background-color:#748F02;
|
99
|
+
padding:0px;
|
100
|
+
width:199px;
|
101
|
+
}
|
102
|
+
|
103
|
+
.menu li a {
|
104
|
+
margin:0px;
|
105
|
+
display: block;
|
106
|
+
color: #F5F8EF;
|
107
|
+
font-size: 1.1em;
|
108
|
+
text-decoration: none;
|
109
|
+
border-left:5px solid #F5F8EF;
|
110
|
+
padding:5px;
|
111
|
+
}
|
112
|
+
|
113
|
+
.menu li a:hover {
|
114
|
+
text-decoration: none;
|
115
|
+
background-color:#90A000;
|
116
|
+
}
|
117
|
+
|
118
|
+
.menu-section-title {
|
119
|
+
background-color: #FFFFFF;
|
120
|
+
color: #748F02;
|
121
|
+
width: 100%;
|
122
|
+
display: block;
|
123
|
+
}
|
124
|
+
|
125
|
+
.p{
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
h2{
|
130
|
+
margin-left:-20px;
|
131
|
+
margin-top:15px;
|
132
|
+
padding-left:5px;
|
133
|
+
font-size: 1.3em;
|
134
|
+
color: #F5F8EF;
|
135
|
+
font-weight:normal;
|
136
|
+
}
|
137
|
+
|
138
|
+
h1{
|
139
|
+
margin-left:-30px;
|
140
|
+
margin-top:5px;
|
141
|
+
padding-left:5px;
|
142
|
+
font-size: 1.6em;
|
143
|
+
color: #F5F8EF;
|
144
|
+
font-weight:normal;
|
145
|
+
}
|
146
|
+
|
147
|
+
.header-title {
|
148
|
+
font-size:2.3em;
|
149
|
+
border-top:2px solid #F5F8EF;
|
150
|
+
}
|
151
|
+
|
152
|
+
.header-title-two {
|
153
|
+
font-size:1.1em;
|
154
|
+
padding-bottom:3px;
|
155
|
+
border-bottom:1px solid #F5F8EF;
|
156
|
+
}
|
157
|
+
|
158
|
+
a{
|
159
|
+
color:#F5F8EF;
|
160
|
+
text-decoration:none;
|
161
|
+
}
|
162
|
+
|
163
|
+
a:hover{
|
164
|
+
text-decoration:underline;
|
165
|
+
}
|
166
|
+
|
167
|
+
blockquote{
|
168
|
+
background-color:rgb(142, 168, 69);
|
169
|
+
padding : 3px;
|
170
|
+
border-left:2px solid #F5F8EF;
|
171
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# Apply the 'archive' layout
|
2
|
+
layout 'soft_green_archive'
|
3
|
+
|
4
|
+
# Set a var for title of the archive paget
|
5
|
+
@page_title = '<%= @year %>/<%= @month %> Archive'
|
6
|
+
|
7
|
+
# Select all posts of the defined year and month
|
8
|
+
@blog_posts = $blog.posts.select { |post| post.year == "<%= @year %>" and post.month == "<%= @month %>" }
|
9
|
+
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# Apply the 'archive' layout
|
2
|
+
layout 'soft_green_archive'
|
3
|
+
|
4
|
+
# Set a var for tag archive title
|
5
|
+
@page_title = '<%= @tag %> Tag Archive'
|
6
|
+
|
7
|
+
# Select all posts that include the defined tag
|
8
|
+
@blog_posts = $blog.posts.select { |post| post.tags.include?("<%= @tag %>") }
|
9
|
+
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
*Inserire testo in textile*
|
data/lib/rog/rogtasks.rb
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
# Rog - Static Blog Engine.
|
2
|
+
#
|
3
|
+
# Copyright (C) 2006 Luca Greco a.k.a. "ripley"
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
require 'rake'
|
20
|
+
require 'rake/tasklib'
|
21
|
+
|
22
|
+
require 'rog/page'
|
23
|
+
require 'rote'
|
24
|
+
require 'rote/rotetasks'
|
25
|
+
|
26
|
+
module Rog
|
27
|
+
|
28
|
+
#####
|
29
|
+
## Rake task library that provides a set of tasks to transform documentation
|
30
|
+
## using Rog. To use, create a new instance of this class in your Rakefile,
|
31
|
+
## performing appropriate configuration in a block supplied to +new+.
|
32
|
+
## This will automatically register a set of tasks with names based on the
|
33
|
+
## name you supply. The tasks defined are:
|
34
|
+
##
|
35
|
+
## #{name} - Transform all documentation, copy resources.
|
36
|
+
## #{name}_pages - Transform all pages
|
37
|
+
## #{name}_res - Copy resources
|
38
|
+
## #{name}_monitor - Start watching for changes
|
39
|
+
## #clobber_{name} - Remove output
|
40
|
+
##
|
41
|
+
class BlogTask < Rake::TaskLib
|
42
|
+
|
43
|
+
attr_accessor :blog_path, :pages_path, :archives_path, :posts_path, :output_dir
|
44
|
+
|
45
|
+
# Create a new BlogTask, using the supplied block for configuration,
|
46
|
+
# and define tasks with the specified base-name within Rake.
|
47
|
+
def initialize(name = :blog) # :yield: self if block_given?
|
48
|
+
@name = name
|
49
|
+
@blog_path = 'blog'
|
50
|
+
@pages_path = "#{@blog_path}/pages"
|
51
|
+
@archives_path = "#{@pages_path}/archives"
|
52
|
+
@posts_path = "#{@pages_path}/posts"
|
53
|
+
@output_dir = './output'
|
54
|
+
|
55
|
+
yield self if block_given?
|
56
|
+
|
57
|
+
define_subtasks
|
58
|
+
super()
|
59
|
+
end
|
60
|
+
|
61
|
+
def blog_path=(blog_path)
|
62
|
+
@blog_path = blog_path
|
63
|
+
@pages_path = "#{@blog_path}/pages"
|
64
|
+
@archives_path = "#{@pages_path}/archives"
|
65
|
+
@posts_path = "#{@pages_path}/posts"
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
def define_subtasks
|
70
|
+
$blog = Blog.new(@blog_path, @pages_path, @archives_path, @posts_path)
|
71
|
+
|
72
|
+
ws = Rote::DocTask.new(:blog) do |site|
|
73
|
+
site.output_dir = @output_dir
|
74
|
+
site.layout_dir = "#{@blog_path}/layouts"
|
75
|
+
|
76
|
+
site.pages.dir = @pages_path
|
77
|
+
site.pages.include('**/*')
|
78
|
+
|
79
|
+
site.res.dir = "#{@blog_path}/res"
|
80
|
+
site.res.include('**/*')
|
81
|
+
|
82
|
+
site.ext_mapping(/thtml|textile/, 'html') do |page|
|
83
|
+
page.extend Rote::Format::HTML
|
84
|
+
page.page_filter Rote::Filters::RedCloth.new
|
85
|
+
end
|
86
|
+
|
87
|
+
site.ext_mapping(/mhtml|markdown/, 'html') do |page|
|
88
|
+
page.extend Rote::Format::HTML
|
89
|
+
page.page_filter Rote::Filters::BlueCloth.new
|
90
|
+
end
|
91
|
+
|
92
|
+
site.ext_mapping(/rdhtml|rdoc/, 'html') do |page|
|
93
|
+
page.extend Rote::Format::HTML
|
94
|
+
page.page_filter Rote::Filters::RDoc.new
|
95
|
+
end
|
96
|
+
|
97
|
+
site.ext_mapping(/html/, 'html') do |page|
|
98
|
+
page.extend Rote::Format::HTML
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
task :create_post do
|
103
|
+
print "Post name: "
|
104
|
+
post_name = STDIN.gets.chomp
|
105
|
+
|
106
|
+
print "tags: "
|
107
|
+
post_tags = STDIN.gets.chomp
|
108
|
+
|
109
|
+
begin
|
110
|
+
BlogUtils.generate_post(post_name, post_tags)
|
111
|
+
end if post_name.length > 0
|
112
|
+
end
|
113
|
+
|
114
|
+
task :create_tag_archive do
|
115
|
+
print "Tag name: "
|
116
|
+
tag_name = STDIN.gets.chomp
|
117
|
+
|
118
|
+
begin
|
119
|
+
BlogUtils.generate_tag_archive(tag_name)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
task :create_month_archive do
|
124
|
+
print "Year: "
|
125
|
+
year = STDIN.gets.chomp
|
126
|
+
|
127
|
+
print "Month: "
|
128
|
+
month = STDIN.gets.chomp
|
129
|
+
|
130
|
+
begin
|
131
|
+
BlogUtils.generate_month_archive(year,month)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
task :publish do
|
136
|
+
puts `rsync -avr #{@output_dir + '/'} #{$blog.publish_url}`
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
end #class
|
142
|
+
end #module
|
143
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
blogurl: http://salug.it/~ripley/
|
2
|
+
publish_url : ripley@salug.it:/home/ripley/public_html
|
3
|
+
|
4
|
+
pages:
|
5
|
+
- About: about.html
|
6
|
+
- Blog: index.html
|
7
|
+
- Non Esiste: nonesiste.html
|
8
|
+
|
9
|
+
buttons:
|
10
|
+
- rog_powered.png: http://www.salug.it/~ripley/projects/rog.html
|
11
|
+
- ruby_powered.png: http://www.ruby-lang.it
|
12
|
+
- emacs_powered.png: http://www.gnu.org/software/emacs
|
13
|
+
- gnulinux_powered.png: http://www.gnu.org
|
14
|
+
|
15
|
+
projects:
|
16
|
+
- Rog: http://www.salug.it/~ripley/projects/rog.html
|
17
|
+
|
18
|
+
links:
|
19
|
+
- SaLUG: http://www.salug.it
|
20
|
+
- Alca: http://alca.le.it
|
21
|
+
- HowTux: http://www.howtux.org
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--a href='<%= "#{@blogurl}/posts/#{@page_name}" %>'>
|
2
|
+
<h2 style="display: inline;" ><%= @page_title %> </h2> (<%= @post_date %>)
|
3
|
+
</a-->
|
4
|
+
|
5
|
+
<%# Insert page content #%>
|
6
|
+
<%= @content_for_layout %>
|
7
|
+
|
8
|
+
<div class='post_tags'>
|
9
|
+
<b>Tags</b>: <%= @page_tags.join(', ') %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<p align='center'><hr width='20%'></p>
|
13
|
+
|
14
|
+
|