bridgetown-core 0.19.2 → 0.21.0.beta3

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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/bridgetown-core.gemspec +1 -2
  3. data/lib/bridgetown-core.rb +37 -29
  4. data/lib/bridgetown-core/cleaner.rb +9 -3
  5. data/lib/bridgetown-core/collection.rb +177 -78
  6. data/lib/bridgetown-core/commands/base.rb +9 -0
  7. data/lib/bridgetown-core/commands/build.rb +0 -11
  8. data/lib/bridgetown-core/commands/concerns/git_helpers.rb +20 -0
  9. data/lib/bridgetown-core/commands/configure.rb +8 -3
  10. data/lib/bridgetown-core/commands/console.rb +4 -0
  11. data/lib/bridgetown-core/commands/doctor.rb +1 -19
  12. data/lib/bridgetown-core/commands/new.rb +2 -2
  13. data/lib/bridgetown-core/commands/plugins.rb +14 -13
  14. data/lib/bridgetown-core/commands/serve.rb +0 -14
  15. data/lib/bridgetown-core/component.rb +178 -0
  16. data/lib/bridgetown-core/concerns/data_accessible.rb +1 -0
  17. data/lib/bridgetown-core/concerns/front_matter_importer.rb +52 -0
  18. data/lib/bridgetown-core/concerns/site/configurable.rb +10 -10
  19. data/lib/bridgetown-core/concerns/site/content.rb +56 -15
  20. data/lib/bridgetown-core/concerns/site/localizable.rb +3 -5
  21. data/lib/bridgetown-core/concerns/site/processable.rb +6 -4
  22. data/lib/bridgetown-core/concerns/site/renderable.rb +26 -0
  23. data/lib/bridgetown-core/concerns/site/writable.rb +12 -2
  24. data/lib/bridgetown-core/concerns/validatable.rb +2 -5
  25. data/lib/bridgetown-core/configuration.rb +51 -30
  26. data/lib/bridgetown-core/configurations/bt-postcss.rb +1 -3
  27. data/lib/bridgetown-core/configurations/netlify.rb +1 -0
  28. data/lib/bridgetown-core/configurations/tailwindcss.rb +1 -3
  29. data/lib/bridgetown-core/converter.rb +23 -0
  30. data/lib/bridgetown-core/converters/erb_templates.rb +51 -35
  31. data/lib/bridgetown-core/converters/identity.rb +0 -9
  32. data/lib/bridgetown-core/converters/liquid_templates.rb +1 -1
  33. data/lib/bridgetown-core/converters/markdown.rb +14 -4
  34. data/lib/bridgetown-core/converters/markdown/kramdown_parser.rb +5 -38
  35. data/lib/bridgetown-core/converters/ruby_templates.rb +17 -0
  36. data/lib/bridgetown-core/converters/smartypants.rb +3 -1
  37. data/lib/bridgetown-core/core_ext/psych.rb +19 -0
  38. data/lib/bridgetown-core/current.rb +10 -0
  39. data/lib/bridgetown-core/document.rb +9 -16
  40. data/lib/bridgetown-core/drops/collection_drop.rb +1 -1
  41. data/lib/bridgetown-core/drops/page_drop.rb +4 -0
  42. data/lib/bridgetown-core/drops/relations_drop.rb +23 -0
  43. data/lib/bridgetown-core/drops/resource_drop.rb +83 -0
  44. data/lib/bridgetown-core/drops/site_drop.rb +33 -8
  45. data/lib/bridgetown-core/drops/unified_payload_drop.rb +5 -0
  46. data/lib/bridgetown-core/entry_filter.rb +17 -28
  47. data/lib/bridgetown-core/errors.rb +0 -2
  48. data/lib/bridgetown-core/filters.rb +3 -26
  49. data/lib/bridgetown-core/filters/from_liquid.rb +23 -0
  50. data/lib/bridgetown-core/filters/url_filters.rb +12 -0
  51. data/lib/bridgetown-core/frontmatter_defaults.rb +1 -1
  52. data/lib/bridgetown-core/generators/prototype_generator.rb +37 -19
  53. data/lib/bridgetown-core/helpers.rb +48 -9
  54. data/lib/bridgetown-core/layout.rb +28 -13
  55. data/lib/bridgetown-core/liquid_renderer/file.rb +1 -0
  56. data/lib/bridgetown-core/liquid_renderer/table.rb +1 -0
  57. data/lib/bridgetown-core/model/base.rb +138 -0
  58. data/lib/bridgetown-core/model/builder_origin.rb +40 -0
  59. data/lib/bridgetown-core/model/origin.rb +38 -0
  60. data/lib/bridgetown-core/model/repo_origin.rb +126 -0
  61. data/lib/bridgetown-core/page.rb +11 -2
  62. data/lib/bridgetown-core/plugin_manager.rb +1 -3
  63. data/lib/bridgetown-core/publisher.rb +8 -2
  64. data/lib/bridgetown-core/reader.rb +37 -22
  65. data/lib/bridgetown-core/readers/data_reader.rb +5 -5
  66. data/lib/bridgetown-core/readers/defaults_reader.rb +1 -1
  67. data/lib/bridgetown-core/readers/page_reader.rb +1 -0
  68. data/lib/bridgetown-core/readers/post_reader.rb +5 -4
  69. data/lib/bridgetown-core/regenerator.rb +9 -2
  70. data/lib/bridgetown-core/related_posts.rb +9 -6
  71. data/lib/bridgetown-core/renderer.rb +6 -13
  72. data/lib/bridgetown-core/resource/base.rb +313 -0
  73. data/lib/bridgetown-core/resource/destination.rb +49 -0
  74. data/lib/bridgetown-core/resource/permalink_processor.rb +179 -0
  75. data/lib/bridgetown-core/resource/relations.rb +132 -0
  76. data/lib/bridgetown-core/resource/taxonomy_term.rb +34 -0
  77. data/lib/bridgetown-core/resource/taxonomy_type.rb +56 -0
  78. data/lib/bridgetown-core/resource/transformer.rb +177 -0
  79. data/lib/bridgetown-core/ruby_template_view.rb +11 -11
  80. data/lib/bridgetown-core/site.rb +13 -6
  81. data/lib/bridgetown-core/static_file.rb +33 -10
  82. data/lib/bridgetown-core/tags/highlight.rb +2 -15
  83. data/lib/bridgetown-core/tags/include.rb +1 -1
  84. data/lib/bridgetown-core/tags/post_url.rb +2 -2
  85. data/lib/bridgetown-core/url.rb +1 -0
  86. data/lib/bridgetown-core/utils.rb +49 -43
  87. data/lib/bridgetown-core/utils/require_gems.rb +60 -0
  88. data/lib/bridgetown-core/utils/ruby_exec.rb +6 -9
  89. data/lib/bridgetown-core/utils/ruby_front_matter.rb +39 -0
  90. data/lib/bridgetown-core/version.rb +2 -2
  91. data/lib/bridgetown-core/watcher.rb +1 -1
  92. data/lib/bridgetown-core/yaml_parser.rb +22 -0
  93. data/lib/site_template/package.json.erb +2 -2
  94. data/lib/site_template/plugins/site_builder.rb +1 -1
  95. data/lib/site_template/src/_posts/0000-00-00-welcome-to-bridgetown.md.erb +1 -1
  96. data/lib/site_template/webpack.config.js.erb +26 -6
  97. metadata +39 -40
  98. data/lib/bridgetown-core/external.rb +0 -58
  99. data/lib/bridgetown-core/page_without_a_file.rb +0 -17
  100. data/lib/bridgetown-core/path_manager.rb +0 -31
  101. data/lib/bridgetown-core/readers/collection_reader.rb +0 -23
  102. data/lib/bridgetown-core/readers/static_file_reader.rb +0 -25
  103. data/lib/bridgetown-core/utils/exec.rb +0 -26
  104. data/lib/bridgetown-core/utils/internet.rb +0 -37
  105. data/lib/bridgetown-core/utils/platforms.rb +0 -80
  106. data/lib/bridgetown-core/utils/thread_event.rb +0 -31
  107. data/lib/bridgetown-core/utils/win_tz.rb +0 -75
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Model
5
+ # Abstract Superclass
6
+ class BuilderOrigin < Origin
7
+ # @return [Pathname]
8
+ attr_reader :relative_path
9
+
10
+ # Override in subclass
11
+ def self.handle_scheme?(scheme)
12
+ scheme == "builder"
13
+ end
14
+
15
+ def initialize(id)
16
+ self.id = id
17
+ @relative_path = Pathname.new(id.delete_prefix("builder://"))
18
+ end
19
+
20
+ def read
21
+ @data = if block_given?
22
+ yield
23
+ elsif defined?(SiteBuilder) && SiteBuilder.respond_to?(:data_for_id)
24
+ SiteBuilder.data_for_id(id)
25
+ else
26
+ raise "No builder exists which can read #{id}"
27
+ end
28
+ @data[:_id_] = id
29
+ @data[:_origin_] = self
30
+ @relative_path = Pathname.new(@data[:_relative_path_]) if @data[:_relative_path_]
31
+
32
+ @data
33
+ end
34
+
35
+ def exists?
36
+ false
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Model
5
+ # Abstract Superclass
6
+ class Origin
7
+ extend ActiveSupport::DescendantsTracker
8
+
9
+ # @return [String]
10
+ attr_accessor :id
11
+
12
+ # Override in subclass
13
+ def self.handle_scheme?(_scheme)
14
+ false
15
+ end
16
+
17
+ def initialize(id)
18
+ self.id = id
19
+ end
20
+
21
+ def read
22
+ raise "Implement #read in a subclass of Bridgetown::Model::Origin"
23
+ end
24
+
25
+ # @return [Pathname]
26
+ def relative_path
27
+ raise "Implement #relative_path in a subclass of Bridgetown::Model::Origin"
28
+ end
29
+
30
+ def exists?
31
+ raise "Implement #exists? in a subclass of Bridgetown::Model::Origin"
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ require "bridgetown-core/model/builder_origin"
38
+ require "bridgetown-core/model/repo_origin"
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Model
5
+ class RepoOrigin < Origin
6
+ include Bridgetown::FrontMatterImporter
7
+ include Bridgetown::Utils::RubyFrontMatterDSL
8
+
9
+ YAML_FRONT_MATTER_REGEXP = %r!\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)!m.freeze
10
+ RUBY_FRONT_MATTER_HEADER = %r!\A[~`#\-]{3,}(?:ruby|<%|{%)\s*\n!.freeze
11
+ RUBY_FRONT_MATTER_REGEXP =
12
+ %r!#{RUBY_FRONT_MATTER_HEADER.source}(.*?\n?)^((?:%>|%})?[~`#\-]{3,}\s*$\n?)!m.freeze
13
+
14
+ # @return [String]
15
+ attr_accessor :content
16
+
17
+ # @return [Integer]
18
+ attr_accessor :front_matter_line_count
19
+
20
+ class << self
21
+ def handle_scheme?(scheme)
22
+ scheme == "repo"
23
+ end
24
+
25
+ def data_file_extensions
26
+ %w(.yaml .yml .json .csv .tsv .rb).freeze
27
+ end
28
+ end
29
+
30
+ def read
31
+ begin
32
+ @data = (in_data_collection? ? read_file_data : read_front_matter(original_path)) || {}
33
+ rescue SyntaxError => e
34
+ Bridgetown.logger.error "Error:",
35
+ "Ruby Exception in #{e.message}"
36
+ rescue StandardError => e
37
+ handle_read_error(e)
38
+ end
39
+
40
+ @data ||= {}
41
+ @data[:_id_] = id
42
+ @data[:_origin_] = self
43
+ @data[:_collection_] = collection
44
+ @data[:_content_] = content if content
45
+
46
+ @data
47
+ end
48
+
49
+ def url
50
+ @url = URI.parse(id)
51
+ end
52
+
53
+ def relative_path
54
+ @relative_path ||= Pathname.new(
55
+ Addressable::URI.unescape(url.path.delete_prefix("/"))
56
+ )
57
+ end
58
+
59
+ def collection
60
+ return @collection if @collection
61
+
62
+ collection_name = if url.host.ends_with?(".collection")
63
+ url.host.chomp(".collection")
64
+ else
65
+ "pages"
66
+ end
67
+ @collection = Bridgetown::Current.site.collections[collection_name]
68
+ end
69
+
70
+ def original_path
71
+ @original_path ||= relative_path.expand_path(Bridgetown::Current.site.source)
72
+ end
73
+
74
+ def exists?
75
+ File.exist?(original_path)
76
+ end
77
+
78
+ private
79
+
80
+ def in_data_collection?
81
+ original_path.extname.downcase.in?(self.class.data_file_extensions) &&
82
+ collection.data?
83
+ end
84
+
85
+ def read_file_data # rubocop:todo Metrics/MethodLength
86
+ case original_path.extname.downcase
87
+ when ".csv"
88
+ {
89
+ rows:
90
+ CSV.read(original_path,
91
+ headers: true,
92
+ encoding: Bridgetown::Current.site.config["encoding"]).map(&:to_hash),
93
+ }
94
+ when ".tsv"
95
+ {
96
+ rows:
97
+ CSV.read(original_path,
98
+ col_sep: "\t",
99
+ headers: true,
100
+ encoding: Bridgetown::Current.site.config["encoding"]).map(&:to_hash),
101
+ }
102
+ when ".rb"
103
+ process_ruby_data(File.read(original_path), original_path, 1)
104
+ else
105
+ yaml_data = YAMLParser.load_file(original_path)
106
+ yaml_data.is_a?(Array) ? { rows: yaml_data } : yaml_data
107
+ end
108
+ end
109
+
110
+ def handle_read_error(error)
111
+ if error.is_a? Psych::SyntaxError
112
+ Bridgetown.logger.error "Error:",
113
+ "YAML Exception reading #{original_path}: #{error.message}"
114
+ else
115
+ Bridgetown.logger.error "Error:",
116
+ "could not read file #{original_path}: #{error.message}"
117
+ end
118
+
119
+ if Bridgetown::Current.site.config["strict_front_matter"] ||
120
+ error.is_a?(Bridgetown::Errors::FatalException)
121
+ raise error
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
+ # TODO: to be retired once the Resource engine is made official
4
5
  class Page
5
6
  include DataAccessible
6
7
  include LayoutPlaceable
@@ -44,10 +45,10 @@ module Bridgetown
44
45
  end
45
46
 
46
47
  process(name)
47
- read_yaml(PathManager.join(base, dir), name)
48
+ read_yaml(File.join(base, dir), name)
48
49
 
49
50
  data.default_proc = proc do |_, key|
50
- site.frontmatter_defaults.find(relative_path, type, key)
51
+ site.frontmatter_defaults.find(relative_path, type, key.to_s)
51
52
  end
52
53
 
53
54
  Bridgetown::Hooks.trigger :pages, :post_init, self
@@ -116,6 +117,7 @@ module Bridgetown
116
117
  permalink: permalink
117
118
  ).to_s
