70 lines
2.0 KiB
Ruby
70 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Agregar Sutty en el generador del sitio
|
|
module JekyllDropDecorator
|
|
def self.included(base)
|
|
base.class_eval do
|
|
def version
|
|
"#{Jekyll::VERSION} (Sutty https://sutty.nl)"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Jekyll::Drops::JekyllDrop.include JekyllDropDecorator
|
|
|
|
# Traspasa información desde el layout de about a la configuración de
|
|
# Jekyll
|
|
Jekyll::Hooks.register :site, :post_read, priority: 29 do |site|
|
|
index = site.pages.find do |page|
|
|
page.url == '/'
|
|
end
|
|
|
|
site.config['css'] = site.pages.find(&:sass_file?)
|
|
|
|
%w[about theme license code_of_conduct privacy_policy].each do |layout|
|
|
pluralized = site.data.dig('inflections', 'plurals', layout)
|
|
|
|
site.config[layout] = site.collections[pluralized]&.docs&.find do |post|
|
|
post['layout'] == layout
|
|
end
|
|
end
|
|
|
|
about = site.config['about']
|
|
|
|
unless about
|
|
Jekyll.logger.warn '_plugins/about.rb:', 'Falta un documento con layout "about"'
|
|
next
|
|
end
|
|
|
|
site.config['tagline'] = about['tagline']
|
|
site.config['description'] = about['description']
|
|
site.config['activity_pub']['published'] = about['created_at']
|
|
site.config['activity_pub']['updated'] = about['last_modified_at']
|
|
site.config['logo'] = about.data.dig('logo', 'path')
|
|
site.config['cache'] = !site.config['theme']&.data&.dig('testing')
|
|
index.data['image'] = site.config['image'] = about['image']
|
|
|
|
%w[social facebook twitter webmaster_verifications].each do |k|
|
|
site.config[k] = {}
|
|
end
|
|
|
|
site.config['social']['links'] = about['social_networks']
|
|
|
|
site.config['facebook']['app_id'] = about['facebook_app_id']
|
|
site.config['facebook']['publisher'] =
|
|
about['social_networks']&.find do |sn|
|
|
sn.include? 'facebook.com'
|
|
end
|
|
|
|
%w[google bing alexa yandex baidu facebook].each do |verificator|
|
|
site.config['webmaster_verifications'][verificator] =
|
|
about["webmaster_verification_#{verificator}"]
|
|
end
|
|
|
|
site.config['twitter']['username'] =
|
|
about['social_networks']&.find do |sn|
|
|
sn.include? 'twitter.com'
|
|
end&.split('/')&.last
|
|
end
|