jekyll-readme-index 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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.