118
119
  end
120
+ alias_method :relative_url, :url
119
121
 
120
122
  # Returns a hash of URL placeholder names (as symbols) mapping to the
121
123
  # desired placeholder replacements. For details see "url.rb"
@@ -218,4 +220,11 @@ module Bridgetown
218
220
  true
219
221
  end
220
222
  end
223
+
224
+ # set up virtual page class for future compatibility
225
+ class GeneratedPage < Page
226
+ def read_yaml(_base, _name, _opts = {})
227
+ self.data ||= HashWithDotAccess::Hash.new
228
+ end
229
+ end
221
230
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "zeitwerk"
4
-
5
3
  module Bridgetown
6
4
  class PluginManager
7
5
  PLUGINS_GROUP = :bridgetown_plugins
@@ -135,7 +133,7 @@ module Bridgetown
135
133
  sorted_plugin_files.each do |plugin_file|
136
134
  self.class.add_registered_plugin plugin_file
137
135
  end
138
- Bridgetown::External.require_with_graceful_fail(sorted_plugin_files)
136
+ Bridgetown::Utils::RequireGems.require_with_graceful_fail(sorted_plugin_files)
139
137
  end
140
138
  end
141
139
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Bridgetown
4
4
  class Publisher
5
+ # @param site [Bridgetown::Site]
5
6
  def initialize(site)
