jekyll-category_generator 0.0.3 → 0.0.4
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/lib/jekyll-category_generator.rb +1 -1
- data/lib/jekyll/category_generator/categories.rb +14 -9
- data/lib/jekyll/category_generator/category.rb +10 -2
- data/lib/jekyll/category_generator/category_index.rb +3 -11
- data/lib/jekyll/category_generator/site_override.rb +3 -1
- data/lib/jekyll/category_generator/version.rb +1 -1
- data/readme.md +25 -14
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d554cee62eeab79fd1fc2bde081c1c6747742bd0
|
4
|
+
data.tar.gz: 0b7b924d91668bd8b08be0a5e4c3c60c65730145
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b11a75f5ef74522d0ae167b79d372eb561aab20e78e2bb4c26fad57c8084fdae02bb9e2a6fdbd1224992b63ef500b20ff014b8934d25e2ed6a58def88356fac7
|
7
|
+
data.tar.gz: 404e7820c7237683f31f7b2a14e83e3b1816fdcba0cee6c2963011057fa13d7088aaa412962000a5163bdb01521fb47674f10366cfc23811075d9c0abea58323
|
@@ -13,7 +13,7 @@ require 'jekyll/category_generator/category_filters.rb'
|
|
13
13
|
module Jekyll
|
14
14
|
# The category generator module
|
15
15
|
module CategoryGenerator
|
16
|
-
|
16
|
+
CATEGORIES_FOLDER = 'categories'.freeze
|
17
17
|
# Jekyll hook - the generate method is called by jekyll, and generates all of the category pages.
|
18
18
|
class CGenerator < Generator
|
19
19
|
safe true
|
@@ -14,6 +14,7 @@ module Jekyll
|
|
14
14
|
# +context+ is the Liquid:Tag context
|
15
15
|
#
|
16
16
|
def initialize(category_names, context)
|
17
|
+
@context = context
|
17
18
|
category_names = [category_names] unless category_names.is_a? Array
|
18
19
|
initialize_category_list(category_names, context)
|
19
20
|
end
|
@@ -29,25 +30,29 @@ module Jekyll
|
|
29
30
|
end
|
30
31
|
|
31
32
|
##
|
32
|
-
# Outputs a list of categories as
|
33
|
+
# Outputs a list of categories as separated <a> links. This is used
|
33
34
|
# to output the category list for each post on a category page.
|
34
35
|
#
|
35
36
|
# Returns string
|
36
37
|
#
|
37
38
|
def links
|
38
|
-
|
39
|
+
separate(@category_list.sort!.map(&:link))
|
39
40
|
end
|
40
41
|
|
41
42
|
private
|
42
43
|
|
43
44
|
##
|
44
|
-
# Join
|
45
|
-
def
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
# Join the list of category
|
46
|
+
def separate(list_of_links)
|
47
|
+
list_of_links.join(category_link_separator).to_s
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Get the defined category link separator
|
52
|
+
def category_link_separator
|
53
|
+
@context.registers[:site].config['jekyll-category_generator']['link_separator']
|
54
|
+
rescue
|
55
|
+
' '
|
51
56
|
end
|
52
57
|
end
|
53
58
|
end
|
@@ -38,8 +38,16 @@ module Jekyll
|
|
38
38
|
#
|
39
39
|
def link
|
40
40
|
return '' until @name
|
41
|
-
|
42
|
-
|
41
|
+
"<a class='category' href='/#{categories_folder}/#{URI.encode(@name)}/'>#{@name}</a>"
|
42
|
+
end
|
43
|
+
|
44
|
+
##
|
45
|
+
# Returns the categories folder
|
46
|
+
#
|
47
|
+
def categories_folder
|
48
|
+
@context.registers[:site].config['jekyll-category_generator']['category_dir']
|
49
|
+
rescue
|
50
|
+
CategoryGenerator::CATEGORIES_FOLDER
|
43
51
|
end
|
44
52
|
end
|
45
53
|
end
|
@@ -20,22 +20,14 @@ module Jekyll
|
|
20
20
|
data['category'] = category
|
21
21
|
# Set the title for this page.
|
22
22
|
data['title'] = "#{title_prefix}#{category}"
|
23
|
-
# Set the meta-description for this page.
|
24
|
-
data['description'] = "#{description_prefix}#{category}"
|
25
23
|
end
|
26
24
|
|
27
|
-
private
|
28
|
-
|
29
25
|
##
|
30
26
|
# Return the category title prefix
|
31
27
|
def title_prefix
|
32
|
-
site.config['jekyll-category_generator
|
33
|
-
|
34
|
-
|
35
|
-
##
|
36
|
-
# Return the category description prefix
|
37
|
-
def description_prefix
|
38
|
-
site.config['jekyll-category_generator.description_prefix'] || 'Category: '
|
28
|
+
site.config['jekyll-category_generator']['title_prefix']
|
29
|
+
rescue
|
30
|
+
'Category: '
|
39
31
|
end
|
40
32
|
end
|
41
33
|
end
|
@@ -33,7 +33,9 @@ module Jekyll
|
|
33
33
|
# Returns the categories folder
|
34
34
|
#
|
35
35
|
def categories_folder
|
36
|
-
config['category_dir']
|
36
|
+
config['jekyll-category_generator']['category_dir']
|
37
|
+
rescue
|
38
|
+
CategoryGenerator::CATEGORIES_FOLDER
|
37
39
|
end
|
38
40
|
|
39
41
|
# Raise an error on unexisting layout
|
data/readme.md
CHANGED
@@ -23,7 +23,7 @@ plugins:
|
|
23
23
|
- jekyll-category_generator
|
24
24
|
```
|
25
25
|
|
26
|
-
|
26
|
+
## Create your layout
|
27
27
|
First of all, you need to create a *layout* named `category_index.html`; It will be used to create the index of all posts of a category.
|
28
28
|
|
29
29
|
The file should at least have the following code.
|
@@ -37,18 +37,23 @@ The file should at least have the following code.
|
|
37
37
|
```
|
38
38
|
|
39
39
|
# Using the plugin
|
40
|
-
The plugin contains usefull filters and configuration variables helping you to create a nice *layout*.
|
40
|
+
The plugin contains usefull filters and [configuration](#configuration) variables helping you to create a nice *layout*.
|
41
41
|
|
42
42
|
## Filters
|
43
43
|
### category_links
|
44
|
-
|
45
|
-
|
46
|
-
Usefull to add to the end of a page for example.
|
44
|
+
Usefull to add to the bottom of a **page**, this filter allows you to create a list of links of all the given categories generated by default in the `categories` folder (see [category_dir](#category_dir) for configuration).
|
47
45
|
|
46
|
+
For example,
|
48
47
|
```html
|
49
48
|
{{ page.categories | category_links }}
|
50
49
|
```
|
51
50
|
|
51
|
+
will render by default the following (see [link_separator](#link_separator) for configuration).
|
52
|
+
```html
|
53
|
+
<a class="category" href="/categories/ionic/">ionic</a>
|
54
|
+
<a class="category" href="/categories/ruby%20on%20rails/">ruby on rails</a>
|
55
|
+
```
|
56
|
+
|
52
57
|
### category_link
|
53
58
|
This filter allows you to create the link of a given category.
|
54
59
|
|
@@ -63,25 +68,31 @@ Usefull for a menu listing all categories for example.
|
|
63
68
|
```
|
64
69
|
|
65
70
|
### date_to_html_string
|
66
|
-
This filter allows you to output a HtML formatted date (`
|
71
|
+
This filter allows you to output a HtML formatted date (`%Y-%m-%d` by default, see [date format](#date-format) for configuration).
|
67
72
|
|
68
|
-
|
73
|
+
For example,
|
69
74
|
```html
|
70
75
|
{{ post.date | date_to_html_string }}
|
71
76
|
```
|
72
77
|
|
73
|
-
|
78
|
+
will render by default something like
|
79
|
+
```
|
80
|
+
2017-07-01
|
81
|
+
```
|
74
82
|
|
75
|
-
##
|
83
|
+
## Configuration
|
84
|
+
All variables must be set under the `jekyll-category_generator` key in the `_config.yml` file!
|
76
85
|
|
77
|
-
###
|
78
|
-
The title of the category can be prefixed by the `title_prefix` value, by default, it is set with **Category
|
86
|
+
### title_prefix
|
87
|
+
The **title** of the category can be **prefixed** by the `title_prefix` value, by default, it is set with **Category:**. So when using `{{ page.title }}` in your `category_index` layout, it will be prefixed.
|
79
88
|
|
80
|
-
|
89
|
+
### category_dir
|
90
|
+
The category **directory** is by default the `categories/` folder, but you can change it by adding the `category_dir` key.
|
81
91
|
|
82
|
-
|
92
|
+
### link_separator
|
93
|
+
When joinning category links, the generator will use white space by default, but you can specify the separator using the `link_separator` key.
|
83
94
|
|
84
|
-
###
|
95
|
+
### date format
|
85
96
|
The `date_to_html_string` filter allows you to stringify the date for your own language by adding the following.
|
86
97
|
|
87
98
|
The *format* variable uses the Ruby [Time#strftime](http://ruby-doc.org/core-2.2.1/Time.html#method-i-strftime) method.
|