Sha256: 6eb2731da0fd91b1f35bada91dd25ba5f86c6908987cacfbd18a09cf801748f1

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module Bridgetown
  module Plausible
    class Builder < Bridgetown::Builder
      def build
        liquid_tag "plausible" do |_attributes, tag|
          render.html_safe
        end

        helper "plausible" do
          render.html_safe
        end
      end

      private

      def render
        domain = options.dig(:domain)&.strip

        tag = if domain
          markup_for_domain(domain)
        else
          Bridgetown.logger.warn "Plausible", "Domain not configured."
          markup_for_domain("NOT CONFIGURED")
        end

        return wrap_with_comment(tag) unless Bridgetown.environment.production?

        tag
      end

      def markup_for_domain(domain)
        "<script async defer data-domain=\"#{domain}\" src=\"https://plausible.io/js/plausible.js\"></script>"
      end

      def wrap_with_comment(tag)
        "<!-- #{tag} -->"
      end

      def options
        config["plausible"] || {}
      end
    end
  end
end

Bridgetown::Plausible::Builder.register

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bridgetown-plausible-1.0.2 lib/bridgetown-plausible/builder.rb