rog 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/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
|
+
|