Sha256: e6b9de339c9e3e6c73bbff26c56d1e438b9ad051afb1d620a2883978e1cd6cea

Contents?: true

Size: 1.8 KB

Versions: 12

Compression:

Stored size: 1.8 KB

Contents

# ------------------------------------------------------------------------------
# ~/_plugins/symlink_watcher
# jekyll-watch extension to listen for changes in symlinked folders
#
# Product/Info:
# https://github.com/willnorris/willnorris.com/tree/master/src/_plugins/
# https://jekyll.one
#
# Copyright (C) 2002-2014 Will Norris
# Copyright (C) 2023, 2024 Juergen Adams
#
# symlink_watcher is licensed under the  MIT license
# See: https://github.com/willnorris/willnorris.com/blob/master/LICENSE
# J1 Template is licensed under the MIT License.
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
# ------------------------------------------------------------------------------
# NOTE:
#   The symlink_watcher plugin extends jekyll-watch to listen also
#   for changes in any symlinked sub-directory.
#
#   For example, in _drafts directory is a symlink to a directory
#   elsewhere on the filesystem. This plugin will cause jekyll to
#   regenerate the site when ANY file change in the drafts folder.
# ------------------------------------------------------------------------------
require "find"
require "jekyll-watch"

module Jekyll
  module Watcher
    def build_listener_with_symlinks(site, options)
      src = options["source"]
      dirs = [src]
      Find.find(src).each do |f|
        next if f == "#{src}/_drafts" and not options["show_drafts"]
        # TODO: willnorris, filter ignored files
        dirs << f if File.directory?(f) and File.symlink?(f)
      end

      require "listen"
      Listen.to(
        *dirs,
        :ignore => listen_ignore_paths(options),
        :force_polling => options['force_polling'],
        &(listen_handler(site))
      )
    end

    alias_method :build_listener_without_symlinks, :build_listener
    alias_method :build_listener, :build_listener_with_symlinks
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
j1-template-2024.2.1 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.2.0 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.5 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.4 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.3 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.2 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.1 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.1.0 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.0.3 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.0.2 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.0.1 lib/starter_web/_plugins/helper/symlink_watcher.rb
j1-template-2024.0.0 lib/starter_web/_plugins/helper/symlink_watcher.rb