jekyll-tagging 0.2.0 → 0.3.0
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/ChangeLog +4 -0
- data/README.rdoc +40 -4
- data/Rakefile +5 -9
- data/lib/jekyll/tagging.rb +13 -8
- data/lib/jekyll/tagging/version.rb +1 -1
- metadata +34 -56
data/ChangeLog
CHANGED
data/README.rdoc
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
By Arne Eilermann <mailto:eilermann@lavabit.com> and Jens Wille <mailto:jens.wille@uni-koeln.de>
|
4
4
|
|
5
|
-
jekyll-tagging is a Jekyll plugin, to add a tag cloud and per tag pages to your Jekyll generated Website.
|
5
|
+
jekyll-tagging is a Jekyll plugin, to add a tag cloud and per tag pages plus feeds to your Jekyll generated Website.
|
6
6
|
|
7
7
|
== Usage
|
8
8
|
|
9
9
|
Install it:
|
10
10
|
|
11
|
-
|
11
|
+
gem install jekyll-tagging
|
12
12
|
|
13
13
|
Add the following to your <tt>_plugins/ext.rb</tt> file:
|
14
14
|
|
@@ -21,6 +21,14 @@ And in your <tt>_config.yml</tt> you have to define your layout used to generate
|
|
21
21
|
|
22
22
|
Now you got a new filter called <tt>tag_cloud</tt> which you can use with the <tt>site</tt> object as argument in your layout to get a cloud of all your site's tags. The tags are linked to their related tag page. Furthermore, you got a <tt>tags</tt> filter which you can feed withe a <tt>post</tt> or a <tt>site</tt> object to get a link list of all its tags.
|
23
23
|
|
24
|
+
You can optionally define a per tag Atom/RSS feed. In your <tt>_config.yml</tt> define the following:
|
25
|
+
|
26
|
+
tag_feed_layout: tag_feed
|
27
|
+
tag_feed_dir: tag
|
28
|
+
|
29
|
+
(<tt>tag_page_dir</tt> and <tt>tag_feed_dir</tt> can have the same value.)
|
30
|
+
|
31
|
+
|
24
32
|
=== Example tag page layout
|
25
33
|
|
26
34
|
---
|
@@ -36,11 +44,38 @@ Now you got a new filter called <tt>tag_cloud</tt> which you can use with the <t
|
|
36
44
|
<div id="tag-cloud">
|
37
45
|
{{ site | tag_cloud }}
|
38
46
|
</div>
|
47
|
+
|
48
|
+
|
49
|
+
=== Example layout of an Atom feed
|
50
|
+
|
51
|
+
---
|
52
|
+
layout: nil
|
53
|
+
---
|
54
|
+
<?xml version="1.0" encoding="utf-8"?>
|
55
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
56
|
+
<title>Your Title - {{ page.tag }}</title>
|
57
|
+
<link href="http://example.com{{ page.url }}" rel="self"/>
|
58
|
+
<link href="http://example.com/tag/{{ page.tag }}.html"/>
|
59
|
+
<updated>{{ site.time | date_to_xmlschema }}</updated>
|
60
|
+
<id>http://example.com/tag/{{ page.tag }}.html</id>
|
61
|
+
<author>
|
62
|
+
<name>Author Here</name>
|
63
|
+
</author>
|
64
|
+
{% for post in page.posts %}
|
65
|
+
<entry>
|
66
|
+
<title>{{ post.title }}</title>
|
67
|
+
<link href="http://example.com{{ post.url }}"/>
|
68
|
+
<updated>{{ post.date | date_to_xmlschema }}</updated>
|
69
|
+
<id>http://example.com{{ post.id }}</id>
|
70
|
+
<content type="html">{{ post.content | xml_escape }}</content>
|
71
|
+
</entry>
|
72
|
+
{% endfor %}
|
73
|
+
</feed>
|
39
74
|
|
40
75
|
== Links
|
41
76
|
|
42
77
|
<b></b>
|
43
|
-
Documentation:: <http://
|
78
|
+
Documentation:: <http://rubydoc.info/gems/jekyll-tagging/frames>
|
44
79
|
Source code:: <http://github.com/pattex/jekyll-tagging>
|
45
80
|
RubyGem:: <http://rubygems.org/gems/jekyll-tagging>
|
46
81
|
|
@@ -48,7 +83,8 @@ RubyGem:: <http://rubygems.org/gems/jekyll-tagging>
|
|
48
83
|
|
49
84
|
=== The MIT License
|
50
85
|
|
51
|
-
Copyright (c) 2010
|
86
|
+
Copyright (c) 2010-2011 University of Cologne,
|
87
|
+
Albertus-Magnus-Platz, 50923 Cologne, Germany
|
52
88
|
|
53
89
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
54
90
|
of this software and associated documentation files (the "Software"), to deal
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require %q{lib/jekyll/tagging/version}
|
1
|
+
require File.expand_path(%q{../lib/jekyll/tagging/version}, __FILE__)
|
2
2
|
|
3
3
|
begin
|
4
4
|
require 'hen'
|
@@ -8,20 +8,16 @@ begin
|
|
8
8
|
:name => %q{jekyll-tagging},
|
9
9
|
:version => Jekyll::Tagging::VERSION,
|
10
10
|
:summary => %q{Jekyll plugin to automatically generate a tag cloud and tag pages.},
|
11
|
-
:files => FileList['lib/**/*.rb'].to_a,
|
12
|
-
:extra_files => FileList['[A-Z]*'].to_a,
|
13
|
-
:dependencies => %w[ruby-nuggets],
|
14
11
|
:authors => ['Arne Eilermann', 'Jens Wille'],
|
15
12
|
:email => ['eilermann@lavabit.com', 'jens.wille@uni-koeln.de'],
|
16
|
-
:homepage =>
|
13
|
+
:homepage => :pattex,
|
14
|
+
:dependencies => %w[ruby-nuggets]
|
17
15
|
}
|
18
16
|
}}
|
19
|
-
rescue LoadError
|
20
|
-
warn "Please install the `hen' gem."
|
17
|
+
rescue LoadError => err
|
18
|
+
warn "Please install the `hen' gem. (#{err})"
|
21
19
|
end
|
22
20
|
|
23
|
-
### Place your custom Rake tasks here.
|
24
|
-
|
25
21
|
begin
|
26
22
|
require 'jekyll/testtasks/rake'
|
27
23
|
rescue LoadError
|
data/lib/jekyll/tagging.rb
CHANGED
@@ -8,11 +8,14 @@ module Jekyll
|
|
8
8
|
safe true
|
9
9
|
|
10
10
|
def generate(site)
|
11
|
-
|
12
|
-
Tagger.
|
11
|
+
%w[TAG_PAGE_DIR TAG_FEED_DIR].each do |dir_name|
|
12
|
+
unless Tagger.const_defined?(dir_name.to_sym)
|
13
|
+
Tagger.const_set(dir_name, site.config[dir_name.downcase] || 'tag')
|
14
|
+
end
|
13
15
|
end
|
14
16
|
|
15
17
|
@tag_page_layout = site.config['tag_page_layout']
|
18
|
+
@tag_feed_layout = site.config['tag_feed_layout']
|
16
19
|
|
17
20
|
unless Jekyll::Filters.const_defined?(:PRETTY_URL)
|
18
21
|
Jekyll::Filters.const_set('PRETTY_URL', site.permalink_style == :pretty)
|
@@ -21,8 +24,7 @@ module Jekyll
|
|
21
24
|
if @tag_page_layout
|
22
25
|
generate_tag_pages(site)
|
23
26
|
else
|
24
|
-
|
25
|
-
'configuration file.'
|
27
|
+
warn 'WARNING: You have to define a tag_page_layout in configuration file.'
|
26
28
|
end
|
27
29
|
|
28
30
|
site.config.update({ 'tag_data' => calculate_tag_cloud(site) })
|
@@ -33,13 +35,16 @@ module Jekyll
|
|
33
35
|
# to use this.
|
34
36
|
def generate_tag_pages(site)
|
35
37
|
site.tags.each { |tag, posts|
|
36
|
-
site.pages <<
|
38
|
+
site.pages << new_tag(site, site.source, TAG_PAGE_DIR, tag, posts.sort.reverse, @tag_page_layout)
|
39
|
+
if @tag_feed_layout
|
40
|
+
site.pages << new_tag(site, site.source, TAG_FEED_DIR, tag, posts.sort.reverse, @tag_feed_layout)
|
41
|
+
end
|
37
42
|
}
|
38
43
|
end
|
39
44
|
|
40
|
-
def
|
41
|
-
TagPage.new(site, base, dir, "#{tag}.
|
42
|
-
'layout' =>
|
45
|
+
def new_tag(site, base, dir, tag, posts, layout)
|
46
|
+
TagPage.new(site, base, dir, "#{tag}#{site.layouts[layout].ext}", {
|
47
|
+
'layout' => layout,
|
43
48
|
'posts' => posts,
|
44
49
|
})
|
45
50
|
end
|
metadata
CHANGED
@@ -1,94 +1,72 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-tagging
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 0.2.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Arne Eilermann
|
14
9
|
- Jens Wille
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-04-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
23
16
|
name: ruby-nuggets
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70196087414680 !ruby/object:Gem::Requirement
|
26
18
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
34
23
|
type: :runtime
|
35
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *70196087414680
|
36
26
|
description: Jekyll plugin to automatically generate a tag cloud and tag pages.
|
37
|
-
email:
|
27
|
+
email:
|
38
28
|
- eilermann@lavabit.com
|
39
29
|
- jens.wille@uni-koeln.de
|
40
30
|
executables: []
|
41
|
-
|
42
31
|
extensions: []
|
43
|
-
|
44
|
-
extra_rdoc_files:
|
32
|
+
extra_rdoc_files:
|
45
33
|
- ChangeLog
|
46
|
-
files:
|
34
|
+
files:
|
47
35
|
- lib/jekyll/tagging/version.rb
|
48
36
|
- lib/jekyll/tagging.rb
|
49
37
|
- ChangeLog
|
50
38
|
- Rakefile
|
51
39
|
- README.rdoc
|
52
|
-
has_rdoc: true
|
53
40
|
homepage: http://github.com/pattex/jekyll-tagging
|
54
41
|
licenses: []
|
55
|
-
|
56
42
|
post_install_message:
|
57
|
-
rdoc_options:
|
58
|
-
- --all
|
43
|
+
rdoc_options:
|
59
44
|
- --charset
|
60
45
|
- UTF-8
|
46
|
+
- --line-numbers
|
47
|
+
- --all
|
48
|
+
- --title
|
49
|
+
- jekyll-tagging Application documentation (v0.3.0)
|
61
50
|
- --main
|
62
51
|
- ChangeLog
|
63
|
-
|
64
|
-
- jekyll-tagging Application documentation (v0.2.0)
|
65
|
-
- --line-numbers
|
66
|
-
require_paths:
|
52
|
+
require_paths:
|
67
53
|
- lib
|
68
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
55
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
- 0
|
76
|
-
version: "0"
|
77
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
61
|
none: false
|
79
|
-
requirements:
|
80
|
-
- -
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
|
83
|
-
segments:
|
84
|
-
- 0
|
85
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
86
66
|
requirements: []
|
87
|
-
|
88
67
|
rubyforge_project:
|
89
|
-
rubygems_version: 1.
|
68
|
+
rubygems_version: 1.8.11
|
90
69
|
signing_key:
|
91
70
|
specification_version: 3
|
92
71
|
summary: Jekyll plugin to automatically generate a tag cloud and tag pages.
|
93
72
|
test_files: []
|
94
|
-
|