6
7
  @site = site
7
8
  end
@@ -11,13 +12,18 @@ module Bridgetown
11
12
  end
12
13
 
13
14
  def hidden_in_the_future?(thing)
14
- thing.respond_to?(:date) && !@site.future && thing.date.to_i > @site.time.to_i
15
+ return false unless thing.respond_to?(:date)
16
+
17
+ future_allowed =
18
+ thing.respond_to?(:collection) && thing.collection.metadata.future || @site.config.future
19
+ thing_time = thing.date.is_a?(Date) ? thing.date.to_time.to_i : thing.date.to_i
20
+ !future_allowed && thing_time > @site.time.to_i
15
21
  end
16
22
 
17
23
  private
18
24
 
19
25
  def can_be_published?(thing)
20
- thing.data.fetch("published", true) || @site.unpublished
26
+ thing.data.fetch("published", true) || @site.config.unpublished
21
27
  end
22
28
  end
23
29
  end
@@ -11,20 +11,29 @@ module Bridgetown
11
11
  # Read Site data from disk and load it into internal data structures.
12
12
  #
13
13
  # Returns nothing.
14
- # rubocop:disable Metrics/AbcSize
15
- def read
16
- @site.defaults_reader.read
17
- @site.layouts = LayoutReader.new(site).read
14
+ def read # rubocop:todo Metrics/AbcSize
15
+ site.defaults_reader.read
16
+ site.layouts = LayoutReader.new(site).read
18
17
  read_directories
