bridgetown-core 0.11.0 → 0.11.1
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
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a37c6106883a48eeb4acea0c1f06d96d55743b9a0c96da58a8ce1e8d11872f6e
|
4
|
+
data.tar.gz: 8b6b0fbf59db76bf0f650569fe7203548639cfb4b01d1a5dfcc60ab6d6e5f47b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d062100e89863161cae248782db05f9b0519f56bb5965f117cf0bb5734653bd4de27bdb08a063ed996af798f3f34a5e035e59b08f39084351fce33ec80074865
|
7
|
+
data.tar.gz: 675f41b860201cb0d80f2598761d7f187f0d59271eaebeb99fc8cb7b25931d85947047122017037eb06c8b8e048e79c17ddddabe56c658a22fa7d805e6121a45
|
@@ -33,6 +33,8 @@ module Bridgetown
|
|
33
33
|
"try again with `--force` to proceed and overwrite any files."
|
34
34
|
end
|
35
35
|
|
36
|
+
Bridgetown.logger.info("Creating:".green, new_site_path)
|
37
|
+
|
36
38
|
create_site new_site_path
|
37
39
|
|
38
40
|
after_install(new_site_path, args.join(" "), options)
|
@@ -121,7 +123,9 @@ module Bridgetown
|
|
121
123
|
end
|
122
124
|
end
|
123
125
|
|
124
|
-
|
126
|
+
git_init path
|
127
|
+
|
128
|
+
Bridgetown.logger.info "Success!".green, "🎉 Your new Bridgetown site was" \
|
125
129
|
" generated in #{cli_path.cyan}."
|
126
130
|
Bridgetown.logger.info "Execute cd #{cli_path.cyan} to get started."
|
127
131
|
Bridgetown.logger.info "You'll probably also want to #{"yarn install".cyan}" \
|
@@ -145,6 +149,16 @@ module Bridgetown
|
|
145
149
|
raise SystemExit unless process.success?
|
146
150
|
end
|
147
151
|
end
|
152
|
+
|
153
|
+
def git_init(path)
|
154
|
+
Dir.chdir(path) do
|
155
|
+
_process, output = Bridgetown::Utils::Exec.run("git", "init")
|
156
|
+
output.to_s.each_line do |line|
|
157
|
+
Bridgetown.logger.info("Git:".green, line.strip) unless line.to_s.empty?
|
158
|
+
end
|
159
|
+
end
|
160
|
+
rescue SystemCallError
|
161
|
+
end
|
148
162
|
end
|
149
163
|
end
|
150
164
|
end
|
@@ -1,15 +1,31 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
Bridgetown::Hooks.register :pages, :post_init do |page|
|
4
|
+
if page.class != Bridgetown::PrototypePage && page.data["prototype"].is_a?(Hash)
|
5
|
+
Bridgetown::PrototypeGenerator.add_matching_template(page)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
3
9
|
module Bridgetown
|
4
10
|
class PrototypeGenerator < Generator
|
5
11
|
priority :low
|
6
12
|
|
13
|
+
@matching_templates = []
|
14
|
+
|
15
|
+
def self.add_matching_template(template)
|
16
|
+
@matching_templates << template
|
17
|
+
end
|
18
|
+
|
19
|
+
class << self
|
20
|
+
attr_reader :matching_templates
|
21
|
+
end
|
22
|
+
|
7
23
|
def generate(site)
|
8
24
|
@site = site
|
9
25
|
@configured_collection = "posts"
|
10
26
|
|
11
|
-
prototype_pages =
|
12
|
-
|
27
|
+
prototype_pages = self.class.matching_templates.select do |page|
|
28
|
+
site.pages.include? page
|
13
29
|
end
|
14
30
|
|
15
31
|
if prototype_pages.length.positive?
|
@@ -42,18 +58,7 @@ module Bridgetown
|
|
42
58
|
end
|
43
59
|
|
44
60
|
def generate_new_page_from_prototype(prototype_page, search_term, term)
|
45
|
-
new_page = PrototypePage.new(prototype_page)
|
46
|
-
# Use the original specified term so we get "tag" back, not "tags":
|
47
|
-
new_page.data[prototype_page.data["prototype"]["term"]] = term
|
48
|
-
|
49
|
-
process_title_data_placeholder(new_page, prototype_page, search_term, term)
|
50
|
-
process_title_simple_placeholders(new_page, prototype_page, term)
|
51
|
-
|
52
|
-
new_page.data["pagination"] = {} unless new_page.data["pagination"].is_a?(Hash)
|
53
|
-
new_page.data["pagination"]["enabled"] = true
|
54
|
-
new_page.data["pagination"]["collection"] = @configured_collection
|
55
|
-
new_page.data["pagination"]["where_query"] = [search_term, term]
|
56
|
-
new_page.slugify_term(term)
|
61
|
+
new_page = PrototypePage.new(prototype_page, @configured_collection, search_term, term)
|
57
62
|
@site.pages << new_page
|
58
63
|
new_page
|
59
64
|
end
|
@@ -63,43 +68,14 @@ module Bridgetown
|
|
63
68
|
document.respond_to?(:collection) && document.collection.label == @configured_collection
|
64
69
|
end
|
65
70
|
|
66
|
-
Bridgetown::Paginate::
|
71
|
+
Bridgetown::Paginate::PaginationIndexer.index_documents_by(
|
67
72
|
selected_docs, search_term
|
68
73
|
).keys
|
69
74
|
end
|
70
|
-
|
71
|
-
def process_title_data_placeholder(new_page, prototype_page, search_term, term)
|
72
|
-
if prototype_page["prototype"]["data"]
|
73
|
-
if new_page.data["title"]&.include?(":prototype-data-label")
|
74
|
-
related_data = @site.data[prototype_page["prototype"]["data"]].dig(term)
|
75
|
-
if related_data
|
76
|
-
new_page.data["#{search_term}_data"] = related_data
|
77
|
-
data_label = related_data[prototype_page["prototype"]["data_label"]]
|
78
|
-
new_page.data["title"] = new_page.data["title"].gsub(
|
79
|
-
":prototype-data-label", data_label
|
80
|
-
)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def process_title_simple_placeholders(new_page, _prototype_page, term)
|
87
|
-
if new_page.data["title"]&.include?(":prototype-term-titleize")
|
88
|
-
new_page.data["title"] = new_page.data["title"].gsub(
|
89
|
-
":prototype-term-titleize", Bridgetown::Utils.titleize_slug(term)
|
90
|
-
)
|
91
|
-
end
|
92
|
-
|
93
|
-
if new_page.data["title"]&.include?(":prototype-term")
|
94
|
-
new_page.data["title"] = new_page.data["title"].gsub(
|
95
|
-
":prototype-term", term
|
96
|
-
)
|
97
|
-
end
|
98
|
-
end
|
99
75
|
end
|
100
76
|
|
101
77
|
class PrototypePage < Page
|
102
|
-
def initialize(prototype_page)
|
78
|
+
def initialize(prototype_page, collection, search_term, term)
|
103
79
|
@site = prototype_page.site
|
104
80
|
@url = ""
|
105
81
|
@name = "index.html"
|
@@ -116,11 +92,65 @@ module Bridgetown
|
|
116
92
|
|
117
93
|
@dir = Pathname.new(prototype_page.relative_path).dirname.to_s
|
118
94
|
@path = site.in_source_dir(@dir, @name)
|
95
|
+
|
96
|
+
process_prototype_page_data(prototype_page, collection, search_term, term)
|
97
|
+
|
98
|
+
Bridgetown::Hooks.trigger :pages, :post_init, self
|
99
|
+
end
|
100
|
+
|
101
|
+
def process_prototype_page_data(prototype_page, collection, search_term, term)
|
102
|
+
# Fill in pagination details to be handled later by Bridgetown::Paginate
|
103
|
+
data["pagination"] = Bridgetown::Utils.deep_merge_hashes(
|
104
|
+
prototype_page.data["pagination"].to_h, {
|
105
|
+
"enabled" => true,
|
106
|
+
"collection" => collection,
|
107
|
+
"where_query" => [search_term, term],
|
108
|
+
}
|
109
|
+
)
|
110
|
+
# Use the original prototype page term so we get "tag" back, not "tags":
|
111
|
+
data[prototype_page.data["prototype"]["term"]] = term
|
112
|
+
# Process title and slugs/URLs:
|
113
|
+
process_title_data_placeholder(prototype_page, search_term, term)
|
114
|
+
process_title_simple_placeholders(term)
|
115
|
+
slugify_term(term)
|
116
|
+
end
|
117
|
+
|
118
|
+
def process_title_data_placeholder(prototype_page, search_term, term)
|
119
|
+
if prototype_page["prototype"]["data"]
|
120
|
+
if data["title"]&.include?(":prototype-data-label")
|
121
|
+
related_data = @site.data[prototype_page["prototype"]["data"]].dig(term)
|
122
|
+
if related_data
|
123
|
+
data["#{search_term}_data"] = related_data
|
124
|
+
data_label = related_data[prototype_page["prototype"]["data_label"]]
|
125
|
+
data["title"] = data["title"].gsub(
|
126
|
+
":prototype-data-label", data_label
|
127
|
+
)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def process_title_simple_placeholders(term)
|
134
|
+
if data["title"]&.include?(":prototype-term-titleize")
|
135
|
+
data["title"] = data["title"].gsub(
|
136
|
+
":prototype-term-titleize", Bridgetown::Utils.titleize_slug(term)
|
137
|
+
)
|
138
|
+
end
|
139
|
+
|
140
|
+
if data["title"]&.include?(":prototype-term")
|
141
|
+
data["title"] = data["title"].gsub(
|
142
|
+
":prototype-term", term
|
143
|
+
)
|
144
|
+
end
|
119
145
|
end
|
120
146
|
|
121
147
|
def slugify_term(term)
|
122
148
|
term_slug = Bridgetown::Utils.slugify(term)
|
123
|
-
@url =
|
149
|
+
@url = if permalink.is_a?(String)
|
150
|
+
data["permalink"] = data["permalink"].sub(":term", term_slug)
|
151
|
+
else
|
152
|
+
"/#{@dir}/#{term_slug}/"
|
153
|
+
end
|
124
154
|
end
|
125
155
|
end
|
126
156
|
end
|
@@ -1,7 +1,35 @@
|
|
1
|
+
# Bridgetown
|
1
2
|
output
|
2
|
-
node_modules
|
3
|
-
.sass-cache
|
4
3
|
.bridgetown-cache
|
5
4
|
.bridgetown-metadata
|
6
5
|
.bridgetown-webpack
|
6
|
+
|
7
|
+
# Dependency folders
|
8
|
+
node_modules
|
9
|
+
bower_components
|
7
10
|
vendor
|
11
|
+
|
12
|
+
# Caches
|
13
|
+
.sass-cache
|
14
|
+
.npm
|
15
|
+
.node_repl_history
|
16
|
+
|
17
|
+
# Ignore bundler config.
|
18
|
+
/.bundle
|
19
|
+
|
20
|
+
# Ignore Byebug command history file.
|
21
|
+
.byebug_history
|
22
|
+
|
23
|
+
# dotenv environment variables file
|
24
|
+
.env
|
25
|
+
|
26
|
+
# Mac files
|
27
|
+
.DS_Store
|
28
|
+
|
29
|
+
# Yarn
|
30
|
+
yarn-error.log
|
31
|
+
yarn-debug.log*
|
32
|
+
.pnp/
|
33
|
+
.pnp.js
|
34
|
+
# Yarn Integrity file
|
35
|
+
.yarn-integrity
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bridgetown-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|