jekyll 4.1.1 → 4.2.2
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 +153 -4
- data/README.markdown +2 -6
- data/lib/blank_template/_layouts/default.html +1 -1
- data/lib/jekyll/cleaner.rb +1 -1
- data/lib/jekyll/commands/doctor.rb +19 -15
- data/lib/jekyll/commands/new.rb +3 -0
- data/lib/jekyll/commands/new_theme.rb +0 -2
- data/lib/jekyll/configuration.rb +11 -14
- data/lib/jekyll/convertible.rb +9 -6
- data/lib/jekyll/document.rb +20 -12
- data/lib/jekyll/drops/collection_drop.rb +3 -3
- data/lib/jekyll/drops/document_drop.rb +4 -15
- data/lib/jekyll/drops/drop.rb +98 -20
- data/lib/jekyll/drops/site_drop.rb +3 -3
- data/lib/jekyll/drops/static_file_drop.rb +4 -4
- data/lib/jekyll/drops/url_drop.rb +2 -2
- data/lib/jekyll/filters/url_filters.rb +5 -2
- data/lib/jekyll/filters.rb +6 -9
- data/lib/jekyll/frontmatter_defaults.rb +2 -2
- data/lib/jekyll/hooks.rb +20 -16
- data/lib/jekyll/layout.rb +5 -0
- data/lib/jekyll/page.rb +20 -13
- data/lib/jekyll/path_manager.rb +53 -10
- data/lib/jekyll/reader.rb +11 -6
- data/lib/jekyll/readers/data_reader.rb +3 -0
- data/lib/jekyll/readers/post_reader.rb +1 -1
- data/lib/jekyll/related_posts.rb +1 -1
- data/lib/jekyll/renderer.rb +8 -4
- data/lib/jekyll/site.rb +17 -2
- data/lib/jekyll/static_file.rb +2 -2
- data/lib/jekyll/tags/include.rb +31 -32
- data/lib/jekyll/tags/link.rb +2 -1
- data/lib/jekyll/tags/post_url.rb +3 -4
- data/lib/jekyll/url.rb +8 -5
- data/lib/jekyll/utils/platforms.rb +34 -49
- data/lib/jekyll/version.rb +1 -1
- data/lib/jekyll.rb +2 -16
- metadata +7 -7
    
        data/lib/jekyll/site.rb
    CHANGED
    
    | @@ -117,6 +117,7 @@ module Jekyll | |
| 117 117 |  | 
| 118 118 | 
             
                  Jekyll::Cache.clear_if_config_changed config
         | 
| 119 119 | 
             
                  Jekyll::Hooks.trigger :site, :after_reset, self
         | 
| 120 | 
            +
                  nil
         | 
| 120 121 | 
             
                end
         | 
| 121 122 | 
             
                # rubocop:enable Metrics/MethodLength
         | 
| 122 123 | 
             
                # rubocop:enable Metrics/AbcSize
         | 
| @@ -180,6 +181,7 @@ module Jekyll | |
| 180 181 | 
             
                  reader.read
         | 
| 181 182 | 
             
                  limit_posts!
         | 
| 182 183 | 
             
                  Jekyll::Hooks.trigger :site, :post_read, self
         | 
| 184 | 
            +
                  nil
         | 
| 183 185 | 
             
                end
         | 
| 184 186 |  | 
| 185 187 | 
             
                # Run each of the Generators.
         | 
| @@ -192,6 +194,7 @@ module Jekyll | |
| 192 194 | 
             
                    Jekyll.logger.debug "Generating:",
         | 
| 193 195 | 
             
                                        "#{generator.class} finished in #{Time.now - start} seconds."
         | 
| 194 196 | 
             
                  end
         | 
| 197 | 
            +
                  nil
         | 
| 195 198 | 
             
                end
         | 
| 196 199 |  | 
| 197 200 | 
             
                # Render the site to the destination.
         | 
| @@ -208,6 +211,7 @@ module Jekyll | |
| 208 211 | 
             
                  render_pages(payload)
         | 
