santey_blog 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.rdoc +38 -0
- data/Rakefile +60 -0
- data/VERSION +1 -0
- data/app/controllers/posts_controller.rb +30 -0
- data/app/models/post.rb +44 -0
- data/app/views/includes/_archives.html.haml +5 -0
- data/app/views/includes/_disqus_comments.html.erb +14 -0
- data/app/views/includes/_footer.html.haml +2 -0
- data/app/views/includes/_footer_javascript.html.erb +0 -0
- data/app/views/includes/_head.html.haml +17 -0
- data/app/views/includes/_header.html.haml +2 -0
- data/app/views/includes/_menu.html.haml +12 -0
- data/app/views/includes/_recent.html.haml +6 -0
- data/app/views/includes/_tags.html.haml +5 -0
- data/app/views/includes/_top.html.haml +6 -0
- data/app/views/layouts/application.html.haml +11 -0
- data/app/views/posts/_post.html.haml +15 -0
- data/app/views/posts/index.html.haml +9 -0
- data/app/views/posts/index.rss.builder +18 -0
- data/app/views/posts/show.html.haml +25 -0
- data/config/routes.rb +10 -0
- data/lib/generators/santey_blog_generator.rb +31 -0
- data/lib/generators/templates/css/blueprint/TUTORIAL.textile +206 -0
- data/lib/generators/templates/css/blueprint/ie.css +35 -0
- data/lib/generators/templates/css/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/buttons/icons/key.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/buttons/readme.txt +32 -0
- data/lib/generators/templates/css/blueprint/plugins/buttons/screen.css +97 -0
- data/lib/generators/templates/css/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/lib/generators/templates/css/blueprint/plugins/fancy-type/screen.css +71 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/readme.txt +18 -0
- data/lib/generators/templates/css/blueprint/plugins/link-icons/screen.css +40 -0
- data/lib/generators/templates/css/blueprint/plugins/rtl/readme.txt +10 -0
- data/lib/generators/templates/css/blueprint/plugins/rtl/screen.css +110 -0
- data/lib/generators/templates/css/blueprint/print.css +29 -0
- data/lib/generators/templates/css/blueprint/screen.css +258 -0
- data/lib/generators/templates/css/blueprint/src/forms.css +65 -0
- data/lib/generators/templates/css/blueprint/src/grid.css +280 -0
- data/lib/generators/templates/css/blueprint/src/grid.png +0 -0
- data/lib/generators/templates/css/blueprint/src/ie.css +76 -0
- data/lib/generators/templates/css/blueprint/src/print.css +85 -0
- data/lib/generators/templates/css/blueprint/src/reset.css +45 -0
- data/lib/generators/templates/css/blueprint/src/typography.css +106 -0
- data/lib/generators/templates/css/screen.css +53 -0
- data/lib/generators/templates/initializers/santey_blog.rb +16 -0
- data/lib/generators/templates/migrations/create_posts.rb +24 -0
- data/lib/santey_blog/engine.rb +13 -0
- data/lib/santey_blog/view_helper.rb +84 -0
- data/lib/santey_blog.rb +16 -0
- data/santey_blog.gemspec +114 -0
- data/test/santey_blog_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +163 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
print.css
|
4
|
+
* Gives you some sensible styles for printing pages.
|
5
|
+
* See Readme file in this directory for further instructions.
|
6
|
+
|
7
|
+
Some additions you'll want to make, customized to your markup:
|
8
|
+
#header, #footer, #navigation { display:none; }
|
9
|
+
|
10
|
+
-------------------------------------------------------------- */
|
11
|
+
|
12
|
+
body {
|
13
|
+
line-height: 1.5;
|
14
|
+
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
15
|
+
color:#000;
|
16
|
+
background: none;
|
17
|
+
font-size: 10pt;
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
/* Layout
|
22
|
+
-------------------------------------------------------------- */
|
23
|
+
|
24
|
+
.container {
|
25
|
+
background: none;
|
26
|
+
}
|
27
|
+
|
28
|
+
hr {
|
29
|
+
background:#ccc;
|
30
|
+
color:#ccc;
|
31
|
+
width:100%;
|
32
|
+
height:2px;
|
33
|
+
margin:2em 0;
|
34
|
+
padding:0;
|
35
|
+
border:none;
|
36
|
+
}
|
37
|
+
hr.space {
|
38
|
+
background: #fff;
|
39
|
+
color: #fff;
|
40
|
+
visibility: hidden;
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
/* Text
|
45
|
+
-------------------------------------------------------------- */
|
46
|
+
|
47
|
+
h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; }
|
48
|
+
code { font:.9em "Courier New", Monaco, Courier, monospace; }
|
49
|
+
|
50
|
+
a img { border:none; }
|
51
|
+
p img.top { margin-top: 0; }
|
52
|
+
|
53
|
+
blockquote {
|
54
|
+
margin:1.5em;
|
55
|
+
padding:1em;
|
56
|
+
font-style:italic;
|
57
|
+
font-size:.9em;
|
58
|
+
}
|
59
|
+
|
60
|
+
.small { font-size: .9em; }
|
61
|
+
.large { font-size: 1.1em; }
|
62
|
+
.quiet { color: #999; }
|
63
|
+
.hide { display:none; }
|
64
|
+
|
65
|
+
|
66
|
+
/* Links
|
67
|
+
-------------------------------------------------------------- */
|
68
|
+
|
69
|
+
a:link, a:visited {
|
70
|
+
background: transparent;
|
71
|
+
font-weight:700;
|
72
|
+
text-decoration: underline;
|
73
|
+
}
|
74
|
+
|
75
|
+
a:link:after, a:visited:after {
|
76
|
+
content: " (" attr(href) ")";
|
77
|
+
font-size: 90%;
|
78
|
+
}
|
79
|
+
|
80
|
+
/* If you're having trouble printing relative links, uncomment and customize this:
|
81
|
+
(note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */
|
82
|
+
|
83
|
+
/* a[href^="/"]:after {
|
84
|
+
content: " (http://www.yourdomain.com" attr(href) ") ";
|
85
|
+
} */
|
@@ -0,0 +1,45 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
reset.css
|
4
|
+
* Resets default browser CSS.
|
5
|
+
|
6
|
+
-------------------------------------------------------------- */
|
7
|
+
|
8
|
+
html, body, div, span, object, iframe,
|
9
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
10
|
+
a, abbr, acronym, address, code,
|
11
|
+
del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
|
12
|
+
fieldset, form, label, legend,
|
13
|
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
14
|
+
article, aside, dialog, figure, footer, header,
|
15
|
+
hgroup, nav, section {
|
16
|
+
margin: 0;
|
17
|
+
padding: 0;
|
18
|
+
border: 0;
|
19
|
+
font-weight: inherit;
|
20
|
+
font-style: inherit;
|
21
|
+
font-size: 100%;
|
22
|
+
font-family: inherit;
|
23
|
+
vertical-align: baseline;
|
24
|
+
}
|
25
|
+
|
26
|
+
article, aside, dialog, figure, footer, header,
|
27
|
+
hgroup, nav, section {
|
28
|
+
display:block;
|
29
|
+
}
|
30
|
+
|
31
|
+
body {
|
32
|
+
line-height: 1.5;
|
33
|
+
}
|
34
|
+
|
35
|
+
/* Tables still need 'cellspacing="0"' in the markup. */
|
36
|
+
table { border-collapse: separate; border-spacing: 0; }
|
37
|
+
caption, th, td { text-align: left; font-weight: normal; }
|
38
|
+
table, td, th { vertical-align: middle; }
|
39
|
+
|
40
|
+
/* Remove possible quote marks (") from <q>, <blockquote>. */
|
41
|
+
blockquote:before, blockquote:after, q:before, q:after { content: ""; }
|
42
|
+
blockquote, q { quotes: "" ""; }
|
43
|
+
|
44
|
+
/* Remove annoying border on linked images. */
|
45
|
+
a img { border: none; }
|
@@ -0,0 +1,106 @@
|
|
1
|
+
/* --------------------------------------------------------------
|
2
|
+
|
3
|
+
typography.css
|
4
|
+
* Sets up some sensible default typography.
|
5
|
+
|
6
|
+
-------------------------------------------------------------- */
|
7
|
+
|
8
|
+
/* Default font settings.
|
9
|
+
The font-size percentage is of 16px. (0.75 * 16px = 12px) */
|
10
|
+
html { font-size:100.01%; }
|
11
|
+
body {
|
12
|
+
font-size: 75%;
|
13
|
+
color: #222;
|
14
|
+
background: #fff;
|
15
|
+
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
16
|
+
}
|
17
|
+
|
18
|
+
|
19
|
+
/* Headings
|
20
|
+
-------------------------------------------------------------- */
|
21
|
+
|
22
|
+
h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; }
|
23
|
+
|
24
|
+
h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; }
|
25
|
+
h2 { font-size: 2em; margin-bottom: 0.75em; }
|
26
|
+
h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
|
27
|
+
h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; }
|
28
|
+
h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; }
|
29
|
+
h6 { font-size: 1em; font-weight: bold; }
|
30
|
+
|
31
|
+
h1 img, h2 img, h3 img,
|
32
|
+
h4 img, h5 img, h6 img {
|
33
|
+
margin: 0;
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
/* Text elements
|
38
|
+
-------------------------------------------------------------- */
|
39
|
+
|
40
|
+
p { margin: 0 0 1.5em; }
|
41
|
+
p img.left { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }
|
42
|
+
p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; }
|
43
|
+
|
44
|
+
a:focus,
|
45
|
+
a:hover { color: #000; }
|
46
|
+
a { color: #009; text-decoration: underline; }
|
47
|
+
|
48
|
+
blockquote { margin: 1.5em; color: #666; font-style: italic; }
|
49
|
+
strong { font-weight: bold; }
|
50
|
+
em,dfn { font-style: italic; }
|
51
|
+
dfn { font-weight: bold; }
|
52
|
+
sup, sub { line-height: 0; }
|
53
|
+
|
54
|
+
abbr,
|
55
|
+
acronym { border-bottom: 1px dotted #666; }
|
56
|
+
address { margin: 0 0 1.5em; font-style: italic; }
|
57
|
+
del { color:#666; }
|
58
|
+
|
59
|
+
pre { margin: 1.5em 0; white-space: pre; }
|
60
|
+
pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; }
|
61
|
+
|
62
|
+
|
63
|
+
/* Lists
|
64
|
+
-------------------------------------------------------------- */
|
65
|
+
|
66
|
+
li ul,
|
67
|
+
li ol { margin: 0; }
|
68
|
+
ul, ol { margin: 0 1.5em 1.5em 0; padding-left: 3.333em; }
|
69
|
+
|
70
|
+
ul { list-style-type: disc; }
|
71
|
+
ol { list-style-type: decimal; }
|
72
|
+
|
73
|
+
dl { margin: 0 0 1.5em 0; }
|
74
|
+
dl dt { font-weight: bold; }
|
75
|
+
dd { margin-left: 1.5em;}
|
76
|
+
|
77
|
+
|
78
|
+
/* Tables
|
79
|
+
-------------------------------------------------------------- */
|
80
|
+
|
81
|
+
table { margin-bottom: 1.4em; width:100%; }
|
82
|
+
th { font-weight: bold; }
|
83
|
+
thead th { background: #c3d9ff; }
|
84
|
+
th,td,caption { padding: 4px 10px 4px 5px; }
|
85
|
+
tr.even td { background: #e5ecf9; }
|
86
|
+
tfoot { font-style: italic; }
|
87
|
+
caption { background: #eee; }
|
88
|
+
|
89
|
+
|
90
|
+
/* Misc classes
|
91
|
+
-------------------------------------------------------------- */
|
92
|
+
|
93
|
+
.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; }
|
94
|
+
.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; }
|
95
|
+
.hide { display: none; }
|
96
|
+
|
97
|
+
.quiet { color: #666; }
|
98
|
+
.loud { color: #000; }
|
99
|
+
.highlight { background:#ff0; }
|
100
|
+
.added { background:#060; color: #fff; }
|
101
|
+
.removed { background:#900; color: #fff; }
|
102
|
+
|
103
|
+
.first { margin-left:0; padding-left:0; }
|
104
|
+
.last { margin-right:0; padding-right:0; }
|
105
|
+
.top { margin-top:0; padding-top:0; }
|
106
|
+
.bottom { margin-bottom:0; padding-bottom:0; }
|
@@ -0,0 +1,53 @@
|
|
1
|
+
body {background:#FFF url("/images/body-bg.gif") top repeat-x;font-family: 'Baskerville', Georgia, Times, serif;font-size:14px;}
|
2
|
+
|
3
|
+
.clear {clear:both;float:none;height:0;font-size:0;line-height:0;}
|
4
|
+
|
5
|
+
a, a:hover, h1 {color:#3AA1D2;}
|
6
|
+
a:hover {text-decoration:none;}
|
7
|
+
|
8
|
+
h1 {font-size:26px;margin:5px 0 5px 0;font-weight:bold;}
|
9
|
+
h2 {font-size:22px;}
|
10
|
+
h3 {font-size:16px;}
|
11
|
+
|
12
|
+
h1 a, h2 a, h3 a {text-decoration:none;}
|
13
|
+
h1 a:hover, h2 a:hover, h3 a:hover {text-decoration:underline;}
|
14
|
+
|
15
|
+
#header .logo {margin:20px 0 15px 0;}
|
16
|
+
|
17
|
+
input.text.long {width:500px;}
|
18
|
+
|
19
|
+
p.posted_on {font-size:14px;color:#AAA;}
|
20
|
+
|
21
|
+
.cloud1 { font-size: 0.8em; }
|
22
|
+
.cloud2 { font-size: 0.9em; }
|
23
|
+
.cloud3 { font-size: 1.0em; }
|
24
|
+
.cloud4 { font-size: 1.2em; }
|
25
|
+
.cloud5 { font-size: 1.4em; }
|
26
|
+
.cloud6 { font-size: 1.6em; }
|
27
|
+
.cloud7 { font-size: 1.8em; }
|
28
|
+
|
29
|
+
.main_menu {line-height:19px;margin:0 0 20px 0;text-align:center;}
|
30
|
+
|
31
|
+
.main_menu ul, .main_menu li, .main_menu h3 {display:inline;margin:0;padding:0;}
|
32
|
+
/*
|
33
|
+
.main_menu ul {margin:0;padding:0;list-style:none;}*/
|
34
|
+
.main_menu li {margin-right:30px;}
|
35
|
+
.main_menu li a, .main_menu li a:hover {color:#555;}
|
36
|
+
.main_menu li a:hover {text-decoration:none;}
|
37
|
+
.main_menu ul a:hover, .main_menu ul li.selected a {}
|
38
|
+
.main_menu h3 {font-size:15px;font-weight:normal;margin:0;}
|
39
|
+
.main_menu.admin_menu h3 {font-size:11px;}
|
40
|
+
|
41
|
+
.vote_panel {float:right;font-family:Verdana;}
|
42
|
+
.vote_panel .plus {color:#239123;text-decoration:none;}
|
43
|
+
.vote_panel .minus {color:#CD2C2C;text-decoration:none;}
|
44
|
+
|
45
|
+
.edit_list .item {padding:3px 10px;margin:0 0 10px 0;border-bottom:1px solid #CCC;background:#F1F1F1;line-height:25px;}
|
46
|
+
.edit_list .item a {font-size:12px;}
|
47
|
+
.edit_list .item img {float:right;margin:4px 0 0 5px;}
|
48
|
+
|
49
|
+
.side_box {margin-bottom:10px;}
|
50
|
+
.side_box h2 {margin:0;font-size:15px;color:#AAA;}
|
51
|
+
|
52
|
+
.posts_list .item {margin-bottom:30px;}
|
53
|
+
.bottom_info {background:#FAFAFA;padding:5px;margin-top:10px;border-bottom:1px dashed #CCC;}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# santey_blog configuration file
|
2
|
+
SanteyBlog.setup do |config|
|
3
|
+
|
4
|
+
# Set your html titles for each controller and action here:
|
5
|
+
config.meta_titles = {
|
6
|
+
:posts => {
|
7
|
+
:show => "%post_title%. Blog",
|
8
|
+
:category => "%tag%. Blog",
|
9
|
+
# default posts controller title
|
10
|
+
:default => "Blog"
|
11
|
+
},
|
12
|
+
# default title
|
13
|
+
:default => "Blog"
|
14
|
+
}
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class CreatePosts < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :posts do |t|
|
4
|
+
t.column :user_id, :int
|
5
|
+
t.column :slug, :string, :limit => 150
|
6
|
+
t.column :title, :string
|
7
|
+
t.column :content, :text
|
8
|
+
t.column :published, :boolean, :default => false
|
9
|
+
t.column :views, :int, :default => '0'
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
|
13
|
+
Post.create({
|
14
|
+
:user_id=>0,
|
15
|
+
:title=>"Welcome post",
|
16
|
+
:content=>"First post content ... <hr />",
|
17
|
+
:published=>true
|
18
|
+
})
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.down
|
22
|
+
drop_table :posts
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module SanteyBlog
|
2
|
+
module ViewHelper
|
3
|
+
include ActionView::Helpers
|
4
|
+
|
5
|
+
# HTML sanitizer configuration
|
6
|
+
SANITIZER_CONFIG = {
|
7
|
+
:elements => [
|
8
|
+
'a', 'b', 'blockquote', 'br', 'hr', 'caption', 'cite', 'code', 'col',
|
9
|
+
'colgroup', 'dd', 'dl', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
|
10
|
+
'i', 'img', 'li', 'ol', 'p', 'pre', 'q', 'small', 'strike', 'strong',
|
11
|
+
'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'u',
|
12
|
+
'ul'],
|
13
|
+
:attributes => {
|
14
|
+
'a' => ['href', 'title'],
|
15
|
+
'blockquote' => ['cite'],
|
16
|
+
'col' => ['span', 'width'],
|
17
|
+
'colgroup' => ['span', 'width'],
|
18
|
+
'img' => ['align', 'alt', 'height', 'src', 'title', 'width'],
|
19
|
+
'ol' => ['start', 'type'],
|
20
|
+
'q' => ['cite'],
|
21
|
+
'table' => ['summary', 'width'],
|
22
|
+
'td' => ['abbr', 'axis', 'colspan', 'rowspan', 'width'],
|
23
|
+
'th' => ['abbr', 'axis', 'colspan', 'rowspan', 'scope', 'width'],
|
24
|
+
'ul' => ['type']
|
25
|
+
},
|
26
|
+
:add_attributes => {
|
27
|
+
'a' => {'rel' => 'nofollow'}
|
28
|
+
},
|
29
|
+
:protocols => {
|
30
|
+
'a' => {'href' => ['ftp', 'http', 'https', 'mailto', :relative]},
|
31
|
+
'blockquote' => {'cite' => ['http', 'https', :relative]},
|
32
|
+
'img' => {'src' => ['http', 'https', :relative]},
|
33
|
+
'q' => {'cite' => ['http', 'https', :relative]}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
def santey_title
|
38
|
+
titles = SanteyBlog.meta_titles
|
39
|
+
t = titles[params[:controller].to_sym] ? titles[params[:controller].to_sym][params[:action].to_sym] ? titles[params[:controller].to_sym][params[:action].to_sym] : titles[params[:controller].to_sym][:default] : titles[:default]
|
40
|
+
case t
|
41
|
+
when /%post_title%/
|
42
|
+
t = t.gsub(/%post_title%/, @post.title)
|
43
|
+
when /%tag%/
|
44
|
+
t = t.gsub(/%tag%/, @tag)
|
45
|
+
end
|
46
|
+
content_for :title do
|
47
|
+
t
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def path_to_content content
|
52
|
+
case content.class.name
|
53
|
+
when "Post"
|
54
|
+
root_url + "#{content.created_at.strftime("%Y/%m/%d")}/#{content.slug}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def dates_path_helper y=nil, m=nil, d=nil
|
59
|
+
"/#{Time.parse("#{y || "01"}-#{m || "01"}-#{d || "01"}").strftime("#{"%Y#{"/%m#{"/%d" if d}" if m}" if y}")}"
|
60
|
+
end
|
61
|
+
|
62
|
+
def tag_path_helper tag
|
63
|
+
"/tag/#{tag}"
|
64
|
+
end
|
65
|
+
|
66
|
+
def posted_at_helper content
|
67
|
+
case content.class.name
|
68
|
+
when "Post"
|
69
|
+
"<p class='posted_on'>posted on <abbr title='#{content.created_at.strftime("%A, %B %d, %Y %H:%M:%S")}'>
|
70
|
+
#{content.created_at.strftime("%A, %B %d, %Y")}</abbr></p>"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def cut_text text, full_url, length=500
|
75
|
+
if(m = /<hr/i.match(text))
|
76
|
+
text = Hpricot(text[0..(m.offset(0)[0] - 1)]).to_html
|
77
|
+
else
|
78
|
+
text = truncate(text.to_s.gsub(/<\/?[^>]*>/, ""), length)
|
79
|
+
end
|
80
|
+
return text + "#{link_to("Continue reading", full_url, :class=>"continue_reading")}"
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
data/lib/santey_blog.rb
ADDED
data/santey_blog.gemspec
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{santey_blog}
|
8
|
+
s.version = "0.1.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Alexander Shamne"]
|
12
|
+
s.date = %q{2010-06-20}
|
13
|
+
s.description = %q{longer description of your gem}
|
14
|
+
s.email = %q{alexander.shamne@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"Gemfile",
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"app/controllers/posts_controller.rb",
|
28
|
+
"app/models/post.rb",
|
29
|
+
"app/views/includes/_archives.html.haml",
|
30
|
+
"app/views/includes/_disqus_comments.html.erb",
|
31
|
+
"app/views/includes/_footer.html.haml",
|
32
|
+
"app/views/includes/_footer_javascript.html.erb",
|
33
|
+
"app/views/includes/_head.html.haml",
|
34
|
+
"app/views/includes/_header.html.haml",
|
35
|
+
"app/views/includes/_menu.html.haml",
|
36
|
+
"app/views/includes/_recent.html.haml",
|
37
|
+
"app/views/includes/_tags.html.haml",
|
38
|
+
"app/views/includes/_top.html.haml",
|
39
|
+
"app/views/layouts/application.html.haml",
|
40
|
+
"app/views/posts/_post.html.haml",
|
41
|
+
"app/views/posts/index.html.haml",
|
42
|
+
"app/views/posts/index.rss.builder",
|
43
|
+
"app/views/posts/show.html.haml",
|
44
|
+
"config/routes.rb",
|
45
|
+
"lib/generators/santey_blog_generator.rb",
|
46
|
+
"lib/generators/templates/css/blueprint/TUTORIAL.textile",
|
47
|
+
"lib/generators/templates/css/blueprint/ie.css",
|
48
|
+
"lib/generators/templates/css/blueprint/plugins/buttons/icons/cross.png",
|
49
|
+
"lib/generators/templates/css/blueprint/plugins/buttons/icons/key.png",
|
50
|
+
"lib/generators/templates/css/blueprint/plugins/buttons/icons/tick.png",
|
51
|
+
"lib/generators/templates/css/blueprint/plugins/buttons/readme.txt",
|
52
|
+
"lib/generators/templates/css/blueprint/plugins/buttons/screen.css",
|
53
|
+
"lib/generators/templates/css/blueprint/plugins/fancy-type/readme.txt",
|
54
|
+
"lib/generators/templates/css/blueprint/plugins/fancy-type/screen.css",
|
55
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/doc.png",
|
56
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/email.png",
|
57
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/external.png",
|
58
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/feed.png",
|
59
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/im.png",
|
60
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/pdf.png",
|
61
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/visited.png",
|
62
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/icons/xls.png",
|
63
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/readme.txt",
|
64
|
+
"lib/generators/templates/css/blueprint/plugins/link-icons/screen.css",
|
65
|
+
"lib/generators/templates/css/blueprint/plugins/rtl/readme.txt",
|
66
|
+
"lib/generators/templates/css/blueprint/plugins/rtl/screen.css",
|
67
|
+
"lib/generators/templates/css/blueprint/print.css",
|
68
|
+
"lib/generators/templates/css/blueprint/screen.css",
|
69
|
+
"lib/generators/templates/css/blueprint/src/forms.css",
|
70
|
+
"lib/generators/templates/css/blueprint/src/grid.css",
|
71
|
+
"lib/generators/templates/css/blueprint/src/grid.png",
|
72
|
+
"lib/generators/templates/css/blueprint/src/ie.css",
|
73
|
+
"lib/generators/templates/css/blueprint/src/print.css",
|
74
|
+
"lib/generators/templates/css/blueprint/src/reset.css",
|
75
|
+
"lib/generators/templates/css/blueprint/src/typography.css",
|
76
|
+
"lib/generators/templates/css/screen.css",
|
77
|
+
"lib/generators/templates/initializers/santey_blog.rb",
|
78
|
+
"lib/generators/templates/migrations/create_posts.rb",
|
79
|
+
"lib/santey_blog.rb",
|
80
|
+
"lib/santey_blog/engine.rb",
|
81
|
+
"lib/santey_blog/view_helper.rb",
|
82
|
+
"santey_blog.gemspec",
|
83
|
+
"test/santey_blog_test.rb",
|
84
|
+
"test/test_helper.rb"
|
85
|
+
]
|
86
|
+
s.homepage = %q{http://github.com/shamne/santey_blog}
|
87
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
88
|
+
s.require_paths = ["lib"]
|
89
|
+
s.rubygems_version = %q{1.3.6}
|
90
|
+
s.summary = %q{Blog gem}
|
91
|
+
s.test_files = [
|
92
|
+
"test/santey_blog_test.rb",
|
93
|
+
"test/test_helper.rb"
|
94
|
+
]
|
95
|
+
|
96
|
+
if s.respond_to? :specification_version then
|
97
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
98
|
+
s.specification_version = 3
|
99
|
+
|
100
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
101
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
102
|
+
s.add_runtime_dependency(%q<santey_vote>, [">= 0"])
|
103
|
+
s.add_runtime_dependency(%q<santey_view>, [">= 0"])
|
104
|
+
else
|
105
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
106
|
+
s.add_dependency(%q<santey_vote>, [">= 0"])
|
107
|
+
s.add_dependency(%q<santey_view>, [">= 0"])
|
108
|
+
end
|
109
|
+
else
|
110
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
111
|
+
s.add_dependency(%q<santey_vote>, [">= 0"])
|
112
|
+
s.add_dependency(%q<santey_view>, [">= 0"])
|
113
|
+
end
|
114
|
+
end
|
data/test/test_helper.rb
ADDED