bridgetown-core 0.15.0.beta3 → 0.15.0.beta4
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 +4 -4
- data/bridgetown-core.gemspec +1 -0
- data/lib/bridgetown-core/commands/concerns/actions.rb +28 -23
- data/lib/bridgetown-core/commands/console.rb +12 -2
- data/lib/bridgetown-core/commands/serve.rb +5 -0
- data/lib/bridgetown-core/drops/document_drop.rb +9 -1
- data/lib/bridgetown-core/page.rb +1 -1
- data/lib/bridgetown-core/plugin_manager.rb +4 -3
- data/lib/bridgetown-core/tags/include.rb +2 -0
- data/lib/bridgetown-core/tags/render_content.rb +11 -1
- data/lib/bridgetown-core/version.rb +1 -1
- data/lib/site_template/bridgetown.config.yml +5 -3
- data/lib/site_template/src/_components/{footer.html → footer.liquid} +0 -0
- data/lib/site_template/src/_components/{head.html → head.liquid} +0 -0
- data/lib/site_template/src/_components/{navbar.html → navbar.liquid} +0 -0
- data/lib/site_template/src/_layouts/default.html +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71735e11ccbfa90136e92df69397f7c27555e846a509064e5ec44640e34a807f
|
4
|
+
data.tar.gz: 81f2e343ca9b675dbbc15877129d3c3a1d1e410f020d006fbbcf7ba3032a56a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96f9dd7c20e611506bacc39b87bc74bef99281f98e08fb16f05a14b2f7d3e08da8929fe9036146cce3ebdc98cf5aad3466ab6c45f34853a5af7c8c0411827155
|
7
|
+
data.tar.gz: be4dbaa9575a318e31555f9a1d591090fa7c12d4a3a6e53d59d1b3f92783ed910bf62db97c36c6bb1dc3f4acdbf3a2b45991b37fea5be0fd395ae72b86ea62af
|
data/bridgetown-core.gemspec
CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
|
34
34
|
s.add_runtime_dependency("activesupport", "~> 6.0")
|
35
35
|
s.add_runtime_dependency("addressable", "~> 2.4")
|
36
|
+
s.add_runtime_dependency("awesome_print", "~> 1.8")
|
36
37
|
s.add_runtime_dependency("colorator", "~> 1.0")
|
37
38
|
s.add_runtime_dependency("faraday", "~> 1.0")
|
38
39
|
s.add_runtime_dependency("faraday_middleware", "~> 1.0")
|
@@ -8,6 +8,10 @@ require "active_support/core_ext/string/indent"
|
|
8
8
|
module Bridgetown
|
9
9
|
module Commands
|
10
10
|
module Actions
|
11
|
+
GITHUB_REGEX = %r!https://github\.com!.freeze
|
12
|
+
GITHUB_TREE_REGEX = %r!#{GITHUB_REGEX}/.*/.*/tree/.*/?!.freeze
|
13
|
+
GITHUB_BLOB_REGEX = %r!#{GITHUB_REGEX}/.*/.*/blob/!.freeze
|
14
|
+
|
11
15
|
def create_builder(filename, data = nil)
|
12
16
|
say_status :create_builder, filename
|
13
17
|
data ||= yield if block_given?
|
@@ -89,35 +93,36 @@ module Bridgetown
|
|
89
93
|
end
|
90
94
|
|
91
95
|
# TODO: option to download and confirm remote automation?
|
96
|
+
# rubocop:disable Metrics/MethodLength
|
92
97
|
def transform_automation_url(arg)
|
93
98
|
return arg unless arg.start_with?("http")
|
94
99
|
|
95
100
|
remote_file = determine_remote_filename(arg)
|
101
|
+
github_match = GITHUB_REGEX.match(arg)
|
102
|
+
|
103
|
+
arg = if arg.start_with?("https://gist.github.com")
|
104
|
+
arg.sub(
|
105
|
+
"https://gist.github.com", "https://gist.githubusercontent.com"
|
106
|
+
) + "/raw"
|
107
|
+
elsif github_match
|
108
|
+
new_url = arg.sub(GITHUB_REGEX, "https://raw.githubusercontent.com")
|
109
|
+
github_tree_match = GITHUB_TREE_REGEX.match(arg)
|
110
|
+
github_blob_match = GITHUB_BLOB_REGEX.match(arg)
|
111
|
+
|
112
|
+
if github_tree_match
|
113
|
+
new_url.sub("/tree/", "/")
|
114
|
+
elsif github_blob_match
|
115
|
+
new_url.sub("/blob/", "/")
|
116
|
+
else
|
117
|
+
"#{new_url}/master"
|
118
|
+
end
|
119
|
+
else
|
120
|
+
arg
|
121
|
+
end
|
96
122
|
|
97
|
-
|
98
|
-
github_tree_regex = %r!#{github_regex}/.*/.*/tree/.*/?!
|
99
|
-
|
100
|
-
github_match = github_regex.match(arg)
|
101
|
-
github_tree_match = github_tree_regex.match(arg)
|
102
|
-
|
103
|
-
if arg.start_with?("https://gist.github.com")
|
104
|
-
return arg.sub(
|
105
|
-
"https://gist.github.com", "https://gist.githubusercontent.com"
|
106
|
-
) + "/raw/#{remote_file}"
|
107
|
-
elsif github_match
|
108
|
-
new_url = arg.sub(github_regex, "https://raw.githubusercontent.com")
|
109
|
-
|
110
|
-
if github_tree_match
|
111
|
-
new_url = new_url.sub("/tree/", "/")
|
112
|
-
else
|
113
|
-
new_url += "/master"
|
114
|
-
end
|
115
|
-
|
116
|
-
return "#{new_url}/#{remote_file}"
|
117
|
-
end
|
118
|
-
|
119
|
-
arg + "/#{remote_file}"
|
123
|
+
"#{arg}/#{remote_file}"
|
120
124
|
end
|
125
|
+
# rubocop:enable Metrics/MethodLength
|
121
126
|
end
|
122
127
|
end
|
123
128
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "irb"
|
4
|
-
|
5
3
|
module Bridgetown
|
6
4
|
module Commands
|
7
5
|
class Console < Thor::Group
|
@@ -21,11 +19,17 @@ module Bridgetown
|
|
21
19
|
type: :array,
|
22
20
|
banner: "FILE1 FILE2",
|
23
21
|
desc: "Custom configuration file(s)"
|
22
|
+
class_option :"bypass-ap",
|
23
|
+
type: :boolean,
|
24
|
+
desc: "Don't load AwesomePrint when IRB opens"
|
24
25
|
class_option :blank,
|
25
26
|
type: :boolean,
|
26
27
|
desc: "Skip reading content and running generators before opening console"
|
27
28
|
|
28
29
|
def console
|
30
|
+
require "irb"
|
31
|
+
require "awesome_print" unless options[:"bypass-ap"]
|
32
|
+
|
29
33
|
Bridgetown.logger.info "Starting:", "Bridgetown v#{Bridgetown::VERSION.magenta}" \
|
30
34
|
" (codename \"#{Bridgetown::CODE_NAME.yellow}\")" \
|
31
35
|
" console…"
|
@@ -56,6 +60,12 @@ module Bridgetown
|
|
56
60
|
|
57
61
|
begin
|
58
62
|
catch(:IRB_EXIT) do
|
63
|
+
unless options[:"bypass-ap"]
|
64
|
+
AwesomePrint.defaults = {
|
65
|
+
indent: 2,
|
66
|
+
}
|
67
|
+
AwesomePrint.irb!
|
68
|
+
end
|
59
69
|
irb.eval_input
|
60
70
|
end
|
61
71
|
end
|
@@ -29,6 +29,11 @@ module Bridgetown
|
|
29
29
|
class_option :skip_initial_build,
|
30
30
|
type: :boolean,
|
31
31
|
desc: "Skips the initial site build which occurs before the server is started."
|
32
|
+
class_option :watch,
|
33
|
+
type: :boolean,
|
34
|
+
aliases: "-w",
|
35
|
+
default: true,
|
36
|
+
desc: "Watch for changes and rebuild"
|
32
37
|
|
33
38
|
def self.banner
|
34
39
|
"bridgetown serve [options]"
|
@@ -12,7 +12,15 @@ module Bridgetown
|
|
12
12
|
mutable false
|
13
13
|
|
14
14
|
def_delegator :@obj, :relative_path, :path
|
15
|
-
def_delegators :@obj,
|
15
|
+
def_delegators :@obj,
|
16
|
+
:id,
|
17
|
+
:output,
|
18
|
+
:content,
|
19
|
+
:to_s,
|
20
|
+
:relative_path,
|
21
|
+
:url,
|
22
|
+
:date,
|
23
|
+
:related_posts
|
16
24
|
|
17
25
|
private def_delegator :@obj, :data, :fallback_data
|
18
26
|
|
data/lib/bridgetown-core/page.rb
CHANGED
@@ -165,7 +165,7 @@ module Bridgetown
|
|
165
165
|
|
166
166
|
# The path to the page source file, relative to the site source
|
167
167
|
def relative_path
|
168
|
-
@relative_path ||= File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)).
|
168
|
+
@relative_path ||= File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)).delete_prefix("/")
|
169
169
|
end
|
170
170
|
|
171
171
|
# Obtain destination path.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module Bridgetown
|
4
4
|
class PluginManager
|
5
5
|
PLUGINS_GROUP = :bridgetown_plugins
|
6
|
+
YARN_DEPENDENCY_REGEXP = %r!(.+)@([^@]*)$!.freeze
|
6
7
|
|
7
8
|
attr_reader :site
|
8
9
|
|
@@ -83,10 +84,10 @@ module Bridgetown
|
|
83
84
|
end
|
84
85
|
|
85
86
|
def self.find_yarn_dependency(loaded_gem)
|
86
|
-
yarn_dependency = loaded_gem.to_spec&.metadata&.dig("yarn-add")&.
|
87
|
-
return nil if yarn_dependency&.length != 2
|
87
|
+
yarn_dependency = loaded_gem.to_spec&.metadata&.dig("yarn-add")&.match(YARN_DEPENDENCY_REGEXP)
|
88
|
+
return nil if yarn_dependency&.length != 3 || yarn_dependency[2] == ""
|
88
89
|
|
89
|
-
yarn_dependency
|
90
|
+
yarn_dependency[1..2]
|
90
91
|
end
|
91
92
|
|
92
93
|
def self.add_yarn_dependency?(yarn_dependency, package_json)
|
@@ -212,7 +212,9 @@ module Bridgetown
|
|
212
212
|
else
|
213
213
|
File.join(site.config["collections_dir"], page_payload["path"])
|
214
214
|
end
|
215
|
+
# rubocop:disable Performance/DeleteSuffix
|
215
216
|
resource_path.sub!(%r!/#excerpt\z!, "")
|
217
|
+
# rubocop:enable Performance/DeleteSuffix
|
216
218
|
site.in_source_dir File.dirname(resource_path)
|
217
219
|
end
|
218
220
|
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module Bridgetown
|
4
4
|
module Tags
|
5
5
|
class BlockRenderTag < Liquid::Block
|
6
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
6
7
|
def render(context)
|
7
8
|
context.stack({}) do
|
8
9
|
# unindent the incoming text
|
@@ -19,7 +20,15 @@ module Bridgetown
|
|
19
20
|
unless regions.empty?
|
20
21
|
regions.each do |region_name, region_content|
|
21
22
|
region_name = region_name.sub("content_with_region_", "")
|
22
|
-
|
23
|
+
|
24
|
+
if region_name.end_with? ":markdown"
|
25
|
+
region_name.sub!(%r!:markdown$!, "")
|
26
|
+
context[region_name] = converter.convert(
|
27
|
+
Bridgetown::Utils.reindent_for_markdown(region_content)
|
28
|
+
)
|
29
|
+
else
|
30
|
+
context[region_name] = region_content
|
31
|
+
end
|
23
32
|
render_params.push "#{region_name}: #{region_name}"
|
24
33
|
end
|
25
34
|
end
|
@@ -28,6 +37,7 @@ module Bridgetown
|
|
28
37
|
.render_tag(context, +"")
|
29
38
|
end
|
30
39
|
end
|
40
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
31
41
|
|
32
42
|
private
|
33
43
|
|
@@ -10,12 +10,14 @@
|
|
10
10
|
# For reloadable site metadata like title, SEO description, social media
|
11
11
|
# handles, etc., take a look at src/_data/site_metadata.yml
|
12
12
|
#
|
13
|
-
# If you need help with YAML syntax, here are some quick references for you:
|
13
|
+
# If you need help with YAML syntax, here are some quick references for you:
|
14
14
|
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
15
15
|
# https://learnxinyminutes.com/docs/yaml/
|
16
16
|
#
|
17
17
|
|
18
18
|
baseurl: "" # OPTIONAL: the subpath of your site, e.g. /blog
|
19
|
-
url: "" # the base hostname & protocol for your site, e.g.
|
19
|
+
url: "" # the base hostname & protocol for your site, e.g. https://example.com
|
20
20
|
|
21
|
-
|
21
|
+
permalink: pretty
|
22
|
+
|
23
|
+
# timezone: America/Los_Angeles
|
File without changes
|
File without changes
|
File without changes
|
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.15.0.
|
4
|
+
version: 0.15.0.beta4
|
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-06-
|
11
|
+
date: 2020-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.4'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: awesome_print
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.8'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.8'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: colorator
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -370,9 +384,9 @@ files:
|
|
370
384
|
- lib/site_template/plugins/builders/.keep
|
371
385
|
- lib/site_template/plugins/site_builder.rb
|
372
386
|
- lib/site_template/src/404.html
|
373
|
-
- lib/site_template/src/_components/footer.
|
374
|
-
- lib/site_template/src/_components/head.
|
375
|
-
- lib/site_template/src/_components/navbar.
|
387
|
+
- lib/site_template/src/_components/footer.liquid
|
388
|
+
- lib/site_template/src/_components/head.liquid
|
389
|
+
- lib/site_template/src/_components/navbar.liquid
|
376
390
|
- lib/site_template/src/_data/site_metadata.yml
|
377
391
|
- lib/site_template/src/_layouts/default.html
|
378
392
|
- lib/site_template/src/_layouts/home.html
|