19
18
  read_included_excludes
20
19
  sort_files!
21
- @site.data = DataReader.new(site).read(site.config["data_dir"])
22
- CollectionReader.new(site).read
20
+ read_collections
21
+ site.data = if site.uses_resource?
22
+ site.collections.data.merge_data_resources
23
+ else
24
+ DataReader.new(site).read
25
+ end
23
26
  Bridgetown::PluginManager.source_manifests.map(&:content).compact.each do |plugin_content_dir|
24
27
  PluginContentReader.new(site, plugin_content_dir).read
25
28
  end
26
29
  end
27
- # rubocop:enable Metrics/AbcSize
30
+
31
+ def read_collections
32
+ site.collections.each_value do |collection|
33
+ collection.read unless !site.uses_resource? &&
34
+ collection.legacy_reader?
35
+ end
36
+ end
28
37
 
29
38
  # Sorts posts, pages, and static files.
30
39
  def sort_files!
@@ -54,14 +63,14 @@ module Bridgetown
54
63
  file_path = @site.in_source_dir(base, entry)
55
64
  if File.directory?(file_path)
56
65
  dot_dirs << entry
57
- elsif Utils.has_yaml_header?(file_path)
66
+ elsif Utils.has_yaml_header?(file_path) || Utils.has_rbfm_header?(file_path)
58
67
  dot_pages << entry
