class Primer::Yard::LookbookPagesBackend
Backend that generates Lookbook pages.
def each_component(&block)
def each_component(&block) manifest.each(&block) end
def generate
def generate each_component do |component_ref| next if IGNORED_COMPONENTS.include?(component_ref.klass) page_for(component_ref).generate end generate_system_args_docs end
def generate_system_args_docs
def generate_system_args_docs docs = registry.find(Primer::BaseComponent) path = File.expand_path( File.join( *%w[.. .. .. previews pages system-arguments.md.erb] ), __dir__ ) data = { "description_md" => docs.base_docstring.to_s, "args_md" => view_context.render(inline: docs.constructor.base_docstring) } frontmatter = { "title" => "System arguments", "id" => "system_arguments", "data" => data } File.write( path, <<~ERB #{YAML.dump(frontmatter)} --- <%= @page.data[:description_md].html_safe %> <%= @page.data[:args_md].html_safe %> ERB ) end
def initialize(registry, manifest)
def initialize(registry, manifest) @registry = registry @manifest = manifest end
def page_for(component_ref)
def page_for(component_ref) docs = registry.find(component_ref.klass) LookbookPage.new(component_ref, self, docs) end
def view_context
def view_context @view_context ||= super.tap do |vc| vc.singleton_class.include(LookbookDocsHelper) end end