# Root directory for all repo html mini-sites.
def my_output_dir
  return "#{ENV['HOME']}/wiki/ratf/src/repos"
end

# Common header for all pages
def my_header(vals)
  rrp = vals[:root_rel_prefix]
  name = vals[:name]

  # page title starting with default for :main
  title = "#{name} - #{vals[:description]}"
  if vals[:page_type] == :file
    title = "#{name}/#{vals[:file_fname]}"
  elsif vals[:page_type] == :files_list
    title = "#{name} files"
  elsif vals[:page_type] == :commits
    title = "#{name} commit history"
  end

  og_img = "#{name}.jpg"
  og_img_local = "#{my_output_dir}/og_imgs/#{og_img}"
  og_img_url = "http://ratfactor.com/repos/og_imgs/#{og_img}"
  og_img_tag = ''
  if File.exist?(og_img_local)
    og_img_tag = "<meta property=\"og:image\" content=\"#{og_img_url}\">"
  end

  # Return header html as string
  <<~HTML
  <!DOCTYPE html>
  <html lang="en">
  <head>
    <title>#{title}</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- open graph stuff so this looks good on mastodon, etc. -->
    <meta property="og:title" content="#{name}">
    <meta property="og:type" content="website">
    <meta property="og:description" content="#{vals[:description]}">
    #{og_img_tag}
    <!-- end of open graph stuff -->
    <link rel="stylesheet" href="#{rrp}../repos.css">
  </head>
  <body>
  <header>
    <a href="/">
     <img src="/images/rat-logo.svg" alt="colorful rat">
     Ratfactor.com
    </a>
    &gt;
    <a href="/repos/">Dave's Repos</a>
    <h1>#{name}</h1>
    <div class="description">#{vals[:description]}</div>
    <div class="nav">
      <a href="#{rrp}.">About</a>
      <a href="#{rrp}files.html">Files</a>
      <a href="#{rrp}commits.html">Commits</a>
      <code>git clone http://ratfactor.com/repos/#{name}/#{name}.git</code>
    </div>
  </header>
  HTML
end

# Common footer for all pages
def my_footer()
  datetime = Time.now

  <<~HTML
  <footer>
    Generated #{datetime} by
    <a href="http://ratfactor.com/repos/reporat/">RepoRat</a>
  </footer>
  </body>
  </html>
  HTML
end
