jekyll-readme-index 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0b0cb46a6f56d8a5898262b8b61441de116c84ad
4
- data.tar.gz: '0992bcb775494cd0fa27d842877b8c397a79a3a1'
2
+ SHA256:
3
+ metadata.gz: e5bd74269cd40c7051ee807361769d9a049977d4270ee22d0c59db95adb98fea
4
+ data.tar.gz: 3b02a03d7b5a5184d0cb3743cf1e778302fb843f16acfaa898a9c7f1870db6a1
5
5
  SHA512:
6
- metadata.gz: a11b7475e60decc7ebb9640117f49619ac4745d5038f4bd36953dca3fe743fbef59724df995450cf07448c17af08db03a4bf2e66bfab94c023f4f9abf9e62e17
7
- data.tar.gz: 7b22c70e35d4562c3884da6915632e1af7135b5d93374473b0a818461ebed11976e5e6c0a290209c6e2d85faff96cb43eb63cb00d970616284a1212b6cc6ddd0
6
+ metadata.gz: 698899c2dd728705703b01002c82854e18b49728eef9f0761caab3e179f05693322579a0fcfdcfb1e6625f0a6ca0afe14220386f6e263daf6b2b11d0e5f04d19
7
+ data.tar.gz: 51953c2dd58f121c858b6ff20e712ba20093c35936a517e3f3ebe4369162086daf792fd6ac3db8ae8689507a891f55976947ecf93c552441456880253d3c9b91
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "jekyll"
2
4
  require "jekyll-readme-index/generator"
3
5
  require_relative "./jekyll/static_file_ext"
@@ -1,15 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllReadmeIndex
2
4
  class Generator < Jekyll::Generator
3
- INDEX_REGEX = %r!$|index\.(html?|xhtml|xml)$!i
5
+ INDEX_REGEX = %r!$|index\.(html?|xhtml|xml)$!i.freeze
4
6
 
5
7
  attr_accessor :site
6
8
 
7
9
  safe true
8
10
  priority :low
9
11
 
10
- CONFIG_KEY = "readme_index".freeze
11
- ENABLED_KEY = "enabled".freeze
12
- CLEANUP_KEY = "remove_originals".freeze
12
+ CONFIG_KEY = "readme_index"
13
+ ENABLED_KEY = "enabled"
14
+ CLEANUP_KEY = "remove_originals"
15
+ FRONTMATTER_KEY = "with_frontmatter"
13
16
 
14
17
  def initialize(site)
15
18
  @site = site
@@ -21,9 +24,18 @@ module JekyllReadmeIndex
21
24
 
22
25
  readmes.each do |readme|
23
26
  next unless should_be_index?(readme)
27
+
24
28
  site.pages << readme.to_page
25
29
  site.static_files.delete(readme) if cleanup?
26
30
  end
31
+
32
+ if with_frontmatter?
33
+ readmes_with_frontmatter.each do |readme|
34
+ next unless should_be_index?(readme)
35
+
36
+ readme.update_permalink
37
+ end
38
+ end
27
39
  end
28
40
 
29
41
  private
@@ -33,9 +45,14 @@ module JekyllReadmeIndex
33
45
  site.static_files.select { |file| file.relative_path =~ readme_regex }
34
46
  end
35
47
 
48
+ def readmes_with_frontmatter
49
+ site.pages.select { |file| ("/" + file.path) =~ readme_regex }
50
+ end
51
+
36
52
  # Should the given readme be the containing directory's index?
37
53
  def should_be_index?(readme)
38
54
  return false unless readme
55
+
39
56
  !dir_has_index? File.dirname(readme.url)
40
57
  end
41
58
 
@@ -50,7 +67,7 @@ module JekyllReadmeIndex
50
67
 
51
68
  # Regexp to match a file path against to detect if the given file is a README
52
69
  def readme_regex
53
- @readmes_regex ||= %r!/readme(#{Regexp.union(markdown_converter.extname_list)})$!i
70
+ @readme_regex ||= %r!/readme(#{Regexp.union(markdown_converter.extname_list)})$!i
54
71
  end
55
72
 
56
73
  def markdown_converter
@@ -68,5 +85,9 @@ module JekyllReadmeIndex
68
85
  def cleanup?
69
86
  option(CLEANUP_KEY) == true
70
87
  end
88
+
89
+ def with_frontmatter?
90
+ option(FRONTMATTER_KEY) == true
91
+ end
71
92
  end
72
93
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllReadmeIndex
2
- VERSION = "0.2.0".freeze
4
+ VERSION = "0.3.0"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Jekyll
2
4
  class StaticFile
3
5
  # Convert this static file to a Page
@@ -7,4 +9,15 @@ module Jekyll
7
9
  page
8
10
  end
9
11
  end
12
+
13
+ class Page
14
+ def update_permalink
15
+ data["permalink"] = File.dirname(url) + "/"
16
+ @url = URL.new(
17
+ :template => template,
18
+ :placeholders => url_placeholders,
19
+ :permalink => permalink
20
+ ).to_s
21
+ end
22
+ end
10
23
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-readme-index
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2019-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rspec
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +58,48 @@ dependencies:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
60
  version: '0.40'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rubocop-jekyll
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.10.0
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.10.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop-performance
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.5'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.5'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rubocop-rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.3'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.3'
55
103
  description:
56
104
  email:
57
105
  - ben.balter@github.com
@@ -82,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
130
  - !ruby/object:Gem::Version
83
131
  version: '0'
84
132
  requirements: []
85
- rubyforge_project:
86
- rubygems_version: 2.6.11
133
+ rubygems_version: 3.0.6
87
134
  signing_key:
88
135
  specification_version: 4
89
136
  summary: A Jekyll plugin to render a project's README as the site's index.