buttercms 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rst +0 -123
- data/app/controllers/buttercms/blog_controller.rb +4 -20
- data/lib/buttercms/version.rb +1 -1
- data/lib/generators/buttercms/install_generator.rb +13 -4
- data/{app/views/buttercms/blog → lib/generators/templates}/_pagers.html.erb +1 -1
- data/{app/views/buttercms/blog → lib/generators/templates}/_post.html.erb +1 -1
- data/lib/generators/templates/author.html.erb +3 -0
- data/lib/generators/templates/butter_initializer.rb +0 -16
- data/lib/generators/templates/category.html.erb +3 -0
- data/lib/generators/templates/home.html.erb +3 -0
- data/lib/generators/templates/post.html.erb +76 -0
- metadata +8 -8
- data/app/views/buttercms/blog/butter_author.html.erb +0 -3
- data/app/views/buttercms/blog/butter_category.html.erb +0 -3
- data/app/views/buttercms/blog/butter_home.html.erb +0 -3
- data/app/views/buttercms/blog/butter_post.html.erb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3244e5e1565d4a57f022236036ce1950e27744f2
|
4
|
+
data.tar.gz: fc3fbffba109a913e350b518f58309f35ff4bbbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b5c1fdcd7884125147391c7c03d99d8b507226caeb1037ca872126c29d1f0cdcf480abbd489b30140c49b4766f296c4d68a2004eb37e84c4d444919b6a73b75
|
7
|
+
data.tar.gz: 07aed0d6394defb4db0c39672095981cceee77936d6c60e5ef6378463aaeb47973d763d46f23193b37ec1d415ff75343bde248d0bc043115c11e0bbf3313d71e
|
data/README.rst
CHANGED
@@ -59,126 +59,3 @@ We've provided a default layout but we expect you'll want the blog to appear you
|
|
59
59
|
config.layout = "<your_blog_layout>"
|
60
60
|
|
61
61
|
Note that an ideal layout simply defines the header and footer for the page and `<%= yields %>` the main body. Restart the server and go to http://localhost:3000/blog and you'll see your new branded blog!
|
62
|
-
|
63
|
-
Customizing the view templates
|
64
|
-
------------------------------
|
65
|
-
You can customize any view of your blog. Here is full list of page types + settings:
|
66
|
-
|
67
|
-
.. code:: ruby
|
68
|
-
|
69
|
-
# In initializers/butter.rb
|
70
|
-
config.home_template = "blog/home"
|
71
|
-
config.post_template = "blog/post"
|
72
|
-
config.author_template = "blog/author"
|
73
|
-
config.category_template = "blog/category"
|
74
|
-
|
75
|
-
We recommend putting any custom templates in `views/blog/<template>.html.erb`
|
76
|
-
|
77
|
-
Below is a specific example of how to customize your blog post view to include Discus comments.
|
78
|
-
|
79
|
-
Add comments to blog post template
|
80
|
-
----------------------------------
|
81
|
-
If you want to customize the blog post template (for example to add `Disqus
|
82
|
-
<https://disqus.com/>`_ comments at the bottom), it's simple:
|
83
|
-
|
84
|
-
First create your template: `views/blog/post.html.erb`
|
85
|
-
|
86
|
-
.. code:: html
|
87
|
-
|
88
|
-
<div class="post">
|
89
|
-
<h2 class="title">
|
90
|
-
<%= @post['title'] %>
|
91
|
-
</h2>
|
92
|
-
|
93
|
-
<p class="meta">
|
94
|
-
Posted by
|
95
|
-
<%= link_to("#{@post['author']['first_name']} #{@post['author']['last_name']}", blog_author_path(:author_slug => @post['author']['slug'])) %>
|
96
|
-
on <%= @post['created'] %>
|
97
|
-
|
98
|
-
<% @post['categories'].each do |category| %>
|
99
|
-
<span class="label">
|
100
|
-
<%= link_to(category['name'], blog_category_path(:category_slug => category['slug'])) %>
|
101
|
-
</span>
|
102
|
-
<% end %>
|
103
|
-
</p>
|
104
|
-
|
105
|
-
<p class="body">
|
106
|
-
<%= @post['body'].html_safe %>
|
107
|
-
</p>
|
108
|
-
</div>
|
109
|
-
|
110
|
-
<hr>
|
111
|
-
|
112
|
-
<!-- Paste your Disqus embed code here --->
|
113
|
-
|
114
|
-
Then tell Butter about this template:
|
115
|
-
|
116
|
-
.. code:: ruby
|
117
|
-
|
118
|
-
# In initializers/butter.rb
|
119
|
-
config.post_template = "blog/post"
|
120
|
-
|
121
|
-
That's it. Reload the server and you'll see your new customized blog post with comments!
|
122
|
-
|
123
|
-
|
124
|
-
==========================
|
125
|
-
Overview of key blog views
|
126
|
-
==========================
|
127
|
-
The Butter gem implements several actions for your blog and provides a default view+layout for each of them. The gem also talks to an API that resides on https://buttercms.com to retrieve your blog content and makes that content easily available in each view.
|
128
|
-
|
129
|
-
Here's an overview each action+view and the available content:
|
130
|
-
|
131
|
-
home: /blog
|
132
|
-
-----------
|
133
|
-
.. code:: ruby
|
134
|
-
|
135
|
-
@next_page # Integer used for blog post pagination (i.e. 2)
|
136
|
-
@previous_page # Integer used for blog post pagination (i.e. 1)
|
137
|
-
@recent_posts # Array of blog posts
|
138
|
-
|
139
|
-
post: /blog/:post-slug
|
140
|
-
----------------------
|
141
|
-
.. code:: ruby
|
142
|
-
|
143
|
-
@post # All content for a blog post
|
144
|
-
|
145
|
-
=begin
|
146
|
-
@post has the following structure
|
147
|
-
"url": "https://buttercms.com/blog/the-state-of-company-blogs",
|
148
|
-
"created": "05/16/2015",
|
149
|
-
"author": {
|
150
|
-
"first_name": "Butter",
|
151
|
-
"last_name": "Cms",
|
152
|
-
"slug": "butter-cms"
|
153
|
-
},
|
154
|
-
"categories": [
|
155
|
-
{
|
156
|
-
"name": "blogs",
|
157
|
-
"slug": "blogs"
|
158
|
-
},
|
159
|
-
{
|
160
|
-
"name": "butter",
|
161
|
-
"slug": "butter"
|
162
|
-
}
|
163
|
-
],
|
164
|
-
"slug": "the-state-of-company-blogs",
|
165
|
-
"title": "The State of Company Blogs",
|
166
|
-
"body": "<h3>The problem</h3><p>Countless people and essentially every...</p>",
|
167
|
-
"summary": <h3>The problem</h3><p>Countless people and essentially...</p>,
|
168
|
-
"status": "published"
|
169
|
-
=end
|
170
|
-
|
171
|
-
author: /blog/author/:author-slug
|
172
|
-
---------------------------------
|
173
|
-
.. code:: ruby
|
174
|
-
|
175
|
-
@first_name # First name of author
|
176
|
-
@last_name # Last name of author
|
177
|
-
@recent_posts # Array of blog posts
|
178
|
-
|
179
|
-
category: /blog/category/:category-slug
|
180
|
-
---------------------------------------
|
181
|
-
.. code:: ruby
|
182
|
-
|
183
|
-
@name # Name of the category
|
184
|
-
@recent_posts # Array of blog posts
|
@@ -95,22 +95,14 @@ module Buttercms
|
|
95
95
|
@previous_page = response_json['previous_page']
|
96
96
|
@recent_posts = response_json['results']
|
97
97
|
|
98
|
-
|
99
|
-
if !Buttercms.configuration.home_template.nil?
|
100
|
-
render template: Buttercms.configuration.home_template
|
101
|
-
end
|
102
|
-
end
|
98
|
+
render template: "blog/home"
|
103
99
|
end
|
104
100
|
|
105
101
|
def butter_post
|
106
102
|
response = make_butter_request("#{API_URL}posts/#{params[:slug]}")
|
107
103
|
@post = JSON.parse(response)
|
108
104
|
|
109
|
-
|
110
|
-
if !Buttercms.configuration.post_template.nil?
|
111
|
-
render template: Buttercms.configuration.post_template
|
112
|
-
end
|
113
|
-
end
|
105
|
+
render template: "blog/post"
|
114
106
|
end
|
115
107
|
|
116
108
|
def butter_author
|
@@ -121,11 +113,7 @@ module Buttercms
|
|
121
113
|
@email = response_json['email']
|
122
114
|
@recent_posts = response_json['recent_posts']
|
123
115
|
|
124
|
-
|
125
|
-
if !Buttercms.configuration.author_template.nil?
|
126
|
-
render template: Buttercms.configuration.author_template
|
127
|
-
end
|
128
|
-
end
|
116
|
+
render template: "blog/author"
|
129
117
|
end
|
130
118
|
|
131
119
|
def butter_category
|
@@ -134,11 +122,7 @@ module Buttercms
|
|
134
122
|
@name = response_json['name']
|
135
123
|
@recent_posts = response_json['recent_posts']
|
136
124
|
|
137
|
-
|
138
|
-
if !Buttercms.configuration.category_template.nil?
|
139
|
-
render template: Buttercms.configuration.category_template
|
140
|
-
end
|
141
|
-
end
|
125
|
+
render template: "blog/category"
|
142
126
|
end
|
143
127
|
end
|
144
128
|
end
|
data/lib/buttercms/version.rb
CHANGED
@@ -2,13 +2,22 @@ module Buttercms
|
|
2
2
|
module Generators
|
3
3
|
class InstallGenerator < Rails::Generators::Base
|
4
4
|
source_root File.expand_path("../../templates", __FILE__)
|
5
|
-
desc "Creates
|
5
|
+
desc "Creates Butter initializer and blog views for your application."
|
6
6
|
|
7
7
|
def copy_initializer
|
8
|
-
|
9
|
-
|
8
|
+
puts "Copying blog templates into app/views/blog/"
|
9
|
+
copy_file "home.html.erb", "app/views/blog/home.html.erb"
|
10
|
+
copy_file "post.html.erb", "app/views/blog/post.html.erb"
|
11
|
+
copy_file "author.html.erb", "app/views/blog/author.html.erb"
|
12
|
+
copy_file "category.html.erb", "app/views/blog/category.html.erb"
|
13
|
+
copy_file "_pagers.html.erb", "app/views/blog/_pagers.html.erb"
|
14
|
+
copy_file "_post.html.erb", "app/views/blog/_post.html.erb"
|
15
|
+
puts "Success"
|
10
16
|
|
11
|
-
puts "
|
17
|
+
puts "Installing ButterCMS API token and /blog route."
|
18
|
+
copy_file "butter_initializer.rb", "config/initializers/butter.rb"
|
19
|
+
route "mount Buttercms::Engine => '/blog'"
|
20
|
+
puts "Success! View your blog at localhost:3000/blog"
|
12
21
|
end
|
13
22
|
end
|
14
23
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<p class="post-meta">
|
7
7
|
Posted by
|
8
8
|
<%= link_to("#{post['author']['first_name']} #{post['author']['last_name']}", blog_author_path(:author_slug => post['author']['slug'])) %>
|
9
|
-
on <%= post['
|
9
|
+
on <%= post['published'] %>
|
10
10
|
|
11
11
|
<% post['categories'].each do |category| %>
|
12
12
|
<span class="label label-default">
|
@@ -8,20 +8,4 @@ Buttercms.configure do |config|
|
|
8
8
|
# For example uncomment the line below and define the layout in /view/layout/blog.html.erb
|
9
9
|
# You can of course also use your existing main application layout.
|
10
10
|
# config.layout = "blog"
|
11
|
-
|
12
|
-
|
13
|
-
# You can customize any view of your blog. Here is full list of page types + settings.
|
14
|
-
# We recommend putting custom templates in views/blog/<template>.html.erb
|
15
|
-
|
16
|
-
# This is the blog home page. Route: /blog
|
17
|
-
# config.home_template = "blog/home"
|
18
|
-
|
19
|
-
# This is the blog post page. Route: /blog/:post-slug
|
20
|
-
# config.post_template = "blog/post"
|
21
|
-
|
22
|
-
# This is the author page. Route: /blog/author/:author-slug
|
23
|
-
# config.author_template = "blog/author"
|
24
|
-
|
25
|
-
# This is the category page. Route: /blog/category/:category-slug
|
26
|
-
# config.category_template = "blog/category"
|
27
11
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<!--
|
2
|
+
For reference, @post has the following attributes:
|
3
|
+
|
4
|
+
"url": "https://buttercms.com/blog/the-state-of-company-blogs",
|
5
|
+
"created": "05/16/2015",
|
6
|
+
"published": "05/16/2015",
|
7
|
+
"author": {
|
8
|
+
"first_name": "Butter",
|
9
|
+
"last_name": "Cms",
|
10
|
+
"email": "buttercms@example.com",
|
11
|
+
"slug": "butter-cms"
|
12
|
+
},
|
13
|
+
"categories": [
|
14
|
+
{
|
15
|
+
"name": "blogs",
|
16
|
+
"slug": "blogs"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"name": "butter",
|
20
|
+
"slug": "butter"
|
21
|
+
}
|
22
|
+
],
|
23
|
+
"slug": "the-state-of-company-blogs",
|
24
|
+
"title": "The State of Company Blogs",
|
25
|
+
"featured_image": "http://www.example.com/image.png",
|
26
|
+
"body": "<h3>The problem</h3><p>Countless people and essentially every...</p>",
|
27
|
+
"summary": <h3>The problem</h3><p>Countless people and essentially...</p>,
|
28
|
+
"status": "published"
|
29
|
+
-->
|
30
|
+
|
31
|
+
<div class="post-preview">
|
32
|
+
<h2 class="post-title">
|
33
|
+
<%= @post['title'] %>
|
34
|
+
</h2>
|
35
|
+
|
36
|
+
<p class="post-meta">
|
37
|
+
Posted by
|
38
|
+
<%= link_to("#{@post['author']['first_name']} #{@post['author']['last_name']}",
|
39
|
+
blog_author_path(:author_slug => @post['author']['slug'])) %>
|
40
|
+
on
|
41
|
+
<%= @post['published'] %>
|
42
|
+
|
43
|
+
<% @post['categories'].each do |category| %>
|
44
|
+
<span class="label label-default">
|
45
|
+
<%= link_to(category['name'], blog_category_path(:category_slug => category['slug'])) %>
|
46
|
+
</span>
|
47
|
+
<% end %>
|
48
|
+
</p>
|
49
|
+
|
50
|
+
<p class="post-body">
|
51
|
+
<%= @post['body'].html_safe %>
|
52
|
+
</p>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
|
56
|
+
<!--
|
57
|
+
// For post comments, we recommend https://disqus.com/
|
58
|
+
// Create a Disqus account and paste your embed code below.
|
59
|
+
// Here's a sample
|
60
|
+
<hr>
|
61
|
+
|
62
|
+
<div id="disqus_thread"></div>
|
63
|
+
<script type="text/javascript">
|
64
|
+
/* * * CONFIGURATION VARIABLES * * */
|
65
|
+
var disqus_shortname = 'XXXXXXXX';
|
66
|
+
|
67
|
+
/* * * DON'T EDIT BELOW THIS LINE * * */
|
68
|
+
(function() {
|
69
|
+
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
70
|
+
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
71
|
+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
72
|
+
})();
|
73
|
+
</script>
|
74
|
+
-->
|
75
|
+
|
76
|
+
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buttercms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ButterCms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -85,12 +85,6 @@ files:
|
|
85
85
|
- app/assets/stylesheets/buttercms/application.css
|
86
86
|
- app/controllers/buttercms/blog_controller.rb
|
87
87
|
- app/helpers/buttercms/application_helper.rb
|
88
|
-
- app/views/buttercms/blog/_pagers.html.erb
|
89
|
-
- app/views/buttercms/blog/_post.html.erb
|
90
|
-
- app/views/buttercms/blog/butter_author.html.erb
|
91
|
-
- app/views/buttercms/blog/butter_category.html.erb
|
92
|
-
- app/views/buttercms/blog/butter_home.html.erb
|
93
|
-
- app/views/buttercms/blog/butter_post.html.erb
|
94
88
|
- app/views/layouts/buttercms/application.html.erb
|
95
89
|
- buttercms.gemspec
|
96
90
|
- config/routes.rb
|
@@ -98,7 +92,13 @@ files:
|
|
98
92
|
- lib/buttercms/engine.rb
|
99
93
|
- lib/buttercms/version.rb
|
100
94
|
- lib/generators/buttercms/install_generator.rb
|
95
|
+
- lib/generators/templates/_pagers.html.erb
|
96
|
+
- lib/generators/templates/_post.html.erb
|
97
|
+
- lib/generators/templates/author.html.erb
|
101
98
|
- lib/generators/templates/butter_initializer.rb
|
99
|
+
- lib/generators/templates/category.html.erb
|
100
|
+
- lib/generators/templates/home.html.erb
|
101
|
+
- lib/generators/templates/post.html.erb
|
102
102
|
- lib/tasks/buttercms_tasks.rake
|
103
103
|
- test/buttercms_test.rb
|
104
104
|
- test/integration/navigation_test.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
<div class="post-preview">
|
2
|
-
|
3
|
-
<h2 class="post-title">
|
4
|
-
<%= @post['title'] %>
|
5
|
-
</h2>
|
6
|
-
|
7
|
-
<p class="post-meta">
|
8
|
-
Posted by
|
9
|
-
<%= link_to("#{@post['author']['first_name']} #{@post['author']['last_name']}", blog_author_path(:author_slug => @post['author']['slug'])) %>
|
10
|
-
on <%= @post['created'] %>
|
11
|
-
|
12
|
-
<% @post['categories'].each do |category| %>
|
13
|
-
<span class="label label-default">
|
14
|
-
<%= link_to(category['name'], blog_category_path(:category_slug => category['slug'])) %>
|
15
|
-
</span>
|
16
|
-
<% end %>
|
17
|
-
</p>
|
18
|
-
|
19
|
-
<p class="post-body">
|
20
|
-
<%= @post['body'].html_safe %>
|
21
|
-
</p>
|
22
|
-
</div>
|