bridgetown-core 0.16.0 → 0.17.0

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: d35a1d7fa1834831d59b4b7dfd072d3cddfb8d152416b63686aa1bf477567394
4
- data.tar.gz: c3b2f423702f55e433709d11de4219f7ed76736f707b39aed0b22f09048b2804
3
+ metadata.gz: bd231215591b9251d63525c740620bf4cd6da0beb5e48abd420ce745355ac0bb
4
+ data.tar.gz: 82dff2c41efbac2e9ea4f60cc441f8665044c3c8e6576695a50db376951c5866
5
5
  SHA512:
6
- metadata.gz: 9c7799ef500f1d6b519e4f0ede9487c37bde860b12250c1bd39bfe66a348729e73aa7256e04f84fa310e6a82f5b0fcd6041026d4f1f16c8528808ea5331cd4d8
7
- data.tar.gz: 040dcffce2be2cdf189fd7dc1d5585f14a24975e5ee19b2e2d1aa88a09b4e011725727c127c3c2b690e09a79415e0d8edc9e5ce471d87b13b5cc3f4007cbbc50
6
+ metadata.gz: 4606e45f6a843e7de6e9e81c873cb5082ca958277631d83dd260b0eef64289e8c93259d771fee5501dd5c7ec92747d278faffbaf3802ee72457e300aee96714e
7
+ data.tar.gz: 82cd06e0dd5a11061d2c37d3defb8d57e381f4129abed12bd47fa4af8c2bbaee3372c3aac09fcf3b9b6fd92a8152dd458b79da710fc575c8e91096946e5ced87
@@ -33,7 +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
+ s.add_runtime_dependency("amazing_print", "~> 1.2")
37
37
  s.add_runtime_dependency("colorator", "~> 1.0")
38
38
  s.add_runtime_dependency("erubi", "~> 1.9")
39
39
  s.add_runtime_dependency("faraday", "~> 1.0")
@@ -68,6 +68,7 @@ module Bridgetown
68
68
  autoload :Cache, "bridgetown-core/cache"
69
69
  autoload :CollectionReader, "bridgetown-core/readers/collection_reader"
70
70
  autoload :DataReader, "bridgetown-core/readers/data_reader"
71
+ autoload :DefaultsReader, "bridgetown-core/readers/defaults_reader"
71
72
  autoload :LayoutReader, "bridgetown-core/readers/layout_reader"
72
73
  autoload :PostReader, "bridgetown-core/readers/post_reader"
73
74
  autoload :PageReader, "bridgetown-core/readers/page_reader"
@@ -21,14 +21,14 @@ module Bridgetown
21
21
  desc: "Custom configuration file(s)"
22
22
  class_option :"bypass-ap",
23
23
  type: :boolean,
24
- desc: "Don't load AwesomePrint when IRB opens"
24
+ desc: "Don't load AmazingPrint when IRB opens"
25
25
  class_option :blank,
26
26
  type: :boolean,
27
27
  desc: "Skip reading content and running generators before opening console"
28
28
 
29
29
  def console
30
30
  require "irb"
31
- require "awesome_print" unless options[:"bypass-ap"]
31
+ require "amazing_print" unless options[:"bypass-ap"]
32
32
 
33
33
  Bridgetown.logger.info "Starting:", "Bridgetown v#{Bridgetown::VERSION.magenta}" \
34
34
  " (codename \"#{Bridgetown::CODE_NAME.yellow}\")" \
@@ -61,10 +61,10 @@ module Bridgetown
61
61
  begin
62
62
  catch(:IRB_EXIT) do
63
63
  unless options[:"bypass-ap"]
