1 # Root directory for all repo html mini-sites.
2 def my_output_dir
3 return "#{ENV['HOME']}/wiki/ratf/src/repos"
4 end
5
6 # Common header for all pages
7 def my_header(vals)
8 rrp = vals[:root_rel_prefix]
9 name = vals[:name]
10
11 # page title starting with default for :main
12 title = "#{name} - #{vals[:description]}"
13 if vals[:page_type] == :file
14 title = "#{name}/#{vals[:file_fname]}"
15 elsif vals[:page_type] == :files_list
16 title = "#{name} files"
17 elsif vals[:page_type] == :commits
18 title = "#{name} commit history"
19 end
20
21 og_img = "#{name}.jpg"
22 og_img_local = "#{my_output_dir}/og_imgs/#{og_img}"
23 og_img_url = "http://ratfactor.com/repos/og_imgs/#{og_img}"
24 og_img_tag = ''
25 if File.exist?(og_img_local)
26 og_img_tag = "<meta property=\"og:image\" content=\"#{og_img_url}\">"
27 end
28
29 # Return header html as string
30 <<~HTML
31 <!DOCTYPE html>
32 <html lang="en">
33 <head>
34 <title>#{title}</title>
35 <meta charset="utf-8">
36 <meta name="viewport" content="width=device-width, initial-scale=1">
37 <!-- open graph stuff so this looks good on mastodon, etc. -->
38 <meta property="og:title" content="#{name}">
39 <meta property="og:type" content="website">
40 <meta property="og:description" content="#{vals[:description]}">
41 #{og_img_tag}
42 <!-- end of open graph stuff -->
43 <link rel="stylesheet" href="#{rrp}../repos.css">
44 </head>
45 <body>
46 <header>
47 <a href="/">
48 <img src="/images/rat-logo.svg" alt="colorful rat">
49 Ratfactor.com
50 </a>
51 >
52 <a href="/repos/">Dave's Repos</a>
53 <h1>#{name}</h1>
54 <div class="description">#{vals[:description]}</div>
55 <div class="nav">
56 <a href="#{rrp}.">About</a>
57 <a href="#{rrp}files.html">Files</a>
58 <a href="#{rrp}commits.html">Commits</a>
59 <code>git clone http://ratfactor.com/repos/#{name}/#{name}.git</code>
60 </div>
61 </header>
62 HTML
63 end
64
65 # Common footer for all pages
66 def my_footer()
67 datetime = Time.now
68
69 <<~HTML
70 <footer>
71 Generated #{datetime} by
72 <a href="http://ratfactor.com/repos/reporat/">RepoRat</a>
73 </footer>
74 </body>
75 </html>
76 HTML
77 end