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,6 +78,7 @@ module Jekyll
def generate(site) def generate(site)
# Set site.contributors global variables for liquid/jekyll # Set site.contributors global variables for liquid/jekyll
if ! site.respond_to?('corecontributors')
class << site class << site
attr_accessor :corecontributors attr_accessor :corecontributors
attr_accessor :sitecontributors attr_accessor :sitecontributors
@ -91,6 +92,7 @@ module Jekyll
h h
end end
end end
end
# Set site.corecontributors and site.sitecontributors arrays # Set site.corecontributors and site.sitecontributors arrays
site.corecontributors = {} site.corecontributors = {}

View file

@ -42,8 +42,9 @@ module Jekyll
def generate(site) def generate(site)
# Set site.meetups and site.conferences global variables for liquid/jekyll # Set site.meetups and site.conferences global variables for liquid/jekyll
if ! site.respond_to?('conferences')
class << site class << site
attr_accessor :conferences attr_accessor :meetups, :conferences
alias event_site_payload site_payload alias event_site_payload site_payload
def site_payload def site_payload
h = event_site_payload h = event_site_payload
@ -53,6 +54,7 @@ module Jekyll
h h
end end
end end
end
# Set site.conferences array # Set site.conferences array
site.conferences = {} site.conferences = {}