spud_blog 0.9.5 → 0.9.7
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.
- data/app/models/spud_post.rb +26 -2
- data/app/models/spud_post_category.rb +3 -3
- data/app/models/spud_post_sweeper.rb +1 -1
- data/app/views/blog/index.html.erb +1 -1
- data/app/views/blog/index.rss.builder +4 -4
- data/app/views/blog/show.html.erb +1 -1
- data/app/views/spud/admin/posts/_form.html.erb +11 -3
- data/db/migrate/20130120151857_add_content_format_to_spud_posts.rb +5 -0
- data/db/migrate/20130121130612_add_content_processed_to_spud_post.rb +5 -0
- data/lib/spud_blog/configuration.rb +2 -1
- data/lib/spud_blog/version.rb +1 -1
- metadata +24 -6
data/app/models/spud_post.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class SpudPost < ActiveRecord::Base
|
2
|
-
|
2
|
+
spud_searchable
|
3
3
|
|
4
4
|
has_and_belongs_to_many :categories,
|
5
5
|
:class_name => 'SpudPostCategory',
|
@@ -16,10 +16,11 @@ class SpudPost < ActiveRecord::Base
|
|
16
16
|
validates_presence_of :title, :content, :published_at, :spud_user_id, :url_name
|
17
17
|
validates_uniqueness_of :url_name
|
18
18
|
before_validation :set_url_name
|
19
|
+
before_save :postprocess_content
|
19
20
|
|
20
21
|
after_save :set_spud_site_ids
|
21
22
|
|
22
|
-
attr_accessible :is_news,:published_at,:title,:content,:spud_user_id,:url_name,:visible,:comments_enabled,:meta_keywords,:meta_description,:category_ids, :spud_site_ids
|
23
|
+
attr_accessible :is_news,:published_at,:title,:content,:spud_user_id,:url_name,:visible,:comments_enabled,:meta_keywords,:meta_description,:category_ids, :spud_site_ids, :content_format
|
23
24
|
attr_accessor :spud_site_ids
|
24
25
|
|
25
26
|
def self.for_spud_site(spud_site_id)
|
@@ -97,6 +98,29 @@ class SpudPost < ActiveRecord::Base
|
|
97
98
|
end
|
98
99
|
end
|
99
100
|
|
101
|
+
def postprocess_content
|
102
|
+
if self.content_format == 'Markdown'
|
103
|
+
require 'redcarpet'
|
104
|
+
renderer = Redcarpet::Render::HTML.new
|
105
|
+
extensions = {fenced_code_blocks: true}
|
106
|
+
redcarpet = Redcarpet::Markdown.new(renderer, extensions)
|
107
|
+
self.content_processed = redcarpet.render self.content
|
108
|
+
else
|
109
|
+
self.content_processed = content
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def content_processed
|
114
|
+
if read_attribute(:content_processed).blank?
|
115
|
+
postprocess_content
|
116
|
+
end
|
117
|
+
read_attribute(:content_processed)
|
118
|
+
end
|
119
|
+
|
120
|
+
def content_processed=(content)
|
121
|
+
write_attribute(:content_processed,content)
|
122
|
+
end
|
123
|
+
|
100
124
|
def display_date
|
101
125
|
return published_at.strftime("%b %d, %Y")
|
102
126
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
class SpudPostCategory < ActiveRecord::Base
|
2
|
-
|
2
|
+
spud_searchable
|
3
3
|
acts_as_nested_set
|
4
4
|
|
5
5
|
has_and_belongs_to_many :posts,
|
6
6
|
:class_name => 'SpudPost',
|
7
7
|
:join_table => 'spud_post_categories_posts',
|
8
8
|
:foreign_key => 'spud_post_category_id'
|
9
|
-
|
9
|
+
|
10
10
|
validates_presence_of :name, :url_name
|
11
11
|
validates_uniqueness_of :name, :url_name
|
12
12
|
before_validation :set_url_name
|
@@ -67,4 +67,4 @@ class SpudPostCategory < ActiveRecord::Base
|
|
67
67
|
self.children.update_all(:parent_id => self.parent_id)
|
68
68
|
self.class.rebuild!
|
69
69
|
end
|
70
|
-
end
|
70
|
+
end
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<h3><%= link_to post.title, blog_post_path(post.url_name) %></h3>
|
24
24
|
<h4>Posted by <%= post.author.full_name %> on <%= post.display_date %></h4>
|
25
25
|
<div class="spud_blog_post_content">
|
26
|
-
<%= truncate_html post.
|
26
|
+
<%= truncate_html post.content_processed.html_safe, :length => 250 %>
|
27
27
|
</div>
|
28
28
|
</div>
|
29
29
|
<% end %>
|
@@ -1,18 +1,18 @@
|
|
1
|
-
xml.instruct! :xml, :version => "1.0"
|
1
|
+
xml.instruct! :xml, :version => "1.0"
|
2
2
|
xml.rss :version => "2.0" do
|
3
3
|
xml.channel do
|
4
4
|
xml.title "#{Spud::Core.site_name} Blog Articles"
|
5
5
|
xml.description "Blog articles for #{Spud::Core.site_name}"
|
6
6
|
xml.link blog_url(:format => :rss)
|
7
|
-
|
7
|
+
|
8
8
|
for article in @posts
|
9
9
|
xml.item do
|
10
10
|
xml.title article.title
|
11
|
-
xml.description article.
|
11
|
+
xml.description article.content_processed
|
12
12
|
xml.pubDate article.created_at.to_s(:rfc822)
|
13
13
|
xml.link blog_post_url(article.url_name)
|
14
14
|
xml.guid blog_post_url(article.url_name)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -1,12 +1,20 @@
|
|
1
1
|
<%=error_messages_for(f.object)%>
|
2
2
|
|
3
3
|
<fieldset>
|
4
|
+
<div class="control-group">
|
4
5
|
<%= f.label :title, :required=>true,:style =>"display:none;" %>
|
5
6
|
<%= f.text_field :title, :class => "full-width",:placeholder=>"Enter title here" %>
|
7
|
+
</div>
|
6
8
|
</fieldset>
|
7
|
-
|
8
|
-
<div>
|
9
|
-
|
9
|
+
<%if Spud::Blog.config.markdown_enabled%>
|
10
|
+
<div class="control-group">
|
11
|
+
<div class="controls">
|
12
|
+
<%=f.select :content_format,[["HTML"],["Markdown"]], {:include_blank => false}, :class => "pull-right", "data-formatter" => "spud_post_content"%>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<%end%>
|
16
|
+
<div style="clear:both;">
|
17
|
+
<%= f.text_area :content,:style => "width:100%;", :class => 'tinymce full-width', "data-format" => f.object.content_format%>
|
10
18
|
</div>
|
11
19
|
|
12
20
|
<% if Spud::Blog.config.has_custom_fields %>
|
@@ -6,7 +6,7 @@ module Spud
|
|
6
6
|
:news_enabled, :posts_per_page, :blog_path,
|
7
7
|
:news_path, :enable_sitemap, :has_custom_fields,
|
8
8
|
:cache_mode, :action_caching_duration,
|
9
|
-
:enable_rakismet
|
9
|
+
:enable_rakismet, :enable_markdown
|
10
10
|
)
|
11
11
|
self.base_layout = 'application'
|
12
12
|
self.news_layout = nil
|
@@ -20,5 +20,6 @@ module Spud
|
|
20
20
|
self.cache_mode = nil #options :full_page, :action
|
21
21
|
self.action_caching_duration = 3600
|
22
22
|
self.enable_rakismet = false
|
23
|
+
self.enable_markdown = false
|
23
24
|
end
|
24
25
|
end
|
data/lib/spud_blog/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spud_blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.9.
|
37
|
+
version: 0.9.10
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.9.
|
45
|
+
version: 0.9.10
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: spud_permalinks
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,6 +91,22 @@ dependencies:
|
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: redcarpet
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
94
110
|
- !ruby/object:Gem::Dependency
|
95
111
|
name: mysql2
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -294,6 +310,8 @@ files:
|
|
294
310
|
- db/migrate/20120825142547_add_spam_fields_to_spud_post_comments.rb
|
295
311
|
- db/migrate/20120825144506_add_permalink_to_spud_post_comments.rb
|
296
312
|
- db/migrate/20121113135812_add_nested_set_to_post_categories.rb
|
313
|
+
- db/migrate/20130120151857_add_content_format_to_spud_posts.rb
|
314
|
+
- db/migrate/20130121130612_add_content_processed_to_spud_post.rb
|
297
315
|
- lib/generators/spud/blog/random_posts_generator.rb
|
298
316
|
- lib/generators/spud/blog/views_generator.rb
|
299
317
|
- lib/spud_blog/configuration.rb
|
@@ -320,7 +338,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
320
338
|
version: '0'
|
321
339
|
segments:
|
322
340
|
- 0
|
323
|
-
hash:
|
341
|
+
hash: 1495090918977313494
|
324
342
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
325
343
|
none: false
|
326
344
|
requirements:
|
@@ -329,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
329
347
|
version: '0'
|
330
348
|
segments:
|
331
349
|
- 0
|
332
|
-
hash:
|
350
|
+
hash: 1495090918977313494
|
333
351
|
requirements: []
|
334
352
|
rubyforge_project:
|
335
353
|
rubygems_version: 1.8.24
|