64
- AwesomePrint.defaults = {
64
+ AmazingPrint.defaults = {
65
65
  indent: 2,
66
66
  }
67
- AwesomePrint.irb!
67
+ AmazingPrint.irb!
68
68
  end
69
69
  irb.eval_input
70
70
  end
@@ -37,6 +37,10 @@ module Bridgetown
37
37
  @config
38
38
  end
39
39
 
40
+ def defaults_reader
41
+ @defaults_reader ||= DefaultsReader.new(self)
42
+ end
43
+
40
44
  # Returns the current instance of {FrontmatterDefaults} or
41
45
  # creates a new instance {FrontmatterDefaults} if it doesn't already exist.
42
46
  #
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Site::Localizable
5
+ def locale
6
+ if @locale
7
+ @locale
8
+ else
9
+ @locale = ENV.fetch("BRIDGETOWN_LOCALE", config[:default_locale]).to_sym
10
+ I18n.load_path << Dir[in_source_dir("_locales") + "/*.yml"]
11
+ I18n.available_locales = config[:available_locales]
12
+ I18n.default_locale = @locale
13
+ end
14
+ end
15
+
16
+ def locale=(new_locale)
17
+ I18n.locale = @locale = new_locale.to_sym
18
+ end
19
+ end
20
+ end
@@ -17,8 +17,7 @@ module Bridgetown
17
17
  Bridgetown::Hooks.trigger :site, :post_render, self, payload
18
18
  end
19
19
 
20
- # Executes inline Ruby frontmatter if
21
- # +ENV+["BRIDGETOWN_RUBY_IN_FRONTMATTER"] equals "true"
20
+ # Executes inline Ruby frontmatter
22
21
  #
23
22
  # @example
24
23
  # calculation: !ruby/string:Rb |
@@ -35,7 +35,7 @@ module Bridgetown
35
35
  "limit_posts" => 0,
36
36
  "future" => false,
37
37
  "unpublished" => false,
38
- "ruby_in_front_matter" => true, # requires BRIDGETOWN_RUBY_IN_FRONT_MATTER == "true"
38
+ "ruby_in_front_matter" => true,
39
39
 
40
40
  # Conversion
41
41
  "markdown" => "kramdown",
@@ -52,6 +52,8 @@ module Bridgetown
52
52
  "show_dir_listing" => false,
53
53
 
54
54
  # Output Configuration
55
+ "available_locales" => ["en"],
56
+ "default_locale" => "en",
55
57
  "permalink" => "date",
56
58
  "timezone" => nil, # use the local timezone
57
59
 
@@ -276,7 +278,7 @@ module Bridgetown
276
278
  end
277
279
 
278
280
  def should_execute_inline_ruby?
279
- ENV["BRIDGETOWN_RUBY_IN_FRONT_MATTER"] == "true" &&
281
+ ENV["BRIDGETOWN_RUBY_IN_FRONT_MATTER"] != "false" &&
280
282
  self["ruby_in_front_matter"]
281
283
  end
282
284
 
@@ -8,7 +8,7 @@ module Bridgetown
8
8
  mutable false
9
9
 
10
10
  def_delegator :@obj, :data
11
- def_delegators :@obj, :time, :pages, :static_files, :tags, :categories
11
+ def_delegators :@obj, :locale, :time, :pages, :static_files, :tags, :categories
12
12
 
13
13
  private def_delegator :@obj, :config, :fallback_data
14
14
 
@@ -7,6 +7,7 @@ module Bridgetown
7
7
  include URLFilters
8
8
  include GroupingFilters
9
9
  include DateFilters
10
+ include ConditionHelpers
10
11
 
11
12
  # Convert a Markdown string into HTML output.
12
13
  #
@@ -423,54 +424,6 @@ module Bridgetown
423
424
  end
424
425
  end
425
426
  end
426
-
427
- # ----------- The following set of code was *adapted* from Liquid::If
428
- # ----------- ref: https://git.io/vp6K6
429
-
430
- # Parse a string to a Liquid Condition
431
- def parse_condition(exp)
432
- parser = Liquid::Parser.new(exp)
433
- condition = parse_binary_comparison(parser)
434
-
435
- parser.consume(:end_of_string)
436
- condition
437
- end
438
-
439
- # Generate a Liquid::Condition object from a Liquid::Parser object additionally processing
440
- # the parsed expression based on whether the expression consists of binary operations with
441
- # Liquid operators `and` or `or`
442
- #
443
- # - parser: an instance of Liquid::Parser
444
- #
445
- # Returns an instance of Liquid::Condition
446
- def parse_binary_comparison(parser)
447
- condition = parse_comparison(parser)
448
- first_condition = condition
449
- while (binary_operator = parser.id?("and") || parser.id?("or"))
450
- child_condition = parse_comparison(parser)
451
- condition.send(binary_operator, child_condition)
452
- condition = child_condition
453
- end
454
- first_condition
455
- end
456
-
457
- # Generates a Liquid::Condition object from a Liquid::Parser object based on whether the parsed
458
- # expression involves a "comparison" operator (e.g. <, ==, >, !=, etc)
459
- #
460
- # - parser: an instance of Liquid::Parser
461
- #
462
- # Returns an instance of Liquid::Condition
463
- def parse_comparison(parser)
464
- left_operand = Liquid::Expression.parse(parser.expression)
465
- operator = parser.consume?(:comparison)
466
-
467
- # No comparison-operator detected. Initialize a Liquid::Condition using only left operand
468
- return Liquid::Condition.new(left_operand) unless operator
469
-
470
- # Parse what remained after extracting the left operand and the `:comparison` operator
471
- # and initialize a Liquid::Condition object using the operands and the comparison-operator
472
- Liquid::Condition.new(left_operand, operator, Liquid::Expression.parse(parser.expression))
473
- end
474
427
  end
475
428
  end
476
429
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Filters
5
+ module ConditionHelpers
6
+ # ----------- The following set of code was *adapted* from Liquid::If
7
+ # ----------- ref: https://git.io/vp6K6
8
+
9
+ # Parse a string to a Liquid Condition
10
+ def parse_condition(exp)
11
+ parser = Liquid::Parser.new(exp)
12
+ condition = parse_binary_comparison(parser)
13
+
14
+ parser.consume(:end_of_string)
15
+ condition
16
+ end
17
+
18
+ # Generate a Liquid::Condition object from a Liquid::Parser object additionally processing
19
+ # the parsed expression based on whether the expression consists of binary operations with
20
+ # Liquid operators `and` or `or`
21
+ #
22
+ # - parser: an instance of Liquid::Parser
23
+ #
24
+ # Returns an instance of Liquid::Condition
25
+ def parse_binary_comparison(parser)
26
+ condition = parse_comparison(parser)
27
+ first_condition = condition
28
+ while (binary_operator = parser.id?("and") || parser.id?("or"))
29
+ child_condition = parse_comparison(parser)
30
+ condition.send(binary_operator, child_condition)
31
+ condition = child_condition
32
+ end
33
+ first_condition
34
+ end
35
+
36
+ # Generates a Liquid::Condition object from a Liquid::Parser object based
37
+ # on whether the parsed expression involves a "comparison" operator
38
+ # (e.g. <, ==, >, !=, etc)
39
+ #
40
+ # - parser: an instance of Liquid::Parser
41
+ #
42
+ # Returns an instance of Liquid::Condition
43
+ def parse_comparison(parser)
44
+ left_operand = Liquid::Expression.parse(parser.expression)
45
+ operator = parser.consume?(:comparison)
46
+
47
+ # No comparison-operator detected. Initialize a Liquid::Condition using only left operand
48
+ return Liquid::Condition.new(left_operand) unless operator
49
+
50
+ # Parse what remained after extracting the left operand and the `:comparison` operator
51
+ # and initialize a Liquid::Condition object using the operands and the comparison-operator
52
+ Liquid::Condition.new(left_operand, operator, Liquid::Expression.parse(parser.expression))
53
+ end
54
+ end
55
+ end
56
+ end
@@ -54,6 +54,10 @@ module Bridgetown
54
54
  #
55
55
  # Returns the default value or nil if none was found
56
56
  def find(path, type, setting)
57
+ merged_data = {}
58
+ merge_data_cascade_for_path(path, merged_data)
59
+ return merged_data[setting] if merged_data.key?(setting)
60
+
57
61
  value = nil
58
62
  old_scope = nil
59
63
 
@@ -74,6 +78,9 @@ module Bridgetown
74
78
  # Returns a hash with all default values (an empty hash if there are none)
75
79
  def all(path, type)
76
80
  defaults = {}
81
+
82
+ merge_data_cascade_for_path(path, defaults)
83
+
77
84
  old_scope = nil
78
85
  matching_sets(path, type).each do |set|
79
86
  if has_precedence?(old_scope, set["scope"])
@@ -88,6 +95,16 @@ module Bridgetown
88
95
 
89
96
  private
90
97
 
98
+ def merge_data_cascade_for_path(path, merged_data)
99
+ absolute_path = @site.in_source_dir(path)
100
+ @site.defaults_reader.path_defaults
101
+ .select { |k, _v| absolute_path.include? k }
102
+ .sort_by { |k, _v| k.length }
103
+ .each do |defaults|
104
+ merged_data.merge!(defaults[1])
105
+ end
106
+ end
107
+
91
108
  # Checks if a given default setting scope matches the given path and type
92
109
  #
93
110
  # scope - the hash indicating the scope, as defined in bridgetown.config.yml
@@ -13,6 +13,7 @@ module Bridgetown
13
13
  # Returns nothing.
14
14
  # rubocop:disable Metrics/AbcSize
15
15
  def read
16
+ @site.defaults_reader.read
16
17
  @site.layouts = LayoutReader.new(site).read
17
18
  read_directories
18
19
  read_included_excludes
@@ -5,6 +5,7 @@ module Bridgetown
5
5
  SPECIAL_COLLECTIONS = %w(posts data).freeze
6
6
 
7
7
  attr_reader :site, :content
8
+
8
9
  def initialize(site)
9
10
  @site = site
10
11
  @content = {}
@@ -3,6 +3,7 @@
3
3
  module Bridgetown
4
4
  class DataReader
5
5
  attr_reader :site, :content
6
+
6
7
  def initialize(site)
7
8
  @site = site
8
9
  @content = ActiveSupport::HashWithIndifferentAccess.new
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ class DefaultsReader
5
+ attr_reader :site, :path_defaults
6
+
7
+ def initialize(site)
8
+ @site = site
9
+ @path_defaults = ActiveSupport::HashWithIndifferentAccess.new
10
+ end
11
+
12
+ def read
13
+ return unless File.directory?(site.source)
14
+
15
+ entries = Dir.chdir(site.source) do
16
+ Dir["**/_defaults.{yaml,yml,json}"]
17
+ end
18
+
19
+ entries.each do |entry|
20
+ path = @site.in_source_dir(entry)
21
+ @path_defaults[File.dirname(path) + File::SEPARATOR] = SafeYAML.load_file(path)
22
+ end
23
+
24
+ @path_defaults
25
+ end
26
+ end
27
+ end
@@ -3,6 +3,7 @@
3
3
  module Bridgetown
4
4
  class LayoutReader
5
5
  attr_reader :site
6
+
6
7
  def initialize(site)
7
8
  @site = site
8
9
  @layouts = {}
@@ -3,6 +3,7 @@
3
3
  module Bridgetown
4
4
  class PageReader
5
5
  attr_reader :site, :dir, :unfiltered_content
6
+
6
7
  def initialize(site, dir)
7
8
  @site = site
8
9
  @dir = dir
@@ -3,6 +3,7 @@
3
3
  module Bridgetown
4
4
  class PostReader
5
5
  attr_reader :site, :unfiltered_content
6
+
6
7
  def initialize(site)
7
8
  @site = site
8
9
  end
@@ -3,6 +3,7 @@
3
3
  module Bridgetown
4
4
  class StaticFileReader
5
5
  attr_reader :site, :dir, :unfiltered_content
6
+
6
7
  def initialize(site, dir)
7
8
  @site = site
8
9
  @dir = dir
@@ -20,6 +20,10 @@ module Bridgetown
20
20
  def webpack_path(asset_type)
21
21
  Bridgetown::Utils.parse_webpack_manifest_file(@site, asset_type.to_s)
22
22
  end
23
+
24
+ def t(*args)
25
+ I18n.send :t, *args
26
+ end
23
27
  end
24
28
 
25
29
  attr_reader :layout, :page, :site, :content
@@ -7,6 +7,7 @@ module Bridgetown
7
7
  include Configurable
8
8
  include Content
9
9
  include Extensible
10
+ include Localizable
10
11
  include Processable
11
12
  include Renderable
12
13
  include Writable
@@ -25,6 +26,7 @@ module Bridgetown
25
26
  # config - A Hash containing site configuration details.
26
27
  def initialize(config)
27
28
  self.config = config
29
+ locale
28
30
 
29
31
  @plugin_manager = PluginManager.new(self)
30
32
  @cleaner = Cleaner.new(self)
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Tags
5
+ class Find < Liquid::Tag
6
+ include Bridgetown::Filters::ConditionHelpers
7
+ include Bridgetown::LiquidExtensions
8
+
9
+ SYNTAX = %r!^(.*?) (where|in) (.*?),(.*)$!.freeze
10
+ CONDITIONS_SEP = "~FINDSEP~"
11
+
12
+ def initialize(tag_name, markup, tokens)
13
+ super
14
+ if markup.strip =~ SYNTAX
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
20
+ raise SyntaxError, <<~MSG
21
+ Syntax Error in tag 'find' while parsing the following markup:
22
+
23
+ #{markup}
24
+
25
+ Valid syntax: find <varname> where|in <array>, <condition(s)>
26
+ MSG
27
+ end
28
+ end
29
+
30
+ def render(context)
31
+ @group = lookup_variable(context, @arr_name)
32
+ return "" unless @group.respond_to?(:select)
33
+
34
+ @group = @group.values if @group.is_a?(Hash)
35
+
36
+ expression = @conditions.split(CONDITIONS_SEP).map do |condition|
37
+ "__find_tag_item__.#{condition.strip}"
38
+ end.join(" and ")
39
+ @liquid_condition = parse_condition(expression)
40
+
41
+ context[@new_var_name] = if @single_or_group == "where"
42
+ group_evaluate(context)
43
+ else
44
+ single_evaluate(context)
45
+ end
46
+
47
+ ""
48
+ end
49
+
50
+ private
51
+
52
+ def process_conditions(conditions)
53
+ processed_conditions = +""
54
+ in_quotes = false
55
+
56
+ conditions.each_char do |c|
57
+ in_quotes = !in_quotes if c == '"'
58
+
59
+ processed_conditions << (c == "," && !in_quotes ? CONDITIONS_SEP : c)
60
+ end
61
+
62
+ processed_conditions
63
+ end
64
+
65
+ def group_evaluate(context)
66
+ context.stack do
67
+ @group.select do |object|
68
+ context["__find_tag_item__"] = object
69
+ @liquid_condition.evaluate(context)
70
+ end
71
+ end || []
72
+ end
73
+
74
+ def single_evaluate(context)
75
+ context.stack do
76
+ @group.find do |object|
77
+ context["__find_tag_item__"] = object
78
+ @liquid_condition.evaluate(context)
79
+ end
80
+ end || nil
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ Liquid::Template.register_tag("find", Bridgetown::Tags::Find)
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Tags
5
+ class TranslationTag < Liquid::Tag
6
+ def render(_context)
7
+ key = @markup.strip
8
+ I18n.t(key)
9
+ end
10
+ end
11
+ end
12
+ end
13
+
14
+ Liquid::Template.register_tag("t", Bridgetown::Tags::TranslationTag)
@@ -14,8 +14,8 @@ module Bridgetown
14
14
  # Constants for use in #slugify
15
15
  SLUGIFY_MODES = %w(raw default pretty simple ascii latin).freeze
16
16
  SLUGIFY_RAW_REGEXP = Regexp.new('\\s+').freeze
17
- SLUGIFY_DEFAULT_REGEXP = Regexp.new("[^[:alnum:]]+").freeze
18
- SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
17
+ SLUGIFY_DEFAULT_REGEXP = Regexp.new("[^\\p{M}\\p{L}\\p{Nd}]+").freeze
18
+ SLUGIFY_PRETTY_REGEXP = Regexp.new("[^\\p{M}\\p{L}\\p{Nd}._~!$&'()+,;=@]+").freeze
19
19
  SLUGIFY_ASCII_REGEXP = Regexp.new("[^[A-Za-z0-9]]+").freeze
20
20
 
21
21
  # Takes a slug and turns it into a simple title.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "0.16.0"
5
- CODE_NAME = "Crystal Springs"
4
+ VERSION = "0.17.0"
5
+ CODE_NAME = "Mount Scott"
6
6
  end
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.16.0
4
+ version: 0.17.0
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-07-28 00:00:00.000000000 Z
11
+ date: 2020-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: awesome_print
42
+ name: amazing_print
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.8'
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.8'
54
+ version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: colorator
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -327,6 +327,7 @@ files:
327
327
  - lib/bridgetown-core/concerns/site/configurable.rb
328
328
  - lib/bridgetown-core/concerns/site/content.rb
329
329
  - lib/bridgetown-core/concerns/site/extensible.rb
330
+ - lib/bridgetown-core/concerns/site/localizable.rb
330
331
  - lib/bridgetown-core/concerns/site/processable.rb
331
332
  - lib/bridgetown-core/concerns/site/renderable.rb
332
333
  - lib/bridgetown-core/concerns/site/writable.rb
@@ -355,6 +356,7 @@ files:
355
356
  - lib/bridgetown-core/excerpt.rb
356
357
  - lib/bridgetown-core/external.rb
357
358
  - lib/bridgetown-core/filters.rb
359
+ - lib/bridgetown-core/filters/condition_helpers.rb
358
360
  - lib/bridgetown-core/filters/date_filters.rb
359
361
  - lib/bridgetown-core/filters/grouping_filters.rb
360
362
  - lib/bridgetown-core/filters/url_filters.rb
@@ -380,6 +382,7 @@ files:
380
382
  - lib/bridgetown-core/reader.rb
381
383
  - lib/bridgetown-core/readers/collection_reader.rb
382
384
  - lib/bridgetown-core/readers/data_reader.rb
385
+ - lib/bridgetown-core/readers/defaults_reader.rb
383
386
  - lib/bridgetown-core/readers/layout_reader.rb
384
387
  - lib/bridgetown-core/readers/page_reader.rb
385
388
  - lib/bridgetown-core/readers/plugin_content_reader.rb
@@ -392,11 +395,13 @@ files:
392
395
  - lib/bridgetown-core/site.rb
393
396
  - lib/bridgetown-core/static_file.rb
394
397
  - lib/bridgetown-core/tags/class_map.rb
398
+ - lib/bridgetown-core/tags/find.rb
395
399
  - lib/bridgetown-core/tags/highlight.rb
396
400
  - lib/bridgetown-core/tags/include.rb
397
401
  - lib/bridgetown-core/tags/link.rb
398
402
  - lib/bridgetown-core/tags/post_url.rb
399
403
  - lib/bridgetown-core/tags/render_content.rb
404
+ - lib/bridgetown-core/tags/t.rb
400
405
  - lib/bridgetown-core/tags/webpack_path.rb
401
406
  - lib/bridgetown-core/tags/with.rb
402
407
  - lib/bridgetown-core/url.rb