ramaze 2011.07.25 → 2011.10.23

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 (181) hide show
  1. data/.gitignore +3 -0
  2. data/.mailmap +3 -2
  3. data/.travis.yml +17 -0
  4. data/.yardopts +13 -0
  5. data/README.md +95 -352
  6. data/examples/app/blog/app.rb +25 -64
  7. data/examples/app/blog/config.ru +11 -9
  8. data/examples/app/blog/controller/init.rb +29 -86
  9. data/examples/app/blog/controller/posts.rb +232 -0
  10. data/examples/app/blog/controller/users.rb +160 -0
  11. data/examples/app/blog/layout/default.xhtml +61 -0
  12. data/examples/app/blog/migrations/01_create_schema.rb +50 -0
  13. data/examples/app/blog/model/comment.rb +41 -54
  14. data/examples/app/blog/model/init.rb +41 -13
  15. data/examples/app/blog/model/post.rb +35 -0
  16. data/examples/app/blog/model/user.rb +105 -0
  17. data/examples/app/blog/public/.htaccess +24 -0
  18. data/examples/app/blog/public/css/grid.css +107 -0
  19. data/examples/app/blog/public/css/layout.css +203 -0
  20. data/examples/app/blog/public/css/reset.css +123 -0
  21. data/examples/app/blog/public/css/text.css +109 -0
  22. data/examples/app/blog/public/dispatch.fcgi +11 -0
  23. data/examples/app/blog/public/favicon.ico +0 -0
  24. data/examples/app/blog/public/images/bg.png +0 -0
  25. data/examples/app/blog/start.rb +18 -3
  26. data/examples/app/blog/view/feed.xhtml +23 -0
  27. data/examples/app/blog/view/form.xhtml +11 -0
  28. data/examples/app/blog/view/index.xhtml +44 -0
  29. data/examples/app/blog/view/users/form.xhtml +12 -0
  30. data/examples/app/blog/view/users/index.xhtml +30 -0
  31. data/examples/app/blog/view/users/login.xhtml +8 -0
  32. data/examples/app/blog/view/view.xhtml +68 -0
  33. data/{doc → guide}/AUTHORS +5 -3
  34. data/{doc → guide}/CHANGELOG +428 -0
  35. data/{doc/GPL → guide/GPL_LICENSE} +0 -0
  36. data/{doc/COPYING → guide/RUBY_LICENSE} +3 -6
  37. data/guide/_static/logo.png +0 -0
  38. data/guide/_static/logo.svg +49 -0
  39. data/guide/_static/ramaze_console.png +0 -0
  40. data/guide/css/common.css +20 -0
  41. data/guide/general/cache.md +167 -0
  42. data/guide/general/configuration.md +168 -0
  43. data/guide/general/contributing.md +108 -0
  44. data/guide/general/controllers.md +115 -0
  45. data/guide/general/helpers.md +76 -0
  46. data/guide/general/installation.md +58 -0
  47. data/guide/general/logging.md +99 -0
  48. data/guide/general/middlewares.md +100 -0
  49. data/guide/general/models.md +78 -0
  50. data/guide/general/principles.md +53 -0
  51. data/guide/general/ramaze_command.md +155 -0
  52. data/guide/general/routes.md +81 -0
  53. data/guide/general/sessions.md +140 -0
  54. data/guide/general/special_thanks.md +67 -0
  55. data/guide/general/testing.md +61 -0
  56. data/guide/general/views.md +322 -0
  57. data/guide/tutorials/introduction.md +259 -0
  58. data/lib/proto/config.ru +1 -1
  59. data/lib/proto/public/favicon.ico +0 -0
  60. data/lib/proto/view/index.xhtml +7 -7
  61. data/lib/ramaze.rb +4 -4
  62. data/lib/ramaze/app.rb +11 -11
  63. data/lib/ramaze/app_graph.rb +2 -4
  64. data/lib/ramaze/bin/console.rb +3 -3
  65. data/lib/ramaze/bin/create.rb +2 -2
  66. data/lib/ramaze/bin/restart.rb +4 -4
  67. data/lib/ramaze/bin/runner.rb +5 -5
  68. data/lib/ramaze/bin/start.rb +19 -4
  69. data/lib/ramaze/bin/status.rb +3 -3
  70. data/lib/ramaze/bin/stop.rb +3 -3
  71. data/lib/ramaze/cache.rb +1 -0
  72. data/lib/ramaze/cache/lru.rb +8 -4
  73. data/lib/ramaze/cache/memcache.rb +32 -13
  74. data/lib/ramaze/cache/redis.rb +164 -0
  75. data/lib/ramaze/cache/sequel.rb +43 -28
  76. data/lib/ramaze/controller.rb +1 -2
  77. data/lib/ramaze/dependencies.rb +40 -3
  78. data/lib/ramaze/helper/bench.rb +26 -16
  79. data/lib/ramaze/helper/blue_form.rb +46 -73
  80. data/lib/ramaze/helper/cache.rb +10 -6
  81. data/lib/ramaze/helper/csrf.rb +35 -39
  82. data/lib/ramaze/helper/disqus.rb +5 -4
  83. data/lib/ramaze/helper/email.rb +35 -24
  84. data/lib/ramaze/helper/erector.rb +9 -13
  85. data/lib/ramaze/helper/flash.rb +7 -9
  86. data/lib/ramaze/helper/formatting.rb +194 -179
  87. data/lib/ramaze/helper/gravatar.rb +4 -8
  88. data/lib/ramaze/helper/identity.rb +3 -3
  89. data/lib/ramaze/helper/layout.rb +23 -8
  90. data/lib/ramaze/helper/markaby.rb +1 -1
  91. data/lib/ramaze/helper/paginate.rb +46 -39
  92. data/lib/ramaze/helper/request_accessor.rb +3 -1
  93. data/lib/ramaze/helper/simple_captcha.rb +18 -17
  94. data/lib/ramaze/helper/stack.rb +1 -1
  95. data/lib/ramaze/helper/tagz.rb +4 -2
  96. data/lib/ramaze/helper/upload.rb +523 -0
  97. data/lib/ramaze/helper/user.rb +4 -8
  98. data/lib/ramaze/helper/xhtml.rb +11 -15
  99. data/lib/ramaze/log.rb +9 -6
  100. data/lib/ramaze/log/rotatinginformer.rb +62 -27
  101. data/lib/ramaze/log/syslog.rb +20 -15
  102. data/lib/ramaze/log/xosd.rb +2 -1
  103. data/lib/ramaze/reloader.rb +2 -0
  104. data/lib/ramaze/request.rb +11 -10
  105. data/lib/ramaze/setup.rb +23 -6
  106. data/lib/ramaze/snippets/array/put_within.rb +3 -9
  107. data/lib/ramaze/snippets/binding/locals.rb +5 -10
  108. data/lib/ramaze/snippets/fiber.rb +1 -23
  109. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +3 -6
  110. data/lib/ramaze/snippets/numeric/filesize_format.rb +3 -5
  111. data/lib/ramaze/snippets/numeric/time.rb +3 -7
  112. data/lib/ramaze/snippets/object/__dir__.rb +3 -7
  113. data/lib/ramaze/snippets/object/instance_variable_defined.rb +3 -6
  114. data/lib/ramaze/snippets/object/pretty.rb +3 -7
  115. data/lib/ramaze/snippets/object/scope.rb +7 -9
  116. data/lib/ramaze/snippets/proc/locals.rb +12 -12
  117. data/lib/ramaze/snippets/ramaze/acquire.rb +15 -14
  118. data/lib/ramaze/snippets/ramaze/deprecated.rb +1 -1
  119. data/lib/ramaze/snippets/ramaze/fiber.rb +1 -1
  120. data/lib/ramaze/snippets/ramaze/lru_hash.rb +2 -3
  121. data/lib/ramaze/snippets/ramaze/struct.rb +2 -4
  122. data/lib/ramaze/snippets/string/camel_case.rb +8 -10
  123. data/lib/ramaze/snippets/string/color.rb +3 -4
  124. data/lib/ramaze/snippets/string/end_with.rb +3 -6
  125. data/lib/ramaze/snippets/string/esc.rb +3 -8
  126. data/lib/ramaze/snippets/string/ord.rb +3 -8
  127. data/lib/ramaze/snippets/string/snake_case.rb +6 -9
  128. data/lib/ramaze/snippets/string/start_with.rb +3 -8
  129. data/lib/ramaze/snippets/string/unindent.rb +3 -6
  130. data/lib/ramaze/snippets/thread/into.rb +1 -3
  131. data/lib/ramaze/spec.rb +2 -31
  132. data/lib/ramaze/spec/bacon.rb +18 -2
  133. data/lib/ramaze/version.rb +1 -1
  134. data/lib/ramaze/view.rb +1 -1
  135. data/ramaze.gemspec +1 -1
  136. data/spec/helper.rb +2 -1
  137. data/spec/ramaze/bin/start.rb +16 -20
  138. data/spec/ramaze/cache/localmemcache.rb +4 -7
  139. data/spec/ramaze/cache/memcache.rb +3 -1
  140. data/spec/ramaze/cache/redis.rb +62 -0
  141. data/spec/ramaze/helper/blue_form.rb +33 -4
  142. data/spec/ramaze/helper/layout.rb +40 -7
  143. data/spec/ramaze/helper/upload.rb +149 -0
  144. data/spec/ramaze/helper/uploads/text_1.txt +1 -0
  145. data/spec/ramaze/helper/uploads/text_2.txt +1 -0
  146. data/spec/ramaze/log/growl.rb +4 -6
  147. data/spec/ramaze/log/syslog.rb +6 -0
  148. data/spec/ramaze/view/lokar.rb +5 -0
  149. data/spec/ramaze/view/nagoro.rb +5 -0
  150. data/tasks/authors.rake +1 -1
  151. data/tasks/bacon.rake +14 -5
  152. data/tasks/changelog.rake +1 -1
  153. data/tasks/yard.rake +12 -4
  154. metadata +277 -239
  155. data/doc/LEGAL +0 -26
  156. data/examples/app/blog/README +0 -3
  157. data/examples/app/blog/controller/comment.rb +0 -45
  158. data/examples/app/blog/controller/entry.rb +0 -85
  159. data/examples/app/blog/controller/main.rb +0 -20
  160. data/examples/app/blog/controller/tag.rb +0 -9
  161. data/examples/app/blog/layout/default.nag +0 -31
  162. data/examples/app/blog/model/entry.rb +0 -89
  163. data/examples/app/blog/model/tag.rb +0 -36
  164. data/examples/app/blog/public/css/screen.css +0 -273
  165. data/examples/app/blog/spec/blog.rb +0 -87
  166. data/examples/app/blog/view/comment/form.nag +0 -10
  167. data/examples/app/blog/view/comment/show.nag +0 -16
  168. data/examples/app/blog/view/entry/edit.nag +0 -14
  169. data/examples/app/blog/view/entry/feed.atom.nag +0 -8
  170. data/examples/app/blog/view/entry/feed.rss.nag +0 -7
  171. data/examples/app/blog/view/entry/index.nag +0 -7
  172. data/examples/app/blog/view/entry/new.nag +0 -13
  173. data/examples/app/blog/view/entry/show.nag +0 -36
  174. data/examples/app/blog/view/feed.atom.nag +0 -18
  175. data/examples/app/blog/view/feed.rss.nag +0 -25
  176. data/examples/app/blog/view/index.nag +0 -6
  177. data/examples/app/blog/view/tag/index.nag +0 -5
  178. data/lib/proto/public/ramaze.png +0 -0
  179. data/lib/ramaze/rest.rb +0 -36
  180. data/spec/ramaze/rest.rb +0 -28
  181. data/tasks/rcov.rake +0 -22
