Sha256: 87fd66a1990c501f46988e5865fd3903ec852648603b27209ae9afbbcd204cee

Contents?: true

Size: 1.26 KB

Versions: 13

Compression:

Stored size: 1.26 KB

Contents

module Locomotive
  module Steam
    module Liquid
      module Tags
        class LinkTo < Hybrid

          include Concerns::Attributes
          include Concerns::I18nPage
          include Concerns::Path

          def render(context)
            render_path(context) do |page, path|
              label = label_from_page(page)

              if render_as_block?
                context.stack do
                  context.scopes.last['target'] = page
                  label = super.html_safe
                end
              end

              tag_href  = %(href="#{path}")
              tag_class = %( class="#{css}") if css.present?

              %{<a #{tag_href}#{tag_class}>#{label}</a>}
            end
          end

          def wrong_syntax!
            raise SyntaxError.new("Syntax Error in 'link_to' - Valid syntax: link_to page_handle, locale es (locale is optional)")
          end

          protected

          def label_from_page(page)
            if page.templatized?
              page.send(:_source).content_entry._label
            else
              page.title
            end
          end

          def css
            attributes[:class]
          end

        end

        ::Liquid::Template.register_tag('link_to', LinkTo)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
locomotivecms_steam-1.8.0.alpha2 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.8.0.alpha1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.7.1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.7.0 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.6.1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.6.0 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.6.0.rc1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.6.0.beta1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.5.3 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.5.2 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.5.1 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.5.0 lib/locomotive/steam/liquid/tags/link_to.rb
locomotivecms_steam-1.5.0.rc1 lib/locomotive/steam/liquid/tags/link_to.rb