bridgetown-core 1.0.0.alpha1 → 1.0.0.alpha2
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 +35 -0
- data/Rakefile +5 -5
- data/lib/bridgetown-core/cache.rb +3 -5
- data/lib/bridgetown-core/cleaner.rb +2 -2
- data/lib/bridgetown-core/collection.rb +4 -6
- data/lib/bridgetown-core/commands/base.rb +4 -3
- data/lib/bridgetown-core/commands/build.rb +20 -19
- data/lib/bridgetown-core/commands/concerns/actions.rb +2 -2
- data/lib/bridgetown-core/commands/console.rb +3 -3
- data/lib/bridgetown-core/commands/doctor.rb +10 -8
- data/lib/bridgetown-core/commands/new.rb +5 -3
- data/lib/bridgetown-core/commands/plugins.rb +7 -9
- data/lib/bridgetown-core/commands/serve/servlet.rb +4 -4
- data/lib/bridgetown-core/commands/serve.rb +25 -27
- data/lib/bridgetown-core/commands/webpack.rb +1 -1
- data/lib/bridgetown-core/component.rb +1 -5
- data/lib/bridgetown-core/concerns/site/configurable.rb +1 -1
- data/lib/bridgetown-core/concerns/site/content.rb +2 -2
- data/lib/bridgetown-core/concerns/site/extensible.rb +3 -4
- data/lib/bridgetown-core/concerns/site/localizable.rb +1 -1
- data/lib/bridgetown-core/concerns/site/ssr.rb +1 -1
- data/lib/bridgetown-core/concerns/site/writable.rb +1 -1
- data/lib/bridgetown-core/configuration.rb +1 -1
- data/lib/bridgetown-core/converter.rb +1 -0
- data/lib/bridgetown-core/converters/erb_templates.rb +1 -1
- data/lib/bridgetown-core/converters/markdown/kramdown_parser.rb +1 -1
- data/lib/bridgetown-core/converters/smartypants.rb +1 -0
- data/lib/bridgetown-core/drops/drop.rb +4 -4
- data/lib/bridgetown-core/entry_filter.rb +1 -0
- data/lib/bridgetown-core/filters/url_filters.rb +1 -1
- data/lib/bridgetown-core/filters.rb +11 -12
- data/lib/bridgetown-core/frontmatter_defaults.rb +5 -7
- data/lib/bridgetown-core/generated_page.rb +1 -3
- data/lib/bridgetown-core/generators/prototype_generator.rb +36 -37
- data/lib/bridgetown-core/helpers.rb +1 -1
- data/lib/bridgetown-core/hooks.rb +2 -2
- data/lib/bridgetown-core/liquid_renderer.rb +1 -3
- data/lib/bridgetown-core/log_adapter.rb +1 -1
- data/lib/bridgetown-core/log_writer.rb +1 -1
- data/lib/bridgetown-core/model/base.rb +2 -2
- data/lib/bridgetown-core/model/builder_origin.rb +1 -1
- data/lib/bridgetown-core/model/plugin_origin.rb +1 -1
- data/lib/bridgetown-core/plugin_manager.rb +2 -2
- data/lib/bridgetown-core/publisher.rb +1 -1
- data/lib/bridgetown-core/rack/routes.rb +1 -5
- data/lib/bridgetown-core/rack/static_indexes.rb +2 -2
- data/lib/bridgetown-core/readers/layout_reader.rb +2 -2
- data/lib/bridgetown-core/renderer.rb +1 -1
- data/lib/bridgetown-core/resource/base.rb +7 -7
- data/lib/bridgetown-core/resource/permalink_processor.rb +3 -2
- data/lib/bridgetown-core/resource/taxonomy_term.rb +1 -5
- data/lib/bridgetown-core/resource/transformer.rb +7 -5
- data/lib/bridgetown-core/ruby_template_view.rb +1 -3
- data/lib/bridgetown-core/static_file.rb +5 -7
- data/lib/bridgetown-core/tags/find.rb +6 -6
- data/lib/bridgetown-core/tags/highlight.rb +5 -5
- data/lib/bridgetown-core/tags/include.rb +22 -19
- data/lib/bridgetown-core/tags/post_url.rb +6 -6
- data/lib/bridgetown-core/tags/render_content.rb +2 -2
- data/lib/bridgetown-core/tasks/bridgetown_tasks.rake +1 -1
- data/lib/bridgetown-core/url.rb +3 -3
- data/lib/bridgetown-core/utils.rb +7 -9
- data/lib/bridgetown-core/version.rb +1 -1
- data/lib/bridgetown-core/watcher.rb +2 -2
- data/lib/bridgetown-core.rb +2 -1
- metadata +2 -1
@@ -11,12 +11,7 @@ module Bridgetown
|
|
11
11
|
|
12
12
|
def initialize(tag_name, markup, tokens)
|
13
13
|
super
|
14
|
-
|
15
|
-
@new_var_name = Regexp.last_match(1).strip
|
16
|
-
@single_or_group = Regexp.last_match(2)
|
17
|
-
@arr_name = Regexp.last_match(3).strip
|
18
|
-
@conditions = process_conditions(Regexp.last_match(4).strip)
|
19
|
-
else
|
14
|
+
unless markup.strip =~ SYNTAX
|
20
15
|
raise SyntaxError, <<~MSG
|
21
16
|
Syntax Error in tag 'find' while parsing the following markup:
|
22
17
|
|
@@ -25,6 +20,11 @@ module Bridgetown
|
|
25
20
|
Valid syntax: find <varname> where|in <array>, <condition(s)>
|
26
21
|
MSG
|
27
22
|
end
|
23
|
+
|
24
|
+
@new_var_name = Regexp.last_match(1).strip
|
25
|
+
@single_or_group = Regexp.last_match(2)
|
26
|
+
@arr_name = Regexp.last_match(3).strip
|
27
|
+
@conditions = process_conditions(Regexp.last_match(4).strip)
|
28
28
|
end
|
29
29
|
|
30
30
|
def render(context)
|
@@ -14,10 +14,7 @@ module Bridgetown
|
|
14
14
|
|
15
15
|
def initialize(tag_name, markup, tokens)
|
16
16
|
super
|
17
|
-
|
18
|
-
@lang = Regexp.last_match(1).downcase
|
19
|
-
@highlight_options = parse_options(Regexp.last_match(2))
|
20
|
-
else
|
17
|
+
unless markup.strip =~ SYNTAX
|
21
18
|
raise SyntaxError, <<~MSG
|
22
19
|
Syntax Error in tag 'highlight' while parsing the following markup:
|
23
20
|
|
@@ -26,6 +23,9 @@ module Bridgetown
|
|
26
23
|
Valid syntax: highlight <lang> [linenos]
|
27
24
|
MSG
|
28
25
|
end
|
26
|
+
|
27
|
+
@lang = Regexp.last_match(1).downcase
|
28
|
+
@highlight_options = parse_options(Regexp.last_match(2))
|
29
29
|
end
|
30
30
|
|
31
31
|
LEADING_OR_TRAILING_LINE_TERMINATORS = %r!\A(\n|\r)+|(\n|\r)+\z!.freeze
|
@@ -89,7 +89,7 @@ module Bridgetown
|
|
89
89
|
"data-lang=\"#{@lang}\"",
|
90
90
|
].join(" ")
|
91
91
|
"<figure class=\"highlight\"><pre><code #{code_attributes}>"\
|
92
|
-
|
92
|
+
"#{code.chomp}</code></pre></figure>"
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
@@ -9,15 +9,18 @@ module Bridgetown
|
|
9
9
|
|
10
10
|
VALID_SYNTAX = %r!
|
11
11
|
([\w-]+)\s*=\s*
|
12
|
-
(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w
|
12
|
+
(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w.-]+))
|
13
13
|
!x.freeze
|
14
|
+
|
15
|
+
# rubocop:disable Lint/MixedRegexpCaptureTypes
|
14
16
|
VARIABLE_SYNTAX = %r!
|
15
|
-
(?<variable>[^{]*(\{\{\s*[\w
|
17
|
+
(?<variable>[^{]*(\{\{\s*[\w\-.]+\s*(\|.*)?\}\}[^\s{}]*)+)
|
16
18
|
(?<params>.*)
|
17
19
|
!mx.freeze
|
20
|
+
# rubocop:enable Lint/MixedRegexpCaptureTypes
|
18
21
|
|
19
22
|
FULL_VALID_SYNTAX = %r!\A\s*(?:#{VALID_SYNTAX}(?=\s|\z)\s*)*\z!.freeze
|
20
|
-
VALID_FILENAME_CHARS = %r!^[\w
|
23
|
+
VALID_FILENAME_CHARS = %r!^[\w/.-]+$!.freeze
|
21
24
|
INVALID_SEQUENCES = %r![./]{2,}!.freeze
|
22
25
|
|
23
26
|
def initialize(tag_name, markup, tokens)
|
@@ -66,33 +69,33 @@ module Bridgetown
|
|
66
69
|
end
|
67
70
|
|
68
71
|
def validate_file_name(file)
|
69
|
-
|
70
|
-
raise ArgumentError, <<~MSG
|
71
|
-
Invalid syntax for include tag. File contains invalid characters or sequences:
|
72
|
+
return unless INVALID_SEQUENCES.match?(file) || !VALID_FILENAME_CHARS.match?(file)
|
72
73
|
|
73
|
-
|
74
|
+
raise ArgumentError, <<~MSG
|
75
|
+
Invalid syntax for include tag. File contains invalid characters or sequences:
|
74
76
|
|
75
|
-
|
77
|
+
#{file}
|
76
78
|
|
77
|
-
|
79
|
+
Valid syntax:
|
78
80
|
|
79
|
-
|
80
|
-
|
81
|
+
#{syntax_example}
|
82
|
+
|
83
|
+
MSG
|
81
84
|
end
|
82
85
|
|
83
86
|
def validate_params
|
84
|
-
|
85
|
-
raise ArgumentError, <<~MSG
|
86
|
-
Invalid syntax for include tag:
|
87
|
+
return if FULL_VALID_SYNTAX.match?(@params)
|
87
88
|
|
88
|
-
|
89
|
+
raise ArgumentError, <<~MSG
|
90
|
+
Invalid syntax for include tag:
|
89
91
|
|
90
|
-
|
92
|
+
#{@params}
|
91
93
|
|
92
|
-
|
94
|
+
Valid syntax:
|
93
95
|
|
94
|
-
|
95
|
-
|
96
|
+
#{syntax_example}
|
97
|
+
|
98
|
+
MSG
|
96
99
|
end
|
97
100
|
|
98
101
|
# Grab file read opts in the context
|
@@ -74,19 +74,19 @@ module Bridgetown
|
|
74
74
|
|
75
75
|
site.collections.posts.resources.each do |document|
|
76
76
|
return relative_url(document) if @post == document
|
77
|
-
end
|
78
|
-
|
79
|
-
# New matching method did not match, fall back to old method
|
80
|
-
# with deprecation warning if this matches
|
81
77
|
|
82
|
-
|
78
|
+
# New matching method did not match, fall back to old method
|
79
|
+
# with deprecation warning if this matches
|
83
80
|
next unless @post.deprecated_equality document
|
84
81
|
|
85
|
-
Bridgetown::Deprecator.deprecation_message
|
82
|
+
Bridgetown::Deprecator.deprecation_message(
|
83
|
+
"A call to "\
|
86
84
|
"'{% post_url #{@post.name} %}' did not match " \
|
87
85
|
"a post using the new matching method of checking name " \
|
88
86
|
"(path-date-slug) equality. Please make sure that you " \
|
89
87
|
"change this tag to match the post's name exactly."
|
88
|
+
)
|
89
|
+
|
90
90
|
return relative_url(document)
|
91
91
|
end
|
92
92
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Bridgetown
|
4
4
|
module Tags
|
5
5
|
class BlockRenderTag < Liquid::Block
|
6
|
-
# rubocop:disable Metrics/MethodLength
|
6
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
7
7
|
def render(context)
|
8
8
|
context.stack({}) do
|
9
9
|
# unindent the incoming text
|
@@ -37,7 +37,7 @@ module Bridgetown
|
|
37
37
|
.render_tag(context, +"")
|
38
38
|
end
|
39
39
|
end
|
40
|
-
# rubocop:enable Metrics/MethodLength
|
40
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
41
41
|
|
42
42
|
private
|
43
43
|
|
@@ -23,7 +23,7 @@ end
|
|
23
23
|
|
24
24
|
desc "Prerequisite task which loads site and provides automation"
|
25
25
|
task :environment do
|
26
|
-
class HammerActions < Thor
|
26
|
+
class HammerActions < Thor # rubocop:disable Lint/ConstantDefinitionInBlock
|
27
27
|
include Thor::Actions
|
28
28
|
include Bridgetown::Commands::Actions
|
29
29
|
|
data/lib/bridgetown-core/url.rb
CHANGED
@@ -28,9 +28,9 @@ module Bridgetown
|
|
28
28
|
@placeholders = options[:placeholders] || {}
|
29
29
|
@permalink = options[:permalink]
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
return unless (@template || @permalink).nil?
|
32
|
+
|
33
|
+
raise ArgumentError, "One of :template or :permalink must be supplied."
|
34
34
|
end
|
35
35
|
|
36
36
|
# The generated relative URL of the resource
|
@@ -12,7 +12,7 @@ module Bridgetown
|
|
12
12
|
|
13
13
|
# Constants for use in #slugify
|
14
14
|
SLUGIFY_MODES = %w(raw default pretty simple ascii latin).freeze
|
15
|
-
SLUGIFY_RAW_REGEXP = Regexp.new(
|
15
|
+
SLUGIFY_RAW_REGEXP = Regexp.new("\\s+").freeze
|
16
16
|
SLUGIFY_DEFAULT_REGEXP = Regexp.new("[^\\p{M}\\p{L}\\p{Nd}]+").freeze
|
17
17
|
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^\\p{M}\\p{L}\\p{Nd}._~!$&'()+,;=@]+").freeze
|
18
18
|
SLUGIFY_ASCII_REGEXP = Regexp.new("[^[A-Za-z0-9]]+").freeze
|
@@ -203,7 +203,7 @@ module Bridgetown
|
|
203
203
|
slug = replace_character_sequence_with_hyphen(string, mode: mode)
|
204
204
|
|
205
205
|
# Remove leading/trailing hyphen
|
206
|
-
slug.gsub!(%r
|
206
|
+
slug.gsub!(%r!^-|-$!i, "")
|
207
207
|
|
208
208
|
slug.downcase! unless cased
|
209
209
|
|
@@ -316,9 +316,7 @@ module Bridgetown
|
|
316
316
|
lines.map do |line|
|
317
317
|
continue_processing = !skip_pre_lines
|
318
318
|
|
319
|
-
if skip_pre_lines
|
320
|
-
skip_pre_lines = false if line.include?("</pre>")
|
321
|
-
end
|
319
|
+
skip_pre_lines = false if skip_pre_lines && line.include?("</pre>")
|
322
320
|
if line.include?("<pre")
|
323
321
|
skip_pre_lines = true
|
324
322
|
continue_processing = false
|
@@ -340,7 +338,7 @@ module Bridgetown
|
|
340
338
|
else
|
341
339
|
line
|
342
340
|
end
|
343
|
-
end.join
|
341
|
+
end.join
|
344
342
|
end
|
345
343
|
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
|
346
344
|
|
@@ -448,9 +446,9 @@ module Bridgetown
|
|
448
446
|
end
|
449
447
|
|
450
448
|
def merge_default_proc(target, overwrite)
|
451
|
-
|
452
|
-
|
453
|
-
|
449
|
+
return unless target.is_a?(Hash) && overwrite.is_a?(Hash) && target.default_proc.nil?
|
450
|
+
|
451
|
+
target.default_proc = overwrite.default_proc
|
454
452
|
end
|
455
453
|
|
456
454
|
def duplicate_frozen_values(target)
|
@@ -116,7 +116,7 @@ module Bridgetown
|
|
116
116
|
rescue ArgumentError
|
117
117
|
# Could not find a relative path
|
118
118
|
end
|
119
|
-
end.compact + [%r!^\.bridgetown
|
119
|
+
end.compact + [%r!^\.bridgetown-metadata!]
|
120
120
|
end
|
121
121
|
|
122
122
|
def sleep_forever
|
@@ -132,7 +132,7 @@ module Bridgetown
|
|
132
132
|
site.plugin_manager.reload_component_loaders
|
133
133
|
site.process
|
134
134
|
Bridgetown.logger.info "Done! 🎉", "#{"Completed".green} in less than" \
|
135
|
-
|
135
|
+
" #{(Time.now - time).ceil(2)} seconds."
|
136
136
|
rescue Exception => e
|
137
137
|
Bridgetown.logger.error "Error:", e.message
|
138
138
|
|
data/lib/bridgetown-core.rb
CHANGED
@@ -249,12 +249,13 @@ end
|
|
249
249
|
|
250
250
|
module Bridgetown
|
251
251
|
module Model; end
|
252
|
+
|
252
253
|
module Resource
|
253
254
|
def self.register_extension(mod)
|
254
255
|
if mod.const_defined?(:LiquidResource)
|
255
256
|
Bridgetown::Drops::ResourceDrop.include mod.const_get(:LiquidResource)
|
256
257
|
end
|
257
|
-
if mod.const_defined?(:RubyResource)
|
258
|
+
if mod.const_defined?(:RubyResource) # rubocop:disable Style/GuardClause
|
258
259
|
Bridgetown::Resource::Base.include mod.const_get(:RubyResource)
|
259
260
|
end
|
260
261
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.alpha2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
@@ -340,6 +340,7 @@ executables:
|
|
340
340
|
extensions: []
|
341
341
|
extra_rdoc_files: []
|
342
342
|
files:
|
343
|
+
- ".rubocop.yml"
|
343
344
|
- ".yardopts"
|
344
345
|
- Rakefile
|
345
346
|
- bin/bridgetown
|