data/doc/LEGAL DELETED
@@ -1,26 +0,0 @@
1
- This is a list of files included into ramaze but under different licenses.
2
- Also included are files that are not under the copyright from Michael Fellinger.
3
-
4
- lib/ramaze/helper/pager.rb
5
- License: BSD License
6
- Author: George K. Moschovitis
7
-
8
- lib/ramaze/snippets/dictionary.rb
9
- License: Ruby License
10
- Authors: Jan Molic and Thomas Sawyer
11
-
12
- lib/proto/js/jquery.js
13
- License: Dual licensed under MIT and GPL
14
- Author: John Resig
15
-
16
- lib/ramaze/spec/helper/simple_http.rb
17
- License: Ruby
18
- Author: Tim Becker
19
-
20
- lib/ramaze/template/xslt.rb
21
- License: Ruby
22
- Author: Stephan Maka
23
-
24
- lib/vendor/bacon.rb
25
- License: MIT
26
- Author: Christian Neukirchen
@@ -1,3 +0,0 @@
1
- A simple blog engine that uses Sequel as the persistence layer.
2
- Sequel uses sqlite as the default DBMS engine and will create the database
3
- automatically on startup.
@@ -1,45 +0,0 @@
1
- module Blog
2
- class Comments < Controller
3
- map '/comment'
4
- helper :gravatar
5
-
6
- def index(id)
7
- end
8
-
9
- def show
10
- @pub_formatted = @comment.published.strftime(Blog.options.time_format)
11
- @id = @comment.id
12
- @author = h(@comment.author)
13
- @homepage = @comment.homepage
14
- @content = h(@comment.content)
15
- @href = @comment.href
16
- @gravatar = gravatar(@comment.email.to_s, :size => 80, :default => :wavatar)
17
- end
18
-
19
- def create
20
- @comment = Comment.new
21
- @entry = Entry[request[:entry_id]]
22
-
23
- if @comment.update(@entry, request)
24
- redirect @comment.href
25
- else
26
- render_partial(:form, :comment => @comment, :entry => @entry)
27
- end
28
- end
29
-
30
- def form
31
- @comment ||= Comment.new
32
- form_errors_from_model(@comment)
33
- end
34
-
35
- def edit(id)
36
- 'TODO: not implemted'
37
- end
38
-
39
- def delete(id)
40
- login_required
41
- Comment[id].destroy
42
- redirect_referrer
43
- end
44
- end
45
- end
@@ -1,85 +0,0 @@
1
- module Blog
2
- class Entries < Controller
3
- map '/entry'
4
- provide(:rss, :type => 'application/rss+xml', :engine => :Nagoro)
5
- provide(:atom, :type => 'application/atom+xml', :engine => :Nagoro)
6
-
7
- def index(slug)
8
- @entry = Entry.from_slug(slug)
9
- redirect Blog::Main.r('/') unless @entry
10
- @tabindex = 10 # outsmart the sidebar tabindex for login
11
- end
12
-
13
- # just making the work in the template easier
14
- def show
15
- @id = @entry.id
16
- @href = @entry.href
17
- @comment_href = @entry.comment_href
18
- @respond_href = @entry.respond_href
19
- @trackback_href = @entry.trackback_href
20
-
21
- @title = h(@entry.title)
22
- @pub_iso = @entry.published.iso8601
23
- @pub_formatted = @entry.published.strftime(Blog.options.time_format)
24
-
25
- @comment_count = number_counter(@entry.comments.count, 'comment')
26
- end
27
-
28
- def edit(slug)
29
- login_required
30
- @entry = Entry.from_slug(slug)
31
- @tags = fetch_tags
32
- end
33
-
34
- def save
35
- login_required
36
- @entry = Entry[request[:id]]
37
- @entry.update(request)
38
-
39
- redirect @entry.href
40
- end
41
-
42
- def new
43
- login_required
44
- @entry = Entry.new
45
- @tags = fetch_tags
46
- end
47
-
48
- def create
49
- login_required
50
- @entry = Entry.new
51
- @entry.update(request)
52
-
53
- redirect @entry.href
54
- end
55
-
56
- def delete(slug)
57
- login_required
58
- Entry.from_slug(slug).destroy
59
- end
60
-
61
- def trackback(slug)
62
- render_partial(:index){|a|
63
- a.method = :index
64
- a.params << slug
65
- } + <<-COMMENT.strip
66
- I really have not the faintest idea about what this is supposed to do.<br />
67
- People tell me it's broken, but nobody tells me how to fix it :)<br />
68
- For now I'll just use it to show off how to modify an action that requires a
69
- method parameter.
70
- COMMENT
71
- end
72
-
73
- private
74
-
75
- def fetch_tags
76
- if tags = request[:tags]
77
- tags.scan(/\S+/).join(' ')
78
- elsif @entry.id and tags = @entry.tags
79
- tags.join(' ')
80
- else
81
- ''
82
- end
83
- end
84
- end
85
- end
@@ -1,20 +0,0 @@
1
- module Blog
2
- class Main < Controller
3
- map '/'
4
- helper :paginate
5
- provide(:rss, :type => 'application/rss+xml', :engine => :Nagoro)
6
- provide(:atom, :type => 'application/atom+xml', :engine => :Nagoro)
7
-
8
- def index
9
- data = Entry.order(:published.desc)
10
- @pager = paginate(data, :limit => Blog.options.list_size)
11
- end
12
-
13
- def feed
14
- @entries = Entry.history(Blog.options.feed_size)
15
- @updated = @entries.last.updated
16
- @generator = 'Ramaze Blog 2009.03.24'
17
- @generator_uri = 'http://github.com/manveru/rablo'
18
- end
19
- end
20
- end
@@ -1,9 +0,0 @@
1
- module Blog
2
- class Tags < Controller
3
- map '/tag'
4
-
5
- def index(*tags)
6
- @tags = Tag.filter(:name => tags).eager(:entries)
7
- end
8
- end
9
- end
@@ -1,31 +0,0 @@
1
- <html>
2
- <head>
3
- <title>#{Blog.options.title}</title>
4
- <link rel="stylesheet" href="/css/screen.css?t=#{Time.now.to_i}" type="text/css"/>
5
- </head>
6
- <body>
7
- <div class="header">
8
- <h1>#{a Blog.options.title, Blog::Main.r(:/)}</h1>
9
- <h2>#{h Blog.options.subtitle}</h2>
10
- </div>
11
- <div class="main">
12
- <div class="content">
13
- #{@content}
14
- </div>
15
- <div class="sidebar">
16
- #{sidebar}
17
- </div>
18
- <div class="clear"></div>
19
- </div>
20
- <div class="footer">
21
- &copy; #{[2009, Date.today.year].sort.uniq.join('-')} by
22
- <address class="vcard author">
23
- <a class="url fn" href="#{author_url}">#{Blog.options.author.name}</a>
24
- </address>
25
- <br />
26
- Powered by:
27
- #{a 'Ramaze', 'http://ramaze.net'} &amp;
28
- #{a 'Sequel', 'http://sequel.rubyforge.org'}
29
- </div>
30
- </body>
31
- </html>
@@ -1,89 +0,0 @@
1
- module Blog
2
- class Entry < Sequel::Model
3
- set_schema do
4
- primary_key :id
5
-
6
- time :published
7
- time :updated
8
- text :content
9
- varchar :title
10
- boolean :allow_comments, :default => true
11
- end
12
-
13
- many_to_many :tags, :class => 'Blog::Tag'
14
- one_to_many :comments, :class => 'Blog::Comment'
15
-
16
- before_save{ self.updated = Time.now }
17
- before_create{ self.published = Time.now }
18
-
19
- def self.from_slug(slug)
20
- self[slug[/\d+/]]
21
- end
22
-
23
- def self.history(limit)
24
- order(:published.desc).first(limit)
25
- end
26
-
27
- def update(hash)
28
- self.title = hash[:title]
29
- self.content = hash[:content]
30
- save
31
- self.tags = hash[:tags]
32
- self
33
- end
34
-
35
- def slug
36
- self.class.slug(id, title)
37
- end
38
-
39
- def href
40
- self.class.href(id, title)
41
- end
42
-
43
- def self.slug(id, title)
44
- Innate::Helper::CGI.u("#{id}-#{title.scan(/\w+/).join('-')}")
45
- end
46
-
47
- def self.href(id, title)
48
- Blog::Entries.r(:/, slug(id, title))
49
- end
50
-
51
- def trackback_href
52
- Blog::Entries.r(:trackback, slug)
53
- end
54
-
55
- def respond_href
56
- Blog::Entries.r(:/, "#{slug}#respond")
57
- end
58
-
59
- def comment_href
60
- Blog::Entries.r(:/, "#{slug}#comments")
61
- end
62
-
63
- def tags=(tags)
64
- remove_all_tags
65
- tags.to_s.downcase.scan(/[^\s,\.]+/).uniq.each{|tag|
66
- add_tag(Tag.find_or_create(:name => tag))
67
- }
68
- end
69
-
70
- def summary(size = 255)
71
- content[0..size]
72
- end
73
-
74
- def to_html(text = content)
75
- Maruku.new(text).to_html
76
- end
77
-
78
- create_table unless table_exists?
79
-
80
- if empty?
81
- Ramaze::Log.info 'Populating database with fake entries'
82
-
83
- entry = create(:title => 'Blog created',
84
- :content => 'Exciting news today, first post on this blog')
85
- entry.add_tag(Tag.create(:name => 'ramaze'))
86
- entry.add_tag(Tag.create(:name => 'blog'))
87
- end
88
- end
89
- end
@@ -1,36 +0,0 @@
1
- module Blog
2
- class EntriesTags < Sequel::Model
3
- set_schema do
4
- primary_key :id
5
-
6
- foreign_key :entry_id
7
- foreign_key :tag_id
8
- end
9
-
10
- many_to_one :entry, :class => 'Blog::Entry'
11
- many_to_one :tag, :class => 'Blog::Tag'
12
-
13
- create_table unless table_exists?
14
- end
15
-
16
- class Tag < Sequel::Model
17
- set_schema do
18
- primary_key :id
19
-
20
- varchar :name, :unique => true
21
- end
22
-
23
- many_to_many :entries, :class => 'Blog::Entry'
24
-
25
- def to_s
26
- name
27
- end
28
-
29
- def <=>(other)
30
- raise ArgumentError unless other.respond_to?(:name)
31
- self.name <=> other.name
32
- end
33
-
34
- create_table unless table_exists?
35
- end
36
- end
@@ -1,273 +0,0 @@
1
- body {
2
- margin: 0;
3
- padding: 0;
4
- background: #fea;
5
- }
6
-
7
- a {
8
- color: #f60;
9
- text-decoration: none;
10
- }
11
-
12
- a:hover, a:focus {
13
- color: #a30;
14
- text-decoration: underline;
15
- }
16
-
17
- address {
18
- display: inline;
19
- }
20
-
21
- ul {
22
- font-size: 0.9em;
23
- list-style: none;
24
- padding: 0;
25
- }
26
-
27
- table {
28
- width: 100%;
29
- }
30
-
31
- fieldset {
32
- border: 0px;
33
- }
34
-
35
- legend {
36
- display: none;
37
- }
38
-
39
- textarea {
40
- width: 600px;
41
- height: 22em;
42
- font-family: sans-serif;
43
- background: #ffc;
44
- padding: 0 0 0 0.5em;
45
- }
46
-
47
- input {
48
- background: #ffc;
49
- }
50
-
51
- .header h1, h2 {
52
- text-align: center;
53
- font-family: serif;
54
- font-variant: small-caps;
55
- font-size: 1.5em;
56
- }
57
-
58
- .header h1 {
59
- padding: 0;
60
- margin: 0 0 0.5em 0;
61
- }
62
-
63
- .header h1 a {
64
- text-decoration: none;
65
- }
66
-
67
- .header h1 {
68
- font-size: 2em;
69
- }
70
-
71
- .header h2 {
72
- font-size: 1em;
73
- }
74
-
75
- .main {
76
- width: 960px;
77
- margin: auto;
78
- }
79
-
80
- .content {
81
- width: 768px;
82
- float: left;
83
- }
84
-
85
- .sidebar {
86
- width: 186px;
87
- background: #ed9;
88
- padding: 0 6px 6px 0;
89
- float: right;
90
- text-align: right;
91
- }
92
-
93
- .sidebar ul {
94
- padding: 0.2em;
95
- margin: 6px 0 0 0;
96
- background: #ffc;
97
- }
98
-
99
- .sidebar li {
100
- margin-right: 0.2em;
101
- }
102
-
103
- .sidebar .title {
104
- font-size: 1.1em;
105
- text-align: center;
106
- margin-bottom: 0.2em;
107
- }
108
-
109
- .sidebar .bio {
110
- }
111
-
112
- .sidebar .login {
113
- text-align: left;
114
- }
115
-
116
- .sidebar .login input {
117
- width: 10em;
118
- }
119
-
120
- .clear {
121
- clear: both;
122
- }
123
-
124
- .footer {
125
- clear: both;
126
- text-align: center;
127
- font-size: 0.9em;
128
- margin: 2em;
129
- }
130
-
131
- .entry {
132
- background: #ed9;
133
- margin-bottom: 2em;
134
- padding: 6px;
135
- }
136
-
137
- .entry .title {
138
- text-align: center;
139
- }
140
-
141
- .entry h2 {
142
- background: #ffc;
143
- margin-bottom: 0;
144
- margin-top: 0;
145
- }
146
-
147
- .entry .title a {
148
- font-size: 1.2em;
149
- font-family: serif;
150
- font-variant: small-caps;
151
- text-decoration: none;
152
- }
153
-
154
- .entry .entry-content {
155
- font-family: sans-serif;
156
- background: #ffc;
157
- padding: 1em;
158
- }
159
-
160
- .entry li {
161
- display: inline;
162
- }
163
-
164
- .entry a {
165
- text-decoration: none;
166
- }
167
-
168
- .entry .entry-info {
169
- background: #ed9;
170
- padding: 6px;
171
- font-size: 0.9em;
172
- }
173
-
174
- .entry .tags {
175
- float: left;
176
- margin: 0;
177
- }
178
-
179
- .entry .count {
180
- float: right;
181
- }
182
-
183
- .entry .about {
184
- clear: both;
185
- text-align: center;
186
- }
187
-
188
- .entry .actions {
189
- }
190
-
191
- .comments {
192
- }
193
-
194
- .comment {
195
- background: #ed9;
196
- padding: 6px;
197
- margin: 1em;
198
- }
199
-
200
- .comment .comment-content {
201
- background: #ffc;
202
- padding: 1em;
203
- clear: both;
204
- }
205
-
206
- .comment .comment-info {
207
- font-size: 0.9em;
208
- }
209
-
210
- .comment .about {
211
- float: left;
212
- padding: 6px;
213
- }
214
-
215
- .comment .gravatar {
216
- float: right;
217
- margin: 6px;
218
- }
219
-
220
- .comment .actions {
221
- clear: both;
222
- font-size: 0.9em;
223
- padding: 6px;
224
- }
225
-
226
- .comments form {
227
- margin-top: 2em;
228
- }
229
-
230
- .comments textarea {
231
- height: 7em;
232
- }
233
-
234
- form .error {
235
- color: #f00;
236
- display: block;
237
- }
238
-
239
- .pager {
240
- text-align: center;
241
- }
242
-
243
- .pager .grey {
244
- color: #aaa;
245
- }
246
-
247
- .pager .current {
248
- color: #f00;
249
- }
250
-
251
- form {
252
- margin: 0;
253
- padding: 0;
254
- }
255
-
256
- .entry-form form {
257
- background: #ed9;
258
- }
259
-
260
- #form-title {
261
- padding: 0.5em;
262
- width: 100%;
263
- text-align: center;
264
- font-size: 1em;
265
- font-family: serif;
266
- font-variant: small-caps;
267
- text-decoration: none;
268
- }
269
-
270
- #form-tags {
271
- padding: 0.5em;
272
- width: 100%;
273
- }