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 +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.
|