ramaze 2011.07.25 → 2011.10.23

Sign up to get free protection for your applications and to get access to all the features.
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
- }