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.
This commit is contained in:
David A. Harding 2017-06-07 12:56:37 -04:00
parent be6167d8fb
commit b9e114efe8
No known key found for this signature in database
GPG key ID: 4B29C30FF29EC4B7
2 changed files with 24 additions and 20 deletions

View file

@ -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

View file

@ -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