typo 3.99.2 → 3.99.3

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.
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
+ }