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 +5 -5
- data/lib/jekyll-readme-index.rb +2 -0
- data/lib/jekyll-readme-index/generator.rb +26 -5
- data/lib/jekyll-readme-index/version.rb +3 -1
- data/lib/jekyll/static_file_ext.rb +13 -0
- metadata +53 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e5bd74269cd40c7051ee807361769d9a049977d4270ee22d0c59db95adb98fea
|
4
|
+
data.tar.gz: 3b02a03d7b5a5184d0cb3743cf1e778302fb843f16acfaa898a9c7f1870db6a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 698899c2dd728705703b01002c82854e18b49728eef9f0761caab3e179f05693322579a0fcfdcfb1e6625f0a6ca0afe14220386f6e263daf6b2b11d0e5f04d19
|
7
|
+
data.tar.gz: 51953c2dd58f121c858b6ff20e712ba20093c35936a517e3f3ebe4369162086daf792fd6ac3db8ae8689507a891f55976947ecf93c552441456880253d3c9b91
|
data/lib/jekyll-readme-index.rb
CHANGED
@@ -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"
|
11
|
-
ENABLED_KEY = "enabled"
|
12
|
-
CLEANUP_KEY = "remove_originals"
|
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
|
-
@
|
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 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.
|
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:
|
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
|
-
|
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.
|