jekyll-categorize-pages 0.1.1 → 0.1.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generator.rb +81 -34
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17aee4a8a5c4b14c937afe207f6a96fb6a84a002
4
- data.tar.gz: 3fc1a8c032dad7609fba7d3d5296280988047c59
3
+ metadata.gz: 76f301d8bfd1a555042e66e8be6d3296b4031eb7
4
+ data.tar.gz: 624a2fe951c103566c9eb9c1b28306c822156706
5
5
  SHA512:
6
- metadata.gz: af5d585f40f51321e000e593dbd98f7af6a221fe184b15c02ba8423748289a65fb56f4b6dffb032269cc1cb64b106699ea329285a84712b16338c1c4b5e18a90
7
- data.tar.gz: ccd2933eae2fe8c84bf452205f3fa5d841e83f6796783f480d7f04c0fcab2d11a0d759be8f4f27816f284801b228d7d08645c2e6fa7caf6a06d1d699a9817b03
6
+ metadata.gz: a5836409dc0ea7275477bbb8b91486d1b9360ea14cf16ef377d6d9ac800cf2494785ee1b89ad397285b8a052d11356071c8d89d48fcf6b8d25c7436311c152d8
7
+ data.tar.gz: ca023fa10dc6def534d9b51691142fe0f327dba83a0336579358811ee8211ee0bf3522ec439c8c3a4fb72c323a6f2c605908896e480458e47dbff86e7171e37f
data/lib/generator.rb CHANGED
@@ -2,60 +2,107 @@
2
2
  require "jekyll"
3
3
 
4
4
  module Jekyll
5
-
5
+ # You can create a generator when you need Jekyll
6
+ # to create additional content based on your own rules.
7
+
8
+ # A generator is a subclass of Jekyll::Generator that defines a generate method,
9
+ # which receives an instance of Jekyll::Site. The return value of generate is ignored.
10
+
11
+
6
12
  # Injects front matter defaults to set default category/sub-category values
7
- class CategorizePagesGenerator < Jekyll::Generator
13
+ class InjectFm < Jekyll::Generator
8
14
  # priority :high
9
15
  safe true
10
16
 
11
- def log(*args)
12
- puts args
13
- end
14
-
15
17
  def get_collection(name)
16
18
  @site.collections[name] ? @site.collections[name].docs : []
17
19
  end
18
20
 
19
- def add_to_frontmatter(item)
20
- item.data["category"] = @category # i.data is the front matter header
21
- item.data["sub_category"] = @sub_category
21
+ def add_to_frontmatter(item, values)
22
+ # puts "adding: #{item.relative_path}"
23
+ # puts "values: #{values}"
24
+
25
+ item.data["category"] = values[:category] # i.data is the front matter header
26
+ item.data["sub_category"] = values[:sub_category]
27
+ end
28
+
29
+ def add_category_only(item, values)
30
+ # puts "adding: #{item.relative_path}"
31
+ # puts "values: #{values}"
32
+ item.data["category"] = values[:category]
33
+ # item.data["sub_category"] = values[:sub_category].slice(0, values[:sub_category].length - 3)
22
34
  end
23
35
 
24
36
 
25
37
  def isValid?(item)
26
- folders_to_categorize = @site.data["pagerrr_folders_to_categorize"] || []
27
- puts folders_to_categorize
28
- # all_categories.include?(page[:n])
38
+ all_categories = @site.data["all_categories"] || [] # sub folders inside collection
29
39
  path = item.relative_path.split('/')
30
- # category = path[0].sub(/^_/, '') # Remove first letter if underscore
31
- @category = path[1] if path[1] != "index.md"
32
- @sub_category = path[2] if path[2] != "index.md"
33
- file = path[3] if path[3] != "index.md"
34
- # puts '^^^^^^^^^^^^^'
35
- # puts @category
36
- # puts @sub_category
37
-
38
- return folders_to_categorize.include?(@category)
40
+
41
+ category = path[1] if path[1] != "index.md"
42
+
43
+ # ignore index.md pages
44
+ if path.include?("index.md")
45
+ return false
46
+ end
47
+
48
+ # if category folder has no sub categories
49
+ if path.length == 3
50
+ # puts "path: #{path}"
51
+ # puts "length: #{path.length}"
52
+ header_values = get_header_values_to_add(item)
53
+ add_category_only(item, header_values)
54
+ return false
55
+ end
56
+
57
+ return all_categories.include?(category)
58
+
59
+ # if path.include?("index.md")
60
+ # return false
61
+ # else
62
+ # return all_categories.include?(category)
63
+ # end
39
64
  end
40
65
 
41
66
 
67
+ def get_header_values_to_add(item)
68
+ all_categories = @site.data["all_categories"] || [] # sub folders inside collection
69
+ # puts "-----------------------"
70
+ # puts "all_categories: #{all_categories}"
71
+ # puts "item.relative_path: #{item.relative_path}"
72
+
73
+ path = item.relative_path.split('/')
74
+ category = path[1] if path[1] != "index.md"
75
+ # puts "@category: #{@category}"
76
+ sub_category = path[2] if path[2] != "index.md"
77
+ # puts "@sub_category: #{@sub_category}"
78
+ file = path[3] if path[3] != "index.md"
79
+ # puts "file: #{file}"
80
+
81
+ return {
82
+ :category => category,
83
+ :sub_category => sub_category,
84
+ :file => file
85
+ }
86
+ end
42
87
 
43
88
  def generate(site)
44
- puts "RAN!"
45
- # @site = site
46
- # # The collections to add category/sub category front matter values
47
- # collections = ["pages"] # TODO: Move this variable to _config/_data
48
-
49
- # for c in collections
50
- # for item in get_collection(c)
51
- # valid_category = isValid?(item)
52
- # if valid_category
53
- # add_to_frontmatter(item)
54
- # end
55
- # end
56
- # end
89
+ @site = site
90
+ # The collections to add category/sub category front matter values
91
+ collections = ["pages"] # TODO: Move this variable to _config/_data
92
+
93
+ for c in collections
94
+ for item in get_collection(c)
95
+ valid_category = isValid?(item)
96
+ if valid_category
97
+ header_values = get_header_values_to_add(item)
98
+ # puts "header_values: #{header_values}"
99
+ add_to_frontmatter(item, header_values)
100
+ end
101
+ end
102
+ end
57
103
 
58
104
  end
59
105
 
60
106
  end
107
+
61
108
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-categorize-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''