Sha256: cb09fff15ba26b1e97a9d15af9f8b6cc01b007ac8bd8869bbdd40394b667639e

Contents?: true

Size: 1.42 KB

Versions: 49

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

# :nocov:
module Ariadne
  module Yard
    # Helper methods for documentation generated in Lookbook pages.
    module LookbookDocsHelper
      # Adheres to the same signature as Ariadne::Yard::DocsHelper#link_to_component so link_to_component
      # may be used in a Gatsby or Lookbook context and produce the correct link for each platform.
      #
      # @param component [Class] The component class to link to.
      # @return [String] The link, either in HTML or markdown format.
      def link_to_component(component)
        backend = Ariadne::Yard::LookbookPagesBackend.new(Ariadne::Yard::Registry.make, nil)
        component_ref = Ariadne::Yard::ComponentManifest.ref_for(component)
        page = backend.page_for(component_ref)

        # If the page_path method is available, we're being rendered into HTML by Lookbook
        # and should emit an HTML <a> tag. No page_path means we're being rendered into
        # markdown by LookbookPagesBackend and should emit a markdown + ERB link that
        # Lookbook will eventually render on page load.
        if respond_to?(:page_path)
          link_to(page.docs.short_name, page_path(page.page_id.to_sym.inspect))
        else
          # rubocop:disable Rails/OutputSafety
          "[#{page.docs.short_name}](<%= page_path(#{page.page_id.to_sym.inspect}) %>)".html_safe
          # rubocop:enable Rails/OutputSafety
        end
      end
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
ariadne_view_components-0.0.93.2 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.93.1 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.93 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.92 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.91 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.90 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.89.1 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.89 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.88 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.87 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.9 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.8 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.7 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.6 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.5 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.4 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.3 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.2 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86.1 lib/ariadne/yard/lookbook_docs_helper.rb
ariadne_view_components-0.0.86 lib/ariadne/yard/lookbook_docs_helper.rb