bridgetown-core 0.15.0.beta3 → 0.15.0.beta4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|