bridgetown-core 1.0.0.alpha8 → 1.0.0.alpha9
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/.rubocop.yml +1 -0
- data/bin/bridgetown +8 -1
- data/bridgetown-core.gemspec +1 -1
- data/lib/bridgetown-core/commands/concerns/configuration_overridable.rb +7 -0
- data/lib/bridgetown-core/commands/console.rb +38 -12
- data/lib/bridgetown-core/commands/doctor.rb +8 -5
- data/lib/bridgetown-core/converters/serbea_templates.rb +71 -0
- data/lib/bridgetown-core/liquid_renderer/file_system.rb +1 -3
- data/lib/bridgetown-core/version.rb +1 -1
- data/lib/bridgetown-core.rb +0 -1
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 913ec78ef91ecd5b8e9f56777878f68bcb31625c9af575597bf56a0bf025f252
|
4
|
+
data.tar.gz: f1e4b3292c9f4edf1ebf0318ba2d2751d0b220dc7346536014d4328772cb1879
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8affaf97ca29c3e093bf0562259bd9d878ccc216ba63a52ceb3388cfd735b92a32add0dadb8a2b748b7ba416c5a9167c0f6983dc5705b9622fbac445f4fd352
|
7
|
+
data.tar.gz: 56917b674308b501407ab2a4eb7882cc679794e895291db31f4bc80724c1d1e8cbcabd25b86784300e91b0ec3a0cc80bc8789f01730615965fe4b267b8a6570f
|
data/.rubocop.yml
CHANGED
data/bin/bridgetown
CHANGED
@@ -19,11 +19,18 @@ Bridgetown::PluginManager.require_from_bundler
|
|
19
19
|
# TODO: need to change behavior of Colorator gem
|
20
20
|
ENV["THOR_SHELL"] = "Basic" if ENV["NO_COLOR"]
|
21
21
|
|
22
|
-
output_version = if ARGV[0] == "-v"
|
22
|
+
output_version = if ARGV[0] == "-v" || ARGV[0] == "--version"
|
23
23
|
puts "bridgetown #{Bridgetown::VERSION} \"#{Bridgetown::CODE_NAME}\""
|
24
24
|
true
|
25
25
|
end
|
26
26
|
|
27
|
+
if env_index = ARGV.index { |arg| arg == "-e" } # rubocop:disable Lint/AssignmentInCondition
|
28
|
+
env = ARGV[env_index + 1]
|
29
|
+
ENV["BRIDGETOWN_ENV"] = env if env
|
30
|
+
elsif env_flag = ARGV.find { |arg| arg.start_with?("--environment=") } # rubocop:disable Lint/AssignmentInCondition
|
31
|
+
ENV["BRIDGETOWN_ENV"] = env_flag.split("=").last
|
32
|
+
end
|
33
|
+
|
27
34
|
ENV["RACK_ENV"] = ENV["BRIDGETOWN_ENV"]
|
28
35
|
|
29
36
|
require "bridgetown-core/commands/base"
|
data/bridgetown-core.gemspec
CHANGED
@@ -43,12 +43,12 @@ Gem::Specification.new do |s|
|
|
43
43
|
s.add_runtime_dependency("kramdown", "~> 2.1")
|
44
44
|
s.add_runtime_dependency("kramdown-parser-gfm", "~> 1.0")
|
45
45
|
s.add_runtime_dependency("liquid", "~> 5.0")
|
46
|
-
s.add_runtime_dependency("liquid-component", ">= 0.1")
|
47
46
|
s.add_runtime_dependency("listen", "~> 3.0")
|
48
47
|
s.add_runtime_dependency("rack-indifferent", ">= 1.2.0")
|
49
48
|
s.add_runtime_dependency("rake", ">= 13.0")
|
50
49
|
s.add_runtime_dependency("roda", "~> 3.46")
|
51
50
|
s.add_runtime_dependency("rouge", "~> 3.0")
|
51
|
+
s.add_runtime_dependency("serbea", "~> 1.0")
|
52
52
|
s.add_runtime_dependency("terminal-table", "~> 1.8")
|
53
53
|
s.add_runtime_dependency("thor", "~> 1.1")
|
54
54
|
s.add_runtime_dependency("tilt", "~> 2.0")
|
@@ -3,6 +3,13 @@
|
|
3
3
|
module Bridgetown
|
4
4
|
module Commands
|
5
5
|
module ConfigurationOverridable
|
6
|
+
def self.included(klass)
|
7
|
+
desc = "The environment used for this command (aka development, test, production, etc.)"
|
8
|
+
klass.class_option :environment,
|
9
|
+
aliases: "-e",
|
10
|
+
desc: desc
|
11
|
+
end
|
12
|
+
|
6
13
|
# Create a full Bridgetown configuration with the options passed in as overrides
|
7
14
|
#
|
8
15
|
# options - the configuration overrides
|
@@ -1,6 +1,38 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Bridgetown
|
4
|
+
module ConsoleMethods
|
5
|
+
def site
|
6
|
+
Bridgetown::Current.site
|
7
|
+
end
|
8
|
+
|
9
|
+
def collections
|
10
|
+
site.collections
|
11
|
+
end
|
12
|
+
|
13
|
+
def reload!
|
14
|
+
Bridgetown.logger.info "Reloading site..."
|
15
|
+
|
16
|
+
I18n.reload! # make sure any locale files get read again
|
17
|
+
Bridgetown::Hooks.trigger :site, :pre_reload, site
|
18
|
+
Bridgetown::Hooks.clear_reloadable_hooks
|
19
|
+
site.plugin_manager.reload_plugin_files
|
20
|
+
site.loaders_manager.reload_loaders
|
21
|
+
|
22
|
+
ConsoleMethods.site_reset(site)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.site_reset(site)
|
26
|
+
site.reset
|
27
|
+
Bridgetown.logger.info "Reading files..."
|
28
|
+
site.read
|
29
|
+
Bridgetown.logger.info "", "done!"
|
30
|
+
Bridgetown.logger.info "Running generators..."
|
31
|
+
site.generate
|
32
|
+
Bridgetown.logger.info "", "done!"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
4
36
|
module Commands
|
5
37
|
class Console < Thor::Group
|
6
38
|
extend Summarizable
|
@@ -37,24 +69,18 @@ module Bridgetown
|
|
37
69
|
Bridgetown.logger.info "Environment:", Bridgetown.environment.cyan
|
38
70
|
site = Bridgetown::Site.new(configuration_with_overrides(options))
|
39
71
|
|
40
|
-
unless options[:blank]
|
41
|
-
site.reset
|
42
|
-
Bridgetown.logger.info "Reading files..."
|
43
|
-
site.read
|
44
|
-
Bridgetown.logger.info "", "done!"
|
45
|
-
Bridgetown.logger.info "Running generators..."
|
46
|
-
site.generate
|
47
|
-
Bridgetown.logger.info "", "done!"
|
48
|
-
end
|
72
|
+
ConsoleMethods.site_reset(site) unless options[:blank]
|
49
73
|
|
50
|
-
|
74
|
+
IRB::ExtendCommandBundle.include ConsoleMethods
|
51
75
|
IRB.setup(nil)
|
52
76
|
workspace = IRB::WorkSpace.new
|
53
77
|
irb = IRB::Irb.new(workspace)
|
54
78
|
IRB.conf[:IRB_RC]&.call(irb.context)
|
55
79
|
IRB.conf[:MAIN_CONTEXT] = irb.context
|
56
|
-
|
57
|
-
Bridgetown.logger.info "
|
80
|
+
Bridgetown.logger.info "Console:", "Your site is now available as #{"site".cyan}"
|
81
|
+
Bridgetown.logger.info "",
|
82
|
+
"You can also access #{"collections".cyan} or perform a" \
|
83
|
+
" #{"reload!".cyan}"
|
58
84
|
|
59
85
|
trap("SIGINT") do
|
60
86
|
irb.signal_handle
|
@@ -57,8 +57,7 @@ module Bridgetown
|
|
57
57
|
def conflicting_urls(site)
|
58
58
|
conflicting_urls = false
|
59
59
|
urls = {}
|
60
|
-
urls = collect_urls(urls, site.
|
61
|
-
urls = collect_urls(urls, site.collections.posts.docs, site.dest)
|
60
|
+
urls = collect_urls(urls, site.contents, site.dest)
|
62
61
|
urls.each do |url, paths|
|
63
62
|
next unless paths.size > 1
|
64
63
|
|
@@ -98,7 +97,11 @@ module Bridgetown
|
|
98
97
|
|
99
98
|
def collect_urls(urls, things, destination)
|
100
99
|
things.each do |thing|
|
101
|
-
dest = thing.
|
100
|
+
dest = if thing.method(:destination).arity == 1
|
101
|
+
thing.destination(destination)
|
102
|
+
else
|
103
|
+
thing.destination
|
104
|
+
end
|
102
105
|
if urls[dest]
|
103
106
|
urls[dest] << thing.path
|
104
107
|
else
|
@@ -110,8 +113,8 @@ module Bridgetown
|
|
110
113
|
|
111
114
|
def case_insensitive_urls(things, _destination)
|
112
115
|
things.each_with_object({}) do |thing, memo|
|
113
|
-
dest = thing.destination
|
114
|
-
(memo[dest.downcase] ||= []) << dest
|
116
|
+
dest = thing.destination&.output_path
|
117
|
+
(memo[dest.downcase] ||= []) << dest if dest
|
115
118
|
end
|
116
119
|
end
|
117
120
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "serbea"
|
4
|
+
require "rouge/lexers/serbea"
|
5
|
+
|
6
|
+
module Bridgetown
|
7
|
+
class SerbeaView < ERBView
|
8
|
+
include Serbea::Helpers
|
9
|
+
|
10
|
+
def partial(partial_name, options = {}, &block)
|
11
|
+
options.merge!(options[:locals]) if options[:locals]
|
12
|
+
options[:content] = capture(&block) if block
|
13
|
+
|
14
|
+
partial_segments = partial_name.split("/")
|
15
|
+
partial_segments.last.sub!(%r!^!, "_")
|
16
|
+
partial_name = partial_segments.join("/")
|
17
|
+
|
18
|
+
Tilt::SerbeaTemplate.new(
|
19
|
+
site.in_source_dir(site.config[:partials_dir], "#{partial_name}.serb")
|
20
|
+
).render(self, options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module Converters
|
25
|
+
class SerbeaTemplates < Converter
|
26
|
+
priority :highest
|
27
|
+
input :serb
|
28
|
+
|
29
|
+
# Logic to do the Serbea content conversion.
|
30
|
+
#
|
31
|
+
# @param content [String] Content of the file (without front matter).
|
32
|
+
# @param convertible [
|
33
|
+
# Bridgetown::GeneratedPage, Bridgetown::Resource::Base, Bridgetown::Layout]
|
34
|
+
# The instantiated object which is processing the file.
|
35
|
+
#
|
36
|
+
# @return [String] The converted content.
|
37
|
+
def convert(content, convertible)
|
38
|
+
return content if convertible.data[:template_engine].to_s != "serbea"
|
39
|
+
|
40
|
+
serb_view = Bridgetown::SerbeaView.new(convertible)
|
41
|
+
|
42
|
+
serb_renderer = Tilt::SerbeaTemplate.new(convertible.relative_path) { content }
|
43
|
+
|
44
|
+
if convertible.is_a?(Bridgetown::Layout)
|
45
|
+
serb_renderer.render(serb_view) do
|
46
|
+
convertible.current_document_output
|
47
|
+
end
|
48
|
+
else
|
49
|
+
serb_renderer.render(serb_view)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def matches(ext, convertible)
|
54
|
+
if convertible.data[:template_engine].to_s == "serbea" ||
|
55
|
+
(convertible.data[:template_engine].nil? &&
|
56
|
+
@config[:template_engine].to_s == "serbea")
|
57
|
+
convertible.data[:template_engine] = "serbea"
|
58
|
+
return true
|
59
|
+
end
|
60
|
+
|
61
|
+
super(ext).tap do |ext_matches|
|
62
|
+
convertible.data[:template_engine] = "serbea" if ext_matches
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def output_ext(ext)
|
67
|
+
ext == ".serb" ? ".html" : ext
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -31,9 +31,7 @@ module Bridgetown
|
|
31
31
|
raise Liquid::FileSystemError, "No such template '#{template_path}'" if found_paths.empty?
|
32
32
|
|
33
33
|
# Last path in the list wins
|
34
|
-
|
35
|
-
::File.read(found_paths.last, **site.file_read_opts)
|
36
|
-
).content
|
34
|
+
::File.read(found_paths.last, **site.file_read_opts)
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|
data/lib/bridgetown-core.rb
CHANGED
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: 1.0.0.
|
4
|
+
version: 1.0.0.alpha9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -192,20 +192,6 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '5.0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: liquid-component
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0.1'
|
202
|
-
type: :runtime
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0.1'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: listen
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,6 +262,20 @@ dependencies:
|
|
276
262
|
- - "~>"
|
277
263
|
- !ruby/object:Gem::Version
|
278
264
|
version: '3.0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: serbea
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - "~>"
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '1.0'
|
272
|
+
type: :runtime
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - "~>"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '1.0'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: terminal-table
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -418,6 +418,7 @@ files:
|
|
418
418
|
- lib/bridgetown-core/converters/markdown.rb
|
419
419
|
- lib/bridgetown-core/converters/markdown/kramdown_parser.rb
|
420
420
|
- lib/bridgetown-core/converters/ruby_templates.rb
|
421
|
+
- lib/bridgetown-core/converters/serbea_templates.rb
|
421
422
|
- lib/bridgetown-core/converters/smartypants.rb
|
422
423
|
- lib/bridgetown-core/core_ext/psych.rb
|
423
424
|
- lib/bridgetown-core/current.rb
|