59
68
  else
60
69
  dot_static_files << entry
61
70
  end
62
71
  end
63
72
 
64
- retrieve_posts(dir)
73
+ retrieve_posts(dir) unless site.uses_resource?
65
74
  retrieve_dirs(base, dir, dot_dirs)
66
75
  retrieve_pages(dir, dot_pages)
67
76
  retrieve_static_files(dir, dot_static_files)
@@ -89,7 +98,7 @@ module Bridgetown
89
98
  def retrieve_dirs(_base, dir, dot_dirs)
90
99
  dot_dirs.each do |file|
91
100
  dir_path = site.in_source_dir(dir, file)
92
- rel_path = PathManager.join(dir, file)
101
+ rel_path = File.join(dir, file)
93
102
  @site.reader.read_directories(rel_path) unless @site.dest.chomp("/") == dir_path
94
103
  end
95
104
  end
@@ -102,18 +111,27 @@ module Bridgetown
102
111
  #
103
112
  # Returns nothing.
104
113
  def retrieve_pages(dir, dot_pages)
114
+ if site.uses_resource?
115
+ dot_pages.each do |page_path|
116
+ site.collections.pages.read_resource(site.in_source_dir(dir, page_path))
117
+ end
118
+ return
119
+ end
120
+
105
121
  site.pages.concat(PageReader.new(site, dir).read(dot_pages))