| 209 212 |  | 
| 210 213 | 
             
                  Jekyll::Hooks.trigger :site, :post_render, self, payload
         | 
| 214 | 
            +
                  nil
         | 
| 211 215 | 
             
                end
         | 
| 212 216 |  | 
| 213 217 | 
             
                # Remove orphaned files and empty directories in destination.
         | 
| @@ -215,17 +219,20 @@ module Jekyll | |
| 215 219 | 
             
                # Returns nothing.
         | 
| 216 220 | 
             
                def cleanup
         | 
| 217 221 | 
             
                  site_cleaner.cleanup!
         | 
| 222 | 
            +
                  nil
         | 
| 218 223 | 
             
                end
         | 
| 219 224 |  | 
| 220 225 | 
             
                # Write static files, pages, and posts.
         | 
| 221 226 | 
             
                #
         | 
| 222 227 | 
             
                # Returns nothing.
         | 
| 223 228 | 
             
                def write
         | 
| 229 | 
            +
                  Jekyll::Commands::Doctor.conflicting_urls(self)
         | 
| 224 230 | 
             
                  each_site_file do |item|
         | 
| 225 231 | 
             
                    item.write(dest) if regenerator.regenerate?(item)
         | 
| 226 232 | 
             
                  end
         | 
| 227 233 | 
             
                  regenerator.write_metadata
         | 
| 228 234 | 
             
                  Jekyll::Hooks.trigger :site, :post_write, self
         | 
| 235 | 
            +
                  nil
         | 
| 229 236 | 
             
                end
         | 
| 230 237 |  | 
| 231 238 | 
             
                def posts
         | 
| @@ -309,8 +316,9 @@ module Jekyll | |
| 309 316 | 
             
                # passed in as argument.
         | 
| 310 317 |  | 
| 311 318 | 
             
                def instantiate_subclasses(klass)
         | 
| 312 | 
            -
                  klass.descendants.select { |c| !safe || c.safe }. | 
| 313 | 
            -
                     | 
| 319 | 
            +
                  klass.descendants.select { |c| !safe || c.safe }.tap do |result|
         | 
| 320 | 
            +
                    result.sort!
         | 
| 321 | 
            +
                    result.map! { |c| c.new(config) }
         | 
| 314 322 | 
             
                  end
         | 
| 315 323 | 
             
                end
         | 
| 316 324 |  | 
| @@ -434,6 +442,13 @@ module Jekyll | |
| 434 442 | 
             
                  @collections_path ||= dir_str.empty? ? source : in_source_dir(dir_str)
         | 
| 435 443 | 
             
                end
         | 
| 436 444 |  | 
| 445 | 
            +
                # Public
         | 
| 446 | 
            +
                #
         | 
| 447 | 
            +
                # Returns the object as a debug String.
         | 
| 448 | 
            +
                def inspect
         | 
| 449 | 
            +
                  "#<#{self.class} @source=#{@source}>"
         | 
| 450 | 
            +
                end
         | 
| 451 | 
            +
             | 
| 437 452 | 
             
                private
         | 
| 438 453 |  | 
| 439 454 | 
             
                def load_theme_configuration(config)
         | 
    
        data/lib/jekyll/static_file.rb
    CHANGED
    
    | @@ -55,8 +55,8 @@ module Jekyll | |
| 55 55 | 
             
                #
         | 
| 56 56 | 
             
                # Returns destination file path.
         | 
| 57 57 | 
             
                def destination(dest)
         | 
| 58 | 
            -
                   | 
| 59 | 
            -
                  @site.in_dest_dir(dest, Jekyll::URL.unescape_path(url))
         | 
| 58 | 
            +
                  @destination ||= {}
         | 
| 59 | 
            +
                  @destination[dest] ||= @site.in_dest_dir(dest, Jekyll::URL.unescape_path(url))
         | 
| 60 60 | 
             
                end
         | 
| 61 61 |  | 
| 62 62 | 
             
                def destination_rel_dir
         | 
    
        data/lib/jekyll/tags/include.rb
    CHANGED
    
    | @@ -36,20 +36,16 @@ module Jekyll | |
