- Fix home.tmpl to properly show promotional content when selected - Fix line endings and indentation in all templates - Fix locale file line endings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
812 lines
17 KiB
Handlebars
812 lines
17 KiB
Handlebars
{{template "pages/base_head" .}}
|
||
<style>
|
||
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:wght@400;500;600;700&family=Source+Code+Pro:wght@400;500&display=swap');
|
||
|
||
:root {
|
||
--md-bg: #fcfcfc;
|
||
--md-text: #171717;
|
||
--md-muted: #525252;
|
||
--md-light: #737373;
|
||
--md-border: #e5e5e5;
|
||
--md-accent: {{if .Config.Theme.PrimaryColor}}{{.Config.Theme.PrimaryColor}}{{else}}#171717{{end}};
|
||
}
|
||
|
||
.md-page {
|
||
min-height: 100vh;
|
||
background: var(--md-bg);
|
||
color: var(--md-text);
|
||
font-family: 'Source Serif 4', Georgia, serif;
|
||
line-height: 1.7;
|
||
}
|
||
|
||
.md-nav {
|
||
padding: 24px 48px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
border-bottom: 1px solid var(--md-border);
|
||
}
|
||
|
||
.md-nav-brand {
|
||
font-weight: 700;
|
||
font-size: 20px;
|
||
color: var(--md-text);
|
||
letter-spacing: -0.02em;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.md-nav-links {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 32px;
|
||
}
|
||
|
||
.md-nav-link {
|
||
color: var(--md-muted);
|
||
text-decoration: none;
|
||
font-size: 15px;
|
||
transition: color 0.2s ease;
|
||
}
|
||
|
||
.md-nav-link:hover {
|
||
color: var(--md-text);
|
||
}
|
||
|
||
.md-btn-text {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
color: var(--md-muted);
|
||
font-family: 'Source Serif 4', Georgia, serif;
|
||
font-weight: 500;
|
||
font-size: 16px;
|
||
text-decoration: none;
|
||
background: none;
|
||
border: none;
|
||
cursor: pointer;
|
||
transition: color 0.2s ease;
|
||
}
|
||
|
||
.md-btn-text:hover {
|
||
color: var(--md-text);
|
||
}
|
||
|
||
.md-btn-primary {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
padding: 14px 28px;
|
||
background: var(--md-text);
|
||
color: var(--md-bg);
|
||
font-family: 'Source Serif 4', Georgia, serif;
|
||
font-weight: 500;
|
||
font-size: 16px;
|
||
border-radius: 4px;
|
||
text-decoration: none;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.md-btn-primary:hover {
|
||
background: #404040;
|
||
}
|
||
|
||
.md-hero {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 120px 24px 80px;
|
||
}
|
||
|
||
.md-hero h1 {
|
||
font-size: 52px;
|
||
font-weight: 600;
|
||
line-height: 1.2;
|
||
margin-bottom: 24px;
|
||
letter-spacing: -0.02em;
|
||
color: var(--md-text);
|
||
}
|
||
|
||
.md-hero-sub {
|
||
font-size: 21px;
|
||
color: var(--md-muted);
|
||
line-height: 1.7;
|
||
margin-bottom: 36px;
|
||
}
|
||
|
||
.md-hero-ctas {
|
||
display: flex;
|
||
gap: 16px;
|
||
align-items: center;
|
||
margin-bottom: 64px;
|
||
}
|
||
|
||
.md-install-cmd {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
padding: 12px 20px;
|
||
background: #f5f5f5;
|
||
border-radius: 4px;
|
||
font-family: 'Source Code Pro', monospace;
|
||
font-size: 15px;
|
||
color: var(--md-muted);
|
||
border: 1px solid var(--md-border);
|
||
cursor: pointer;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.md-install-cmd:hover {
|
||
border-color: #d4d4d4;
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.md-code-block {
|
||
background: #1a1a1a;
|
||
border-radius: 6px;
|
||
padding: 28px;
|
||
font-family: 'Source Code Pro', monospace;
|
||
font-size: 14px;
|
||
line-height: 1.7;
|
||
overflow-x: auto;
|
||
position: relative;
|
||
}
|
||
|
||
.md-code-block code {
|
||
color: #e5e5e5;
|
||
white-space: pre;
|
||
}
|
||
|
||
.md-copy-btn {
|
||
position: absolute;
|
||
top: 16px;
|
||
right: 16px;
|
||
width: 36px;
|
||
height: 36px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: rgba(255,255,255,0.05);
|
||
border: 1px solid rgba(255,255,255,0.1);
|
||
border-radius: 6px;
|
||
color: #737373;
|
||
cursor: pointer;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.md-copy-btn:hover {
|
||
background: rgba(255,255,255,0.1);
|
||
color: #e5e5e5;
|
||
}
|
||
|
||
.md-divider {
|
||
height: 1px;
|
||
background: var(--md-border);
|
||
max-width: 720px;
|
||
margin: 80px auto;
|
||
}
|
||
|
||
.md-stats {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 0 24px;
|
||
}
|
||
|
||
.md-stats-inner {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, 1fr);
|
||
gap: 48px;
|
||
text-align: center;
|
||
}
|
||
|
||
.md-stat-value {
|
||
font-size: 32px;
|
||
font-weight: 600;
|
||
color: var(--md-text);
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.md-stat-label {
|
||
font-size: 14px;
|
||
color: var(--md-light);
|
||
margin-top: 4px;
|
||
}
|
||
|
||
.md-section {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 0 24px 80px;
|
||
}
|
||
|
||
.md-section-title {
|
||
font-size: 32px;
|
||
font-weight: 600;
|
||
margin-bottom: 32px;
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.md-value-item {
|
||
display: flex;
|
||
align-items: baseline;
|
||
gap: 12px;
|
||
margin-bottom: 12px;
|
||
}
|
||
|
||
.md-value-bullet {
|
||
width: 6px;
|
||
height: 6px;
|
||
background: var(--md-text);
|
||
border-radius: 50%;
|
||
flex-shrink: 0;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.md-value-title {
|
||
font-weight: 500;
|
||
color: var(--md-text);
|
||
}
|
||
|
||
.md-value-desc {
|
||
color: var(--md-light);
|
||
}
|
||
|
||
.md-accordion {
|
||
border-top: 1px solid var(--md-border);
|
||
}
|
||
|
||
.md-accordion-item {
|
||
border-bottom: 1px solid var(--md-border);
|
||
padding: 24px 0;
|
||
}
|
||
|
||
.md-accordion-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
cursor: pointer;
|
||
background: none;
|
||
border: none;
|
||
width: 100%;
|
||
text-align: left;
|
||
font-family: 'Source Serif 4', Georgia, serif;
|
||
}
|
||
|
||
.md-accordion-title {
|
||
font-size: 20px;
|
||
font-weight: 500;
|
||
color: var(--md-text);
|
||
transition: color 0.2s ease;
|
||
}
|
||
|
||
.md-accordion-header:hover .md-accordion-title {
|
||
color: var(--md-muted);
|
||
}
|
||
|
||
.md-accordion-icon {
|
||
width: 24px;
|
||
height: 24px;
|
||
color: var(--md-light);
|
||
transition: transform 0.3s ease;
|
||
font-size: 24px;
|
||
font-weight: 300;
|
||
line-height: 1;
|
||
}
|
||
|
||
.md-accordion-content {
|
||
display: none;
|
||
padding-top: 16px;
|
||
font-size: 17px;
|
||
line-height: 1.7;
|
||
color: var(--md-muted);
|
||
}
|
||
|
||
.md-accordion-item.open .md-accordion-content {
|
||
display: block;
|
||
}
|
||
|
||
.md-pricing {
|
||
max-width: 960px;
|
||
margin: 0 auto;
|
||
padding: 80px 24px;
|
||
border-top: 1px solid var(--md-border);
|
||
}
|
||
|
||
.md-pricing-title {
|
||
font-size: 32px;
|
||
font-weight: 600;
|
||
text-align: center;
|
||
margin-bottom: 48px;
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.md-pricing-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||
gap: 24px;
|
||
}
|
||
|
||
.md-pricing-card {
|
||
border: 1px solid var(--md-border);
|
||
border-radius: 8px;
|
||
padding: 32px;
|
||
background: white;
|
||
position: relative;
|
||
}
|
||
|
||
.md-pricing-card.featured {
|
||
border-color: var(--md-text);
|
||
box-shadow: 0 4px 24px rgba(0,0,0,0.08);
|
||
}
|
||
|
||
.md-pricing-featured-badge {
|
||
position: absolute;
|
||
top: -12px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
background: var(--md-text);
|
||
color: white;
|
||
font-size: 12px;
|
||
font-weight: 500;
|
||
padding: 4px 12px;
|
||
border-radius: 12px;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
}
|
||
|
||
.md-pricing-name {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.md-pricing-price {
|
||
font-size: 36px;
|
||
font-weight: 600;
|
||
margin-bottom: 4px;
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.md-pricing-period {
|
||
font-size: 14px;
|
||
color: var(--md-light);
|
||
margin-bottom: 24px;
|
||
}
|
||
|
||
.md-pricing-features {
|
||
list-style: none;
|
||
padding: 0;
|
||
margin: 0 0 24px;
|
||
}
|
||
|
||
.md-pricing-features li {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
padding: 8px 0;
|
||
font-size: 15px;
|
||
color: var(--md-muted);
|
||
}
|
||
|
||
.md-pricing-features li::before {
|
||
content: "✓";
|
||
color: var(--md-text);
|
||
font-weight: 600;
|
||
}
|
||
|
||
.md-pricing-cta {
|
||
display: block;
|
||
width: 100%;
|
||
padding: 12px 24px;
|
||
text-align: center;
|
||
border: 1px solid var(--md-border);
|
||
border-radius: 4px;
|
||
font-family: 'Source Serif 4', Georgia, serif;
|
||
font-weight: 500;
|
||
font-size: 15px;
|
||
color: var(--md-text);
|
||
text-decoration: none;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.md-pricing-cta:hover {
|
||
background: var(--md-text);
|
||
color: white;
|
||
border-color: var(--md-text);
|
||
}
|
||
|
||
.md-pricing-card.featured .md-pricing-cta {
|
||
background: var(--md-text);
|
||
color: white;
|
||
border-color: var(--md-text);
|
||
}
|
||
|
||
.md-pricing-card.featured .md-pricing-cta:hover {
|
||
background: #404040;
|
||
}
|
||
|
||
.md-testimonial-section {
|
||
border-top: 1px solid var(--md-border);
|
||
border-bottom: 1px solid var(--md-border);
|
||
padding: 80px 0;
|
||
margin: 80px 0;
|
||
}
|
||
|
||
.md-testimonial-inner {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 0 24px;
|
||
}
|
||
|
||
.md-testimonial-quote {
|
||
font-size: 28px;
|
||
line-height: 1.5;
|
||
color: var(--md-text);
|
||
margin-bottom: 24px;
|
||
font-style: italic;
|
||
}
|
||
|
||
.md-testimonial-author {
|
||
font-weight: 500;
|
||
color: var(--md-muted);
|
||
}
|
||
|
||
.md-testimonial-role {
|
||
color: var(--md-light);
|
||
}
|
||
|
||
.md-used-by {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 0 24px 80px;
|
||
}
|
||
|
||
.md-used-by-label {
|
||
font-size: 14px;
|
||
color: #a3a3a3;
|
||
margin-bottom: 20px;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
}
|
||
|
||
.md-used-by-logos {
|
||
display: flex;
|
||
gap: 32px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.md-used-by-item {
|
||
font-size: 15px;
|
||
color: #a3a3a3;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.md-cta-section {
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 80px 24px;
|
||
text-align: center;
|
||
border-top: 1px solid var(--md-border);
|
||
}
|
||
|
||
.md-cta-section h2 {
|
||
font-size: 36px;
|
||
font-weight: 600;
|
||
margin-bottom: 24px;
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.md-footer {
|
||
padding: 32px 48px;
|
||
border-top: 1px solid var(--md-border);
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.md-footer-copyright {
|
||
font-size: 14px;
|
||
color: #a3a3a3;
|
||
}
|
||
|
||
.md-footer-links {
|
||
display: flex;
|
||
gap: 24px;
|
||
}
|
||
|
||
.md-footer-link {
|
||
color: var(--md-light);
|
||
text-decoration: none;
|
||
font-size: 14px;
|
||
transition: color 0.2s ease;
|
||
}
|
||
|
||
.md-footer-link:hover {
|
||
color: var(--md-text);
|
||
}
|
||
|
||
.md-footer-social {
|
||
display: flex;
|
||
gap: 16px;
|
||
}
|
||
|
||
.md-footer-social a {
|
||
color: var(--md-light);
|
||
transition: color 0.2s ease;
|
||
}
|
||
|
||
.md-footer-social a:hover {
|
||
color: var(--md-text);
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
.md-nav { padding: 16px 24px; }
|
||
.md-nav-links { gap: 16px; }
|
||
.md-hero { padding: 80px 24px 60px; }
|
||
.md-hero h1 { font-size: 36px; }
|
||
.md-hero-sub { font-size: 18px; }
|
||
.md-hero-ctas { flex-direction: column; align-items: flex-start; }
|
||
.md-stats-inner { grid-template-columns: 1fr; gap: 24px; }
|
||
.md-section-title { font-size: 28px; }
|
||
.md-testimonial-quote { font-size: 22px; }
|
||
.md-cta-section h2 { font-size: 28px; }
|
||
.md-footer { flex-direction: column; gap: 16px; text-align: center; padding: 24px; }
|
||
}
|
||
</style>
|
||
|
||
<div class="md-page">
|
||
<!-- Navigation -->
|
||
<nav class="md-nav">
|
||
<a href="/" class="md-nav-brand">{{if .Config.Brand.Name}}{{.Config.Brand.Name}}{{else}}{{.Repository.Name}}{{end}}</a>
|
||
<div class="md-nav-links">
|
||
{{if .Config.Footer.Links}}
|
||
{{range .Config.Footer.Links}}
|
||
<a href="{{.URL}}" class="md-nav-link">{{.Label}}</a>
|
||
{{end}}
|
||
{{else}}
|
||
<a href="{{.Repository.Link}}/wiki" class="md-nav-link">Docs</a>
|
||
<a href="{{.Repository.Link}}" class="md-nav-link">API</a>
|
||
{{end}}
|
||
{{if .Config.ValueProps}}<a href="#why" class="md-nav-link">Why</a>{{end}}
|
||
{{if .Config.Features}}<a href="#features" class="md-nav-link">Features</a>{{end}}
|
||
{{if .Config.Pricing.Plans}}<a href="#pricing" class="md-nav-link">Pricing</a>{{end}}
|
||
<a href="{{.Repository.Link}}" class="md-btn-text">
|
||
<img src="/assets/img/gitcaddy-icon.svg" width="18" height="18" alt="GitCaddy">
|
||
Repository
|
||
</a>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- Hero Section (Left Aligned) -->
|
||
<section class="md-hero">
|
||
<h1>{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}</h1>
|
||
<p class="md-hero-sub">{{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}}</p>
|
||
|
||
<div class="md-hero-ctas">
|
||
{{if .Config.Hero.PrimaryCTA.Label}}
|
||
<a href="{{.Config.Hero.PrimaryCTA.URL}}" class="md-btn-primary">
|
||
{{.Config.Hero.PrimaryCTA.Label}}
|
||
{{svg "octicon-arrow-right" 16}}
|
||
</a>
|
||
{{else}}
|
||
<a href="{{.Repository.Link}}" class="md-btn-primary">
|
||
Get Started
|
||
{{svg "octicon-arrow-right" 16}}
|
||
</a>
|
||
{{end}}
|
||
</div>
|
||
|
||
{{if .Config.Hero.CodeExample}}
|
||
<div class="md-code-block">
|
||
<button class="md-copy-btn" onclick="navigator.clipboard.writeText(document.getElementById('code-example').textContent)">
|
||
{{svg "octicon-copy" 16}}
|
||
</button>
|
||
<code id="code-example">{{.Config.Hero.CodeExample}}</code>
|
||
</div>
|
||
{{end}}
|
||
</section>
|
||
|
||
{{if or .Config.Stats (gt .NumStars 0)}}
|
||
<div class="md-divider"></div>
|
||
<!-- Stats -->
|
||
<section class="md-stats">
|
||
<div class="md-stats-inner">
|
||
{{if .Config.Stats}}
|
||
{{range .Config.Stats}}
|
||
<div>
|
||
<div class="md-stat-value">{{.Value}}</div>
|
||
<div class="md-stat-label">{{.Label}}</div>
|
||
</div>
|
||
{{end}}
|
||
{{else}}
|
||
<div>
|
||
<div class="md-stat-value">{{.NumStars}}</div>
|
||
<div class="md-stat-label">Stars</div>
|
||
</div>
|
||
<div>
|
||
<div class="md-stat-value">{{.NumForks}}</div>
|
||
<div class="md-stat-label">Forks</div>
|
||
</div>
|
||
{{if .LatestRelease}}
|
||
<div>
|
||
<div class="md-stat-value">v{{.LatestRelease.TagName}}</div>
|
||
<div class="md-stat-label">Latest</div>
|
||
</div>
|
||
{{end}}
|
||
{{end}}
|
||
</div>
|
||
</section>
|
||
<div class="md-divider"></div>
|
||
{{end}}
|
||
|
||
<!-- Value Props (Bullet Points) -->
|
||
{{if .Config.ValueProps}}
|
||
<section class="md-section" id="why">
|
||
<h2 class="md-section-title">{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}{{else}}Why Choose Us{{end}}</h2>
|
||
{{range .Config.ValueProps}}
|
||
<div class="md-value-item">
|
||
<div class="md-value-bullet"></div>
|
||
<div>
|
||
<span class="md-value-title">{{.Title}}</span>
|
||
<span class="md-value-desc"> — {{.Description}}</span>
|
||
</div>
|
||
</div>
|
||
{{end}}
|
||
</section>
|
||
{{end}}
|
||
|
||
<!-- Features Accordion (+/-) -->
|
||
{{if .Config.Features}}
|
||
<section class="md-section" id="features">
|
||
<h2 class="md-section-title">Features</h2>
|
||
<div class="md-accordion">
|
||
{{range $i, $f := .Config.Features}}
|
||
<div class="md-accordion-item" data-index="{{$i}}">
|
||
<button class="md-accordion-header" onclick="toggleAccordion(this)">
|
||
<span class="md-accordion-title">{{$f.Title}}</span>
|
||
<span class="md-accordion-icon">+</span>
|
||
</button>
|
||
<div class="md-accordion-content">
|
||
{{$f.Description}}
|
||
</div>
|
||
</div>
|
||
{{end}}
|
||
</div>
|
||
</section>
|
||
{{end}}
|
||
|
||
<!-- Pricing Section -->
|
||
{{if .Config.Pricing.Plans}}
|
||
<section class="md-pricing" id="pricing">
|
||
<h2 class="md-pricing-title">{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}</h2>
|
||
<div class="md-pricing-grid">
|
||
{{range .Config.Pricing.Plans}}
|
||
<div class="md-pricing-card{{if .Featured}} featured{{end}}">
|
||
{{if .Featured}}<span class="md-pricing-featured-badge">Popular</span>{{end}}
|
||
<div class="md-pricing-name">{{.Name}}</div>
|
||
<div class="md-pricing-price">{{.Price}}</div>
|
||
<div class="md-pricing-period">{{.Period}}</div>
|
||
{{if .Features}}
|
||
<ul class="md-pricing-features">
|
||
{{range .Features}}
|
||
<li>{{.}}</li>
|
||
{{end}}
|
||
</ul>
|
||
{{end}}
|
||
<a href="#" class="md-pricing-cta">{{if .CTA}}{{.CTA}}{{else}}Get Started{{end}}</a>
|
||
</div>
|
||
{{end}}
|
||
</div>
|
||
</section>
|
||
{{end}}
|
||
|
||
<!-- Testimonial -->
|
||
{{if .Config.SocialProof.Testimonials}}
|
||
<section class="md-testimonial-section">
|
||
<div class="md-testimonial-inner">
|
||
<div class="md-testimonials-container">
|
||
{{range .Config.SocialProof.Testimonials}}
|
||
<div class="md-testimonial-item" style="display: none;">
|
||
<blockquote class="md-testimonial-quote">"{{.Quote}}"</blockquote>
|
||
<div>
|
||
<span class="md-testimonial-author">{{.Author}}</span>
|
||
<span class="md-testimonial-role"> · {{.Role}}</span>
|
||
</div>
|
||
</div>
|
||
{{end}}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<script>
|
||
(function() {
|
||
var items = document.querySelectorAll(".md-testimonial-item");
|
||
if (items.length > 0) {
|
||
var idx = Math.floor(Math.random() * items.length);
|
||
items[idx].style.display = "block";
|
||
}
|
||
})();
|
||
</script>
|
||
{{end}}
|
||
|
||
<!-- Used By -->
|
||
{{if .Config.SocialProof.Logos}}
|
||
<section class="md-used-by">
|
||
<p class="md-used-by-label">Used by</p>
|
||
<div class="md-used-by-logos">
|
||
{{range .Config.SocialProof.Logos}}
|
||
<span class="md-used-by-item">{{.}}</span>
|
||
{{end}}
|
||
</div>
|
||
</section>
|
||
{{end}}
|
||
|
||
<!-- CTA Section -->
|
||
{{if .Config.CTASection.Headline}}
|
||
<section class="md-cta-section">
|
||
<h2>{{.Config.CTASection.Headline}}</h2>
|
||
{{if .Config.CTASection.Subheadline}}
|
||
<button class="md-install-cmd" style="margin-bottom: 32px; font-size: 18px; padding: 16px 28px;" onclick="navigator.clipboard.writeText('{{.Config.CTASection.Subheadline}}')">
|
||
<span style="color: #a3a3a3;">$</span>
|
||
{{.Config.CTASection.Subheadline}}
|
||
{{svg "octicon-copy" 14}}
|
||
</button>
|
||
{{end}}
|
||
{{if .Config.CTASection.Button.Label}}
|
||
<div>
|
||
<a href="{{.Config.CTASection.Button.URL}}" class="md-btn-primary">
|
||
{{.Config.CTASection.Button.Label}}
|
||
{{svg "octicon-arrow-right" 16}}
|
||
</a>
|
||
</div>
|
||
{{end}}
|
||
</section>
|
||
{{end}}
|
||
|
||
<!-- Footer -->
|
||
<footer class="md-footer">
|
||
<span class="md-footer-copyright">{{if .Config.Footer.Copyright}}{{.Config.Footer.Copyright}}{{else}}© <script>document.write(new Date().getFullYear())</script> {{if .Config.Brand.Name}}{{.Config.Brand.Name}}{{else}}{{.Repository.Name}}{{end}}{{end}}</span>
|
||
{{if .Config.Footer.Social}}
|
||
<div class="md-footer-social">
|
||
{{range .Config.Footer.Social}}
|
||
<a href="{{.URL}}" title="{{.Platform}}">
|
||
{{if eq .Platform "twitter"}}{{svg "octicon-mention" 18}}
|
||
{{else if eq .Platform "github"}}{{svg "octicon-mark-github" 18}}
|
||
{{else if eq .Platform "discord"}}{{svg "octicon-comment-discussion" 18}}
|
||
{{else if eq .Platform "linkedin"}}{{svg "octicon-briefcase" 18}}
|
||
{{else if eq .Platform "youtube"}}{{svg "octicon-video" 18}}
|
||
{{else}}{{svg "octicon-link-external" 18}}{{end}}
|
||
</a>
|
||
{{end}}
|
||
</div>
|
||
{{end}}
|
||
<div class="md-footer-links">
|
||
{{if .Config.Footer.Links}}
|
||
{{range .Config.Footer.Links}}
|
||
<a href="{{.URL}}" class="md-footer-link">{{.Label}}</a>
|
||
{{end}}
|
||
{{else}}
|
||
<a href="{{.Repository.Link}}" class="md-footer-link">Repository</a>
|
||
<a href="{{.Repository.Link}}/wiki" class="md-footer-link">Documentation</a>
|
||
{{end}}
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
|
||
<script>
|
||
function toggleAccordion(header) {
|
||
var item = header.parentElement;
|
||
var wasOpen = item.classList.contains('open');
|
||
|
||
// Close all
|
||
document.querySelectorAll('.md-accordion-item').forEach(function(el) {
|
||
el.classList.remove('open');
|
||
el.querySelector('.md-accordion-icon').textContent = '+';
|
||
});
|
||
|
||
// Open clicked if it was closed
|
||
if (!wasOpen) {
|
||
item.classList.add('open');
|
||
item.querySelector('.md-accordion-icon').textContent = '−';
|
||
}
|
||
}
|
||
</script>
|
||
|
||
{{template "pages/base_footer" .}}
|