From b9e114efe8e68f41616a45b3e4368665ae7790bd Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Wed, 7 Jun 2017 12:56:37 -0400 Subject: [PATCH] Build: allow repeated rebuilding in Jekyll Preview mode The events and contributor plugins both monkey patched the `site` object. This worked fine when they were loaded once per site build, but with Jekyll 3.0 automatic site rebuilding in preview and watch modes, this applied the monkey patch recursively, causing the program to halt. With this commit, the monkey patching should only occur once per run. --- _plugins/contributors.rb | 24 +++++++++++++----------- _plugins/events.rb | 20 +++++++++++--------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/_plugins/contributors.rb b/_plugins/contributors.rb index e19e9d87..8a8f8872 100644 --- a/_plugins/contributors.rb +++ b/_plugins/contributors.rb @@ -78,17 +78,19 @@ module Jekyll def generate(site) # Set site.contributors global variables for liquid/jekyll - class << site - attr_accessor :corecontributors - attr_accessor :sitecontributors - alias contrib_site_payload site_payload - def site_payload - h = contrib_site_payload - payload = h["site"] - payload["corecontributors"] = self.corecontributors - payload["sitecontributors"] = self.sitecontributors - h["site"] = payload - h + if ! site.respond_to?('corecontributors') + class << site + attr_accessor :corecontributors + attr_accessor :sitecontributors + alias contrib_site_payload site_payload + def site_payload + h = contrib_site_payload + payload = h["site"] + payload["corecontributors"] = self.corecontributors + payload["sitecontributors"] = self.sitecontributors + h["site"] = payload + h + end end end diff --git a/_plugins/events.rb b/_plugins/events.rb index 8ef8ed3b..77427094 100644 --- a/_plugins/events.rb +++ b/_plugins/events.rb @@ -42,15 +42,17 @@ module Jekyll def generate(site) # Set site.meetups and site.conferences global variables for liquid/jekyll - class << site - attr_accessor :conferences - alias event_site_payload site_payload - def site_payload - h = event_site_payload - payload = h["site"] - payload["conferences"] = self.conferences - h["site"] = payload - h + if ! site.respond_to?('conferences') + class << site + attr_accessor :meetups, :conferences + alias event_site_payload site_payload + def site_payload + h = event_site_payload + payload = h["site"] + payload["conferences"] = self.conferences + h["site"] = payload + h + end end end