typo 3.99.2 → 3.99.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/app/controllers/articles_controller.rb +21 -14
  2. data/app/controllers/content_controller.rb +3 -5
  3. data/app/controllers/xml_controller.rb +13 -3
  4. data/app/helpers/application_helper.rb +7 -1
  5. data/app/helpers/xml_helper.rb +23 -0
  6. data/app/models/article.rb +5 -0
  7. data/app/models/content.rb +2 -0
  8. data/app/models/ping.rb +32 -22
  9. data/app/views/admin/content/_form.rhtml +1 -0
  10. data/app/views/admin/general/index.rhtml +1 -1
  11. data/app/views/admin/pages/_form.rhtml +1 -0
  12. data/app/views/articles/_comment_box.rhtml +1 -0
  13. data/app/views/xml/_googlesitemap_item_article.rxml +5 -0
  14. data/app/views/xml/_googlesitemap_item_category.rxml +4 -0
  15. data/app/views/xml/_googlesitemap_item_page.rxml +4 -0
  16. data/app/views/xml/_googlesitemap_item_tag.rxml +4 -0
  17. data/app/views/xml/googlesitemap_feed.rxml +7 -0
  18. data/app/views/xml/itunes_feed.rxml +4 -4
  19. data/bin/typo +10 -0
  20. data/components/plugins/sidebars/archives_controller.rb +20 -14
  21. data/components/plugins/sidebars/delicious/content.rhtml +4 -4
  22. data/components/plugins/textfilters/amazon_controller.rb +1 -1
  23. data/config/routes.rb +2 -1
  24. data/doc/Installer.txt +21 -4
  25. data/installer/rails-installer.rb +78 -90
  26. data/installer/rails-installer/commands.rb +117 -0
  27. data/installer/rails-installer/web-server.rb +108 -0
  28. data/installer/rails-installer/web-servers.rb +108 -0
  29. data/installer/rails_installer_defaults.yml +1 -0
  30. data/lib/sidebars/plugin.rb +1 -1
  31. data/lib/tasks/release.rake +2 -1
  32. data/lib/typo_version.rb +1 -1
  33. data/log/development.log-1 +991 -0
  34. data/log/development.log-2 +422 -0
  35. data/log/development.log-3 +429 -0
  36. data/log/development.log-4 +174 -0
  37. data/public/javascripts/typo.js +8 -0
  38. data/test/fixtures/contents.yml +5 -0
  39. data/test/functional/articles_controller_test.rb +2 -2
  40. data/test/functional/xml_controller_test.rb +8 -0
  41. data/test/test_helper.rb +2 -0
  42. data/themes/scribbish/CONTRIBUTORS +2 -0
  43. data/themes/scribbish/about.markdown +9 -0
  44. data/themes/scribbish/images/background.gif +0 -0
  45. data/themes/scribbish/images/gravatar.gif +0 -0
  46. data/themes/scribbish/images/header_shadow.gif +0 -0
  47. data/themes/scribbish/images/spinner.gif +0 -0
  48. data/themes/scribbish/layouts/default.rhtml +42 -0
  49. data/themes/scribbish/preview.png +0 -0
  50. data/themes/scribbish/stylesheets/application.css +27 -0
  51. data/themes/scribbish/stylesheets/content.css +400 -0
  52. data/themes/scribbish/stylesheets/layout.css +70 -0
  53. data/themes/scribbish/views/articles/_article.rhtml +37 -0
  54. data/themes/scribbish/views/articles/_comment.rhtml +14 -0
  55. data/themes/scribbish/views/articles/_comment_form.rhtml +47 -0
  56. data/themes/scribbish/views/articles/_search.rhtml +15 -0
  57. data/themes/scribbish/views/articles/_trackback.rhtml +9 -0
  58. data/themes/scribbish/views/articles/comment_preview.rhtml +10 -0
  59. data/themes/scribbish/views/articles/index.rhtml +5 -0
  60. data/themes/scribbish/views/articles/read.rhtml +42 -0
  61. data/tmp/cache/META/DATA/ACTION_PARAM/10.1.0.181/articles/index/.cache +537 -0
  62. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/articles/index/.cache +537 -0
  63. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +671 -0
  64. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +401 -0
  65. data/tmp/cache/META/META/ACTION_PARAM/10.1.0.181/articles/index/.cache +2 -0
  66. data/tmp/cache/META/META/ACTION_PARAM/localhost/articles/index/.cache +2 -0
  67. data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +2 -0
  68. data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +2 -0
  69. data/vendor/plugins/expiring_action_cache/lib/actionparamcache.rb +2 -1
  70. metadata +91 -2