| 36 36 |  | 
| 37 37 | 
             
                  def parse_params(context)
         | 
| 38 38 | 
             
                    params = {}
         | 
| 39 | 
            -
                     | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                                 | 
| 46 | 
            -
                              elsif match[3]
         | 
| 47 | 
            -
                                match[3].gsub("\\'", "'")
         | 
| 48 | 
            -
                              elsif match[4]
         | 
| 49 | 
            -
                                context[match[4]]
         | 
| 39 | 
            +
                    @params.scan(VALID_SYNTAX) do |key, d_quoted, s_quoted, variable|
         | 
| 40 | 
            +
                      value = if d_quoted
         | 
| 41 | 
            +
                                d_quoted.include?('\\"') ? d_quoted.gsub('\\"', '"') : d_quoted
         | 
| 42 | 
            +
                              elsif s_quoted
         | 
| 43 | 
            +
                                s_quoted.include?("\\'") ? s_quoted.gsub("\\'", "'") : s_quoted
         | 
| 44 | 
            +
                              elsif variable
         | 
| 45 | 
            +
                                context[variable]
         | 
| 50 46 | 
             
                              end
         | 
| 51 47 |  | 
| 52 | 
            -
                      params[ | 
| 48 | 
            +
                      params[key] = value
         | 
| 53 49 | 
             
                    end
         | 
| 54 50 | 
             
                    params
         | 
| 55 51 | 
             
                  end
         | 
| @@ -205,7 +201,7 @@ module Jekyll | |
| 205 201 | 
             
                    @site.inclusions[file] ||= locate_include_file(file)
         | 
| 206 202 | 
             
                    inclusion = @site.inclusions[file]
         | 
| 207 203 |  | 
| 208 | 
            -
                    add_include_to_dependency(inclusion, context) if @site.incremental | 
| 204 | 
            +
                    add_include_to_dependency(inclusion, context) if @site.config["incremental"]
         | 
| 209 205 |  | 
| 210 206 | 
             
                    context.stack do
         | 
| 211 207 | 
             
                      context["include"] = parse_params(context) if @params
         | 
| @@ -238,12 +234,17 @@ module Jekyll | |
| 238 234 | 
             
                  end
         | 
| 239 235 |  | 
| 240 236 | 
             
                  def add_include_to_dependency(inclusion, context)
         | 
| 241 | 
            -
                     | 
| 237 | 
            +
                    page = context.registers[:page]
         | 
| 238 | 
            +
                    return unless page&.key?("path")
         | 
| 239 | 
            +
             | 
| 240 | 
            +
                    absolute_path = \
         | 
| 241 | 
            +
                      if page["collection"]
         | 
| 242 | 
            +
                        @site.in_source_dir(@site.config["collections_dir"], page["path"])
         | 
| 243 | 
            +
                      else
         | 
| 244 | 
            +
                        @site.in_source_dir(page["path"])
         | 
| 245 | 
            +
                      end
         | 
| 242 246 |  | 
| 243 | 
            -
                    @site.regenerator.add_dependency(
         | 
| 244 | 
            -
                      @site.in_source_dir(context.registers[:page]["path"]),
         | 
| 245 | 
            -
                      inclusion.path
         | 
| 246 | 
            -
                    )
         | 
| 247 | 
            +
                    @site.regenerator.add_dependency(absolute_path, inclusion.path)
         | 
| 247 248 | 
             
                  end
         | 
| 248 249 | 
             
                end
         | 
| 249 250 |  | 
| @@ -253,20 +254,18 @@ module Jekyll | |
| 253 254 | 
             
                  end
         | 
| 254 255 |  | 
| 255 256 | 
             
                  def page_path(context)
         | 
| 256 | 
            -
                     | 
| 257 | 
            -
             | 
| 258 | 
            -
             | 
| 259 | 
            -
             | 
| 260 | 
            -
             | 
| 261 | 
            -
             | 
| 262 | 
            -
             | 
| 263 | 
            -
             | 
| 264 | 
            -
             | 
| 265 | 
            -
             | 
| 266 | 
            -
             | 
| 267 | 
            -
             | 
| 268 | 
            -
                      site.in_source_dir File.dirname(resource_path)
         | 
| 269 | 
            -
                    end
         | 
| 257 | 
            +
                    page, site = context.registers.values_at(:page, :site)
         | 
| 258 | 
            +
                    return site.source unless page
         | 
| 259 | 
            +
             | 
| 260 | 
            +
                    site.in_source_dir File.dirname(resource_path(page, site))
         | 
| 261 | 
            +
                  end
         | 
| 262 | 
            +
             | 
| 263 | 
            +
                  private
         | 
| 264 | 
            +
             | 
| 265 | 
            +
                  def resource_path(page, site)
         | 
| 266 | 
            +
                    path = page["path"]
         | 
| 267 | 
            +
                    path = File.join(site.config["collections_dir"], path) if page["collection"]
         | 
| 268 | 
            +
                    path.sub(%r!/#excerpt\z!, "")
         | 
| 270 269 | 
             
                  end
         | 
| 271 270 | 
             
                end
         | 
| 272 271 | 
             
              end
         | 
    
        data/lib/jekyll/tags/link.rb
    CHANGED
    
    | @@ -21,11 +21,12 @@ module Jekyll | |
| 21 21 | 
             
                    @context = context
         | 
| 22 22 | 
             
                    site = context.registers[:site]
         | 
| 23 23 | 
             
                    relative_path = Liquid::Template.parse(@relative_path).render(context)
         | 
| 24 | 
            +
                    relative_path_with_leading_slash = PathManager.join("", relative_path)
         | 
| 24 25 |  | 
| 25 26 | 
             
                    site.each_site_file do |item|
         | 
| 26 27 | 
             
                      return relative_url(item) if item.relative_path == relative_path
         | 
| 27 28 | 
             
                      # This takes care of the case for static files that have a leading /
         | 
| 28 | 
            -
                      return relative_url(item) if item.relative_path ==  | 
| 29 | 
            +
                      return relative_url(item) if item.relative_path == relative_path_with_leading_slash
         | 
| 29 30 | 
             
                    end
         | 
| 30 31 |  | 
| 31 32 | 
             
                    raise ArgumentError, <<~MSG
         | 
    
        data/lib/jekyll/tags/post_url.rb
    CHANGED
    
    | @@ -16,9 +16,8 @@ module Jekyll | |
| 16 16 | 
             
                            "'#{name}' does not contain valid date and/or title."
         | 
| 17 17 | 
             
                    end
         | 
| 18 18 |  | 
| 19 | 
            -
                     | 
| 20 | 
            -
                    @name_regex = %r!^_posts/#{path}#{ | 
| 21 | 
            -
                      ^#{path}_posts/?#{date}-#{escaped_slug}\.[^.]+!x
         | 
| 19 | 
            +
                    basename_pattern = "#{date}-#{Regexp.escape(slug)}\\.[^.]+"
         | 
| 20 | 
            +
                    @name_regex = %r!^_posts/#{path}#{basename_pattern}|^#{path}_posts/?#{basename_pattern}!
         | 
| 22 21 | 
             
                  end
         | 
| 23 22 |  | 
| 24 23 | 
             
                  def post_date
         | 
| @@ -51,7 +50,7 @@ module Jekyll | |
| 51 50 | 
             
                    if path.nil? || path == ""
         | 
| 52 51 | 
             
                      other.data["slug"]
         | 
| 53 52 | 
             
                    else
         | 
| 54 | 
            -
                      path | 
| 53 | 
            +
                      "#{path}/#{other.data["slug"]}"
         | 
| 55 54 | 
             
                    end
         | 
| 56 55 | 
             
                  end
         | 
| 57 56 | 
             
                end
         | 
    
        data/lib/jekyll/url.rb
    CHANGED
    
    | @@ -94,7 +94,8 @@ module Jekyll | |
| 94 94 |  | 
| 95 95 | 
             
                def generate_url_from_drop(template)
         | 
| 96 96 | 
             
                  template.gsub(%r!:([a-z_]+)!) do |match|
         | 
| 97 | 
            -
                     | 
| 97 | 
            +
                    name = Regexp.last_match(1)
         | 
| 98 | 
            +
                    pool = name.end_with?("_") ? [name, name.chomp!("_")] : [name]
         | 
| 98 99 |  | 
| 99 100 | 
             
                    winner = pool.find { |key| @placeholders.key?(key) }
         | 
| 100 101 | 
             
                    if winner.nil?
         | 
| @@ -107,15 +108,17 @@ module Jekyll | |
| 107 108 | 
             
                    value = "" if value.nil?
         | 
| 108 109 | 
             
                    replacement = self.class.escape_path(value)
         | 
| 109 110 |  | 
| 110 | 
            -
                    match.sub(":#{winner}", replacement)
         | 
| 111 | 
            -
                  end | 
| 111 | 
            +
                    match.sub!(":#{winner}", replacement)
         | 
| 112 | 
            +
                  end
         | 
| 112 113 | 
             
                end
         | 
| 113 114 |  | 
| 114 115 | 
             
                # Returns a sanitized String URL, stripping "../../" and multiples of "/",
         | 
| 115 116 | 
             
                # as well as the beginning "/" so we can enforce and ensure it.
         | 
| 116 | 
            -
             | 
| 117 117 | 
             
                def sanitize_url(str)
         | 
| 118 | 
            -
                  "/#{str}".gsub("..", "/"). | 
| 118 | 
            +
                  "/#{str}".gsub("..", "/").tap do |result|
         | 
| 119 | 
            +
                    result.gsub!("./", "")
         | 
| 120 | 
            +
                    result.squeeze!("/")
         | 
| 121 | 
            +
                  end
         | 
| 119 122 | 
             
                end
         | 
| 120 123 |  | 
| 121 124 | 
             
                # Escapes a path to be a valid URL path segment
         | 
| @@ -5,78 +5,63 @@ module Jekyll | |
| 5 5 | 
             
                module Platforms
         | 
| 6 6 | 
             
                  extend self
         | 
| 7 7 |  | 
| 8 | 
            -
                   | 
| 9 | 
            -
             | 
| 10 | 
            -
                   | 
| 8 | 
            +
                  def jruby?
         | 
| 9 | 
            +
                    RUBY_ENGINE == "jruby"
         | 
| 10 | 
            +
                  end
         | 
| 11 11 |  | 
| 12 | 
            -
                   | 
| 13 | 
            -
                     | 
| 14 | 
            -
                      ::RUBY_ENGINE == v
         | 
| 15 | 
            -
                    end
         | 
| 12 | 
            +
                  def mri?
         | 
| 13 | 
            +
                    RUBY_ENGINE == "ruby"
         | 
| 16 14 | 
             
                  end
         | 
| 17 15 |  | 
| 18 | 
            -
                   | 
| 19 | 
            -
             | 
| 20 | 
            -
                   | 
| 21 | 
            -
                  # /proc/version returns nothing to us.
         | 
| 22 | 
            -
                  # --
         | 
| 16 | 
            +
                  def windows?
         | 
| 17 | 
            +
                    vanilla_windows? || bash_on_windows?
         | 
| 18 | 
            +
                  end
         | 
| 23 19 |  | 
| 20 | 
            +
                  # Not a Windows Subsystem for Linux (WSL)
         | 
| 24 21 | 
             
                  def vanilla_windows?
         | 
| 25 | 
            -
                     | 
| 26 | 
            -
                      !proc_version
         | 
| 22 | 
            +
                    rbconfig_host.match?(%r!mswin|mingw|cygwin!) && proc_version.empty?
         | 
| 27 23 | 
             
                  end
         | 
| 24 | 
            +
                  alias_method :really_windows?, :vanilla_windows?
         | 
| 28 25 |  | 
| 29 | 
            -
                  #  | 
| 30 | 
            -
                  # XXX: Remove in 4.0
         | 
| 31 | 
            -
                  # --
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                  alias_method :really_windows?, \
         | 
| 34 | 
            -
                               :vanilla_windows?
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                  #
         | 
| 37 | 
            -
             | 
| 26 | 
            +
                  # Determine if Windows Subsystem for Linux (WSL)
         | 
| 38 27 | 
             
                  def bash_on_windows?
         | 
| 39 | 
            -
                     | 
| 40 | 
            -
                      proc_version =~ %r!microsoft!i
         | 
| 28 | 
            +
                    linux_os? && microsoft_proc_version?
         | 
| 41 29 | 
             
                  end
         | 
| 42 30 |  | 
| 43 | 
            -
                  #
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                  def windows?
         | 
| 46 | 
            -
                    vanilla_windows? || bash_on_windows?
         | 
| 47 | 
            -
                  end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                  #
         | 
| 50 | 
            -
             | 
| 51 31 | 
             
                  def linux?
         | 
| 52 | 
            -
                     | 
| 53 | 
            -
                      proc_version !~ %r!microsoft!i
         | 
| 32 | 
            +
                    linux_os? && !microsoft_proc_version?
         | 
| 54 33 | 
             
                  end
         | 
| 55 34 |  | 
| 56 | 
            -
                   | 
| 57 | 
            -
             | 
| 58 | 
            -
                  # where we kick off certain tests based on the platform.
         | 
| 59 | 
            -
             | 
| 60 | 
            -
                  { :osx? => %r!darwin|mac os!, :unix? => %r!solaris|bsd! }.each do |k, v|
         | 
| 61 | 
            -
                    define_method k do
         | 
| 62 | 
            -
                      !!(
         | 
| 63 | 
            -
                        RbConfig::CONFIG["host_os"] =~ v
         | 
| 64 | 
            -
                      )
         | 
| 65 | 
            -
                    end
         | 
| 35 | 
            +
                  def osx?
         | 
| 36 | 
            +
                    rbconfig_host.match?(%r!darwin|mac os!)
         | 
| 66 37 | 
             
                  end
         | 
| 67 38 |  | 
| 68 | 
            -
                   | 
| 39 | 
            +
                  def unix?
         | 
| 40 | 
            +
                    rbconfig_host.match?(%r!solaris|bsd!)
         | 
| 41 | 
            +
                  end
         | 
| 69 42 |  | 
| 70 43 | 
             
                  private
         | 
| 71 44 |  | 
| 72 45 | 
             
                  def proc_version
         | 
| 73 | 
            -
                    @proc_version ||=
         | 
| 46 | 
            +
                    @proc_version ||= \
         | 
| 74 47 | 
             
                      begin
         | 
| 75 | 
            -
                        File.read("/proc/version")
         | 
| 48 | 
            +
                        File.read("/proc/version").downcase
         | 
| 76 49 | 
             
                      rescue Errno::ENOENT, Errno::EACCES
         | 
| 77 | 
            -
                         | 
| 50 | 
            +
                        ""
         | 
| 78 51 | 
             
                      end
         | 
| 79 52 | 
             
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def rbconfig_host
         | 
| 55 | 
            +
                    @rbconfig_host ||= RbConfig::CONFIG["host_os"].downcase
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  def linux_os?
         | 
| 59 | 
            +
                    rbconfig_host.include?("linux")
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  def microsoft_proc_version?
         | 
| 63 | 
            +
                    proc_version.include?("microsoft")
         | 
| 64 | 
            +
                  end
         | 
| 80 65 | 
             
                end
         | 
| 81 66 | 
             
              end
         | 
| 82 67 | 
             
            end
         | 
    
        data/lib/jekyll/version.rb
    CHANGED
    
    
    
        data/lib/jekyll.rb
    CHANGED
    
    | @@ -173,23 +173,9 @@ module Jekyll | |
| 173 173 | 
             
                # Returns the sanitized path.
         | 
| 174 174 | 
             
                def sanitized_path(base_directory, questionable_path)
         | 
| 175 175 | 
             
                  return base_directory if base_directory.eql?(questionable_path)
         | 
| 176 | 
            +
                  return base_directory if questionable_path.nil?
         | 
| 176 177 |  | 
| 177 | 
            -
                   | 
| 178 | 
            -
                  clean_path.insert(0, "/") if clean_path.start_with?("~")
         | 
| 179 | 
            -
                  clean_path = File.expand_path(clean_path, "/")
         | 
| 180 | 
            -
             | 
| 181 | 
            -
                  return clean_path if clean_path.eql?(base_directory)
         | 
| 182 | 
            -
             | 
| 183 | 
            -
                  # remove any remaining extra leading slashes not stripped away by calling
         | 
| 184 | 
            -
                  # `File.expand_path` above.
         | 
| 185 | 
            -
                  clean_path.squeeze!("/")
         | 
| 186 | 
            -
             | 
| 187 | 
            -
                  if clean_path.start_with?(base_directory.sub(%r!\z!, "/"))
         | 
| 188 | 
            -
                    clean_path
         | 
| 189 | 
            -
                  else
         | 
| 190 | 
            -
                    clean_path.sub!(%r!\A\w:/!, "/")
         | 
| 191 | 
            -
                    File.join(base_directory, clean_path)
         | 
| 192 | 
            -
                  end
         | 
| 178 | 
            +
                  +Jekyll::PathManager.sanitized_path(base_directory, questionable_path)
         | 
| 193 179 | 
             
                end
         | 
| 194 180 |  | 
| 195 181 | 
             
                # Conditional optimizations
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jekyll
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4. | 
| 4 | 
            +
              version: 4.2.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tom Preston-Werner
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire:
         | 
| 11 11 | 
             
            bindir: exe
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 13 | 
            +
            date: 2022-03-03 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: addressable
         | 
| @@ -102,14 +102,14 @@ dependencies: | |
| 102 102 | 
             
                requirements:
         | 
| 103 103 | 
             
                - - "~>"
         | 
| 104 104 | 
             
                  - !ruby/object:Gem::Version
         | 
| 105 | 
            -
                    version: '2. | 
| 105 | 
            +
                    version: '2.3'
         | 
| 106 106 | 
             
              type: :runtime
         | 
| 107 107 | 
             
              prerelease: false
         | 
| 108 108 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 109 109 | 
             
                requirements:
         | 
| 110 110 | 
             
                - - "~>"
         | 
| 111 111 | 
             
                  - !ruby/object:Gem::Version
         | 
| 112 | 
            -
                    version: '2. | 
| 112 | 
            +
                    version: '2.3'
         | 
| 113 113 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 114 114 | 
             
              name: kramdown-parser-gfm
         | 
| 115 115 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -200,14 +200,14 @@ dependencies: | |
| 200 200 | 
             
                requirements:
         | 
| 201 201 | 
             
                - - "~>"
         | 
| 202 202 | 
             
                  - !ruby/object:Gem::Version
         | 
| 203 | 
            -
                    version: ' | 
| 203 | 
            +
                    version: '2.0'
         | 
| 204 204 | 
             
              type: :runtime
         | 
| 205 205 | 
             
              prerelease: false
         | 
| 206 206 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 207 207 | 
             
                requirements:
         | 
| 208 208 | 
             
                - - "~>"
         | 
| 209 209 | 
             
                  - !ruby/object:Gem::Version
         | 
| 210 | 
            -
                    version: ' | 
| 210 | 
            +
                    version: '2.0'
         | 
| 211 211 | 
             
            description: Jekyll is a simple, blog aware, static site generator.
         | 
| 212 212 | 
             
            email:
         | 
| 213 213 | 
             
            - maintainers@jekyllrb.com
         | 
| @@ -364,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 364 364 | 
             
                - !ruby/object:Gem::Version
         | 
| 365 365 | 
             
                  version: 2.7.0
         | 
| 366 366 | 
             
            requirements: []
         | 
| 367 | 
            -
            rubygems_version: 3.1. | 
| 367 | 
            +
            rubygems_version: 3.1.6
         | 
| 368 368 | 
             
            signing_key:
         | 
| 369 369 | 
             
            specification_version: 4
         | 
| 370 370 | 
             
            summary: A simple, blog aware, static site generator.
         |