module Ariadne::Yard::LookbookDocsHelper

def link_to_component(component)

Returns:
  • (String) - The link, either in HTML or markdown format.

Parameters:
  • component (Class) -- The component class to link to.
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
    "[#{page.docs.short_name}](<%= page_path(#{page.page_id.to_sym.inspect}) %>)".html_safe
  end
end