@@ -0,0 +1,174 @@
1
+
2
+
3
+ Processing ArticlesController#index (for 127.0.0.1 at 2006-07-08 00:17:23) [GET]
4
+ Parameters: {"action"=>"index", "controller"=>"articles"}
5
+ Blog Load (0.001571) SELECT * FROM blogs ORDER BY id LIMIT 1
6
+ Trigger Load (0.001660) SELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:23') 
7
+ SQL (0.005065)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
8
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
9
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
10
+ WHERE a.attrelid = 'users'::regclass
11
+ AND a.attnum > 0 AND NOT a.attisdropped
12
+ ORDER BY a.attnum
13
+ 
14
+ SQL (0.001335) SELECT count(*) AS count_all FROM users 
15
+ SQL (0.003723)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
16
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
17
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
18
+ WHERE a.attrelid = 'blogs'::regclass
19
+ AND a.attnum > 0 AND NOT a.attisdropped
20
+ ORDER BY a.attnum
21
+ 
22
+ SQL (0.005265)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
23
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
24
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
25
+ WHERE a.attrelid = 'contents'::regclass
26
+ AND a.attnum > 0 AND NOT a.attisdropped
27
+ ORDER BY a.attnum
28
+ 
29
+ Article Count (3.383297) SELECT COUNT(DISTINCT contents.id) FROM contents LEFT OUTER JOIN articles_categories ON articles_categories.article_id = contents.id LEFT OUTER JOIN categories ON categories.id = articles_categories.category_id LEFT OUTER JOIN articles_tags ON articles_tags.article_id = contents.id LEFT OUTER JOIN tags ON tags.id = articles_tags.tag_id WHERE (published = 't' AND contents.created_at < '2006-07-08 00:17:23' AND blog_id = 1) AND ( (contents."type" = 'Article' ) ) 
30
+ SQL (0.004491)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
31
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
32
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
33
+ WHERE a.attrelid = 'categories'::regclass
34
+ AND a.attnum > 0 AND NOT a.attisdropped
35
+ ORDER BY a.attnum
36
+ 
37
+ SQL (0.005264)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
38
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
39
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
40
+ WHERE a.attrelid = 'tags'::regclass
41
+ AND a.attnum > 0 AND NOT a.attisdropped
42
+ ORDER BY a.attnum
43
+ 
44
+ Article Load IDs For Limited Eager Loading (0.016903) SELECT id FROM contents WHERE (published = 't' AND contents.created_at < '2006-07-08 00:17:23' AND blog_id = 1) AND ( (contents."type" = 'Article' ) ) ORDER BY contents.published_at DESC LIMIT 15 OFFSET 0
45
+ Article Load Including Associations (0.150279) SELECT contents."id" AS t0_r0, contents."title" AS t0_r1, contents."author" AS t0_r2, contents."body" AS t0_r3, contents."body_html" AS t0_r4, contents."extended" AS t0_r5, contents."excerpt" AS t0_r6, contents."keywords" AS t0_r7, contents."created_at" AS t0_r8, contents."updated_at" AS t0_r9, contents."extended_html" AS t0_r10, contents."user_id" AS t0_r11, contents."permalink" AS t0_r12, contents."guid" AS t0_r13, contents."text_filter_id" AS t0_r14, contents."whiteboard" AS t0_r15, contents."comments_count" AS t0_r16, contents."trackbacks_count" AS t0_r17, contents."type" AS t0_r18, contents."article_id" AS t0_r19, contents."email" AS t0_r20, contents."url" AS t0_r21, contents."ip" AS t0_r22, contents."blog_name" AS t0_r23, contents."name" AS t0_r24, contents."published" AS t0_r25, contents."allow_pings" AS t0_r26, contents."allow_comments" AS t0_r27, contents."blog_id" AS t0_r28, contents."published_at" AS t0_r29, categories."id" AS t1_r0, categories."name" AS t1_r1, categories."position" AS t1_r2, categories."is_primary" AS t1_r3, categories."permalink" AS t1_r4, tags."id" AS t2_r0, tags."name" AS t2_r1, tags."created_at" AS t2_r2, tags."updated_at" AS t2_r3, tags."display_name" AS t2_r4 FROM contents LEFT OUTER JOIN articles_categories ON articles_categories.article_id = contents.id LEFT OUTER JOIN categories ON categories.id = articles_categories.category_id LEFT OUTER JOIN articles_tags ON articles_tags.article_id = contents.id LEFT OUTER JOIN tags ON tags.id = articles_tags.tag_id WHERE (published = 't' AND contents.created_at < '2006-07-08 00:17:23' AND blog_id = 1) AND ( (contents."type" = 'Article' ) ) AND contents.id IN ('1640', '562', '561', '560', '559', '558', '557', '556', '555', '554', '553', '552', '551', '550', '549') ORDER BY contents.published_at DESC 
46
+ Rendering within ../../themes/scribbish/layouts/default
47
+ Rendering articles/index
48
+ Blog Load (0.002095) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
49
+ User Load (0.002659) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
50
+ Blog Load (0.001452) SELECT * FROM blogs ORDER BY id LIMIT 1
51
+ Rendered articles/_article (0.07813)
52
+ Blog Load (0.001730) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
53
+ User Load (0.002122) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
54
+ Rendered articles/_article (0.01851)
55
+ Blog Load (0.002361) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
56
+ User Load (0.001859) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
57
+ Rendered articles/_article (0.01787)
58
+ Blog Load (0.002031) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
59
+ User Load (0.001887) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
60
+ Rendered articles/_article (0.13746)
61
+ Blog Load (0.001752) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
62
+ User Load (0.002257) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
63
+ Rendered articles/_article (0.01825)
64
+ Blog Load (0.001933) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
65
+ User Load (0.155534) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
66
+ Rendered articles/_article (0.26178)
67
+ Blog Load (0.001735) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
68
+ User Load (0.002489) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
69
+ Rendered articles/_article (0.01920)
70
+ Blog Load (0.002814) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
71
+ User Load (0.001888) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
72
+ Rendered articles/_article (0.13118)
73
+ Blog Load (0.001763) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
74
+ User Load (0.001945) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
75
+ Rendered articles/_article (0.01881)
76
+ Blog Load (0.002165) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
77
+ User Load (0.001878) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
78
+ Rendered articles/_article (0.01625)
79
+ Blog Load (0.003068) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
80
+ User Load (0.001868) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
81
+ Rendered articles/_article (0.01773)
82
+ Blog Load (0.001745) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
83
+ User Load (0.002177) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
84
+ Rendered articles/_article (0.01745)
85
+ Blog Load (0.001913) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
86
+ User Load (0.001883) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
87
+ Rendered articles/_article (0.12971)
88
+ Blog Load (0.002062) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
89
+ User Load (0.001928) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
90
+ Rendered articles/_article (0.01989)
91
+ Blog Load (0.001737) SELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1
92
+ User Load (0.001901) SELECT * FROM users WHERE (users.id = 1) LIMIT 1
93
+ Rendered articles/_article (0.01962)
94
+ Rendered articles/_search (0.00467)
95
+ Start rendering component ({:controller=>SidebarController, :action=>"display_plugins"}):
96
+
97
+
98
+ Processing SidebarController#display_plugins (for 127.0.0.1 at 2006-07-08 00:17:28)
99
+ Blog Load (0.001420) SELECT * FROM blogs ORDER BY id LIMIT 1
100
+ Trigger Load (0.001471) SELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') 
101
+ Sidebar Load (0.005570) SELECT * FROM sidebars WHERE (active_position is not null) ORDER BY active_position 
102
+ SQL (0.005188)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
103
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
104
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
105
+ WHERE a.attrelid = 'sidebars'::regclass
106
+ AND a.attnum > 0 AND NOT a.attisdropped
107
+ ORDER BY a.attnum
108
+ 
109
+ Rendering sidebar/display_plugins
110
+ Start rendering component ({:controller=>Plugins::Sidebars::TagController, :action=>"index", :layout=>false}):
111
+
112
+
113
+ Processing TagController#index (for 127.0.0.1 at 2006-07-08 00:17:28)
114
+ Blog Load (0.001579) SELECT * FROM blogs ORDER BY id LIMIT 1
115
+ Trigger Load (0.001495) SELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') 
116
+ Tag Load (0.045230) 
117
+ SELECT tags.id, tags.name, tags.display_name, COUNT(articles_tags.article_id) AS article_counter
118
+ FROM tags tags LEFT OUTER JOIN articles_tags articles_tags
119
+ ON articles_tags.tag_id = tags.id
120
+ LEFT OUTER JOIN contents articles
121
+ ON articles_tags.article_id = articles.id
122
+ WHERE articles.published = 't'
123
+ GROUP BY tags.id, tags.name, tags.display_name
124
+ ORDER BY article_counter DESC
125
+ LIMIT 20
126
+ 
127
+ Rendering plugins/sidebars/tag/content
128
+ Completed in 0.18452 (5 reqs/sec) | Rendering: 0.12484 (67%) | DB: 0.04830 (26%) | 200 OK [http://localhost/]
129
+
130
+
131
+ End of component rendering
132
+ BENCHMARK: display_plugins: tag (0.18900)
133
+ Rendered sidebar/_sidebar (0.18990)
134
+ Start rendering component ({:controller=>Plugins::Sidebars::ArchivesController, :action=>"index", :layout=>false}):
135
+
136
+
137
+ Processing ArchivesController#index (for 127.0.0.1 at 2006-07-08 00:17:28)
138
+ Blog Load (0.001800) SELECT * FROM blogs ORDER BY id LIMIT 1
139
+ Trigger Load (0.001495) SELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') 
140
+ Content Load (0.023723) select count(*) as count, extract(year from published_at)||' '||lpad(extract(month from published_at),2,'0') as date from contents where type='Article' and published = 't' and published_at < '2006-07-08 00:17:28' group by date order by date desc limit '10'
141
+ SQL (0.004369)  SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
142
+ FROM pg_attribute a LEFT JOIN pg_attrdef d
143
+ ON a.attrelid = d.adrelid AND a.attnum = d.adnum
144
+ WHERE a.attrelid = 'contents'::regclass
145
+ AND a.attnum > 0 AND NOT a.attisdropped
146
+ ORDER BY a.attnum
147
+ 
148
+ Rendering plugins/sidebars/archives/content
149
+ Completed in 0.18893 (5 reqs/sec) | Rendering: 0.00836 (4%) | DB: 0.03139 (16%) | 200 OK [http://localhost/]
150
+
151
+
152
+ End of component rendering
153
+ BENCHMARK: display_plugins: archives (0.19216)
154
+ Rendered sidebar/_sidebar (0.19309)
155
+ Start rendering component ({:controller=>Plugins::Sidebars::StaticController, :action=>"index", :layout=>false}):
156
+
157
+
158
+ Processing StaticController#index (for 127.0.0.1 at 2006-07-08 00:17:28)
159
+ Blog Load (0.001424) SELECT * FROM blogs ORDER BY id LIMIT 1
160
+ Trigger Load (0.002276) SELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') 
161
+ Rendering plugins/sidebars/static/content
162
+ Completed in 0.13924 (7 reqs/sec) | Rendering: 0.00240 (1%) | DB: 0.00370 (2%) | 200 OK [http://localhost/]
163
+
164
+
165
+ End of component rendering
166
+ BENCHMARK: display_plugins: static (0.14366)
167
+ Rendered sidebar/_sidebar (0.14466)
168
+ BENCHMARK: display_plugins (0.53017)
169
+ Completed in 0.56401 (1 reqs/sec) | Rendering: 0.53488 (94%) | DB: 0.23028 (40%) | 200 OK [http://localhost/]
170
+
171
+
172
+ End of component rendering
173
+ Article Load (0.011033) SELECT * FROM contents WHERE (published = 't' AND created_at > '2006-07-08 00:17:23') AND ( (contents."type" = 'Article' ) ) ORDER BY created_at ASC LIMIT 1
174
+ Completed in 5.79087 (0 reqs/sec) | Rendering: 1.89160 (32%) | DB: 3.58989 (61%) | 200 OK [http://localhost/]
@@ -68,6 +68,14 @@ function complete(request) {
68
68
  if (request.status == 200) { commentAdded() };
69
69
  }
70
70
 
71
+ function popup(mylink, windowname)
72
+ {
73
+ if (! window.focus) return true;
74
+ var href;
75
+ window.open(mylink, windowname, 'width=400,height=500,scrollbars=yes');
76
+ return false;
77
+ }
78
+
71
79
  register_onload(function() {
72
80
  if ($('commentform')) {
73
81
  var _author = getCookie('author');
@@ -119,6 +119,7 @@ comment3:
119
119
  body: Zzzzzz
120
120
  created_at: 2005-01-01 02:00:07
121
121
  updated_at: 2005-01-01 02:00:07
122
+ published_at: 2005-01-01 02:00:07
122
123
  guid: 4534564564564567
123
124
 
124
125
  trackback1:
@@ -133,6 +134,7 @@ trackback1:
133
134
  excerpt: This is an excerpt
134
135
  created_at: 2005-01-01 03:00:00
135
136
  updated_at: 2005-01-01 03:00:00
137
+ published_at: 2005-01-01 03:00:00
136
138
  guid: dsafsadffsdsf
137
139
 
138
140
  trackback2:
@@ -174,6 +176,7 @@ first_page:
174
176
  body: ho ho ho
175
177
  created_at: 2005-05-05 01:00:00
176
178
  published_at: 2005-05-05 01:00:00
179
+ updated_at: 2005-05-05 01:00:00
177
180
  user_id: 1
178
181
  published: true
179
182
 
@@ -184,6 +187,7 @@ another_page:
184
187
  name: page/two
185
188
  title: Another Page Title
186
189
  body: another body for yet another page
190
+ updated_at: 2005-05-05 01:00:00
187
191
  created_at: 2005-05-05 01:00:00
188
192
  published_at: 2005-05-05 01:00:00
189
193
  user_id: 1
@@ -198,6 +202,7 @@ markdown_page:
198
202
  text_filter_id: 1
199
203
  body: this is *markdown*.
200
204
  created_at: 2005-05-05 01:00:00
205
+ updated_at: 2005-05-05 01:00:00
201
206
  published_at: 2005-05-05 01:00:00
202
207
  user_id: 1
203
208
  published: true
@@ -480,10 +480,10 @@ class ArticlesControllerTest < Test::Unit::TestCase
480
480
  :body => "The future is cool!",
481
481
  :keywords => "future",
482
482
  :published => true,
483
- :created_at => Time.now + 12.minutes)
483
+ :published_at => Time.now + 12.minutes)
484
484
  get :index
485
485
  assert_equal @article, assigns(:articles).first
486
- assert @response.lifetime <= 12.minutes
486
+ assert @response.lifetime.to_i <= 12.minutes
487
487
  end
488
488
 
489
489
  def test_search
@@ -338,6 +338,14 @@ class XmlControllerTest < Test::Unit::TestCase
338
338
  assert_xml @response.body
339
339
  assert_feedvalidator @response.body, :todo
340
340
  end
341
+
342
+ # TODO(laird): make this more robust
343
+ def test_sitemap
344
+ get :feed, :format => 'googlesitemap', :type => 'sitemap'
345
+
346
+ assert_response :success
347
+ assert_xml @response.body
348
+ end
341
349
 
342
350
  def assert_rss20(items)
343
351
  assert_equal 1, get_xpath(%{/rss[@version="2.0"]/channel[count(child::item)=#{items}]}).size, "RSS 2.0 feed has wrong number of channel/item nodes"
data/test/test_helper.rb CHANGED
@@ -2,6 +2,8 @@ ENV["RAILS_ENV"] = "test"
2
2
  require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
3
  require 'test_help'
4
4
 
5
+ $TESTING = true
6
+
5
7
  User.salt = 'change-me'
6
8
 
7
9
  class Test::Unit::TestCase
@@ -0,0 +1,2 @@
1
+ Michael Gorsuch <michael@styledbits.com>
2
+ Michele Campeotto <micampe@micampe.it>
@@ -0,0 +1,9 @@
1
+ ### Scribbish-2.0 by [packagethief][1]
2
+
3
+ Scribbish is both a typo theme, and a starting point (think scaffolding) for new Themes. Its layout standardizes on a simple xhtml structure, blog entries are formatted using the [hAtom microformat specification][2], and styles are separated into individual files which are included in the correct order, making it easier to control the cascade and to figure out 'what-goes-where'. Use it as-is, or copy it to make new themes.
4
+
5
+ [More information and latest version][3]
6
+
7
+ [1]: http://quotedprintable.com/
8
+ [2]: http://microformats.org/wiki/hatom
9
+ [3]: http://quotedprintable.com/pages/scribbish
Binary file
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <title><%=h page_title %></title>
5
+ <%= page_header %>
6
+ <%= stylesheet_link_tag '/stylesheets/theme/application.css', :media => 'all' %>
7
+ </head>
8
+
9
+ <body>
10
+ <div id="container">
11
+ <div id="header">
12
+ <h1><span><%= link_to this_blog.blog_name, { :controller => '/' } %></span></h1>
13
+ <h2><%= this_blog.blog_subtitle %></h2>
14
+ </div>
15
+
16
+ <div id="page">
17
+ <div id="content">
18
+ <%= @content_for_layout %>
19
+ <%= javascript_tag 'show_dates_as_local_time()' %>
20
+ </div>
21
+
22
+ <div id="sidebar">
23
+ <!-- search -->
24
+ <%= render :partial => 'search' %>
25
+
26
+ <!-- sidebar components -->
27
+ <%= render_sidebars %>
28
+ </div>
29
+ <br style="clear:both;" />
30
+ </div>
31
+
32
+ <div id="footer">
33
+ <hr />
34
+ <p><%= link_to this_blog.blog_name, { :controller => '/' } %></p>
35
+ <ul>
36
+ <li>powered by <%= link_to 'typo', 'http://typosphere.org' %> /
37
+ styled with <%= link_to 'scribbish', 'http://quotedprintable.com/pages/scribbish' %></li>
38
+ </ul>
39
+ </div>
40
+ </div>
41
+ </body>
42
+ </html>
Binary file
@@ -0,0 +1,27 @@
1
+ /*--------------------------------------------------------------
2
+ Application.css
3
+ Imports all stylesheets; sets defaults for bare elements
4
+ --------------------------------------------------------------*/
5
+
6
+ @import 'layout.css';
7
+ @import 'content.css';
8
+
9
+ @media print { #sidebar { display:none; }
10
+ #content { float: none; width:90%; }
11
+ #content pre { color: #000; background: #eee; }
12
+ #content form.comments { display:none; } }
13
+
14
+ body {
15
+ background: url(/images/theme/background.gif) repeat-x left top;
16
+ font: normal 12px "lucida grande", verdana, arial, helvetica, sans-serif;
17
+ }
18
+
19
+ input,
20
+ textarea { font: normal 12px "bitstream vera sans", verdana, sans-serif; }
21
+
22
+ abbr { border: none; }
23
+ cite { font-style: normal; }
24
+ a img { border: none; padding: 0; margin: 0; }
25
+
26
+ a:link, a:visited { color: #930; }
27
+ a:hover, a:active { color: #fff; background: #000; }
@@ -0,0 +1,400 @@
1
+ /*--------------------------------------------------------------
2
+ Header
3
+ --------------------------------------------------------------*/
4
+
5
+ #header {
6
+ background: url(/images/theme/header_shadow.gif) repeat-x left bottom;
7
+ }
8
+
9
+ #header a:link,
10
+ #header a:visited {
11
+ color:#000;
12
+ text-decoration: none;
13
+ }
14
+
15
+ #header a:hover,
16
+ #header a:active {
17
+ color:#930; background: transparent;
18
+ text-decoration: none;
19
+ }
20
+
21
+ #header h1 {
22
+ font: bold 400% georgia, serif;
23
+ letter-spacing: -1px;
24
+ margin: 0;
25
+ float: left;
26
+ }
27
+
28
+ #header h2 {
29
+ font: normal 12px verdana, arial, sans-serif;
30
+ margin: 2.5em 0 0 0.8em;
31
+ float: left;
32
+ }
33
+
34
+ /*--------------------------------------------------------------
35
+ Content
36
+ --------------------------------------------------------------*/
37
+
38
+ #content {}
39
+
40
+ #content h1,
41
+ #content h2,
42
+ #content h3,
43
+ #content h4,
44
+ #content h5 {
45
+ font-family: "lucidamac bold", "lucida grande", arial, sans-serif;
46
+ letter-spacing: -1px;
47
+ }
48
+
49
+ #content h1 {
50
+ font-size: 24px;
51
+ margin: 0 0 0.3em;
52
+ }
53
+
54
+ #content h2 {
55
+ font-size: 22px;
56
+ margin: 0 0 0.3em;
57
+ }
58
+
59
+ #content h3 {
60
+ font-size: 20px;
61
+ margin: 1.2em 0 0.3em;
62
+ }
63
+
64
+ #content h4 {
65
+ font-size: 18px;
66
+ margin: 1.2em 0 0.3em;
67
+ border-bottom: 1px dotted #bbb;
68
+ }
69
+
70
+ #content h5 {
71
+ font-size: 18px;
72
+ background: #ffd;
73
+ margin: 1.2em 0 0.3em;
74
+ border-bottom: 1px dotted #aaa;
75
+ }
76
+
77
+ #content p {
78
+ line-height: 15px;
79
+ margin: 0 0 1.2em;
80
+ }
81
+
82
+ #content ul,
83
+ #content ol {
84
+ margin: 1em;
85
+ padding:0;
86
+ }
87
+
88
+ #content ul {
89
+ list-style-type: square;
90
+ }
91
+
92
+ #content li {
93
+ line-height: 15px;
94
+ margin: 0 0 0 1em; padding: 0;
95
+ }
96
+
97
+ #content blockquote {
98
+ color: #555;
99
+ border-left: 5px solid #ccc;
100
+ margin: 1.3em 1em; padding: 0 1em;
101
+ }
102
+
103
+ #content code {
104
+ font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
105
+ }
106
+
107
+ #content pre {
108
+ color: #63FF00;
109
+ background: #000;
110
+ overflow: auto;
111
+ font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
112
+ margin: 0.9em 0; padding: 8px;
113
+ }
114
+
115
+ /* Article Entries - class names based on http://microformats.org/wiki/hatom] */
116
+ #content .atomentry {
117
+ margin: 0 0 3em 0;
118
+ }
119
+
120
+ #content .atomentry .title {
121
+ font-size: 24px;
122
+ line-height: 94%;
123
+ letter-spacing: -1.5px;
124
+ margin: 0;
125
+ }
126
+
127
+ #content .atomentry .title a:link,
128
+ #content .atomentry .title a:visited {
129
+ color: #930;
130
+ text-decoration: none;
131
+ }
132
+
133
+ #content .atomentry .title a:hover,
134
+ #content .atomentry .title a:active {
135
+ color: #000;
136
+ background: transparent;
137
+ }
138
+
139
+ #content .atomentry .title .comment_count { display: none; }
140
+
141
+ #content .atomentry .author {
142
+ color: #bbb;
143
+ font: normal 16px/14px "lucidamac bold", "lucida grande", arial, verdana, sans-serif;
144
+ letter-spacing: -1px;
145
+ margin: 0 0 1em;
146
+ }
147
+
148
+ #content .atomentry .author cite a,
149
+ #content .atomentry .author cite a:hover { /* author mailto: link (if any) */
150
+ color: #aaa; background: transparent;
151
+ text-decoration: none;
152
+ }
153
+
154
+ #content .atomentry .author abbr { /* posted date */
155
+ font-weight: bold;
156
+ color: #aaa;
157
+ }
158
+
159
+ #content .atomentry .content {}
160
+
161
+ #content .atomentry ul.meta {
162
+ font-size: 10px;
163
+ background: #eee;
164
+ margin: 0; padding: 5px;
165
+ border: 1px solid #ddd;
166
+ list-style-type: none;
167
+ }
168
+
169
+ #content .atomentry ul.meta li {
170
+ line-height: 13px;
171
+ margin: 0; padding: 0;
172
+ }
173
+
174
+ #content .atomentry .meta a:link,
175
+ #content .atomentry .meta a:visited {
176
+ color: #555;
177
+ }
178
+
179
+ #content .atomentry .meta a:hover,
180
+ #content .atomentry .meta a:active {
181
+ color: #fff;
182
+ }
183
+
184
+
185
+ /* Comments and Trackbacks */
186
+ #content ol.comments,
187
+ #content ol.trackbacks {
188
+ list-style-type: none;
189
+ margin: 0; padding: 0;
190
+ }
191
+
192
+ #content .comment,
193
+ #content .trackback {
194
+ border: 2px solid #ddd;
195
+ margin: 0 0 1.5em; padding: 1em;
196
+ }
197
+
198
+ #content .comment.preview {
199
+ background: #ffc;
200
+ border: 3px solid #fab444;
201
+ }
202
+
203
+ #content .comment .author,
204
+ #content .trackback .author {
205
+ font-weight: bold;
206
+ margin-bottom: 1em;
207
+ }
208
+
209
+ #content .comment .author cite,
210
+ #content .trackback .author cite {
211
+ font-size: 16px;
212
+ letter-spacing: -1px;
213
+ }
214
+
215
+ #content .comment .author abbr,
216
+ #content .trackback .author abbr { color: #999; }
217
+
218
+ #content .comment .author .gravatar {
219
+ margin: 0 0 0.5em 0.5em;
220
+ float: right;
221
+ }
222
+
223
+ /* uncomment to enable a default gravatar
224
+ #content .comment .author div {
225
+ margin: 0 0 0.5em 0.5em;
226
+ width: 60px; height: 60px;
227
+ background: url(/images/theme/gravatar.gif) no-repeat left top;
228
+ float: right;
229
+ }*/
230
+
231
+
232
+ #content form.comments {
233
+ background: #f2f2f2;
234
+ border-top: 1px solid #ddd;
235
+ padding: 1em 0.5em;
236
+ }
237
+
238
+ #content form.comments fieldset {
239
+ border: none;
240
+ }
241
+
242
+ #content form.comments legend {
243
+ display: none;
244
+ }
245
+
246
+ #content form.comments label {
247
+ font-weight: bold;
248
+ }
249
+
250
+ #content form.comments textarea {
251
+ width: 90%; height: 150px;
252
+ padding: 3px;
253
+ }
254
+
255
+ /*--------------------------------------------------------------
256
+ Sidebar
257
+ --------------------------------------------------------------*/
258
+ #sidebar {
259
+ font-size: 11px;
260
+ }
261
+
262
+ #sidebar h3 {
263
+ font: bold 14px "lucidamac bold", "lucida grande", verdana, arial, helvetica, sans-serif;
264
+ margin: 0 0 0.5em;
265
+ }
266
+
267
+ #sidebar h3 a:link,
268
+ #sidebar h3 a:visited {
269
+ color: #000; text-decoration: none;
270
+ }
271
+
272
+ #sidebar h3 a:hover,
273
+ #sidebar h3 a:active {
274
+ background: transparent; text-decoration: underline;
275
+ }
276
+
277
+ #sidebar ul {
278
+ list-style-type: none;
279
+ margin: 0 0 2em; padding: 0;
280
+ }
281
+
282
+ #sidebar li {
283
+ margin: 0;
284
+ padding: 1px 0;
285
+ }
286
+
287
+ #sidebar em { font-style: normal; }
288
+
289
+ /* Live-search and results */
290
+ #sidebar .search p {
291
+ margin: 0;
292
+ }
293
+
294
+ #sidebar .search p input {
295
+ font-size: 11px; width: 92%;
296
+ }
297
+
298
+ #sidebar .search .loading {
299
+ background: url(/images/theme/spinner.gif) no-repeat left 50%;
300
+ margin: 1em 0; padding: 0 0 0 20px;
301
+ height: 15px;
302
+ }
303
+
304
+ #sidebar .search .results {
305
+ margin: 0 0 1.25em;
306
+ }
307
+
308
+ #sidebar .search .results h3 {
309
+ margin-top: 1em;
310
+ }
311
+
312
+ #sidebar .search .results p {
313
+ font: bold 14px "lucidamac bold", "lucida grande", verdana, arial, helvetica, sans-serif;
314
+ margin: 0 0 0.5em;
315
+ }
316
+
317
+ #sidebar .search .results ul {
318
+ margin: 0; padding: 3px;
319
+ }
320
+
321
+ #sidebar .search .results li { background: #ffc; padding: 0.2em; }
322
+
323
+ #sidebar .search .results a:link,
324
+ #sidebar .search .results a:visited {
325
+ color: #222;
326
+ }
327
+
328
+ #sidebar .search .results a:hover,
329
+ #sidebar .search .results a:active {
330
+ color: #fff;
331
+ }
332
+
333
+ /* Flickr sidebar-node */
334
+ #sidebar #flickr {
335
+ margin: 0 0 2em;
336
+ float: right;
337
+ }
338
+
339
+ #sidebar #flickr div {
340
+ margin: 0 0 5px;
341
+ border: 1px solid #ddd;
342
+ float: right;
343
+ clear: both;
344
+ }
345
+
346
+ #sidebar #flickr img {
347
+ border: 4px solid #fff;
348
+ display: block;
349
+ }
350
+
351
+ #sidebar #flickr img:hover {
352
+ border: 4px solid #ffc;
353
+ }
354
+
355
+ #sidebar #flickr a {
356
+ border: none;
357
+ }
358
+
359
+ /*--------------------------------------------------------------
360
+ Footer
361
+ --------------------------------------------------------------*/
362
+
363
+ #footer {
364
+ border-top: 1px solid #ccc;
365
+ font-size: 90%;
366
+ }
367
+
368
+ #footer a:link,
369
+ #footer a:visited {
370
+ color: #000;
371
+ }
372
+
373
+ #footer a:hover,
374
+ #footer a:active {
375
+ color: #fff;
376
+ background: #000;
377
+ }
378
+
379
+ #footer hr {
380
+ display: none;
381
+ }
382
+
383
+ #footer p {
384
+ width: 40%;
385
+ float: left;
386
+ margin: 0; padding: 0;
387
+ }
388
+
389
+ #footer ul {
390
+ width: 40%;
391
+ margin: 0; padding: 0;
392
+ list-style-type: none;
393
+ text-align: right;
394
+ float: right;
395
+ }
396
+
397
+ #footer li {
398
+ margin: 0; padding: 0 0 0 1em;
399
+ display: inline;
400
+ }