class Jekyll::AttendeasePlugin::BlockRendererTag
Public Class Methods
new(tag_name, url_override, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll/attendease_plugin/tags.rb, line 146 def initialize(tag_name, url_override, tokens) super @url_override = url_override end
Public Instance Methods
render(context)
click to toggle source
# File lib/jekyll/attendease_plugin/tags.rb, line 151 def render(context) config = context.registers[:site].config['attendease'] site_settings = context.registers[:site].data['site_settings'].clone analytics = site_settings.delete 'analytics' site_settings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key } organization_site_settings = {} if context.registers[:site].data['organization_site_settings'] organization_site_settings = context.registers[:site].data['organization_site_settings'].clone organization_site_settings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key } end parent_pages_are_clickable = config['parent_pages_are_clickable'] pages = Helpers.public_pages(context.registers[:site].data['pages']) portal_pages = Helpers.public_pages(context.registers[:site].data['portal_pages']) || [] env = config['environment'] # IMPORTANT NOTE: The script variables below must NOT be changed without making sure that blockrenderer.js and other # related code in the platform is backwards-compatible. if config['mode'] == 'organization' constants = { 'locale' => 'en', 'siteName' => config['organization_name'], 'orgURL' => config['api_host'], 'orgId' => config['source_id'], 'privateSite' => config['private_site'], 'authApiEndpoint' => "#{config['auth_host']}api", 'orgLocales' => config['available_portal_locales'], 'features' => config['features'], 'pages' => pages, 'settings' => { parentPagesAreClickable: !!parent_pages_are_clickable }, 'siteSettings' => site_settings, 'analytics' => analytics, 'basePath' => config['base_path'] } else constants = { 'locale' => config['locale'], 'siteName' => config['data']['event_name'], 'eventApiEndpoint' => "#{config['api_host']}api", 'eventId' => config['source_id'], 'orgURL' => config['organization_url'], 'orgId' => config['organization_id'], 'privateSite' => config['private_site'], 'authApiEndpoint' => "#{config['auth_host']}api", 'features' => config['features'], 'pages' => pages, 'portalPages' => portal_pages, 'settings' => { parentPagesAreClickable: !!parent_pages_are_clickable }, 'siteSettings' => site_settings, 'organizationSiteSettings' => organization_site_settings, 'analytics' => analytics, 'basePath' => config['base_path'] } end script = <<_EOT <script type="text/javascript"> (function(w) { w.AttendeaseConstants = { #{ constants.map{ |k, v| " #{k}: #{v.to_json}," }.join("\n") } } })(window) </script> _EOT if @url_override.match(/^(https:)?\/\/.+/) url = @url_override else case env when 'development' url = '//dashboard.localhost.attendease.com/webpack_assets/blockrenderer.bundle.js' when 'prerelease' url = '//pre-attendease-aws-ecs-f-attendeaseawsecsfargateb-1h2p9edu0fy26.s3.us-west-2.amazonaws.com/blockrenderer/latest.js' when 'staging' url = '//stg-attendease-aws-ecs-f-attendeaseawsecsfargateb-gzsa0k25dvzq.s3.us-west-2.amazonaws.com/blockrenderer/latest.js' when 'sandbox' #TODO update Sandbox blockrenderer when we move Sandbox to ECS url = '//sbx-attendease-aws-ecs-f-attendeaseawsecsfargateb-1c7flm8y8j77m.s3.us-west-2.amazonaws.com/blockrenderer/latest.js' else url = '//cdn.attendease.com/blockrenderer/latest.js' end end script << <<_EOT <script type="text/javascript" src="#{ url }"></script> _EOT script end