blog_helper 0.0.5 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +86 -2
  2. data/Rakefile +1 -1
  3. data/lib/blog_helper.rb +21 -8
  4. metadata +4 -4
data/README.md CHANGED
@@ -9,7 +9,7 @@ This a a collection of tools usable in both platforms.
9
9
  - tag your posts
10
10
  - use seo friendly page titles
11
11
  - use the disqus comment counter
12
- - a workaround for seriuous allowing you to use generic yaml fields
12
+ - a workaround for serious allowing you to use generic yaml fields
13
13
 
14
14
  ## Installation
15
15
 
@@ -23,6 +23,7 @@ Please follow the instrucions there to do so.
23
23
 
24
24
  Piece of cake, again: all you have to do is use `<% require 'blog_helper'%>` in your .rhtml or .erb file and call the corresponding methods.
25
25
 
26
+ ### SEO friendly titles
26
27
  For example, to use seo friendly titles, your layout.rhtml should be looking like this:
27
28
 
28
29
 
@@ -30,7 +31,7 @@ For example, to use seo friendly titles, your layout.rhtml should be looking lik
30
31
  <html>
31
32
  <head>
32
33
  <% require 'blog_helper'
33
- page_title = BlogHelper::generate_title(@path, title, 'yourSitesTitle.com')
34
+ page_title = BlogHelper::seo_friendly_title(@path, title, 'yourSitesTitle.com')
34
35
  %>
35
36
  .
36
37
  .
@@ -40,3 +41,86 @@ For example, to use seo friendly titles, your layout.rhtml should be looking lik
40
41
  .
41
42
  .
42
43
  .
44
+ ### Tags
45
+ Adding the tagging feature requires the _toto_prerelease_ as mentioned above, since we need the http request to apply our little hack.
46
+
47
+ To add a list of tags to your article, just use a custom yaml attribute:
48
+
49
+ title: The Wonderful Wizard of Oz
50
+ author: Lyman Frank Baum
51
+ date: 1900/05/17
52
+ tags: hacks, love, rock 'n' roll
53
+
54
+ Dorothy lived in the midst of the great Kansas prairies, with Uncle Henry,
55
+ who was a farmer, and Aunt Em, who was the farmer's wife.
56
+
57
+ Next, you need a place to show the tag links, for example the index.rhtml:
58
+
59
+ <section id="articles">
60
+ <% require 'blog_helper' %>
61
+ <% for article in articles[0...10] %>
62
+ <article class="post">
63
+ <header>
64
+ <h1><a href="<%= article.path %>"><%= article.title %></a></h1>
65
+ <span class="descr"><%= article.date %></span><% 10.times { %>&nbsp;<%}%>
66
+ <span class="tags">
67
+ <%= BlogHelper::tag_link_list(article[:tags]) %>
68
+ </span><% 10.times { %>&nbsp;<%}%>
69
+ .
70
+ .
71
+ .
72
+
73
+
74
+
75
+ And again: piece of caked ;-). Now all we need to add is a page that displays articles belonging to a ceratin tag:
76
+
77
+ Create a page called `tagged.rhtml` in your `templates/pages` directory that looks like this:
78
+
79
+ <%#
80
+ # search given tags...
81
+ %>
82
+
83
+ <%
84
+ require 'cgi'
85
+ require 'blog_helper'
86
+
87
+ desired_tag = env["QUERY_STRING"]
88
+ if desired_tag
89
+ start = desired_tag.index("=")
90
+ stop = desired_tag.index("&")
91
+ stop = 0 unless stop
92
+ desired_tag = desired_tag[start+1..stop-1]
93
+ desired_tag = CGI::unescape(desired_tag)
94
+ end
95
+
96
+ %>
97
+ <h1>Posts filed under '<%= desired_tag %>': </h1>
98
+ <ul>
99
+
100
+ <% @articles.select do |a|
101
+ tags = BlogHelper::csv_to_array(a[:tags])
102
+ tags.include?(desired_tag) if tags
103
+ end.each do |article| %>
104
+ <li>
105
+ <span class="descr"><a href="<%= article.path %>" alt="<%= article.title %>"><%= article.title %></a><br/></span>
106
+ </li>
107
+ <% end %>
108
+ </ul>
109
+ <br/>
110
+
111
+ Now, you did most likely implement a tag listing on your toto blog. Congrats!
112
+
113
+ BTW: part of my to dos is encapsulating the tag parsing process so you won't have to fiddle around with too much ruby code here...
114
+
115
+ ### shor url (via bit.ly)
116
+
117
+ short_url = BlogHelper::short_url_bitly(<url>, <bit.ly login nam>, <bit.ly api key>)
118
+
119
+
120
+ ### disqus comment counter
121
+
122
+ TBD... I have to refer to the source & ri for now.
123
+
124
+ ### serious custom yaml field reader
125
+
126
+ TBD... I have to refer to the source & ri for now.
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ require 'rake/testtask'
12
12
 
