Sha256: 1522ba130b07e9b3c5fee4bb1196645a1ad13bc91cc9432b2adb6095df1893ed

Contents?: true

Size: 1.05 KB

Versions: 35

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Bridgetown
  class LiquidRenderer
    class FileSystem < Liquid::LocalFileSystem
      attr_accessor :site

      def read_template_file(template_path)
        load_paths = root
        found_paths = []

        load_paths.each do |load_path|
          # Use Liquid's gut checks to verify template pathname
          self.root = load_path
          full_template_path = full_path(template_path)

          # Look for .liquid as well as .html extensions
          path_variants = [
            Pathname.new(full_template_path),
            Pathname.new(full_template_path).sub_ext(".html"),
          ]

          found_paths << path_variants.find(&:exist?)
        end

        # Restore pristine state
        self.root = load_paths

        found_paths.compact!

        raise Liquid::FileSystemError, "No such template '#{template_path}'" if found_paths.empty?

        # Last path in the list wins
        LiquidComponent.parse(
          ::File.read(found_paths.last, **site.file_read_opts)
        ).content
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
bridgetown-core-1.0.0.alpha8 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha7 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha6 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha5 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.5 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha4 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha3 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha2 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-1.0.0.alpha1 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.4 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.3 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.2 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.1 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.0 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.0.beta4 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.0.beta3 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.0.beta2 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.21.0.beta1 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.20.0 lib/bridgetown-core/liquid_renderer/file_system.rb
bridgetown-core-0.19.3 lib/bridgetown-core/liquid_renderer/file_system.rb