soxer 0.9.10 → 0.9.11
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/CHANGES +27 -1
- data/lib/soxer/main.rb +43 -79
- data/lib/soxer/skel/blog/app.rb +4 -1
- data/lib/soxer/skel/blog/config.ru +4 -24
- data/lib/soxer/skel/blog/{config.yml → config.yml.example} +2 -2
- data/lib/soxer/skel/blog/views/_block_history.haml +1 -1
- data/lib/soxer/skel/empty/app.rb +2 -2
- data/lib/soxer/skel/empty/config.ru +4 -24
- data/lib/soxer/skel/empty/{config.yml → config.yml.example} +2 -2
- data/soxer.gemspec +2 -2
- metadata +31 -41
- data/lib/soxer/skel/blog/public/fonts/trashed.ttf +0 -0
- data/lib/soxer/skel/blog/views/css/trashed/css.sass +0 -152
data/CHANGES
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
= 0.9.
|
1
|
+
= 0.9.11 / 2011-04-30
|
2
|
+
|
3
|
+
* Fixed relative paths in config.ru for app requirement.
|
4
|
+
|
5
|
+
* Fixed scoping inside classes. This was a severe bug.
|
6
|
+
It's a mistery how it worked until sinatra 1.2.3...
|
7
|
+
|
8
|
+
* Deleted unneeded classes.
|
9
|
+
|
10
|
+
* Added initialization to objects.
|
11
|
+
|
12
|
+
* Properly modularized Soxer. There are now no global settings that
|
13
|
+
Soxer uses
|
14
|
+
|
15
|
+
* Soxer sets up several application speciffic directories, which can be
|
16
|
+
changed inside SoxerApp.
|
17
|
+
|
18
|
+
* Setting up the root of application is now mandatory.
|
19
|
+
|
20
|
+
* Changed and cleaned skeletal application's app.rb and config.ru files
|
21
|
+
to reflect the new modularity.
|
22
|
+
|
23
|
+
* Renamed config.yml to config.yml.example, added cosmetic fixes to it.
|
24
|
+
|
25
|
+
= 0.9.10 / 2011-03-22
|
2
26
|
|
3
27
|
* The function get_list now returns an array of hashies. This was a severe
|
4
28
|
inconsistency.
|
@@ -9,6 +33,8 @@
|
|
9
33
|
* Completely rewritten inclusion of empty directories to facilitate a more
|
10
34
|
flexible skeleton project creation.
|
11
35
|
|
36
|
+
* Added a blog skeleton to the list of project skeletons.
|
37
|
+
|
12
38
|
= 0.9.9 / 2011-03-03
|
13
39
|
|
14
40
|
* Changed the names of Classes to match CamelCase convention in Ruby
|
data/lib/soxer/main.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
|
3
2
|
require 'hashie'
|
4
3
|
require 'sinatra/base'
|
5
4
|
require 'yaml'
|
6
5
|
require 'haml'
|
6
|
+
require 'sass'
|
7
7
|
require 'uuid'
|
8
8
|
|
9
9
|
#== Sinatra, web publishing DSL
|
@@ -24,7 +24,7 @@ module Sinatra
|
|
24
24
|
# Copyright: Copyright (c) 1010 Toni Anzlovar, www.formalibre.si
|
25
25
|
# License: Distributed under the GPL licence. http://www.gnu.org/licenses/gpl.html
|
26
26
|
module Soxer
|
27
|
-
|
27
|
+
|
28
28
|
# === The FileReader class
|
29
29
|
#
|
30
30
|
# FileReader is responsible for reading a YAML file, that contains the
|
@@ -36,25 +36,22 @@ module Sinatra
|
|
36
36
|
# if the fields are not present, they are automatically generated and
|
37
37
|
# saved in the file.
|
38
38
|
class FileReader
|
39
|
-
|
39
|
+
|
40
40
|
attr_accessor :filename
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
# directory.
|
45
|
-
def settings
|
46
|
-
@s = Sinatra::Application
|
42
|
+
def initialize filename, settings
|
43
|
+
@f, @s = filename, settings
|
47
44
|
end
|
48
45
|
|
49
|
-
# The method, that retuns the YAML structure in a ::hash::.
|
46
|
+
# The method, that retuns the YAML structure in a ::hashie hash::.
|
47
|
+
# Hashie makes the hash keys accessible either strings, symbols or methods.
|
50
48
|
def get_content
|
51
|
-
|
52
|
-
out = YAML.load_file( @filename )
|
49
|
+
out = YAML.load_file( @f )
|
53
50
|
add_date unless out['date']
|
54
51
|
add_id unless out['uuid']
|
55
|
-
out['url'] = @
|
56
|
-
out['mtime'] = File.mtime( @
|
57
|
-
out
|
52
|
+
out['url'] = @f.gsub(/#{@s.origin}\/(.+)\.yaml$/, "\\1" ).gsub(/(.+)\/index$/, "\\1" )
|
53
|
+
out['mtime'] = File.mtime( @f )
|
54
|
+
Hashie::Mash.new out
|
58
55
|
end
|
59
56
|
|
60
57
|
private
|
@@ -63,18 +60,18 @@ module Sinatra
|
|
63
60
|
# Identifier field to the data structure.
|
64
61
|
def add_id
|
65
62
|
mtime = File.mtime( @filename )
|
66
|
-
File.open( @
|
63
|
+
File.open( @f, 'r+' ) do |f|
|
67
64
|
out = "uuid: #{UUID.new.generate}\n"
|
68
65
|
out << f.read; f.pos = 0
|
69
66
|
f << out
|
70
67
|
end
|
71
|
-
File.utime( 0, mtime, @
|
68
|
+
File.utime( 0, mtime, @f )
|
72
69
|
end
|
73
70
|
|
74
71
|
# A private method, that adds a standard Time.now to the data structure.
|
75
72
|
def add_date
|
76
|
-
mtime = File.mtime( @
|
77
|
-
File.open( @
|
73
|
+
mtime = File.mtime( @f )
|
74
|
+
File.open( @f, 'r+' ) do |f|
|
78
75
|
out = "date: #{mtime.xmlschema}\n"
|
79
76
|
out << f.read; f.pos = 0
|
80
77
|
f << out
|
@@ -89,53 +86,22 @@ module Sinatra
|
|
89
86
|
# (the default is "content" directory within application root) or a
|
90
87
|
# directory path with index.yaml
|
91
88
|
class UrlReader
|
92
|
-
|
93
|
-
# Url, recieved from the request
|
89
|
+
|
94
90
|
attr_accessor :url
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
# directory.
|
99
|
-
def settings
|
100
|
-
@s = Sinatra::Application
|
91
|
+
|
92
|
+
def initialize url, settings
|
93
|
+
@url, @s = url, settings
|
101
94
|
end
|
102
95
|
|
103
96
|
# Creates a FileReader instance, maps the url to either yaml file or
|
104
97
|
# index.yaml within a directory represented by url.
|
105
98
|
def get_content
|
106
|
-
self.settings
|
107
99
|
fn = case true
|
108
100
|
when File.exist?( f = File.join( @s.origin, @url+'.yaml' ) ) then f
|
109
101
|
when File.exist?( f = File.join( @s.origin, @url+'/index.yaml' ) ) then f
|
110
102
|
else throw :halt, [404, "Document not found"]
|
111
103
|
end
|
112
|
-
|
113
|
-
out.filename = fn
|
114
|
-
out.get_content
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
# === The DocumentStore class
|
119
|
-
#
|
120
|
-
# DocumentStore class extends the hash to enable document attribute access
|
121
|
-
# in one of three ways:
|
122
|
-
# hash key: page['key'] => value
|
123
|
-
# method call: page.key => value
|
124
|
-
# symbol: page[:key] => value
|
125
|
-
class Document < Hash
|
126
|
-
def initialize(attrs)
|
127
|
-
attrs.each do |k, v|
|
128
|
-
self[k] = v
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
def []=(k, v)
|
133
|
-
unless respond_to?(k)
|
134
|
-
self.class.send :define_method, k do
|
135
|
-
self[k]
|
136
|
-
end
|
137
|
-
end
|
138
|
-
super
|
104
|
+
FileReader.new(fn, @s).get_content
|
139
105
|
end
|
140
106
|
end
|
141
107
|
|
@@ -143,6 +109,7 @@ module Sinatra
|
|
143
109
|
#
|
144
110
|
# This module introduces several helper methods to Soxer application.
|
145
111
|
module Helpers
|
112
|
+
|
146
113
|
# === Document reader
|
147
114
|
# This method reads a yaml file from disk and returns a hash.
|
148
115
|
#
|
@@ -154,9 +121,7 @@ module Sinatra
|
|
154
121
|
# [=> Hash]
|
155
122
|
# A hash representation of yaml file.
|
156
123
|
def get_page url=params[:splat][0]
|
157
|
-
|
158
|
-
out.url = url
|
159
|
-
Hashie::Mash.new out.get_content
|
124
|
+
UrlReader.new(url, options).get_content
|
160
125
|
end
|
161
126
|
|
162
127
|
# === Document list generator method
|
@@ -170,15 +135,14 @@ module Sinatra
|
|
170
135
|
# [=> Array]
|
171
136
|
# Array of hashes representing yaml files.
|
172
137
|
def get_list &block
|
173
|
-
fileset= Dir.glob File.join(
|
138
|
+
fileset= Dir.glob File.join( options.origin, "**", "*.yaml" )
|
174
139
|
fileset.delete_if {|d| (d=~/\/index.yaml$/ and fileset.include? d[0..-12]+'.yaml') }
|
175
140
|
output = fileset.map! do |f|
|
176
|
-
file = FileReader.new
|
177
|
-
file.filename = f
|
141
|
+
file = FileReader.new f, options
|
178
142
|
if block_given?
|
179
|
-
f = block.call
|
143
|
+
f = block.call file.get_content
|
180
144
|
else
|
181
|
-
f =
|
145
|
+
f = file.get_content
|
182
146
|
end
|
183
147
|
end.compact
|
184
148
|
end
|
@@ -345,18 +309,20 @@ module Sinatra
|
|
345
309
|
|
346
310
|
end
|
347
311
|
|
348
|
-
def self.registered(app)
|
349
|
-
app.helpers Soxer::Helpers
|
312
|
+
def self.registered(app)
|
350
313
|
|
351
|
-
|
352
|
-
|
314
|
+
if app.settings.root then
|
315
|
+
app.set :origin, File.join(app.settings.root, 'content') unless app.settings.respond_to? 'content'
|
316
|
+
app.set :public, File.join(app.settings.root, 'public') unless app.settings.respond_to? 'public'
|
317
|
+
app.set :views, File.join(app.settings.root, 'views') unless app.settings.respond_to? 'views'
|
318
|
+
app.set :log, File.join(app.settings.root, 'log') unless app.settings.respond_to? 'log'
|
353
319
|
end
|
354
320
|
|
355
|
-
|
321
|
+
app.helpers Soxer::Helpers
|
356
322
|
|
357
|
-
mime_type :otf, 'application/x-font-TrueType'
|
358
|
-
mime_type :ttf, 'application/x-font-TrueType'
|
359
|
-
mime_type :eot, 'application/vnd.ms-fontobject'
|
323
|
+
app.mime_type :otf, 'application/x-font-TrueType'
|
324
|
+
app.mime_type :ttf, 'application/x-font-TrueType'
|
325
|
+
app.mime_type :eot, 'application/vnd.ms-fontobject'
|
360
326
|
|
361
327
|
app.get("/sitemap.xml") { sitemap }
|
362
328
|
|
@@ -364,7 +330,7 @@ module Sinatra
|
|
364
330
|
content_type "text/html", :charset => "utf-8"
|
365
331
|
url = params[:captures][0]
|
366
332
|
type = params[:captures][1]
|
367
|
-
file = File.join settings.origin, url
|
333
|
+
file = File.join app.settings.origin, url
|
368
334
|
|
369
335
|
case type
|
370
336
|
when 'yaml' then
|
@@ -374,9 +340,9 @@ module Sinatra
|
|
374
340
|
send_file(file, :disposition => nil) if File.exist? file
|
375
341
|
throw :halt, [404, "Document not found"]if !File.exist? file
|
376
342
|
|
377
|
-
when /^css$/i then
|
378
|
-
|
379
|
-
|
343
|
+
when /^css$/i then
|
344
|
+
content_type "text/css", :charset => "utf-8"
|
345
|
+
sass url.sub('.'+type, '').to_sym
|
380
346
|
|
381
347
|
when 'atom' then
|
382
348
|
content_type "application/atom+xml", :charset => "utf-8"
|
@@ -385,7 +351,6 @@ module Sinatra
|
|
385
351
|
haml page['content'], :layout => layout,
|
386
352
|
:format => :xhtml,
|
387
353
|
:locals => { :page => page }
|
388
|
-
|
389
354
|
|
390
355
|
when 'rss' then
|
391
356
|
'RSS is not supported yet'
|
@@ -397,9 +362,9 @@ module Sinatra
|
|
397
362
|
app.get '*/?' do
|
398
363
|
content_type "text/html", :charset => "utf-8"
|
399
364
|
page = get_page
|
400
|
-
page
|
401
|
-
page
|
402
|
-
haml page
|
365
|
+
page.layout ||= 'layout'
|
366
|
+
page.layout == 'false' ? layout = false : layout = page.layout.to_sym
|
367
|
+
haml page.content, :layout => layout, :locals => { :page => page }
|
403
368
|
end
|
404
369
|
|
405
370
|
end
|
@@ -407,4 +372,3 @@ module Sinatra
|
|
407
372
|
|
408
373
|
register Soxer
|
409
374
|
end
|
410
|
-
|
data/lib/soxer/skel/blog/app.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require "rubygems"
|
3
|
-
require "sinatra"
|
3
|
+
require "sinatra/base"
|
4
4
|
require "soxer"
|
5
5
|
|
6
6
|
class SoxerApp < Sinatra::Base
|
7
|
+
set :root, File.dirname(__FILE__)
|
8
|
+
set :haml, {:format => :html5,
|
9
|
+
:attr_wrapper => '"'}
|
7
10
|
enable :sessions
|
8
11
|
before do
|
9
12
|
session[:theme] ||= %w[dna blossom][rand 1]
|
@@ -1,25 +1,5 @@
|
|
1
|
-
|
2
|
-
require "sinatra
|
3
|
-
require "app"
|
1
|
+
# encoding: utf-8
|
2
|
+
require "sinatra"
|
3
|
+
require "./app"
|
4
4
|
|
5
|
-
|
6
|
-
set :server, %w[thin mongrel webrick]
|
7
|
-
set :haml, {:format => :html5,
|
8
|
-
:attr_wrapper => '"'}
|
9
|
-
set :haml, {:encoding => 'utf-8'} if RUBY_VERSION=~/1\.9/
|
10
|
-
|
11
|
-
configure :development do
|
12
|
-
require 'sinatra/reloader'
|
13
|
-
set :port, 9394
|
14
|
-
end
|
15
|
-
|
16
|
-
configure :production do
|
17
|
-
set :haml, {:ugly => true}
|
18
|
-
set :port, 55500
|
19
|
-
end
|
20
|
-
|
21
|
-
set :environment, :production
|
22
|
-
|
23
|
-
map '/' do
|
24
|
-
run SoxerApp
|
25
|
-
end
|
5
|
+
run SoxerApp
|
@@ -2,8 +2,8 @@
|
|
2
2
|
environment: production
|
3
3
|
chdir: /path/to/your/application/home/dir
|
4
4
|
address: 0.0.0.0
|
5
|
-
user:
|
6
|
-
group:
|
5
|
+
user: username
|
6
|
+
group: username
|
7
7
|
port: 55500
|
8
8
|
pid: /path/to/your/application/home/dir/log/thin.pid
|
9
9
|
log: /path/to/your/application/home/dir/log/thin.log
|
data/lib/soxer/skel/empty/app.rb
CHANGED
@@ -1,25 +1,5 @@
|
|
1
|
-
|
2
|
-
require "sinatra
|
3
|
-
require "app"
|
1
|
+
# encoding: utf-8
|
2
|
+
require "sinatra"
|
3
|
+
require "./app"
|
4
4
|
|
5
|
-
|
6
|
-
set :server, %w[thin mongrel webrick]
|
7
|
-
set :haml, {:format => :html5,
|
8
|
-
:attr_wrapper => '"'}
|
9
|
-
set :haml, {:encoding => 'utf-8'} if RUBY_VERSION=~/1\.9/
|
10
|
-
|
11
|
-
configure :development do
|
12
|
-
require 'sinatra/reloader'
|
13
|
-
set :port, 9394
|
14
|
-
end
|
15
|
-
|
16
|
-
configure :production do
|
17
|
-
set :haml, {:ugly => true}
|
18
|
-
set :port, 55500
|
19
|
-
end
|
20
|
-
|
21
|
-
set :environment, :production
|
22
|
-
|
23
|
-
map '/' do
|
24
|
-
run SoxerApp
|
25
|
-
end
|
5
|
+
run SoxerApp
|
@@ -2,8 +2,8 @@
|
|
2
2
|
environment: production
|
3
3
|
chdir: /path/to/your/application/home/dir
|
4
4
|
address: 0.0.0.0
|
5
|
-
user:
|
6
|
-
group:
|
5
|
+
user: username
|
6
|
+
group: username
|
7
7
|
port: 55500
|
8
8
|
pid: /path/to/your/application/home/dir/log/thin.pid
|
9
9
|
log: /path/to/your/application/home/dir/log/thin.log
|
data/soxer.gemspec
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soxer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 47
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
8
|
+
- 11
|
9
|
+
version: 0.9.11
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Toni Anzlovar
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2011-
|
17
|
+
date: 2011-04-30 00:00:00 +02:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,7 +25,6 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 1
|
30
28
|
segments:
|
31
29
|
- 1
|
32
30
|
version: "1"
|
@@ -40,7 +38,6 @@ dependencies:
|
|
40
38
|
requirements:
|
41
39
|
- - ~>
|
42
40
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 5
|
44
41
|
segments:
|
45
42
|
- 3
|
46
43
|
version: "3"
|
@@ -54,7 +51,6 @@ dependencies:
|
|
54
51
|
requirements:
|
55
52
|
- - ~>
|
56
53
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 7
|
58
54
|
segments:
|
59
55
|
- 2
|
60
56
|
version: "2"
|
@@ -68,7 +64,6 @@ dependencies:
|
|
68
64
|
requirements:
|
69
65
|
- - ~>
|
70
66
|
- !ruby/object:Gem::Version
|
71
|
-
hash: 23
|
72
67
|
segments:
|
73
68
|
- 1
|
74
69
|
- 0
|
@@ -84,7 +79,6 @@ dependencies:
|
|
84
79
|
requirements:
|
85
80
|
- - ~>
|
86
81
|
- !ruby/object:Gem::Version
|
87
|
-
hash: 1
|
88
82
|
segments:
|
89
83
|
- 0
|
90
84
|
- 5
|
@@ -107,47 +101,45 @@ files:
|
|
107
101
|
- bin/soxer
|
108
102
|
- lib/soxer.rb
|
109
103
|
- lib/soxer/main.rb
|
110
|
-
- lib/soxer/views/atom.haml
|
111
|
-
- lib/soxer/views/sitemap.haml
|
112
|
-
- lib/soxer/views/disqus.haml
|
113
104
|
- lib/soxer/views/atom_layout.haml
|
105
|
+
- lib/soxer/views/disqus.haml
|
114
106
|
- lib/soxer/views/google_analytics.haml
|
115
|
-
- lib/soxer/views/
|
107
|
+
- lib/soxer/views/atom.haml
|
116
108
|
- lib/soxer/views/breadcrumb.haml
|
117
|
-
- lib/soxer/
|
118
|
-
- lib/soxer/
|
119
|
-
- lib/soxer/skel/blog/
|
120
|
-
- lib/soxer/skel/blog/content/blog/2010-10-12-how_to_spend_your_time_wisely.yaml
|
121
|
-
- lib/soxer/skel/blog/content/blog/2010-04-16-ecce_quomdo_moritur_iustus.yaml
|
122
|
-
- lib/soxer/skel/blog/content/blog/2009-06-02-meum_est_propositum.yaml
|
123
|
-
- lib/soxer/skel/blog/content/blog.atom.yaml
|
124
|
-
- lib/soxer/skel/blog/content/categories/index.yaml
|
125
|
-
- lib/soxer/skel/blog/SETUP.rb
|
126
|
-
- lib/soxer/skel/blog/public/css/dna/sequence.jpg
|
127
|
-
- lib/soxer/skel/blog/public/css/blossom/blossom.jpg
|
128
|
-
- lib/soxer/skel/blog/public/fonts/trashed.ttf
|
129
|
-
- lib/soxer/skel/blog/public/fonts/GeosansLight.ttf
|
130
|
-
- lib/soxer/skel/blog/config.yml
|
131
|
-
- lib/soxer/skel/blog/config.ru
|
132
|
-
- lib/soxer/skel/blog/views/_doc_short.haml
|
133
|
-
- lib/soxer/skel/blog/views/layout.haml
|
109
|
+
- lib/soxer/views/sitemap.haml
|
110
|
+
- lib/soxer/views/google_ads.haml
|
111
|
+
- lib/soxer/skel/blog/config.yml.example
|
134
112
|
- lib/soxer/skel/blog/views/_block_history.haml
|
135
|
-
- lib/soxer/skel/blog/views/
|
136
|
-
- lib/soxer/skel/blog/views/css/trashed/css.sass
|
113
|
+
- lib/soxer/skel/blog/views/_block_categories.haml
|
137
114
|
- lib/soxer/skel/blog/views/css/dna/css.sass
|
138
115
|
- lib/soxer/skel/blog/views/css/blossom/css.sass
|
139
|
-
- lib/soxer/skel/blog/views/
|
140
|
-
- lib/soxer/skel/blog/views/_block_about.haml
|
116
|
+
- lib/soxer/skel/blog/views/css/common.sass
|
141
117
|
- lib/soxer/skel/blog/views/_doc_docinfo.haml
|
142
118
|
- lib/soxer/skel/blog/views/_block_recent.haml
|
119
|
+
- lib/soxer/skel/blog/views/_doc_short.haml
|
120
|
+
- lib/soxer/skel/blog/views/_block_about.haml
|
121
|
+
- lib/soxer/skel/blog/views/layout.haml
|
122
|
+
- lib/soxer/skel/blog/SETUP.rb
|
143
123
|
- lib/soxer/skel/blog/app.rb
|
144
|
-
- lib/soxer/skel/
|
145
|
-
- lib/soxer/skel/
|
146
|
-
- lib/soxer/skel/
|
147
|
-
- lib/soxer/skel/
|
148
|
-
- lib/soxer/skel/
|
124
|
+
- lib/soxer/skel/blog/config.ru
|
125
|
+
- lib/soxer/skel/blog/public/css/dna/sequence.jpg
|
126
|
+
- lib/soxer/skel/blog/public/css/blossom/blossom.jpg
|
127
|
+
- lib/soxer/skel/blog/public/fonts/GeosansLight.ttf
|
128
|
+
- lib/soxer/skel/blog/content/blog.atom.yaml
|
129
|
+
- lib/soxer/skel/blog/content/blog/2010-11-24-what_is_where.yaml
|
130
|
+
- lib/soxer/skel/blog/content/blog/2010-09-06-lorem_ipsum.yaml
|
131
|
+
- lib/soxer/skel/blog/content/blog/2010-04-16-ecce_quomdo_moritur_iustus.yaml
|
132
|
+
- lib/soxer/skel/blog/content/blog/2010-10-12-how_to_spend_your_time_wisely.yaml
|
133
|
+
- lib/soxer/skel/blog/content/blog/2009-06-02-meum_est_propositum.yaml
|
134
|
+
- lib/soxer/skel/blog/content/index.yaml
|
135
|
+
- lib/soxer/skel/blog/content/categories/index.yaml
|
136
|
+
- lib/soxer/skel/empty/config.yml.example
|
149
137
|
- lib/soxer/skel/empty/views/css/css.sass
|
138
|
+
- lib/soxer/skel/empty/views/layout.haml
|
139
|
+
- lib/soxer/skel/empty/SETUP.rb
|
150
140
|
- lib/soxer/skel/empty/app.rb
|
141
|
+
- lib/soxer/skel/empty/config.ru
|
142
|
+
- lib/soxer/skel/empty/content/index.yaml
|
151
143
|
has_rdoc: true
|
152
144
|
homepage: http://soxer.mutsu.org
|
153
145
|
licenses: []
|
@@ -162,7 +154,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
154
|
requirements:
|
163
155
|
- - ">="
|
164
156
|
- !ruby/object:Gem::Version
|
165
|
-
hash: 3
|
166
157
|
segments:
|
167
158
|
- 0
|
168
159
|
version: "0"
|
@@ -171,7 +162,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
162
|
requirements:
|
172
163
|
- - ">="
|
173
164
|
- !ruby/object:Gem::Version
|
174
|
-
hash: 3
|
175
165
|
segments:
|
176
166
|
- 0
|
177
167
|
version: "0"
|
Binary file
|
@@ -1,152 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
-----------------------------------------------------------------------------
|
3
|
-
Trashed Blog Theme for Soxer | http://soxer.mutsu.org
|
4
|
-
Copyright 2010 Toni Anzlovar, toni[at]formalibre.si
|
5
|
-
Attribution-ShareAlike 3.0 | http://creativecommons.org/licenses/by-sa/3.0/
|
6
|
-
-----------------------------------------------------------------------------
|
7
|
-
@import "../common"
|
8
|
-
|
9
|
-
|
10
|
-
// COLORS
|
11
|
-
//-----------------------------------------------------------------------------
|
12
|
-
$white: #ffffff
|
13
|
-
$link: #375d9d
|
14
|
-
$important: #375d9d
|
15
|
-
$grey: #808080
|
16
|
-
$lite: #dadada
|
17
|
-
$normal: #4d4d4d
|
18
|
-
|
19
|
-
// GENERAL
|
20
|
-
//-----------------------------------------------------------------------------
|
21
|
-
body
|
22
|
-
color: $normal
|
23
|
-
font:
|
24
|
-
size: 13px
|
25
|
-
family: "Trebuchet MS", Verdana, Arial, Helvetica, Swiss, Sans-Serif
|
26
|
-
margin: 0
|
27
|
-
padding: 0
|
28
|
-
|
29
|
-
a
|
30
|
-
color: $important
|
31
|
-
text-decoration: none
|
32
|
-
@include corners(3)
|
33
|
-
|
34
|
-
&:hover
|
35
|
-
color: $white
|
36
|
-
background: $important
|
37
|
-
padding: 0px 3px
|
38
|
-
margin: -0px -3px
|
39
|
-
|
40
|
-
h1, h2, h3, h4, h5, h6
|
41
|
-
+n
|
42
|
-
|
43
|
-
h1, h2
|
44
|
-
color: $grey
|
45
|
-
font:
|
46
|
-
family: GeoSans
|
47
|
-
weight: normal
|
48
|
-
h1
|
49
|
-
font-size: 38px
|
50
|
-
margin:
|
51
|
-
bottom: 30px
|
52
|
-
|
53
|
-
h2
|
54
|
-
font-size: 28px
|
55
|
-
a
|
56
|
-
@include corners(7)
|
57
|
-
&:hover
|
58
|
-
@include corners(0)
|
59
|
-
+n
|
60
|
-
color: $important
|
61
|
-
background: none
|
62
|
-
border-bottom: 1px solid $important
|
63
|
-
|
64
|
-
hr
|
65
|
-
display: none
|
66
|
-
|
67
|
-
// COMMON
|
68
|
-
//-----------------------------------------------------------------------------
|
69
|
-
body
|
70
|
-
background: url(/css/dna/sequence.jpg) center top no-repeat
|
71
|
-
// @include sh(inset 0px 0px 200px rgba(0, 0, 0, .25))
|
72
|
-
|
73
|
-
#header, #content
|
74
|
-
width: 750px
|
75
|
-
+center
|
76
|
-
|
77
|
-
#header
|
78
|
-
height: 260px
|
79
|
-
color: $white
|
80
|
-
text-shadow: black 1px 1px 5px
|
81
|
-
.slogan
|
82
|
-
font:
|
83
|
-
family: GeoSans
|
84
|
-
size: 42px
|
85
|
-
|
86
|
-
padding-top: 10px
|
87
|
-
|
88
|
-
#content
|
89
|
-
padding-top: 20px
|
90
|
-
&:after
|
91
|
-
+clear
|
92
|
-
|
93
|
-
#footer
|
94
|
-
width: 100%
|
95
|
-
background: $lite
|
96
|
-
border-top: 1px solid $grey
|
97
|
-
margin-top: 30px
|
98
|
-
@include sh(inset 0px 0px 100px rgba(0, 0, 0, .25))
|
99
|
-
|
100
|
-
.content
|
101
|
-
width: 750px
|
102
|
-
height: 180px
|
103
|
-
+center
|
104
|
-
|
105
|
-
// MAIN & SIDEBAR
|
106
|
-
//-----------------------------------------------------------------------------
|
107
|
-
#main, #sidebar
|
108
|
-
float: left
|
109
|
-
min-height: 300px
|
110
|
-
|
111
|
-
#main
|
112
|
-
width: 464px
|
113
|
-
margin:
|
114
|
-
top: 10px
|
115
|
-
left: 286px
|
116
|
-
|
117
|
-
.short
|
118
|
-
margin-top: 30px
|
119
|
-
small
|
120
|
-
color: $grey
|
121
|
-
font:
|
122
|
-
style: italic
|
123
|
-
size: 13px
|
124
|
-
p
|
125
|
-
+n
|
126
|
-
.shot:after
|
127
|
-
+clear
|
128
|
-
|
129
|
-
#sidebar
|
130
|
-
width: 272px
|
131
|
-
margin:
|
132
|
-
top: 19px
|
133
|
-
left: -750px
|
134
|
-
|
135
|
-
// BLOCKS
|
136
|
-
//-----------------------------------------------------------------------------
|
137
|
-
.block
|
138
|
-
margin-bottom: 20px
|
139
|
-
ul
|
140
|
-
+cu
|
141
|
-
margin-top: 10px
|
142
|
-
li
|
143
|
-
display: block
|
144
|
-
clear: both
|
145
|
-
+cl
|
146
|
-
margin-bottom: 5px
|
147
|
-
&:after
|
148
|
-
+clear
|
149
|
-
|
150
|
-
&.recent-entries
|
151
|
-
a
|
152
|
-
display: block
|