13
13
  spec = Gem::Specification.new do |s|
14
14
  s.name = 'blog_helper'
15
- s.version = '0.0.5'
15
+ s.version = '0.0.8'
16
16
  s.has_rdoc = true
17
17
  s.extra_rdoc_files = ['README.md', 'LICENSE']
18
18
  s.summary = 'Some handy helpers for serious, toto and the likes...'
data/lib/blog_helper.rb CHANGED
@@ -1,3 +1,8 @@
1
+ require 'cgi'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+
1
6
  # Some useful feature for serious, toto and the likes. Basically, any ruby based blog or site.
2
7
  module BlogHelper
3
8
  # create a list of links to tagged articles, default link_format: <code>%&amp;&lt;a href=&quot;/tagged?tag=#{tag}&quot; alt=&quot;articles concerning #{tag}&quot; &gt;#{tag}&lt;/a&gt; &amp;</code>
@@ -29,14 +34,13 @@ module BlogHelper
29
34
  end
30
35
  page_title
31
36
  end
32
-
33
- #Generates javascript to include to the bottom of your index page.
34
- #Appending '#disqus_thread' to the end of permalinks will replace the text of these links with the comment count.
35
- #
36
- #For example, you may have a link with this HTML: <code>&lt;a href=&quot;http://example.com/my_article.html#disqus_thread&quot;&gt;Comments&lt;/a&gt; </code> The comment count code will replace the text "Comments" with the number of comments on the page
37
- #
38
- #(see http://disqus.com/comments/universal/ for details)
39
- #
37
+ #Generates javascript to include to the bottom of your index page.
38
+ #Appending '#disqus_thread' to the end of permalinks will replace the text of these links with the comment count.
39
+ #
40
+ #For example, you may have a link with this HTML: <code>&lt;a href=&quot;http://example.com/my_article.html#disqus_thread&quot;&gt;Comments&lt;/a&gt; </code> The comment count code will replace the text "Comments" with the number of comments on the page
41
+ #
42
+ #(see http://disqus.com/comments/universal/ for details)
43
+ #
40
44
  def BlogHelper.disqus_comment_count_js(disqus_shortname)
41
45
  %&
42
46
  <script type="text/javascript">
@@ -50,4 +54,13 @@ module BlogHelper
50
54
 
51
55
  & if disqus_shortname
52
56
  end
57
+ # Retrieve bit.ly shortened url
58
+ def BlogHelper.short_url_bitly(url, login, api_key)
59
+ if api_key != "" && login != ""
60
+ rest_call=%{http://api.bit.ly/v3/shorten?login=#{login}&apikey=#{api_key}&longUrl=#{url}&format=txt}
61
+ Net::HTTP::get(URI.parse(rest_call))
62
+ else
63
+ url #fallback: return url to shorten - or nil if it isn't set
64
+ end
65
+ end
53
66
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blog_helper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Sven Kr\xC3\xA4uter"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-11 00:00:00 +02:00
18
+ date: 2010-07-16 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21