106
122
  end
107
123
 
108
124
  # Retrieve all the static files from the current directory,
109
125
  # add them to the site and sort them.
110
126
  #
111
- # dir - The directory retrieve the static files from.
112
- # dot_static_files - The static files in the dir.
113
- #
114
- # Returns nothing.
115
- def retrieve_static_files(dir, dot_static_files)
116
- site.static_files.concat(StaticFileReader.new(site, dir).read(dot_static_files))
127
+ # @param dir [String] The directory retrieve the static files from.
128
+ # @param files [Array<String>] The static files in the dir.
129
+ def retrieve_static_files(dir, files)
130
+ site.static_files.concat(
131
+ files.map do |file|
132
+ StaticFile.new(site, site.source, dir, file)
133
+ end
134
+ )
117
135
  end
118
136
 
119
137
  # Filter out any files/directories that are hidden or backup files (start
@@ -126,7 +144,7 @@ module Bridgetown
126
144
  #
127
145
  # Returns the Array of filtered entries.
128
146
  def filter_entries(entries, base_directory = nil)
129
- EntryFilter.new(site, base_directory).filter(entries)
147
+ EntryFilter.new(site, base_directory: base_directory).filter(entries)
130
148
  end
131
149
 
132
150
  # Read the entries from a particular directory for processing
@@ -165,14 +183,11 @@ module Bridgetown
165
183
  end
166
184
 
167
185
  def read_included_excludes
168
- entry_filter = EntryFilter.new(site)
169
-
170
- site.include.each do |entry|
186
+ site.config.include.each do |entry|
171
187
  next if entry == ".htaccess"
172
188
 
173
189
  entry_path = site.in_source_dir(entry)
174
190
  next if File.directory?(entry_path)
175
- next if entry_filter.symlink?(entry_path)
176
191
 
177
192
  read_included_file(entry_path) if File.file?(entry_path)
178
193
  end
@@ -184,7 +199,7 @@ module Bridgetown
184
199
  if Utils.has_yaml_header?(entry_path)
185
200
  site.pages.concat(PageReader.new(site, dir).read(file))
186
201
  else
187
- site.static_files.concat(StaticFileReader.new(site, dir).read(file))
202
+ retrieve_static_files(dir, file)
188
203
  end
189
204
  end
190
205
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
+ # TODO: to be retired once the Resource engine is made official
4
5
  class DataReader
5
6
  attr_reader :site, :content
6
7
 
@@ -16,8 +17,8 @@ module Bridgetown
16
17
  #
17
18
  # Returns @content, a Hash of the .yaml, .yml,
18
19
  # .json, and .csv files in the base directory
19
- def read(dir)
20
- base = site.in_source_dir(dir)
20
+ def read
21
+ base = site.in_source_dir(site.config.data_dir)
21
22
  read_data_to(base, @content)
22
23
  merge_environment_specific_metadata!
23
24
  @content = @content.with_dot_access
@@ -31,7 +32,7 @@ module Bridgetown
31
32
  #
32
33
  # Returns nothing
33
34
  def read_data_to(dir, data)
34
- return unless File.directory?(dir) && !@entry_filter.symlink?(dir)
35
+ return unless File.directory?(dir)
35
36
 
36
37
  entries = Dir.chdir(dir) do
37
38
  Dir["*.{yaml,yml,json,csv,tsv}"] + Dir["*"].select { |fn| File.directory?(fn) }
@@ -39,7 +40,6 @@ module Bridgetown
39
40
 
40
41
  entries.each do |entry|
41
42
  path = @site.in_source_dir(dir, entry)
42
- next if @entry_filter.symlink?(path)
43
43
 
44
44
  if File.directory?(path)
45
45
  read_data_to(
@@ -68,7 +68,7 @@ module Bridgetown
68
68
  headers: true,
69
69
  encoding: site.config["encoding"]).map(&:to_hash)
70
70
  else
71
- SafeYAML.load_file(path)
71
+ YAMLParser.load_file(path)
72
72
  end
73
73
  end
74
74