turbo-generators 0.0.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/.gitignore +2 -0
- data/CHANGELOG +0 -0
- data/README.rdoc +1 -0
- data/Rakefile +19 -0
- data/TODO +23 -0
- data/VERSION +1 -0
- data/lib/turbo_generators.rb +0 -0
- data/rails_generators/turbo_blog/USAGE +1 -0
- data/rails_generators/turbo_blog/lib/insert_commands.rb +74 -0
- data/rails_generators/turbo_blog/templates/20091209042009_create_posts.rb +14 -0
- data/rails_generators/turbo_blog/templates/post.rb +4 -0
- data/rails_generators/turbo_blog/templates/posts_controller.rb +49 -0
- data/rails_generators/turbo_blog/templates/posts_helper.rb +2 -0
- data/rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb +4 -0
- data/rails_generators/turbo_blog/templates/views/partials/_post.html.erb +18 -0
- data/rails_generators/turbo_blog/templates/views/posts/_form.html.erb +12 -0
- data/rails_generators/turbo_blog/templates/views/posts/edit.html.erb +8 -0
- data/rails_generators/turbo_blog/templates/views/posts/index.html.erb +7 -0
- data/rails_generators/turbo_blog/templates/views/posts/new.html.erb +5 -0
- data/rails_generators/turbo_blog/templates/views/posts/show.html.erb +5 -0
- data/rails_generators/turbo_blog/turbo_blog_generator.rb +32 -0
- data/rails_generators/turbo_layout/USAGE +1 -0
- data/rails_generators/turbo_layout/templates/application.html.erb +55 -0
- data/rails_generators/turbo_layout/templates/custom.css +47 -0
- data/rails_generators/turbo_layout/templates/ie.css +35 -0
- data/rails_generators/turbo_layout/templates/layout_helper.rb +22 -0
- data/rails_generators/turbo_layout/templates/print.css +29 -0
- data/rails_generators/turbo_layout/templates/screen.css +450 -0
- data/rails_generators/turbo_layout/turbo_layout_generator.rb +13 -0
- data/turbo-generators.gemspec +67 -0
- metadata +85 -0
data/.gitignore
ADDED
data/CHANGELOG
ADDED
File without changes
|
data/README.rdoc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
At this precise moment the code is not stable for download or use. I'm working as fast as i can though and should have something available ready soon.
|
data/Rakefile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gemspec|
|
7
|
+
gemspec.name = "turbo-generators"
|
8
|
+
gemspec.summary = "Generator scripts for adding very simple crud resources to rails apps"
|
9
|
+
gemspec.description = "Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often."
|
10
|
+
gemspec.email = "stephen@stephenmurdoch.eu"
|
11
|
+
gemspec.homepage = "http://github.com/murdoch/turbo-generators"
|
12
|
+
gemspec.authors = ["Stephen Murdoch"]
|
13
|
+
end
|
14
|
+
Jeweler::GemcutterTasks.new
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
17
|
+
end
|
18
|
+
|
19
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/TODO
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
Turbo Blog
|
3
|
+
- add validations to post model
|
4
|
+
- currently the software requires user.rb to exist in order to work - this is a problem I will fix.
|
5
|
+
- need to create comment resources so that readers can comment on blog posts - this will evetually be replaced by the turbo_comments generator.
|
6
|
+
|
7
|
+
Turbo Layout
|
8
|
+
- it's nowhere near what I want it to be - this will require a LOT of work
|
9
|
+
- i want a very simple yet stylish starting place
|
10
|
+
- it presently uses blueprint although I am thinking of integrating compass (which contains blueprint)
|
11
|
+
- switch to haml and sass
|
12
|
+
|
13
|
+
Turbo Comments
|
14
|
+
- start project
|
15
|
+
|
16
|
+
Turbo Forum
|
17
|
+
- start project
|
18
|
+
|
19
|
+
Turbo Gallery
|
20
|
+
- start project
|
21
|
+
|
22
|
+
Turbo Mailer
|
23
|
+
- start project
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.0
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
Todo
|
@@ -0,0 +1,74 @@
|
|
1
|
+
Rails::Generator::Commands::Create.class_eval do
|
2
|
+
def route_resource(*resources)
|
3
|
+
resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
|
4
|
+
sentinel = 'ActionController::Routing::Routes.draw do |map|'
|
5
|
+
|
6
|
+
logger.route "map.resource #{resource_list}"
|
7
|
+
unless options[:pretend]
|
8
|
+
gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
|
9
|
+
"#{match}\n map.resource #{resource_list}\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def route_name(name, path, route_options = {})
|
15
|
+
sentinel = 'ActionController::Routing::Routes.draw do |map|'
|
16
|
+
|
17
|
+
logger.route "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
|
18
|
+
unless options[:pretend]
|
19
|
+
gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
|
20
|
+
"#{match}\n map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def insert_into(file, line)
|
26
|
+
logger.insert "#{line} into #{file}"
|
27
|
+
unless options[:pretend]
|
28
|
+
gsub_file file, /^(class|module) .+$/ do |match|
|
29
|
+
"#{match}\n #{line}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Rails::Generator::Commands::Destroy.class_eval do
|
36
|
+
def route_resource(*resources)
|
37
|
+
resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
|
38
|
+
look_for = "\n map.resource #{resource_list}\n"
|
39
|
+
logger.route "map.resource #{resource_list}"
|
40
|
+
unless options[:pretend]
|
41
|
+
gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def route_name(name, path, route_options = {})
|
46
|
+
look_for = "\n map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
|
47
|
+
logger.route "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
|
48
|
+
unless options[:pretend]
|
49
|
+
gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def insert_into(file, line)
|
54
|
+
logger.remove "#{line} from #{file}"
|
55
|
+
unless options[:pretend]
|
56
|
+
gsub_file file, "\n #{line}", ''
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
Rails::Generator::Commands::List.class_eval do
|
62
|
+
def route_resource(*resources)
|
63
|
+
resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
|
64
|
+
logger.route "map.resource #{resource_list}"
|
65
|
+
end
|
66
|
+
|
67
|
+
def route_name(name, path, options = {})
|
68
|
+
logger.route "map.#{name} '#{path}', :controller => '{options[:controller]}', :action => '#{options[:action]}'"
|
69
|
+
end
|
70
|
+
|
71
|
+
def insert_into(file, line)
|
72
|
+
logger.insert "#{line} into #{file}"
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class PostsController < ApplicationController
|
2
|
+
#unloadable
|
3
|
+
include Authentication
|
4
|
+
before_filter :login_required, :except => [:index, :show]
|
5
|
+
def index
|
6
|
+
@posts = Post.all
|
7
|
+
end
|
8
|
+
|
9
|
+
def show
|
10
|
+
@post = Post.find(params[:id])
|
11
|
+
end
|
12
|
+
|
13
|
+
def new
|
14
|
+
@post = Post.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def create
|
18
|
+
@post = Post.new(params[:post])
|
19
|
+
@post.user = current_user
|
20
|
+
|
21
|
+
if @post.save
|
22
|
+
flash[:notice] = "Successfully created post."
|
23
|
+
redirect_to @post
|
24
|
+
else
|
25
|
+
render :action => 'new'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def edit
|
30
|
+
@post = Post.find(params[:id])
|
31
|
+
end
|
32
|
+
|
33
|
+
def update
|
34
|
+
@post = Post.find(params[:id])
|
35
|
+
if @post.update_attributes(params[:post])
|
36
|
+
flash[:notice] = "Successfully updated post."
|
37
|
+
redirect_to @post
|
38
|
+
else
|
39
|
+
render :action => 'edit'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def destroy
|
44
|
+
@post = Post.find(params[:id])
|
45
|
+
@post.destroy
|
46
|
+
flash[:notice] = "Successfully destroyed post."
|
47
|
+
redirect_to posts_url
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% title "#{post.title}" %>
|
2
|
+
<div class="post_body">
|
3
|
+
<%= post.body %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<%= link_to 'Back', posts_path %> |
|
10
|
+
<% if logged_in? %>
|
11
|
+
<%= link_to "Edit", edit_post_path(post) %> |
|
12
|
+
<%= link_to "Destroy", post, :confirm => 'Are you sure?', :method => :delete %> |
|
13
|
+
<% end %>
|
14
|
+
<%= link_to "View All", posts_path %>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% title "Welcome to the News section of our site" %>
|
2
|
+
<% if logged_in? %><p><%= link_to "Hello, click here to create a new article", new_post_path %></p><% end %>
|
3
|
+
|
4
|
+
|
5
|
+
<% for post in @posts %>
|
6
|
+
<%= render :partial => "partials/list_post", :locals=>{:post => post} %>
|
7
|
+
<% end %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/lib/insert_commands.rb")
|
2
|
+
class TurboBlogGenerator < Rails::Generator::Base
|
3
|
+
|
4
|
+
def manifest
|
5
|
+
record do |m|
|
6
|
+
m.directory "app/models"
|
7
|
+
m.directory "app/controllers"
|
8
|
+
m.directory "app/helpers"
|
9
|
+
m.directory "app/views"
|
10
|
+
m.directory "app/views/posts"
|
11
|
+
m.directory "app/views/partials"
|
12
|
+
|
13
|
+
m.file "post.rb", "app/models/post.rb"
|
14
|
+
m.file "posts_controller.rb", "app/controllers/posts_controller.rb"
|
15
|
+
m.file "posts_helper.rb", "app/helpers/posts_helper.rb"
|
16
|
+
|
17
|
+
m.file "views/posts/new.html.erb", "app/views/posts/new.html.erb"
|
18
|
+
m.file "views/posts/edit.html.erb", "app/views/posts/edit.html.erb"
|
19
|
+
m.file "views/posts/index.html.erb", "app/views/posts/index.html.erb"
|
20
|
+
m.file "views/posts/show.html.erb", "app/views/posts/show.html.erb"
|
21
|
+
m.file "views/posts/_form.html.erb", "app/views/posts/_form.html.erb"
|
22
|
+
|
23
|
+
m.file "views/partials/_list_post.html.erb", "app/views/partials/_list_post.html.erb"
|
24
|
+
m.file "views/partials/_post.html.erb", "app/views/partials/_post.html.erb"
|
25
|
+
|
26
|
+
m.migration_template "20091209042009_create_posts.rb", "db/migrate", :migration_file_name => "create_posts"
|
27
|
+
m.route_resources :posts
|
28
|
+
|
29
|
+
m.insert_into "app/models/user.rb", 'has_many :posts'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Lorem ipsum and whatever else
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<title><%= h(yield(:title) || "Lorem Ipsum") %></title>
|
6
|
+
<%= stylesheet_link_tag 'screen', 'custom', :media => "screen, projection" %>
|
7
|
+
<%= stylesheet_link_tag 'print', :media => "print" %>
|
8
|
+
<%= javascript_include_tag :defaults %>
|
9
|
+
<!--[if lt IE 8]>
|
10
|
+
<%= stylesheet_link_tag 'ie', :media => "screen, projection" %>
|
11
|
+
<![endif]-->
|
12
|
+
<%= yield(:head) %>
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
|
16
|
+
<div class="container">
|
17
|
+
<div id="header" class="span-24" >
|
18
|
+
<h1>Your Site</h1>
|
19
|
+
</div><!-- End of header div -->
|
20
|
+
|
21
|
+
<div id="navbar" class="span-24">
|
22
|
+
<ul>
|
23
|
+
<li>
|
24
|
+
<%= link_to "Home", home_path %>
|
25
|
+
</li>
|
26
|
+
<li>
|
27
|
+
<%= link_to "About", about_path %>
|
28
|
+
</li>
|
29
|
+
<li>
|
30
|
+
<%= link_to "Gallery", about_path %>
|
31
|
+
</li>
|
32
|
+
<li>
|
33
|
+
<%= link_to "Blog", about_path %>
|
34
|
+
</li>
|
35
|
+
<li>
|
36
|
+
<%= link_to "Contact", about_path %>
|
37
|
+
</li>
|
38
|
+
</ul>
|
39
|
+
</div><!-- End of navbar div -->
|
40
|
+
|
41
|
+
<%- if show_title? -%>
|
42
|
+
<h1><%=h yield(:title) %></h1>
|
43
|
+
<%- end -%>
|
44
|
+
|
45
|
+
<%- flash.each do |name, msg| -%>
|
46
|
+
<%= content_tag :div, msg, :id => "flash_#{name}" %>
|
47
|
+
<%- end -%>
|
48
|
+
|
49
|
+
<%= yield %>
|
50
|
+
<div class="span-24" id="footer">
|
51
|
+
<h1>This is the footer section of the website.</h1>
|
52
|
+
</div><!-- End of footer div -->
|
53
|
+
</div><!-- End of container div -->
|
54
|
+
</body>
|
55
|
+
</html>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
html, body { height: 100%; margin:0px 0 1px 0; padding: 0; }
|
2
|
+
|
3
|
+
#header h1{ padding:10px 0; margin: 10px 0;}
|
4
|
+
|
5
|
+
#navbar ul {margin-left:0; padding:10px 0; border-bottom:1px dashed #999; border-top:1px dashed #999;}
|
6
|
+
#navbar li {display:inline;}
|
7
|
+
#navbar li a{ text-decoration:none;color:#333; }
|
8
|
+
#navbar li a:hover {color:#51BDBD;color:#C46464}
|
9
|
+
#navbar li span { color:#C46464;}
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
#social-bookmark-links ul li {font-size:3em;line-height:1;margin-right:10px;}
|
19
|
+
#social-bookmark-links li:last-child { margin-right:0;}
|
20
|
+
#social-bookmark-links li a {text-decoration:none; }
|
21
|
+
|
22
|
+
|
23
|
+
#statement img{}
|
24
|
+
#social-bookmark-details img{}
|
25
|
+
#footer{}
|
26
|
+
#contact-page-blurb{}
|
27
|
+
|
28
|
+
#contact-form label{text-transform:uppercase; color:#505050;}
|
29
|
+
#contact-form-name{}
|
30
|
+
#contact-form-email i{text-transform:lowercase; color:#f23; font-weight:normal;}
|
31
|
+
#contact-form-subject{}
|
32
|
+
#contact-form-body{}
|
33
|
+
#contact-form-name input, #contact-form-email input, #contact-form-subject input, #contact-form-body textarea{background:#cddeff;background:#F6FFA8;background:#F6F5E4;margin-bottom:10px; }
|
34
|
+
#maincol, #footer, #contact-form, #contact-page, #page-title, #contact-page-blurb, #leftcol, #rightcol, #sidecol, #navbar, #social-bookmark-links, #logo, #bio, #social-bookmark-details, #statement, #page-title { margin-bottom:10px; }
|
35
|
+
|
36
|
+
.about-page-section-title{
|
37
|
+
|
38
|
+
|
39
|
+
/*background:#FF695B;background:#F6FFA8;background:#FF695B;background:#F8FFC2;*/
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
p.justify {text-align:justify}
|
45
|
+
#leftcol, #rightcol { height: 150px; }
|
46
|
+
#maincol, #sidecol { height: 250px; }
|
47
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/* -----------------------------------------------------------------------
|
2
|
+
|
3
|
+
|
4
|
+
Blueprint CSS Framework 0.9
|
5
|
+
http://blueprintcss.org
|
6
|
+
|
7
|
+
* Copyright (c) 2007-Present. See LICENSE for more info.
|
8
|
+
* See README for instructions on how to use Blueprint.
|
9
|
+
* For credits and origins, see AUTHORS.
|
10
|
+
* This is a compressed file. See the sources in the 'src' directory.
|
11
|
+
|
12
|
+
----------------------------------------------------------------------- */
|
13
|
+
|
14
|
+
/* ie.css */
|
15
|
+
body {text-align:center;}
|
16
|
+
.container {text-align:left;}
|
17
|
+
* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {display:inline;overflow-x:hidden;}
|
18
|
+
* html legend {margin:0px -8px 16px 0;padding:0;}
|
19
|
+
sup {vertical-align:text-top;}
|
20
|
+
sub {vertical-align:text-bottom;}
|
21
|
+
html>body p code {*white-space:normal;}
|
22
|
+
hr {margin:-8px auto 11px;}
|
23
|
+
img {-ms-interpolation-mode:bicubic;}
|
24
|
+
.clearfix, .container {display:inline-block;}
|
25
|
+
* html .clearfix, * html .container {height:1%;}
|
26
|
+
fieldset {padding-top:0;}
|
27
|
+
textarea {overflow:auto;}
|
28
|
+
input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;}
|
29
|
+
input.text:focus, input.title:focus {border-color:#666;}
|
30
|
+
input.text, input.title, textarea, select {margin:0.5em 0;}
|
31
|
+
input.checkbox, input.radio {position:relative;top:.25em;}
|
32
|
+
form.inline div, form.inline p {vertical-align:middle;}
|
33
|
+
form.inline label {position:relative;top:-0.25em;}
|
34
|
+
form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;}
|
35
|
+
button, input.button {position:relative;top:0.25em;}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# These helper methods can be called in your template to set variables to be used in the layout
|
2
|
+
# This module should be included in all views globally,
|
3
|
+
# to do so you may need to add this line to your ApplicationController
|
4
|
+
# helper :layout
|
5
|
+
module LayoutHelper
|
6
|
+
def title(page_title, show_title = true)
|
7
|
+
@content_for_title = page_title.to_s
|
8
|
+
@show_title = show_title
|
9
|
+
end
|
10
|
+
|
11
|
+
def show_title?
|
12
|
+
@show_title
|
13
|
+
end
|
14
|
+
|
15
|
+
def stylesheet(*args)
|
16
|
+
content_for(:head) { stylesheet_link_tag(*args) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def javascript(*args)
|
20
|
+
content_for(:head) { javascript_include_tag(*args) }
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/* -----------------------------------------------------------------------
|
2
|
+
|
3
|
+
|
4
|
+
Blueprint CSS Framework 0.9
|
5
|
+
http://blueprintcss.org
|
6
|
+
|
7
|
+
* Copyright (c) 2007-Present. See LICENSE for more info.
|
8
|
+
* See README for instructions on how to use Blueprint.
|
9
|
+
* For credits and origins, see AUTHORS.
|
10
|
+
* This is a compressed file. See the sources in the 'src' directory.
|
11
|
+
|
12
|
+
----------------------------------------------------------------------- */
|
13
|
+
|
14
|
+
/* print.css */
|
15
|
+
body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
|
16
|
+
.container {background:none;}
|
17
|
+
hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
|
18
|
+
hr.space {background:#fff;color:#fff;visibility:hidden;}
|
19
|
+
h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
|
20
|
+
code {font:.9em "Courier New", Monaco, Courier, monospace;}
|
21
|
+
a img {border:none;}
|
22
|
+
p img.top {margin-top:0;}
|
23
|
+
blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
|
24
|
+
.small {font-size:.9em;}
|
25
|
+
.large {font-size:1.1em;}
|
26
|
+
.quiet {color:#999;}
|
27
|
+
.hide {display:none;}
|
28
|
+
a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
|
29
|
+
a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
|
@@ -0,0 +1,450 @@
|
|
1
|
+
/* -----------------------------------------------------------------------
|
2
|
+
|
3
|
+
|
4
|
+
Blueprint CSS Framework 0.9
|
5
|
+
http://blueprintcss.org
|
6
|
+
|
7
|
+
* Copyright (c) 2007-Present. See LICENSE for more info.
|
8
|
+
* See README for instructions on how to use Blueprint.
|
9
|
+
* For credits and origins, see AUTHORS.
|
10
|
+
* This is a compressed file. See the sources in the 'src' directory.
|
11
|
+
|
12
|
+
----------------------------------------------------------------------- */
|
13
|
+
|
14
|
+
/* reset.css */
|
15
|
+
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
|
16
|
+
body {line-height:1.5;}
|
17
|
+
table {border-collapse:separate;border-spacing:0;}
|
18
|
+
caption, th, td {text-align:left;font-weight:normal;}
|
19
|
+
table, td, th {vertical-align:middle;}
|
20
|
+
blockquote:before, blockquote:after, q:before, q:after {content:"";}
|
21
|
+
blockquote, q {quotes:"" "";}
|
22
|
+
a img {border:none;}
|
23
|
+
|
24
|
+
/* typography.css */
|
25
|
+
html {font-size:100.01%;}
|
26
|
+
body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
|
27
|
+
h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
|
28
|
+
h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
|
29
|
+
h2 {font-size:2em;margin-bottom:0.75em;}
|
30
|
+
h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
|
31
|
+
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
|
32
|
+
h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
|
33
|
+
h6 {font-size:1em;font-weight:bold;}
|
34
|
+
h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
|
35
|
+
p {margin:0 0 1.5em;}
|
36
|
+
p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
|
37
|
+
p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
|
38
|
+
a:focus, a:hover {color:#000;}
|
39
|
+
a {color:#009;text-decoration:underline;}
|
40
|
+
blockquote {margin:1.5em;color:#666;font-style:italic;}
|
41
|
+
strong {font-weight:bold;}
|
42
|
+
em, dfn {font-style:italic;}
|
43
|
+
dfn {font-weight:bold;}
|
44
|
+
sup, sub {line-height:0;}
|
45
|
+
abbr, acronym {border-bottom:1px dotted #666;}
|
46
|
+
address {margin:0 0 1.5em;font-style:italic;}
|
47
|
+
del {color:#666;}
|
48
|
+
pre {margin:1.5em 0;white-space:pre;}
|
49
|
+
pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
|
50
|
+
li ul, li ol {margin:0;}
|
51
|
+
ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
|
52
|
+
ul {list-style-type:disc;}
|
53
|
+
ol {list-style-type:decimal;}
|
54
|
+
dl {margin:0 0 1.5em 0;}
|
55
|
+
dl dt {font-weight:bold;}
|
56
|
+
dd {margin-left:1.5em;}
|
57
|
+
table {margin-bottom:1.4em;width:100%;}
|
58
|
+
th {font-weight:bold;}
|
59
|
+
thead th {background:#c3d9ff;}
|
60
|
+
th, td, caption {padding:4px 10px 4px 5px;}
|
61
|
+
tr.even td {background:#e5ecf9;}
|
62
|
+
tfoot {font-style:italic;}
|
63
|
+
caption {background:#eee;}
|
64
|
+
.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
|
65
|
+
.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
|
66
|
+
.hide {display:none;}
|
67
|
+
.quiet {color:#666;}
|
68
|
+
.loud {color:#000;}
|
69
|
+
.highlight {background:#ff0;}
|
70
|
+
.added {background:#060;color:#fff;}
|
71
|
+
.removed {background:#900;color:#fff;}
|
72
|
+
.first {margin-left:0;padding-left:0;}
|
73
|
+
.last {margin-right:0;padding-right:0;}
|
74
|
+
.top {margin-top:0;padding-top:0;}
|
75
|
+
.bottom {margin-bottom:0;padding-bottom:0;}
|
76
|
+
|
77
|
+
/* forms.css */
|
78
|
+
label {font-weight:bold;}
|
79
|
+
fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
|
80
|
+
legend {font-weight:bold;font-size:1.2em;}
|
81
|
+
input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
|
82
|
+
input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
|
83
|
+
input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
|
84
|
+
input.text, input.title {width:300px;padding:5px;}
|
85
|
+
input.title {font-size:1.5em;}
|
86
|
+
textarea {width:390px;height:250px;padding:5px;}
|
87
|
+
input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
|
88
|
+
form.inline {line-height:3;}
|
89
|
+
form.inline p {margin-bottom:0;}
|
90
|
+
.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
|
91
|
+
.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
|
92
|
+
.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
|
93
|
+
.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
|
94
|
+
.error a {color:#8a1f11;}
|
95
|
+
.notice a {color:#514721;}
|
96
|
+
.success a {color:#264409;}
|
97
|
+
|
98
|
+
/* grid.css */
|
99
|
+
.container {width:950px;margin:0 auto;}
|
100
|
+
.showgrid {background:url(src/grid.png);}
|
101
|
+
.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
|
102
|
+
.last, div.last {margin-right:0;}
|
103
|
+
.span-1 {width:30px;}
|
104
|
+
.span-2 {width:70px;}
|
105
|
+
.span-3 {width:110px;}
|
106
|
+
.span-4 {width:150px;}
|
107
|
+
.span-5 {width:190px;}
|
108
|
+
.span-6 {width:230px;}
|
109
|
+
.span-7 {width:270px;}
|
110
|
+
.span-8 {width:310px;}
|
111
|
+
.span-9 {width:350px;}
|
112
|
+
.span-10 {width:390px;}
|
113
|
+
.span-11 {width:430px;}
|
114
|
+
.span-12 {width:470px;}
|
115
|
+
.span-13 {width:510px;}
|
116
|
+
.span-14 {width:550px;}
|
117
|
+
.span-15 {width:590px;}
|
118
|
+
.span-16 {width:630px;}
|
119
|
+
.span-17 {width:670px;}
|
120
|
+
.span-18 {width:710px;}
|
121
|
+
.span-19 {width:750px;}
|
122
|
+
.span-20 {width:790px;}
|
123
|
+
.span-21 {width:830px;}
|
124
|
+
.span-22 {width:870px;}
|
125
|
+
.span-23 {width:910px;}
|
126
|
+
.span-24, div.span-24 {width:950px;margin-right:0;}
|
127
|
+
input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
|
128
|
+
input.span-1, textarea.span-1 {width:18px!important;}
|
129
|
+
input.span-2, textarea.span-2 {width:58px!important;}
|
130
|
+
input.span-3, textarea.span-3 {width:98px!important;}
|
131
|
+
input.span-4, textarea.span-4 {width:138px!important;}
|
132
|
+
input.span-5, textarea.span-5 {width:178px!important;}
|
133
|
+
input.span-6, textarea.span-6 {width:218px!important;}
|
134
|
+
input.span-7, textarea.span-7 {width:258px!important;}
|
135
|
+
input.span-8, textarea.span-8 {width:298px!important;}
|
136
|
+
input.span-9, textarea.span-9 {width:338px!important;}
|
137
|
+
input.span-10, textarea.span-10 {width:378px!important;}
|
138
|
+
input.span-11, textarea.span-11 {width:418px!important;}
|
139
|
+
input.span-12, textarea.span-12 {width:458px!important;}
|
140
|
+
input.span-13, textarea.span-13 {width:498px!important;}
|
141
|
+
input.span-14, textarea.span-14 {width:538px!important;}
|
142
|
+
input.span-15, textarea.span-15 {width:578px!important;}
|
143
|
+
input.span-16, textarea.span-16 {width:618px!important;}
|
144
|
+
input.span-17, textarea.span-17 {width:658px!important;}
|
145
|
+
input.span-18, textarea.span-18 {width:698px!important;}
|
146
|
+
input.span-19, textarea.span-19 {width:738px!important;}
|
147
|
+
input.span-20, textarea.span-20 {width:778px!important;}
|
148
|
+
input.span-21, textarea.span-21 {width:818px!important;}
|
149
|
+
input.span-22, textarea.span-22 {width:858px!important;}
|
150
|
+
input.span-23, textarea.span-23 {width:898px!important;}
|
151
|
+
input.span-24, textarea.span-24 {width:938px!important;}
|
152
|
+
.append-1 {padding-right:40px;}
|
153
|
+
.append-2 {padding-right:80px;}
|
154
|
+
.append-3 {padding-right:120px;}
|
155
|
+
.append-4 {padding-right:160px;}
|
156
|
+
.append-5 {padding-right:200px;}
|
157
|
+
.append-6 {padding-right:240px;}
|
158
|
+
.append-7 {padding-right:280px;}
|
159
|
+
.append-8 {padding-right:320px;}
|
160
|
+
.append-9 {padding-right:360px;}
|
161
|
+
.append-10 {padding-right:400px;}
|
162
|
+
.append-11 {padding-right:440px;}
|
163
|
+
.append-12 {padding-right:480px;}
|
164
|
+
.append-13 {padding-right:520px;}
|
165
|
+
.append-14 {padding-right:560px;}
|
166
|
+
.append-15 {padding-right:600px;}
|
167
|
+
.append-16 {padding-right:640px;}
|
168
|
+
.append-17 {padding-right:680px;}
|
169
|
+
.append-18 {padding-right:720px;}
|
170
|
+
.append-19 {padding-right:760px;}
|
171
|
+
.append-20 {padding-right:800px;}
|
172
|
+
.append-21 {padding-right:840px;}
|
173
|
+
.append-22 {padding-right:880px;}
|
174
|
+
.append-23 {padding-right:920px;}
|
175
|
+
.prepend-1 {padding-left:40px;}
|
176
|
+
.prepend-2 {padding-left:80px;}
|
177
|
+
.prepend-3 {padding-left:120px;}
|
178
|
+
.prepend-4 {padding-left:160px;}
|
179
|
+
.prepend-5 {padding-left:200px;}
|
180
|
+
.prepend-6 {padding-left:240px;}
|
181
|
+
.prepend-7 {padding-left:280px;}
|
182
|
+
.prepend-8 {padding-left:320px;}
|
183
|
+
.prepend-9 {padding-left:360px;}
|
184
|
+
.prepend-10 {padding-left:400px;}
|
185
|
+
.prepend-11 {padding-left:440px;}
|
186
|
+
.prepend-12 {padding-left:480px;}
|
187
|
+
.prepend-13 {padding-left:520px;}
|
188
|
+
.prepend-14 {padding-left:560px;}
|
189
|
+
.prepend-15 {padding-left:600px;}
|
190
|
+
.prepend-16 {padding-left:640px;}
|
191
|
+
.prepend-17 {padding-left:680px;}
|
192
|
+
.prepend-18 {padding-left:720px;}
|
193
|
+
.prepend-19 {padding-left:760px;}
|
194
|
+
.prepend-20 {padding-left:800px;}
|
195
|
+
.prepend-21 {padding-left:840px;}
|
196
|
+
.prepend-22 {padding-left:880px;}
|
197
|
+
.prepend-23 {padding-left:920px;}
|
198
|
+
div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
|
199
|
+
div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
|
200
|
+
.pull-1 {margin-left:-40px;}
|
201
|
+
.pull-2 {margin-left:-80px;}
|
202
|
+
.pull-3 {margin-left:-120px;}
|
203
|
+
.pull-4 {margin-left:-160px;}
|
204
|
+
.pull-5 {margin-left:-200px;}
|
205
|
+
.pull-6 {margin-left:-240px;}
|
206
|
+
.pull-7 {margin-left:-280px;}
|
207
|
+
.pull-8 {margin-left:-320px;}
|
208
|
+
.pull-9 {margin-left:-360px;}
|
209
|
+
.pull-10 {margin-left:-400px;}
|
210
|
+
.pull-11 {margin-left:-440px;}
|
211
|
+
.pull-12 {margin-left:-480px;}
|
212
|
+
.pull-13 {margin-left:-520px;}
|
213
|
+
.pull-14 {margin-left:-560px;}
|
214
|
+
.pull-15 {margin-left:-600px;}
|
215
|
+
.pull-16 {margin-left:-640px;}
|
216
|
+
.pull-17 {margin-left:-680px;}
|
217
|
+
.pull-18 {margin-left:-720px;}
|
218
|
+
.pull-19 {margin-left:-760px;}
|
219
|
+
.pull-20 {margin-left:-800px;}
|
220
|
+
.pull-21 {margin-left:-840px;}
|
221
|
+
.pull-22 {margin-left:-880px;}
|
222
|
+
.pull-23 {margin-left:-920px;}
|
223
|
+
.pull-24 {margin-left:-960px;}
|
224
|
+
.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
|
225
|
+
.push-1 {margin:0 -40px 1.5em 40px;}
|
226
|
+
.push-2 {margin:0 -80px 1.5em 80px;}
|
227
|
+
.push-3 {margin:0 -120px 1.5em 120px;}
|
228
|
+
.push-4 {margin:0 -160px 1.5em 160px;}
|
229
|
+
.push-5 {margin:0 -200px 1.5em 200px;}
|
230
|
+
.push-6 {margin:0 -240px 1.5em 240px;}
|
231
|
+
.push-7 {margin:0 -280px 1.5em 280px;}
|
232
|
+
.push-8 {margin:0 -320px 1.5em 320px;}
|
233
|
+
.push-9 {margin:0 -360px 1.5em 360px;}
|
234
|
+
.push-10 {margin:0 -400px 1.5em 400px;}
|
235
|
+
.push-11 {margin:0 -440px 1.5em 440px;}
|
236
|
+
.push-12 {margin:0 -480px 1.5em 480px;}
|
237
|
+
.push-13 {margin:0 -520px 1.5em 520px;}
|
238
|
+
.push-14 {margin:0 -560px 1.5em 560px;}
|
239
|
+
.push-15 {margin:0 -600px 1.5em 600px;}
|
240
|
+
.push-16 {margin:0 -640px 1.5em 640px;}
|
241
|
+
.push-17 {margin:0 -680px 1.5em 680px;}
|
242
|
+
.push-18 {margin:0 -720px 1.5em 720px;}
|
243
|
+
.push-19 {margin:0 -760px 1.5em 760px;}
|
244
|
+
.push-20 {margin:0 -800px 1.5em 800px;}
|
245
|
+
.push-21 {margin:0 -840px 1.5em 840px;}
|
246
|
+
.push-22 {margin:0 -880px 1.5em 880px;}
|
247
|
+
.push-23 {margin:0 -920px 1.5em 920px;}
|
248
|
+
.push-24 {margin:0 -960px 1.5em 960px;}
|
249
|
+
.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
|
250
|
+
.prepend-top {margin-top:1.5em;}
|
251
|
+
.append-bottom {margin-bottom:1.5em;}
|
252
|
+
.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
|
253
|
+
hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
|
254
|
+
hr.space {background:#fff;color:#fff;visibility:hidden;}
|
255
|
+
.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
|
256
|
+
.clearfix, .container {display:block;}
|
257
|
+
.clear {clear:both;}
|
258
|
+
|
259
|
+
|
260
|
+
/* -------------------------- Buttons -------------------- */
|
261
|
+
|
262
|
+
a.button, button {
|
263
|
+
display:block;
|
264
|
+
float:left;
|
265
|
+
margin: 0;
|
266
|
+
padding:5px 10px 5px 7px; /* Links */
|
267
|
+
|
268
|
+
border:1px solid #9e9e9e;
|
269
|
+
border-top:1px solid #aaa;
|
270
|
+
border-left:1px solid #aaa;
|
271
|
+
|
272
|
+
background-color:#f5f5f5;
|
273
|
+
font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
|
274
|
+
font-size:100%;
|
275
|
+
line-height:130%;
|
276
|
+
text-decoration:none;
|
277
|
+
font-weight:bold;
|
278
|
+
color:#565656;
|
279
|
+
cursor:pointer;
|
280
|
+
}
|
281
|
+
button {
|
282
|
+
width:auto;
|
283
|
+
overflow:visible;
|
284
|
+
padding:4px 10px 3px 7px; /* IE6 */
|
285
|
+
}
|
286
|
+
button[type] {
|
287
|
+
padding:4px 10px 4px 7px; /* Firefox */
|
288
|
+
line-height:17px; /* Safari */
|
289
|
+
}
|
290
|
+
*:first-child+html button[type] {
|
291
|
+
padding:4px 10px 3px 7px; /* IE7 */
|
292
|
+
}
|
293
|
+
button img, a.button img{
|
294
|
+
margin:0 3px -3px 0 !important;
|
295
|
+
padding:0;
|
296
|
+
border:none;
|
297
|
+
width:16px;
|
298
|
+
height:16px;
|
299
|
+
float:none;
|
300
|
+
}
|
301
|
+
|
302
|
+
|
303
|
+
/* Button colors
|
304
|
+
-------------------------------------------------------------- */
|
305
|
+
|
306
|
+
/* Standard */
|
307
|
+
button:hover, a.button:hover{
|
308
|
+
background-color:#dff4ff;
|
309
|
+
border:1px solid #c2e1ef;
|
310
|
+
color:#336699;
|
311
|
+
}
|
312
|
+
a.button:active{
|
313
|
+
background-color:#6299c5;
|
314
|
+
border:1px solid #6299c5;
|
315
|
+
color:#fff;
|
316
|
+
}
|
317
|
+
|
318
|
+
/* Positive */
|
319
|
+
body .positive {
|
320
|
+
color:#529214;
|
321
|
+
}
|
322
|
+
a.positive:hover, button.positive:hover {
|
323
|
+
background-color:#E6EFC2;
|
324
|
+
border:1px solid #C6D880;
|
325
|
+
color:#529214;
|
326
|
+
}
|
327
|
+
a.positive:active {
|
328
|
+
background-color:#529214;
|
329
|
+
border:1px solid #529214;
|
330
|
+
color:#fff;
|
331
|
+
}
|
332
|
+
|
333
|
+
/* Negative */
|
334
|
+
body .negative {
|
335
|
+
color:#d12f19;
|
336
|
+
}
|
337
|
+
a.negative:hover, button.negative:hover {
|
338
|
+
background-color:#fbe3e4;
|
339
|
+
border:1px solid #fbc2c4;
|
340
|
+
color:#d12f19;
|
341
|
+
}
|
342
|
+
a.negative:active {
|
343
|
+
background-color:#d12f19;
|
344
|
+
border:1px solid #d12f19;
|
345
|
+
color:#fff;
|
346
|
+
}
|
347
|
+
/* --------------------------------------------------------------
|
348
|
+
|
349
|
+
link-icons.css
|
350
|
+
* Icons for links based on protocol or file type.
|
351
|
+
|
352
|
+
See the Readme file in this folder for additional instructions.
|
353
|
+
|
354
|
+
-------------------------------------------------------------- */
|
355
|
+
|
356
|
+
/* Use this class if a link gets an icon when it shouldn't. */
|
357
|
+
body a.noicon {
|
358
|
+
background:transparent none !important;
|
359
|
+
padding:0 !important;
|
360
|
+
margin:0 !important;
|
361
|
+
}
|
362
|
+
|
363
|
+
/* Make sure the icons are not cut */
|
364
|
+
a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited,
|
365
|
+
a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"],
|
366
|
+
a[href$=".rdf"], a[href^="aim:"] {
|
367
|
+
padding:2px 22px 2px 0;
|
368
|
+
margin:-2px 0;
|
369
|
+
background-repeat: no-repeat;
|
370
|
+
background-position: right center;
|
371
|
+
}
|
372
|
+
|
373
|
+
/* External links */
|
374
|
+
a[href^="http:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/external.png); }
|
375
|
+
a[href^="mailto:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/email.png); }
|
376
|
+
a[href^="http:"]:visited { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/visited.png); }
|
377
|
+
|
378
|
+
/* Files */
|
379
|
+
a[href$=".pdf"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/pdf.png); }
|
380
|
+
a[href$=".doc"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/doc.png); }
|
381
|
+
a[href$=".xls"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/xls.png); }
|
382
|
+
|
383
|
+
/* Misc */
|
384
|
+
a[href$=".rss"],
|
385
|
+
a[href$=".rdf"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/feed.png); }
|
386
|
+
a[href^="aim:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/im.png); }
|
387
|
+
/* ------------------------ ------------------------------- */
|
388
|
+
|
389
|
+
|
390
|
+
/* For great looking type, use this code instead of asdf:
|
391
|
+
<span class="alt">asdf</span>
|
392
|
+
Best used on prepositions and ampersands. */
|
393
|
+
|
394
|
+
.alt {
|
395
|
+
color: #505050;
|
396
|
+
font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif;
|
397
|
+
font-style: italic;
|
398
|
+
font-weight: normal;
|
399
|
+
}
|
400
|
+
|
401
|
+
|
402
|
+
/* For great looking quote marks in titles, replace "asdf" with:
|
403
|
+
<span class="dquo">“</span>asdf”
|
404
|
+
(That is, when the title starts with a quote mark).
|
405
|
+
(You may have to change this value depending on your font size). */
|
406
|
+
|
407
|
+
.dquo { margin-left: -.5em; }
|
408
|
+
|
409
|
+
|
410
|
+
/* Reduced size type with incremental leading
|
411
|
+
(http://www.markboulton.co.uk/journal/comments/incremental_leading/)
|
412
|
+
|
413
|
+
This could be used for side notes. For smaller type, you don't necessarily want to
|
414
|
+
follow the 1.5x vertical rhythm -- the line-height is too much.
|
415
|
+
|
416
|
+
Using this class, it reduces your font size and line-height so that for
|
417
|
+
every four lines of normal sized type, there is five lines of the sidenote. eg:
|
418
|
+
|
419
|
+
New type size in em's:
|
420
|
+
10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems)
|
421
|
+
|
422
|
+
New line-height value:
|
423
|
+
12px x 1.5 = 18px (old line-height)
|
424
|
+
18px x 4 = 72px
|
425
|
+
72px / 5 = 14.4px (new line height)
|
426
|
+
14.4px / 10px = 1.44 (new line height in em's) */
|
427
|
+
|
428
|
+
p.incr, .incr p {
|
429
|
+
font-size: 10px;
|
430
|
+
line-height: 1.44em;
|
431
|
+
margin-bottom: 1.5em;
|
432
|
+
}
|
433
|
+
|
434
|
+
|
435
|
+
/* Surround uppercase words and abbreviations with this class.
|
436
|
+
Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */
|
437
|
+
|
438
|
+
.caps {
|
439
|
+
font-variant: small-caps;
|
440
|
+
letter-spacing: 1px;
|
441
|
+
text-transform: lowercase;
|
442
|
+
font-size:1.2em;
|
443
|
+
line-height:1%;
|
444
|
+
font-weight:bold;
|
445
|
+
padding:0 2px;
|
446
|
+
}
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class TurboLayoutGenerator < Rails::Generator::Base
|
2
|
+
def manifest
|
3
|
+
record do |m|
|
4
|
+
m.file "layout_helper.rb", "app/helpers/layout_helper.rb"
|
5
|
+
m.file "application.html.erb", "app/views/layouts/application.html.erb"
|
6
|
+
m.file "screen.css", "public/stylesheets/screen.css"
|
7
|
+
m.file "custom.css", "public/stylesheets/custom.css"
|
8
|
+
m.file "print.css", "public/stylesheets/print.css"
|
9
|
+
m.file "ie.css", "public/stylesheets/ie.css"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{turbo-generators}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Stephen Murdoch"]
|
12
|
+
s.date = %q{2009-12-13}
|
13
|
+
s.description = %q{Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often.}
|
14
|
+
s.email = %q{stephen@stephenmurdoch.eu}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.rdoc",
|
17
|
+
"TODO"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"CHANGELOG",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"TODO",
|
25
|
+
"VERSION",
|
26
|
+
"lib/turbo_generators.rb",
|
27
|
+
"rails_generators/turbo_blog/USAGE",
|
28
|
+
"rails_generators/turbo_blog/lib/insert_commands.rb",
|
29
|
+
"rails_generators/turbo_blog/templates/20091209042009_create_posts.rb",
|
30
|
+
"rails_generators/turbo_blog/templates/post.rb",
|
31
|
+
"rails_generators/turbo_blog/templates/posts_controller.rb",
|
32
|
+
"rails_generators/turbo_blog/templates/posts_helper.rb",
|
33
|
+
"rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb",
|
34
|
+
"rails_generators/turbo_blog/templates/views/partials/_post.html.erb",
|
35
|
+
"rails_generators/turbo_blog/templates/views/posts/_form.html.erb",
|
36
|
+
"rails_generators/turbo_blog/templates/views/posts/edit.html.erb",
|
37
|
+
"rails_generators/turbo_blog/templates/views/posts/index.html.erb",
|
38
|
+
"rails_generators/turbo_blog/templates/views/posts/new.html.erb",
|
39
|
+
"rails_generators/turbo_blog/templates/views/posts/show.html.erb",
|
40
|
+
"rails_generators/turbo_blog/turbo_blog_generator.rb",
|
41
|
+
"rails_generators/turbo_layout/USAGE",
|
42
|
+
"rails_generators/turbo_layout/templates/application.html.erb",
|
43
|
+
"rails_generators/turbo_layout/templates/custom.css",
|
44
|
+
"rails_generators/turbo_layout/templates/ie.css",
|
45
|
+
"rails_generators/turbo_layout/templates/layout_helper.rb",
|
46
|
+
"rails_generators/turbo_layout/templates/print.css",
|
47
|
+
"rails_generators/turbo_layout/templates/screen.css",
|
48
|
+
"rails_generators/turbo_layout/turbo_layout_generator.rb",
|
49
|
+
"turbo-generators.gemspec"
|
50
|
+
]
|
51
|
+
s.homepage = %q{http://github.com/murdoch/turbo-generators}
|
52
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
53
|
+
s.require_paths = ["lib"]
|
54
|
+
s.rubygems_version = %q{1.3.5}
|
55
|
+
s.summary = %q{Generator scripts for adding very simple crud resources to rails apps}
|
56
|
+
|
57
|
+
if s.respond_to? :specification_version then
|
58
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
59
|
+
s.specification_version = 3
|
60
|
+
|
61
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
62
|
+
else
|
63
|
+
end
|
64
|
+
else
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: turbo-generators
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen Murdoch
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-12-13 00:00:00 +00:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often.
|
17
|
+
email: stephen@stephenmurdoch.eu
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.rdoc
|
24
|
+
- TODO
|
25
|
+
files:
|
26
|
+
- .gitignore
|
27
|
+
- CHANGELOG
|
28
|
+
- README.rdoc
|
29
|
+
- Rakefile
|
30
|
+
- TODO
|
31
|
+
- VERSION
|
32
|
+
- lib/turbo_generators.rb
|
33
|
+
- rails_generators/turbo_blog/USAGE
|
34
|
+
- rails_generators/turbo_blog/lib/insert_commands.rb
|
35
|
+
- rails_generators/turbo_blog/templates/20091209042009_create_posts.rb
|
36
|
+
- rails_generators/turbo_blog/templates/post.rb
|
37
|
+
- rails_generators/turbo_blog/templates/posts_controller.rb
|
38
|
+
- rails_generators/turbo_blog/templates/posts_helper.rb
|
39
|
+
- rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb
|
40
|
+
- rails_generators/turbo_blog/templates/views/partials/_post.html.erb
|
41
|
+
- rails_generators/turbo_blog/templates/views/posts/_form.html.erb
|
42
|
+
- rails_generators/turbo_blog/templates/views/posts/edit.html.erb
|
43
|
+
- rails_generators/turbo_blog/templates/views/posts/index.html.erb
|
44
|
+
- rails_generators/turbo_blog/templates/views/posts/new.html.erb
|
45
|
+
- rails_generators/turbo_blog/templates/views/posts/show.html.erb
|
46
|
+
- rails_generators/turbo_blog/turbo_blog_generator.rb
|
47
|
+
- rails_generators/turbo_layout/USAGE
|
48
|
+
- rails_generators/turbo_layout/templates/application.html.erb
|
49
|
+
- rails_generators/turbo_layout/templates/custom.css
|
50
|
+
- rails_generators/turbo_layout/templates/ie.css
|
51
|
+
- rails_generators/turbo_layout/templates/layout_helper.rb
|
52
|
+
- rails_generators/turbo_layout/templates/print.css
|
53
|
+
- rails_generators/turbo_layout/templates/screen.css
|
54
|
+
- rails_generators/turbo_layout/turbo_layout_generator.rb
|
55
|
+
- turbo-generators.gemspec
|
56
|
+
has_rdoc: true
|
57
|
+
homepage: http://github.com/murdoch/turbo-generators
|
58
|
+
licenses: []
|
59
|
+
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options:
|
62
|
+
- --charset=UTF-8
|
63
|
+
require_paths:
|
64
|
+
- lib
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
version:
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: "0"
|
76
|
+
version:
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 1.3.5
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: Generator scripts for adding very simple crud resources to rails apps
|
84
|
+
test_files: []
|
85
|
+
|