typo 3.99.2 → 3.99.3
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/articles_controller.rb +21 -14
- data/app/controllers/content_controller.rb +3 -5
- data/app/controllers/xml_controller.rb +13 -3
- data/app/helpers/application_helper.rb +7 -1
- data/app/helpers/xml_helper.rb +23 -0
- data/app/models/article.rb +5 -0
- data/app/models/content.rb +2 -0
- data/app/models/ping.rb +32 -22
- data/app/views/admin/content/_form.rhtml +1 -0
- data/app/views/admin/general/index.rhtml +1 -1
- data/app/views/admin/pages/_form.rhtml +1 -0
- data/app/views/articles/_comment_box.rhtml +1 -0
- data/app/views/xml/_googlesitemap_item_article.rxml +5 -0
- data/app/views/xml/_googlesitemap_item_category.rxml +4 -0
- data/app/views/xml/_googlesitemap_item_page.rxml +4 -0
- data/app/views/xml/_googlesitemap_item_tag.rxml +4 -0
- data/app/views/xml/googlesitemap_feed.rxml +7 -0
- data/app/views/xml/itunes_feed.rxml +4 -4
- data/bin/typo +10 -0
- data/components/plugins/sidebars/archives_controller.rb +20 -14
- data/components/plugins/sidebars/delicious/content.rhtml +4 -4
- data/components/plugins/textfilters/amazon_controller.rb +1 -1
- data/config/routes.rb +2 -1
- data/doc/Installer.txt +21 -4
- data/installer/rails-installer.rb +78 -90
- data/installer/rails-installer/commands.rb +117 -0
- data/installer/rails-installer/web-server.rb +108 -0
- data/installer/rails-installer/web-servers.rb +108 -0
- data/installer/rails_installer_defaults.yml +1 -0
- data/lib/sidebars/plugin.rb +1 -1
- data/lib/tasks/release.rake +2 -1
- data/lib/typo_version.rb +1 -1
- data/log/development.log-1 +991 -0
- data/log/development.log-2 +422 -0
- data/log/development.log-3 +429 -0
- data/log/development.log-4 +174 -0
- data/public/javascripts/typo.js +8 -0
- data/test/fixtures/contents.yml +5 -0
- data/test/functional/articles_controller_test.rb +2 -2
- data/test/functional/xml_controller_test.rb +8 -0
- data/test/test_helper.rb +2 -0
- data/themes/scribbish/CONTRIBUTORS +2 -0
- data/themes/scribbish/about.markdown +9 -0
- data/themes/scribbish/images/background.gif +0 -0
- data/themes/scribbish/images/gravatar.gif +0 -0
- data/themes/scribbish/images/header_shadow.gif +0 -0
- data/themes/scribbish/images/spinner.gif +0 -0
- data/themes/scribbish/layouts/default.rhtml +42 -0
- data/themes/scribbish/preview.png +0 -0
- data/themes/scribbish/stylesheets/application.css +27 -0
- data/themes/scribbish/stylesheets/content.css +400 -0
- data/themes/scribbish/stylesheets/layout.css +70 -0
- data/themes/scribbish/views/articles/_article.rhtml +37 -0
- data/themes/scribbish/views/articles/_comment.rhtml +14 -0
- data/themes/scribbish/views/articles/_comment_form.rhtml +47 -0
- data/themes/scribbish/views/articles/_search.rhtml +15 -0
- data/themes/scribbish/views/articles/_trackback.rhtml +9 -0
- data/themes/scribbish/views/articles/comment_preview.rhtml +10 -0
- data/themes/scribbish/views/articles/index.rhtml +5 -0
- data/themes/scribbish/views/articles/read.rhtml +42 -0
- data/tmp/cache/META/DATA/ACTION_PARAM/10.1.0.181/articles/index/.cache +537 -0
- data/tmp/cache/META/DATA/ACTION_PARAM/localhost/articles/index/.cache +537 -0
- data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +671 -0
- data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +401 -0
- data/tmp/cache/META/META/ACTION_PARAM/10.1.0.181/articles/index/.cache +2 -0
- data/tmp/cache/META/META/ACTION_PARAM/localhost/articles/index/.cache +2 -0
- data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +2 -0
- data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +2 -0
- data/vendor/plugins/expiring_action_cache/lib/actionparamcache.rb +2 -1
- 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
|
+
[4;35;1mBlog Load (0.001571)[0m [0mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
6
|
+
[4;36;1mTrigger Load (0.001660)[0m [0;1mSELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:23') [0m
|
7
|
+
[4;35;1mSQL (0.005065)[0m [0m 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
|
+
[0m
|
14
|
+
[4;36;1mSQL (0.001335)[0m [0;1mSELECT count(*) AS count_all FROM users [0m
|
15
|
+
[4;35;1mSQL (0.003723)[0m [0m 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
|
+
[0m
|
22
|
+
[4;36;1mSQL (0.005265)[0m [0;1m 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
|
+
[0m
|
29
|
+
[4;35;1mArticle Count (3.383297)[0m [0mSELECT 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' ) ) [0m
|
30
|
+
[4;36;1mSQL (0.004491)[0m [0;1m 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
|
+
[0m
|
37
|
+
[4;35;1mSQL (0.005264)[0m [0m 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
|
+
[0m
|
44
|
+
[4;36;1mArticle Load IDs For Limited Eager Loading (0.016903)[0m [0;1mSELECT 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[0m
|
45
|
+
[4;35;1mArticle Load Including Associations (0.150279)[0m [0mSELECT 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 [0m
|
46
|
+
Rendering within ../../themes/scribbish/layouts/default
|
47
|
+
Rendering articles/index
|
48
|
+
[4;36;1mBlog Load (0.002095)[0m [0;1mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
49
|
+
[4;35;1mUser Load (0.002659)[0m [0mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
50
|
+
[4;36;1mBlog Load (0.001452)[0m [0;1mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
51
|
+
Rendered articles/_article (0.07813)
|
52
|
+
[4;35;1mBlog Load (0.001730)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
53
|
+
[4;36;1mUser Load (0.002122)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
54
|
+
Rendered articles/_article (0.01851)
|
55
|
+
[4;35;1mBlog Load (0.002361)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
56
|
+
[4;36;1mUser Load (0.001859)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
57
|
+
Rendered articles/_article (0.01787)
|
58
|
+
[4;35;1mBlog Load (0.002031)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
59
|
+
[4;36;1mUser Load (0.001887)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
60
|
+
Rendered articles/_article (0.13746)
|
61
|
+
[4;35;1mBlog Load (0.001752)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
62
|
+
[4;36;1mUser Load (0.002257)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
63
|
+
Rendered articles/_article (0.01825)
|
64
|
+
[4;35;1mBlog Load (0.001933)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
65
|
+
[4;36;1mUser Load (0.155534)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
66
|
+
Rendered articles/_article (0.26178)
|
67
|
+
[4;35;1mBlog Load (0.001735)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
68
|
+
[4;36;1mUser Load (0.002489)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
69
|
+
Rendered articles/_article (0.01920)
|
70
|
+
[4;35;1mBlog Load (0.002814)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
71
|
+
[4;36;1mUser Load (0.001888)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
72
|
+
Rendered articles/_article (0.13118)
|
73
|
+
[4;35;1mBlog Load (0.001763)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
74
|
+
[4;36;1mUser Load (0.001945)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
75
|
+
Rendered articles/_article (0.01881)
|
76
|
+
[4;35;1mBlog Load (0.002165)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
77
|
+
[4;36;1mUser Load (0.001878)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
78
|
+
Rendered articles/_article (0.01625)
|
79
|
+
[4;35;1mBlog Load (0.003068)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
80
|
+
[4;36;1mUser Load (0.001868)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
81
|
+
Rendered articles/_article (0.01773)
|
82
|
+
[4;35;1mBlog Load (0.001745)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
83
|
+
[4;36;1mUser Load (0.002177)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
84
|
+
Rendered articles/_article (0.01745)
|
85
|
+
[4;35;1mBlog Load (0.001913)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
86
|
+
[4;36;1mUser Load (0.001883)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
87
|
+
Rendered articles/_article (0.12971)
|
88
|
+
[4;35;1mBlog Load (0.002062)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
89
|
+
[4;36;1mUser Load (0.001928)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
90
|
+
Rendered articles/_article (0.01989)
|
91
|
+
[4;35;1mBlog Load (0.001737)[0m [0mSELECT * FROM blogs WHERE (blogs.id = 1) LIMIT 1[0m
|
92
|
+
[4;36;1mUser Load (0.001901)[0m [0;1mSELECT * FROM users WHERE (users.id = 1) LIMIT 1[0m
|
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
|
+
[4;35;1mBlog Load (0.001420)[0m [0mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
100
|
+
[4;36;1mTrigger Load (0.001471)[0m [0;1mSELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') [0m
|
101
|
+
[4;35;1mSidebar Load (0.005570)[0m [0mSELECT * FROM sidebars WHERE (active_position is not null) ORDER BY active_position [0m
|
102
|
+
[4;36;1mSQL (0.005188)[0m [0;1m 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
|
+
[0m
|
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
|
+
[4;35;1mBlog Load (0.001579)[0m [0mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
115
|
+
[4;36;1mTrigger Load (0.001495)[0m [0;1mSELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') [0m
|
116
|
+
[4;35;1mTag Load (0.045230)[0m [0m
|
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
|
+
[0m
|
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
|
+
[4;36;1mBlog Load (0.001800)[0m [0;1mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
139
|
+
[4;35;1mTrigger Load (0.001495)[0m [0mSELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') [0m
|
140
|
+
[4;36;1mContent Load (0.023723)[0m [0;1mselect 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'[0m
|
141
|
+
[4;35;1mSQL (0.004369)[0m [0m 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
|
+
[0m
|
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
|
+
[4;36;1mBlog Load (0.001424)[0m [0;1mSELECT * FROM blogs ORDER BY id LIMIT 1[0m
|
160
|
+
[4;35;1mTrigger Load (0.002276)[0m [0mSELECT * FROM triggers WHERE (due_at <= '2006-07-08 00:17:28') [0m
|
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
|
+
[4;36;1mArticle Load (0.011033)[0m [0;1mSELECT * 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[0m
|
174
|
+
Completed in 5.79087 (0 reqs/sec) | Rendering: 1.89160 (32%) | DB: 3.58989 (61%) | 200 OK [http://localhost/]
|
data/public/javascripts/typo.js
CHANGED
@@ -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');
|
data/test/fixtures/contents.yml
CHANGED
@@ -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
|
-
:
|
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
@@ -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
|
Binary file
|
Binary file
|
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
|
+
}
|