buttercms 0.1.8 → 0.1.9
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.
- 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>
|