bunto-optional-front-matter 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6ee5606d18fa268f587a7bc476ce9cf283ba0168
|
4
|
+
data.tar.gz: da94660a90797ae09398894ba2d857e09b7e5e7a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 63e5fc4d9a550cb1848ed36b89fdbc592b3c21b01e1ea8d70c0380910c3b07f6265242c4984cca3894b9eae49eeeed12c04d521760ec92746ca8deb7c742768b
|
7
|
+
data.tar.gz: 87df35adc4601bd78bb79504921239af92136e3f3e5912ddea36526abbaf8078e12d8fabd888c13ff07047f737bb6acc19f86d4d3b8be6433e4e812671c4bb24
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "bunto"
|
2
|
+
require "bunto-optional-front-matter/generator"
|
3
|
+
|
4
|
+
module BuntoOptionalFrontMatter
|
5
|
+
# Case-insensitive array of filenames to exclude. All files must first
|
6
|
+
# match the config-defined list of markdown extensions. If you'd like one
|
7
|
+
# of these files included in your site, simply add YAML front matter to it.
|
8
|
+
FILENAME_BLACKLIST = %w(
|
9
|
+
README
|
10
|
+
LICENSE
|
11
|
+
LICENCE
|
12
|
+
COPYING
|
13
|
+
CODE_OF_CONDUCT
|
14
|
+
CONTRIBUTING
|
15
|
+
ISSUE_TEMPLATE
|
16
|
+
PULL_REQUEST_TEMPLATE
|
17
|
+
).freeze
|
18
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module BuntoOptionalFrontMatter
|
2
|
+
class Generator < Bunto::Generator
|
3
|
+
attr_accessor :site
|
4
|
+
|
5
|
+
safe true
|
6
|
+
priority :normal
|
7
|
+
|
8
|
+
def initialize(site)
|
9
|
+
@site = site
|
10
|
+
end
|
11
|
+
|
12
|
+
def generate(site)
|
13
|
+
@site = site
|
14
|
+
return if site.config["require_front_matter"]
|
15
|
+
site.pages.concat(pages_to_add)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# An array of Bunto::Pages to add, *excluding* blacklisted files
|
21
|
+
def pages_to_add
|
22
|
+
pages.reject { |page| blacklisted?(page) }
|
23
|
+
end
|
24
|
+
|
25
|
+
# An array of potential Bunto::Pages to add, *including* blacklisted files
|
26
|
+
def pages
|
27
|
+
markdown_files.map { |static_file| page_from_static_file(static_file) }
|
28
|
+
end
|
29
|
+
|
30
|
+
# An array of Bunto::StaticFile's with a site-defined markdown extension
|
31
|
+
def markdown_files
|
32
|
+
site.static_files.select { |file| markdown_converter.matches(file.extname) }
|
33
|
+
end
|
34
|
+
|
35
|
+
# Given a Bunto::StaticFile, returns the file as a Bunto::Page
|
36
|
+
def page_from_static_file(static_file)
|
37
|
+
base = static_file.instance_variable_get("@base")
|
38
|
+
dir = static_file.instance_variable_get("@dir")
|
39
|
+
name = static_file.instance_variable_get("@name")
|
40
|
+
Bunto::Page.new(site, base, dir, name)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Does the given Bunto::Page match our filename blacklist?
|
44
|
+
def blacklisted?(page)
|
45
|
+
return false if whitelisted?(page)
|
46
|
+
FILENAME_BLACKLIST.include?(page.basename.upcase)
|
47
|
+
end
|
48
|
+
|
49
|
+
def whitelisted?(page)
|
50
|
+
return false unless site.config["include"].is_a? Array
|
51
|
+
entry_filter.included?(page.path)
|
52
|
+
end
|
53
|
+
|
54
|
+
def markdown_converter
|
55
|
+
@markdown_converter ||= site.find_converter_instance(Bunto::Converters::Markdown)
|
56
|
+
end
|
57
|
+
|
58
|
+
def entry_filter
|
59
|
+
@entry_filter ||= Bunto::EntryFilter.new(site)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bunto-optional-front-matter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ben Balter
|
8
|
+
- Suriyaa Kudo
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-08-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bunto
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.4'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3.4'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rspec
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '3.5'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '3.5'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rubocop
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.40'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.40'
|
56
|
+
description:
|
57
|
+
email:
|
58
|
+
- ben.balter@github.com
|
59
|
+
- github@suriyaa.tk
|
60
|
+
executables: []
|
61
|
+
extensions: []
|
62
|
+
extra_rdoc_files: []
|
63
|
+
files:
|
64
|
+
- lib/bunto-optional-front-matter.rb
|
65
|
+
- lib/bunto-optional-front-matter/generator.rb
|
66
|
+
- lib/bunto-optional-front-matter/version.rb
|
67
|
+
homepage: https://github.com/bunto/bunto-optional-front-matter
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata: {}
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 2.6.12
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: A Bunto plugin to make front matter optional for Markdown files
|
91
|
+
test_files: []
|