Module: JekyllIS::Images::Hooks
- Defined in:
- lib/jekyll-is/images/hooks.rb
Constant Summary collapse
- HOOK_PAGE_VAR =
'__is_images_hook'
Class Method Summary collapse
- .init_hooks(site) ⇒ void private
Class Method Details
.init_hooks(site) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/jekyll-is/images/hooks.rb', line 19 def init_hooks site Jekyll::Hooks::register [ :pages, :documents ], :pre_render do |page, _| if !page.data.dig('is_images', 'disable') page.data[HOOK_PAGE_VAR] = Kramdown::Parser::ISKram::register_post_parse_hook do |parser| processor = JekyllIS::Images::Kramdown::Processor::new site, page processor.process parser.root end JekyllIS::Images::Image.replace_page_image site, page end end Jekyll::Hooks::register [ :pages, :documents ], :post_render do |page, _| hook = page.data[HOOK_PAGE_VAR] Kramdown::Parser::ISKram::unregister_post_parse_hook hook if hook unless page.data.dig('is_images', 'disable') context = JekyllIS::Images::Context[site, page] # Следует использовать is_images.disable_auto_stuff для того, чтобы те же самые линки разместить # самостоятельно в шаблонах. Просто не использовать их при включенном плагие в целом — не имеет # смысла. unless context.config('disable_auto_stuff') page.output.sub! '</head>', "#{ JekyllIS::Images::Assets::stuff(context) }\n</head>" end end end Jekyll::Hooks::register :site, :after_reset do |site| context = JekyllIS::Images::Context[site, nil] if File.directory?(site.in_source_dir(".jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown")) JekyllIS::Images::Image::Cache::restore_static_files context end JekyllIS::Images::Assets::register context end Jekyll::Hooks::register :site, :post_write do |site| context = JekyllIS::Images::Context[site, nil] is_live = site.config['watch'] || site.config['serving'] || site.incremental? || JekyllIS::Images.cached_environment cache_path = site.in_source_dir context.cache_path if !is_live && File.directory?(cache_path) JekyllIS::Images::Image::Cache::clean_unused_files context end end end |