diff --git a/modules/pages/config.go b/modules/pages/config.go index f5813879b8..d51ca12a58 100644 --- a/modules/pages/config.go +++ b/modules/pages/config.go @@ -393,7 +393,7 @@ func DefaultConfig() *LandingConfig { // ValidTemplates returns the list of valid template names func ValidTemplates() []string { - return []string{"open-source-hero", "minimalist-docs", "saas-conversion", "bold-marketing"} + return []string{"open-source-hero", "minimalist-docs", "saas-conversion", "bold-marketing", "documentation-first", "developer-tool", "visual-showcase", "cli-terminal", "architecture-deep-dive"} } // IsValidTemplate checks if a template name is valid @@ -404,9 +404,14 @@ func IsValidTemplate(name string) bool { // TemplateDisplayNames returns a map of template names to display names func TemplateDisplayNames() map[string]string { return map[string]string{ - "open-source-hero": "Open Source Hero", - "minimalist-docs": "Minimalist Docs", - "saas-conversion": "SaaS Conversion", - "bold-marketing": "Bold Marketing", + "open-source-hero": "Open Source Product", + "minimalist-docs": "Minimalist Product", + "saas-conversion": "SaaS Product", + "bold-marketing": "Bold Marketing Product", + "documentation-first": "Documentation First", + "developer-tool": "Developer Tool", + "visual-showcase": "Visual Showcase", + "cli-terminal": "CLI Terminal", + "architecture-deep-dive": "Architecture Deep Dive", } } diff --git a/routers/web/pages/pages.go b/routers/web/pages/pages.go index 88cfc7461b..a2dac37082 100644 --- a/routers/web/pages/pages.go +++ b/routers/web/pages/pages.go @@ -40,10 +40,15 @@ import ( ) const ( - tplPagesOpenSourceHero templates.TplName = "pages/open-source-hero" - tplPagesMinimalistDocs templates.TplName = "pages/minimalist-docs" - tplPagesSaasConversion templates.TplName = "pages/saas-conversion" - tplPagesBoldMarketing templates.TplName = "pages/bold-marketing" + tplPagesOpenSourceHero templates.TplName = "pages/open-source-hero" + tplPagesMinimalistDocs templates.TplName = "pages/minimalist-docs" + tplPagesSaasConversion templates.TplName = "pages/saas-conversion" + tplPagesBoldMarketing templates.TplName = "pages/bold-marketing" + tplPagesDocumentationFirst templates.TplName = "pages/documentation-first" + tplPagesDeveloperTool templates.TplName = "pages/developer-tool" + tplPagesVisualShowcase templates.TplName = "pages/visual-showcase" + tplPagesCLITerminal templates.TplName = "pages/cli-terminal" + tplPagesArchitectureDeepDive templates.TplName = "pages/architecture-deep-dive" ) // ServeLandingPage serves the landing page for a repository @@ -539,6 +544,16 @@ func selectTemplate(templateName string) templates.TplName { return tplPagesSaasConversion case "bold-marketing": return tplPagesBoldMarketing + case "documentation-first": + return tplPagesDocumentationFirst + case "developer-tool": + return tplPagesDeveloperTool + case "visual-showcase": + return tplPagesVisualShowcase + case "cli-terminal": + return tplPagesCLITerminal + case "architecture-deep-dive": + return tplPagesArchitectureDeepDive case "open-source-hero": return tplPagesOpenSourceHero default: diff --git a/templates/pages/architecture-deep-dive.tmpl b/templates/pages/architecture-deep-dive.tmpl new file mode 100644 index 0000000000..59bfd80eb7 --- /dev/null +++ b/templates/pages/architecture-deep-dive.tmpl @@ -0,0 +1,1539 @@ +{{template "pages/base_head" .}} + + +
+ + + + {{if .PageIsBlogDetail}} + +
+
+ {{if .BlogPost.FeaturedImage}} +
+ {{.BlogPost.Title}} +
+ {{end}} +

{{.BlogPost.Title}}

+ {{if .BlogPost.Subtitle}}

{{.BlogPost.Subtitle}}

{{end}} +
+ {{if .BlogPost.Author}}{{.BlogPost.Author.DisplayName}}·{{end}} + {{DateUtils.AbsoluteShort .BlogPost.CreatedUnix}} + {{if .BlogTags}}·{{range .BlogTags}}{{.}} {{end}}{{end}} +
+
+ {{.BlogRenderedContent}} +
+
+ + {{svg "octicon-arrow-left" 16}} Back to Blog + +
+
+
+ {{else if .PageIsBlogList}} + +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}All Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if gt .BlogListTotal 9}} +
+ {{template "base/paginate" .}} +
+ {{end}} +
+
+ {{else}} + +
+
+
+ + {{if .LatestRelease}}v{{.LatestReleaseTag}} released{{else}}Open Source{{end}} +
+ +
+ +

{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}

+ +

+ {{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}} +

+ +
+ {{if .Config.Hero.PrimaryCTA.Label}} + + {{.Config.Hero.PrimaryCTA.Label}} + {{svg "octicon-arrow-right" 16}} + + {{else}} + + Get Started + {{svg "octicon-arrow-right" 16}} + + {{end}} + + {{if .Config.Hero.SecondaryCTA.Label}} + + GitCaddy + {{.Config.Hero.SecondaryCTA.Label}} + + {{else}} + + GitCaddy + View Source + + {{end}} +
+ + {{if .Config.Hero.CodeExample}} +
+ $ + {{.Config.Hero.CodeExample}} + +
+ {{end}} +
+
+ + + {{if or .Config.Stats (gt .NumStars 0)}} +
+
+ {{if .Config.Stats}} + {{range .Config.Stats}} +
+
{{.Value}}
+
{{.Label}}
+
+ {{end}} + {{else}} +
+
{{.NumStars}}
+
Stars
+
+
+
{{.NumForks}}
+
Forks
+
+ {{if .LatestRelease}} +
+
v{{.LatestReleaseTag}}
+
Latest
+
+ {{end}} + {{end}} +
+
+ {{end}} + + + {{if and .PublicReleases .LatestRelease .LatestRelease.Attachments}} +
+
+

Download v{{.LatestReleaseTag}}

+

Get the latest release

+ {{$windowsFiles := newSlice}}{{$macosFiles := newSlice}}{{$linuxFiles := newSlice}}{{$androidFiles := newSlice}}{{$iosFiles := newSlice}}{{$otherFiles := newSlice}} + {{range $att := .LatestRelease.Attachments}} + {{$name := StringUtils.ToLower $att.Name}} + {{if or (StringUtils.Contains $name "android") (StringUtils.HasSuffix $name ".apk") (StringUtils.HasSuffix $name ".aab") (StringUtils.HasSuffix $name ".xapk")}} + {{$androidFiles = Append $androidFiles $att}} + {{else if or (StringUtils.Contains $name "ios") (StringUtils.Contains $name "iphone") (StringUtils.Contains $name "ipad") (StringUtils.HasSuffix $name ".ipa")}} + {{$iosFiles = Append $iosFiles $att}} + {{else if or (StringUtils.Contains $name "windows") (StringUtils.Contains $name "win64") (StringUtils.Contains $name "win32") (StringUtils.Contains $name "-win.") (StringUtils.Contains $name "_win.") (StringUtils.Contains $name "-win-") (StringUtils.Contains $name "_win_") (StringUtils.HasSuffix $name ".exe") (StringUtils.HasSuffix $name ".msi") (StringUtils.HasSuffix $name ".msix") (StringUtils.HasSuffix $name ".msixbundle") (StringUtils.HasSuffix $name ".appx") (StringUtils.HasSuffix $name ".appxbundle")}} + {{$windowsFiles = Append $windowsFiles $att}} + {{else if or (StringUtils.Contains $name "darwin") (StringUtils.Contains $name "macos") (StringUtils.Contains $name "-mac.") (StringUtils.Contains $name "_mac.") (StringUtils.Contains $name "-mac-") (StringUtils.Contains $name "_mac_") (StringUtils.Contains $name "osx") (StringUtils.HasSuffix $name ".dmg") (StringUtils.HasSuffix $name ".pkg")}} + {{$macosFiles = Append $macosFiles $att}} + {{else if or (StringUtils.Contains $name "linux") (StringUtils.Contains $name "-lin.") (StringUtils.Contains $name "_lin.") (StringUtils.Contains $name "-lin-") (StringUtils.Contains $name "_lin_") (StringUtils.HasSuffix $name ".deb") (StringUtils.HasSuffix $name ".rpm") (StringUtils.HasSuffix $name ".appimage") (StringUtils.HasSuffix $name ".flatpak") (StringUtils.HasSuffix $name ".snap")}} + {{$linuxFiles = Append $linuxFiles $att}} + {{else}} + {{$otherFiles = Append $otherFiles $att}} + {{end}} + {{end}} + {{if $windowsFiles}} +
+

{{svg "octicon-device-desktop" 16}} Windows

+ +
+ {{end}} + {{if $macosFiles}} +
+

{{svg "octicon-device-desktop" 16}} macOS

+ +
+ {{end}} + {{if $linuxFiles}} +
+

{{svg "octicon-terminal" 16}} Linux

+ +
+ {{end}} + {{if not $.HideMobileReleases}} + {{if $androidFiles}} +
+

{{svg "octicon-device-mobile" 16}} Android

+ +
+ {{end}} + {{if $iosFiles}} +
+

{{svg "octicon-device-mobile" 16}} iOS

+ +
+ {{end}} + {{end}} + {{if or $.GooglePlayID $.AppStoreID}} +
+

{{svg "octicon-device-mobile" 16}} App Stores

+
+ {{if $.GooglePlayID}} + + + Google Play + + {{end}} + {{if $.AppStoreID}} + + + App Store + + {{end}} +
+
+ {{end}} + {{if $otherFiles}} +
+

{{svg "octicon-file" 16}} Other

+ +
+ {{end}} +
+
+ {{end}} + + + {{if .Config.ValueProps}} +
+
+
+ +

{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}?{{else}}Why Choose Us{{end}}

+

Everything you need to get started quickly.

+
+
+ {{range .Config.ValueProps}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "check")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.Features}} +
+
+
+ +

Features

+

Powerful capabilities at your fingertips.

+
+
+ {{range .Config.Features}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "zap")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if or .Config.SocialProof.Logos .Config.SocialProof.Testimonials}} +
+
+ {{if .Config.SocialProof.Logos}} +
+ {{range .Config.SocialProof.Logos}} +
{{.}}
+ {{end}} +
+ {{end}} + {{if .Config.SocialProof.Testimonials}} +
+ {{range .Config.SocialProof.Testimonials}} + + {{end}} +
+ + {{end}} +
+
+ {{end}} + + + {{if .Config.Pricing.Plans}} +
+
+
+ +

{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}

+

{{if .Config.Pricing.Subheadline}}{{.Config.Pricing.Subheadline}}{{else}}Choose the plan that works for you{{end}}

+
+
+ {{range .Config.Pricing.Plans}} +
+ {{if .Featured}}Popular{{end}} +
{{.Name}}
+
{{.Price}}
+
{{.Period}}
+ {{if .Features}} +
    + {{range .Features}}
  • {{.}}
  • {{end}} +
+ {{end}} + {{if .CTA}}{{.CTA}}{{else}}Get Started{{end}} +
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.CTASection.Headline}} +
+
+

{{.Config.CTASection.Headline}}

+ {{if .Config.CTASection.Subheadline}} +

{{.Config.CTASection.Subheadline}}

+ {{end}} + + {{if .Config.CTASection.Button.Label}}{{.Config.CTASection.Button.Label}}{{else}}Get Started{{end}} + {{svg "octicon-arrow-right" 16}} + +
+
+ {{end}} + + + {{if and .Config.Blog.Enabled .BlogPosts}} +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}Latest Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if .Config.Blog.CTAButton.Label}} + + {{end}} +
+
+ {{end}} + + + {{if and .Config.Gallery.Enabled .GalleryImages}} + + {{end}} + + {{end}}{{/* end PageIsBlogDetail / PageIsBlogList / else */}} + + + +
+ + + + +{{template "pages/base_footer" .}} diff --git a/templates/pages/cli-terminal.tmpl b/templates/pages/cli-terminal.tmpl new file mode 100644 index 0000000000..228ab59fc0 --- /dev/null +++ b/templates/pages/cli-terminal.tmpl @@ -0,0 +1,1554 @@ +{{template "pages/base_head" .}} + + +
+ + + + {{if .PageIsBlogDetail}} + +
+
+ {{if .BlogPost.FeaturedImage}} +
+ {{.BlogPost.Title}} +
+ {{end}} +

{{.BlogPost.Title}}

+ {{if .BlogPost.Subtitle}}

{{.BlogPost.Subtitle}}

{{end}} +
+ {{if .BlogPost.Author}}{{.BlogPost.Author.DisplayName}}|{{end}} + {{DateUtils.AbsoluteShort .BlogPost.CreatedUnix}} + {{if .BlogTags}}|{{range .BlogTags}}{{.}} {{end}}{{end}} +
+
+ {{.BlogRenderedContent}} +
+
+ + {{svg "octicon-arrow-left" 16}} Back to Blog + +
+
+
+ {{else if .PageIsBlogList}} + +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}All Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if gt .BlogListTotal 9}} +
+ {{template "base/paginate" .}} +
+ {{end}} +
+
+ {{else}} + +
+
+
+ +
+
+ + {{if .LatestRelease}}v{{.LatestReleaseTag}} released{{else}}Open Source{{end}} +
+ +

{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}

+ +

+ {{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}} +

+ +
+ {{if .Config.Hero.PrimaryCTA.Label}} + + {{.Config.Hero.PrimaryCTA.Label}} + {{svg "octicon-arrow-right" 16}} + + {{else}} + + Get Started + {{svg "octicon-arrow-right" 16}} + + {{end}} + + {{if .Config.Hero.SecondaryCTA.Label}} + + GitCaddy + {{.Config.Hero.SecondaryCTA.Label}} + + {{else}} + + GitCaddy + View Source + + {{end}} +
+ + {{if .Config.Hero.CodeExample}} +
+
+ + + + terminal +
+
+ $ + {{.Config.Hero.CodeExample}} + +
+
+ {{end}} +
+
+ + + {{if or .Config.Stats (gt .NumStars 0)}} +
+
+ {{if .Config.Stats}} + {{range .Config.Stats}} +
+
{{.Value}}
+
{{.Label}}
+
+ {{end}} + {{else}} +
+
{{.NumStars}}
+
Stars
+
+
+
{{.NumForks}}
+
Forks
+
+ {{if .LatestRelease}} +
+
v{{.LatestReleaseTag}}
+
Latest
+
+ {{end}} + {{end}} +
+
+ {{end}} + + + {{if and .PublicReleases .LatestRelease .LatestRelease.Attachments}} +
+
+

Download v{{.LatestReleaseTag}}

+

Get the latest release

+ {{$windowsFiles := newSlice}}{{$macosFiles := newSlice}}{{$linuxFiles := newSlice}}{{$androidFiles := newSlice}}{{$iosFiles := newSlice}}{{$otherFiles := newSlice}} + {{range $att := .LatestRelease.Attachments}} + {{$name := StringUtils.ToLower $att.Name}} + {{if or (StringUtils.Contains $name "android") (StringUtils.HasSuffix $name ".apk") (StringUtils.HasSuffix $name ".aab") (StringUtils.HasSuffix $name ".xapk")}} + {{$androidFiles = Append $androidFiles $att}} + {{else if or (StringUtils.Contains $name "ios") (StringUtils.Contains $name "iphone") (StringUtils.Contains $name "ipad") (StringUtils.HasSuffix $name ".ipa")}} + {{$iosFiles = Append $iosFiles $att}} + {{else if or (StringUtils.Contains $name "windows") (StringUtils.Contains $name "win64") (StringUtils.Contains $name "win32") (StringUtils.Contains $name "-win.") (StringUtils.Contains $name "_win.") (StringUtils.Contains $name "-win-") (StringUtils.Contains $name "_win_") (StringUtils.HasSuffix $name ".exe") (StringUtils.HasSuffix $name ".msi") (StringUtils.HasSuffix $name ".msix") (StringUtils.HasSuffix $name ".msixbundle") (StringUtils.HasSuffix $name ".appx") (StringUtils.HasSuffix $name ".appxbundle")}} + {{$windowsFiles = Append $windowsFiles $att}} + {{else if or (StringUtils.Contains $name "darwin") (StringUtils.Contains $name "macos") (StringUtils.Contains $name "-mac.") (StringUtils.Contains $name "_mac.") (StringUtils.Contains $name "-mac-") (StringUtils.Contains $name "_mac_") (StringUtils.Contains $name "osx") (StringUtils.HasSuffix $name ".dmg") (StringUtils.HasSuffix $name ".pkg")}} + {{$macosFiles = Append $macosFiles $att}} + {{else if or (StringUtils.Contains $name "linux") (StringUtils.Contains $name "-lin.") (StringUtils.Contains $name "_lin.") (StringUtils.Contains $name "-lin-") (StringUtils.Contains $name "_lin_") (StringUtils.HasSuffix $name ".deb") (StringUtils.HasSuffix $name ".rpm") (StringUtils.HasSuffix $name ".appimage") (StringUtils.HasSuffix $name ".flatpak") (StringUtils.HasSuffix $name ".snap")}} + {{$linuxFiles = Append $linuxFiles $att}} + {{else}} + {{$otherFiles = Append $otherFiles $att}} + {{end}} + {{end}} + {{if $windowsFiles}} +
+

{{svg "octicon-device-desktop" 16}} Windows

+ +
+ {{end}} + {{if $macosFiles}} +
+

{{svg "octicon-device-desktop" 16}} macOS

+ +
+ {{end}} + {{if $linuxFiles}} +
+

{{svg "octicon-terminal" 16}} Linux

+ +
+ {{end}} + {{if not $.HideMobileReleases}} + {{if $androidFiles}} +
+

{{svg "octicon-device-mobile" 16}} Android

+ +
+ {{end}} + {{if $iosFiles}} +
+

{{svg "octicon-device-mobile" 16}} iOS

+ +
+ {{end}} + {{end}} + {{if or $.GooglePlayID $.AppStoreID}} +
+

{{svg "octicon-device-mobile" 16}} App Stores

+
+ {{if $.GooglePlayID}} + + + Google Play + + {{end}} + {{if $.AppStoreID}} + + + App Store + + {{end}} +
+
+ {{end}} + {{if $otherFiles}} +
+

{{svg "octicon-file" 16}} Other

+ +
+ {{end}} +
+
+ {{end}} + + + {{if .Config.ValueProps}} +
+
+
+ +

{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}?{{else}}Why Choose Us{{end}}

+

Everything you need to get started quickly.

+
+
+ {{range .Config.ValueProps}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "check")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.Features}} +
+
+
+ +

Features

+

Powerful capabilities at your fingertips.

+
+
+ {{range .Config.Features}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "zap")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if or .Config.SocialProof.Logos .Config.SocialProof.Testimonials}} +
+
+ {{if .Config.SocialProof.Logos}} +
+ {{range .Config.SocialProof.Logos}} +
{{.}}
+ {{end}} +
+ {{end}} + {{if .Config.SocialProof.Testimonials}} +
+ {{range .Config.SocialProof.Testimonials}} + + {{end}} +
+ + {{end}} +
+
+ {{end}} + + + {{if .Config.Pricing.Plans}} +
+
+
+ +

{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}

+

{{if .Config.Pricing.Subheadline}}{{.Config.Pricing.Subheadline}}{{else}}Choose the plan that works for you{{end}}

+
+
+ {{range .Config.Pricing.Plans}} +
+ {{if .Featured}}Popular{{end}} +
{{.Name}}
+
{{.Price}}
+
{{.Period}}
+ {{if .Features}} +
    + {{range .Features}}
  • {{.}}
  • {{end}} +
+ {{end}} + {{if .CTA}}{{.CTA}}{{else}}Get Started{{end}} +
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.CTASection.Headline}} +
+
+

{{.Config.CTASection.Headline}}

+ {{if .Config.CTASection.Subheadline}} +

{{.Config.CTASection.Subheadline}}

+ {{end}} + + {{if .Config.CTASection.Button.Label}}{{.Config.CTASection.Button.Label}}{{else}}Get Started{{end}} + {{svg "octicon-arrow-right" 16}} + +
+
+ {{end}} + + + {{if and .Config.Blog.Enabled .BlogPosts}} +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}Latest Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if .Config.Blog.CTAButton.Label}} + + {{end}} +
+
+ {{end}} + + + {{if and .Config.Gallery.Enabled .GalleryImages}} + + {{end}} + + {{end}}{{/* end PageIsBlogDetail / PageIsBlogList / else */}} + + + +
+ + + + +{{template "pages/base_footer" .}} diff --git a/templates/pages/developer-tool.tmpl b/templates/pages/developer-tool.tmpl new file mode 100644 index 0000000000..298ecf5ae9 --- /dev/null +++ b/templates/pages/developer-tool.tmpl @@ -0,0 +1,1427 @@ +{{template "pages/base_head" .}} + + +
+ + + + {{if .PageIsBlogDetail}} + +
+
+ {{if .BlogPost.FeaturedImage}} +
+ {{.BlogPost.Title}} +
+ {{end}} +

{{.BlogPost.Title}}

+ {{if .BlogPost.Subtitle}}

{{.BlogPost.Subtitle}}

{{end}} +
+ {{if .BlogPost.Author}}{{.BlogPost.Author.DisplayName}}·{{end}} + {{DateUtils.AbsoluteShort .BlogPost.CreatedUnix}} + {{if .BlogTags}}·{{range .BlogTags}}{{.}} {{end}}{{end}} +
+
+ {{.BlogRenderedContent}} +
+
+ + {{svg "octicon-arrow-left" 16}} Back to Blog + +
+
+
+ {{else if .PageIsBlogList}} + +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}All Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if gt .BlogListTotal 9}} +
+ {{template "base/paginate" .}} +
+ {{end}} +
+
+ {{else}} + +
+
+
+ status + + {{if .LatestRelease}}v{{.LatestReleaseTag}} passing{{else}}Open Source{{end}} +
+ +

{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}

+ +

+ {{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}} +

+ +
+ {{if .Config.Hero.PrimaryCTA.Label}} + + {{.Config.Hero.PrimaryCTA.Label}} + {{svg "octicon-arrow-right" 16}} + + {{else}} + + Get Started + {{svg "octicon-arrow-right" 16}} + + {{end}} + + {{if .Config.Hero.SecondaryCTA.Label}} + + GitCaddy + {{.Config.Hero.SecondaryCTA.Label}} + + {{else}} + + GitCaddy + View Source + + {{end}} +
+ + {{if .Config.Hero.CodeExample}} +
+ $ + {{.Config.Hero.CodeExample}} + +
+ {{end}} +
+
+ + + {{if or .Config.Stats (gt .NumStars 0)}} +
+
+ {{if .Config.Stats}} + {{range .Config.Stats}} +
+
{{.Value}}
+
{{.Label}}
+
+ {{end}} + {{else}} +
+
{{.NumStars}}
+
Stars
+
+
+
{{.NumForks}}
+
Forks
+
+ {{if .LatestRelease}} +
+
v{{.LatestReleaseTag}}
+
Latest
+
+ {{end}} + {{end}} +
+
+ {{end}} + + + {{if and .PublicReleases .LatestRelease .LatestRelease.Attachments}} +
+
+

Download v{{.LatestReleaseTag}}

+

Get the latest release

+ {{$windowsFiles := newSlice}}{{$macosFiles := newSlice}}{{$linuxFiles := newSlice}}{{$androidFiles := newSlice}}{{$iosFiles := newSlice}}{{$otherFiles := newSlice}} + {{range $att := .LatestRelease.Attachments}} + {{$name := StringUtils.ToLower $att.Name}} + {{if or (StringUtils.Contains $name "android") (StringUtils.HasSuffix $name ".apk") (StringUtils.HasSuffix $name ".aab") (StringUtils.HasSuffix $name ".xapk")}} + {{$androidFiles = Append $androidFiles $att}} + {{else if or (StringUtils.Contains $name "ios") (StringUtils.Contains $name "iphone") (StringUtils.Contains $name "ipad") (StringUtils.HasSuffix $name ".ipa")}} + {{$iosFiles = Append $iosFiles $att}} + {{else if or (StringUtils.Contains $name "windows") (StringUtils.Contains $name "win64") (StringUtils.Contains $name "win32") (StringUtils.Contains $name "-win.") (StringUtils.Contains $name "_win.") (StringUtils.Contains $name "-win-") (StringUtils.Contains $name "_win_") (StringUtils.HasSuffix $name ".exe") (StringUtils.HasSuffix $name ".msi") (StringUtils.HasSuffix $name ".msix") (StringUtils.HasSuffix $name ".msixbundle") (StringUtils.HasSuffix $name ".appx") (StringUtils.HasSuffix $name ".appxbundle")}} + {{$windowsFiles = Append $windowsFiles $att}} + {{else if or (StringUtils.Contains $name "darwin") (StringUtils.Contains $name "macos") (StringUtils.Contains $name "-mac.") (StringUtils.Contains $name "_mac.") (StringUtils.Contains $name "-mac-") (StringUtils.Contains $name "_mac_") (StringUtils.Contains $name "osx") (StringUtils.HasSuffix $name ".dmg") (StringUtils.HasSuffix $name ".pkg")}} + {{$macosFiles = Append $macosFiles $att}} + {{else if or (StringUtils.Contains $name "linux") (StringUtils.Contains $name "-lin.") (StringUtils.Contains $name "_lin.") (StringUtils.Contains $name "-lin-") (StringUtils.Contains $name "_lin_") (StringUtils.HasSuffix $name ".deb") (StringUtils.HasSuffix $name ".rpm") (StringUtils.HasSuffix $name ".appimage") (StringUtils.HasSuffix $name ".flatpak") (StringUtils.HasSuffix $name ".snap")}} + {{$linuxFiles = Append $linuxFiles $att}} + {{else}} + {{$otherFiles = Append $otherFiles $att}} + {{end}} + {{end}} + {{if $windowsFiles}} +
+

{{svg "octicon-device-desktop" 16}} Windows

+ +
+ {{end}} + {{if $macosFiles}} +
+

{{svg "octicon-device-desktop" 16}} macOS

+ +
+ {{end}} + {{if $linuxFiles}} +
+

{{svg "octicon-terminal" 16}} Linux

+ +
+ {{end}} + {{if not $.HideMobileReleases}} + {{if $androidFiles}} +
+

{{svg "octicon-device-mobile" 16}} Android

+ +
+ {{end}} + {{if $iosFiles}} +
+

{{svg "octicon-device-mobile" 16}} iOS

+ +
+ {{end}} + {{end}} + {{if or $.GooglePlayID $.AppStoreID}} +
+

{{svg "octicon-device-mobile" 16}} App Stores

+
+ {{if $.GooglePlayID}} + + + Google Play + + {{end}} + {{if $.AppStoreID}} + + + App Store + + {{end}} +
+
+ {{end}} + {{if $otherFiles}} +
+

{{svg "octicon-file" 16}} Other

+ +
+ {{end}} +
+
+ {{end}} + + + {{if .Config.ValueProps}} +
+
+
+ +

{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}?{{else}}Why Choose Us{{end}}

+

Everything you need to get started quickly.

+
+
+ {{range .Config.ValueProps}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "check")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.Features}} +
+
+
+ +

Features

+

Powerful capabilities at your fingertips.

+
+
+ {{range .Config.Features}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "zap")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if or .Config.SocialProof.Logos .Config.SocialProof.Testimonials}} +
+
+ {{if .Config.SocialProof.Logos}} +
+ {{range .Config.SocialProof.Logos}} +
{{.}}
+ {{end}} +
+ {{end}} + {{if .Config.SocialProof.Testimonials}} +
+ {{range .Config.SocialProof.Testimonials}} + + {{end}} +
+ + {{end}} +
+
+ {{end}} + + + {{if .Config.Pricing.Plans}} +
+
+
+ +

{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}

+

{{if .Config.Pricing.Subheadline}}{{.Config.Pricing.Subheadline}}{{else}}Choose the plan that works for you{{end}}

+
+
+ {{range .Config.Pricing.Plans}} +
+ {{if .Featured}}Popular{{end}} +
{{.Name}}
+
{{.Price}}
+
{{.Period}}
+ {{if .Features}} +
    + {{range .Features}}
  • {{.}}
  • {{end}} +
+ {{end}} + {{if .CTA}}{{.CTA}}{{else}}Get Started{{end}} +
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.CTASection.Headline}} +
+
+

{{.Config.CTASection.Headline}}

+ {{if .Config.CTASection.Subheadline}} +

{{.Config.CTASection.Subheadline}}

+ {{end}} + + {{if .Config.CTASection.Button.Label}}{{.Config.CTASection.Button.Label}}{{else}}Get Started{{end}} + {{svg "octicon-arrow-right" 16}} + +
+
+ {{end}} + + + {{if and .Config.Blog.Enabled .BlogPosts}} +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}Latest Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if .Config.Blog.CTAButton.Label}} + + {{end}} +
+
+ {{end}} + + + {{if and .Config.Gallery.Enabled .GalleryImages}} + + {{end}} + + {{end}}{{/* end PageIsBlogDetail / PageIsBlogList / else */}} + + + +
+ + + + +{{template "pages/base_footer" .}} \ No newline at end of file diff --git a/templates/pages/documentation-first.tmpl b/templates/pages/documentation-first.tmpl new file mode 100644 index 0000000000..e6f0c7caf0 --- /dev/null +++ b/templates/pages/documentation-first.tmpl @@ -0,0 +1,1451 @@ +{{template "pages/base_head" .}} + + +
+ + + + {{if .PageIsBlogDetail}} + +
+
+ {{if .BlogPost.FeaturedImage}} +
+ {{.BlogPost.Title}} +
+ {{end}} +

{{.BlogPost.Title}}

+ {{if .BlogPost.Subtitle}}

{{.BlogPost.Subtitle}}

{{end}} +
+ {{if .BlogPost.Author}}{{.BlogPost.Author.DisplayName}}·{{end}} + {{DateUtils.AbsoluteShort .BlogPost.CreatedUnix}} + {{if .BlogTags}}·{{range .BlogTags}}{{.}} {{end}}{{end}} +
+
+ {{.BlogRenderedContent}} +
+
+ + {{svg "octicon-arrow-left" 16}} Back to Blog + +
+
+
+ {{else if .PageIsBlogList}} + +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}All Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if gt .BlogListTotal 9}} +
+ {{template "base/paginate" .}} +
+ {{end}} +
+
+ {{else}} + +
+
+
+ + {{if .LatestRelease}}v{{.LatestReleaseTag}} released{{else}}Open Source{{end}} +
+ +

{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}

+ +

+ {{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}} +

+ +
+ {{if .Config.Hero.PrimaryCTA.Label}} + + {{.Config.Hero.PrimaryCTA.Label}} + {{svg "octicon-arrow-right" 16}} + + {{else}} + + Get Started + {{svg "octicon-arrow-right" 16}} + + {{end}} + + {{if .Config.Hero.SecondaryCTA.Label}} + + GitCaddy + {{.Config.Hero.SecondaryCTA.Label}} + + {{else}} + + GitCaddy + View Source + + {{end}} +
+ + {{if .Config.Hero.CodeExample}} +
+ $ + {{.Config.Hero.CodeExample}} + +
+ {{end}} +
+
+ + + {{if or .Config.Stats (gt .NumStars 0)}} +
+
+ {{if .Config.Stats}} + {{range .Config.Stats}} +
+
{{.Value}}
+
{{.Label}}
+
+ {{end}} + {{else}} +
+
{{.NumStars}}
+
Stars
+
+
+
{{.NumForks}}
+
Forks
+
+ {{if .LatestRelease}} +
+
v{{.LatestReleaseTag}}
+
Latest
+
+ {{end}} + {{end}} +
+
+ {{end}} + + + {{if and .PublicReleases .LatestRelease .LatestRelease.Attachments}} +
+
+

Download v{{.LatestReleaseTag}}

+

Get the latest release

+ {{$windowsFiles := newSlice}}{{$macosFiles := newSlice}}{{$linuxFiles := newSlice}}{{$androidFiles := newSlice}}{{$iosFiles := newSlice}}{{$otherFiles := newSlice}} + {{range $att := .LatestRelease.Attachments}} + {{$name := StringUtils.ToLower $att.Name}} + {{if or (StringUtils.Contains $name "android") (StringUtils.HasSuffix $name ".apk") (StringUtils.HasSuffix $name ".aab") (StringUtils.HasSuffix $name ".xapk")}} + {{$androidFiles = Append $androidFiles $att}} + {{else if or (StringUtils.Contains $name "ios") (StringUtils.Contains $name "iphone") (StringUtils.Contains $name "ipad") (StringUtils.HasSuffix $name ".ipa")}} + {{$iosFiles = Append $iosFiles $att}} + {{else if or (StringUtils.Contains $name "windows") (StringUtils.Contains $name "win64") (StringUtils.Contains $name "win32") (StringUtils.Contains $name "-win.") (StringUtils.Contains $name "_win.") (StringUtils.Contains $name "-win-") (StringUtils.Contains $name "_win_") (StringUtils.HasSuffix $name ".exe") (StringUtils.HasSuffix $name ".msi") (StringUtils.HasSuffix $name ".msix") (StringUtils.HasSuffix $name ".msixbundle") (StringUtils.HasSuffix $name ".appx") (StringUtils.HasSuffix $name ".appxbundle")}} + {{$windowsFiles = Append $windowsFiles $att}} + {{else if or (StringUtils.Contains $name "darwin") (StringUtils.Contains $name "macos") (StringUtils.Contains $name "-mac.") (StringUtils.Contains $name "_mac.") (StringUtils.Contains $name "-mac-") (StringUtils.Contains $name "_mac_") (StringUtils.Contains $name "osx") (StringUtils.HasSuffix $name ".dmg") (StringUtils.HasSuffix $name ".pkg")}} + {{$macosFiles = Append $macosFiles $att}} + {{else if or (StringUtils.Contains $name "linux") (StringUtils.Contains $name "-lin.") (StringUtils.Contains $name "_lin.") (StringUtils.Contains $name "-lin-") (StringUtils.Contains $name "_lin_") (StringUtils.HasSuffix $name ".deb") (StringUtils.HasSuffix $name ".rpm") (StringUtils.HasSuffix $name ".appimage") (StringUtils.HasSuffix $name ".flatpak") (StringUtils.HasSuffix $name ".snap")}} + {{$linuxFiles = Append $linuxFiles $att}} + {{else}} + {{$otherFiles = Append $otherFiles $att}} + {{end}} + {{end}} + {{if $windowsFiles}} +
+

{{svg "octicon-device-desktop" 16}} Windows

+ +
+ {{end}} + {{if $macosFiles}} +
+

{{svg "octicon-device-desktop" 16}} macOS

+ +
+ {{end}} + {{if $linuxFiles}} +
+

{{svg "octicon-terminal" 16}} Linux

+ +
+ {{end}} + {{if not $.HideMobileReleases}} + {{if $androidFiles}} +
+

{{svg "octicon-device-mobile" 16}} Android

+ +
+ {{end}} + {{if $iosFiles}} +
+

{{svg "octicon-device-mobile" 16}} iOS

+ +
+ {{end}} + {{end}} + {{if or $.GooglePlayID $.AppStoreID}} +
+

{{svg "octicon-device-mobile" 16}} App Stores

+
+ {{if $.GooglePlayID}} + + + Google Play + + {{end}} + {{if $.AppStoreID}} + + + App Store + + {{end}} +
+
+ {{end}} + {{if $otherFiles}} +
+

{{svg "octicon-file" 16}} Other

+ +
+ {{end}} +
+
+ {{end}} + + + {{if .Config.ValueProps}} +
+
+
+ +

{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}?{{else}}Why Choose Us{{end}}

+

Everything you need to get started quickly.

+
+
+ {{range .Config.ValueProps}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "check")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.Features}} +
+
+
+ +

Features

+

Powerful capabilities at your fingertips.

+
+
+ {{range .Config.Features}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "zap")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if or .Config.SocialProof.Logos .Config.SocialProof.Testimonials}} +
+
+ {{if .Config.SocialProof.Logos}} +
+ {{range .Config.SocialProof.Logos}} +
{{.}}
+ {{end}} +
+ {{end}} + {{if .Config.SocialProof.Testimonials}} +
+ {{range .Config.SocialProof.Testimonials}} + + {{end}} +
+ + {{end}} +
+
+ {{end}} + + + {{if .Config.Pricing.Plans}} +
+
+
+ +

{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}

+

{{if .Config.Pricing.Subheadline}}{{.Config.Pricing.Subheadline}}{{else}}Choose the plan that works for you{{end}}

+
+
+ {{range .Config.Pricing.Plans}} +
+ {{if .Featured}}Popular{{end}} +
{{.Name}}
+
{{.Price}}
+
{{.Period}}
+ {{if .Features}} +
    + {{range .Features}}
  • {{.}}
  • {{end}} +
+ {{end}} + {{if .CTA}}{{.CTA}}{{else}}Get Started{{end}} +
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.CTASection.Headline}} +
+
+

{{.Config.CTASection.Headline}}

+ {{if .Config.CTASection.Subheadline}} +

{{.Config.CTASection.Subheadline}}

+ {{end}} + + {{if .Config.CTASection.Button.Label}}{{.Config.CTASection.Button.Label}}{{else}}Get Started{{end}} + {{svg "octicon-arrow-right" 16}} + +
+
+ {{end}} + + + {{if and .Config.Blog.Enabled .BlogPosts}} +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}Latest Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if .Config.Blog.CTAButton.Label}} + + {{end}} +
+
+ {{end}} + + + {{if and .Config.Gallery.Enabled .GalleryImages}} + + {{end}} + + {{end}}{{/* end PageIsBlogDetail / PageIsBlogList / else */}} + + + +
+ + + + +{{template "pages/base_footer" .}} diff --git a/templates/pages/visual-showcase.tmpl b/templates/pages/visual-showcase.tmpl new file mode 100644 index 0000000000..3d230e37b7 --- /dev/null +++ b/templates/pages/visual-showcase.tmpl @@ -0,0 +1,1559 @@ +{{template "pages/base_head" .}} + + +
+ + + + {{if .PageIsBlogDetail}} + +
+
+ {{if .BlogPost.FeaturedImage}} +
+ {{.BlogPost.Title}} +
+ {{end}} +

{{.BlogPost.Title}}

+ {{if .BlogPost.Subtitle}}

{{.BlogPost.Subtitle}}

{{end}} +
+ {{if .BlogPost.Author}}{{.BlogPost.Author.DisplayName}}·{{end}} + {{DateUtils.AbsoluteShort .BlogPost.CreatedUnix}} + {{if .BlogTags}}·{{range .BlogTags}}{{.}} {{end}}{{end}} +
+
+ {{.BlogRenderedContent}} +
+
+ + {{svg "octicon-arrow-left" 16}} Back to Blog + +
+
+
+ {{else if .PageIsBlogList}} + +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}All Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if gt .BlogListTotal 9}} +
+ {{template "base/paginate" .}} +
+ {{end}} +
+
+ {{else}} + +
+
+
+
+
+
+ +
+
+ + {{if .LatestRelease}}v{{.LatestReleaseTag}} released{{else}}Open Source{{end}} +
+ +

{{if .Config.Hero.Headline}}{{.Config.Hero.Headline}}{{else}}{{.Repository.Name}}{{end}}

+ +

+ {{if .Config.Hero.Subheadline}}{{.Config.Hero.Subheadline}}{{else}}{{.Repository.Description}}{{end}} +

+ +
+ {{if .Config.Hero.PrimaryCTA.Label}} + + {{.Config.Hero.PrimaryCTA.Label}} + {{svg "octicon-arrow-right" 16}} + + {{else}} + + Get Started + {{svg "octicon-arrow-right" 16}} + + {{end}} + + {{if .Config.Hero.SecondaryCTA.Label}} + + GitCaddy + {{.Config.Hero.SecondaryCTA.Label}} + + {{else}} + + GitCaddy + View Source + + {{end}} +
+ + {{if .Config.Hero.CodeExample}} +
+ $ + {{.Config.Hero.CodeExample}} + +
+ {{end}} +
+
+ + + {{if or .Config.Stats (gt .NumStars 0)}} +
+
+ {{if .Config.Stats}} + {{range .Config.Stats}} +
+
{{.Value}}
+
{{.Label}}
+
+ {{end}} + {{else}} +
+
{{.NumStars}}
+
Stars
+
+
+
{{.NumForks}}
+
Forks
+
+ {{if .LatestRelease}} +
+
v{{.LatestReleaseTag}}
+
Latest
+
+ {{end}} + {{end}} +
+
+ {{end}} + + + {{if and .PublicReleases .LatestRelease .LatestRelease.Attachments}} +
+
+

Download v{{.LatestReleaseTag}}

+

Get the latest release

+ {{$windowsFiles := newSlice}}{{$macosFiles := newSlice}}{{$linuxFiles := newSlice}}{{$androidFiles := newSlice}}{{$iosFiles := newSlice}}{{$otherFiles := newSlice}} + {{range $att := .LatestRelease.Attachments}} + {{$name := StringUtils.ToLower $att.Name}} + {{if or (StringUtils.Contains $name "android") (StringUtils.HasSuffix $name ".apk") (StringUtils.HasSuffix $name ".aab") (StringUtils.HasSuffix $name ".xapk")}} + {{$androidFiles = Append $androidFiles $att}} + {{else if or (StringUtils.Contains $name "ios") (StringUtils.Contains $name "iphone") (StringUtils.Contains $name "ipad") (StringUtils.HasSuffix $name ".ipa")}} + {{$iosFiles = Append $iosFiles $att}} + {{else if or (StringUtils.Contains $name "windows") (StringUtils.Contains $name "win64") (StringUtils.Contains $name "win32") (StringUtils.Contains $name "-win.") (StringUtils.Contains $name "_win.") (StringUtils.Contains $name "-win-") (StringUtils.Contains $name "_win_") (StringUtils.HasSuffix $name ".exe") (StringUtils.HasSuffix $name ".msi") (StringUtils.HasSuffix $name ".msix") (StringUtils.HasSuffix $name ".msixbundle") (StringUtils.HasSuffix $name ".appx") (StringUtils.HasSuffix $name ".appxbundle")}} + {{$windowsFiles = Append $windowsFiles $att}} + {{else if or (StringUtils.Contains $name "darwin") (StringUtils.Contains $name "macos") (StringUtils.Contains $name "-mac.") (StringUtils.Contains $name "_mac.") (StringUtils.Contains $name "-mac-") (StringUtils.Contains $name "_mac_") (StringUtils.Contains $name "osx") (StringUtils.HasSuffix $name ".dmg") (StringUtils.HasSuffix $name ".pkg")}} + {{$macosFiles = Append $macosFiles $att}} + {{else if or (StringUtils.Contains $name "linux") (StringUtils.Contains $name "-lin.") (StringUtils.Contains $name "_lin.") (StringUtils.Contains $name "-lin-") (StringUtils.Contains $name "_lin_") (StringUtils.HasSuffix $name ".deb") (StringUtils.HasSuffix $name ".rpm") (StringUtils.HasSuffix $name ".appimage") (StringUtils.HasSuffix $name ".flatpak") (StringUtils.HasSuffix $name ".snap")}} + {{$linuxFiles = Append $linuxFiles $att}} + {{else}} + {{$otherFiles = Append $otherFiles $att}} + {{end}} + {{end}} + {{if $windowsFiles}} +
+

{{svg "octicon-device-desktop" 16}} Windows

+ +
+ {{end}} + {{if $macosFiles}} +
+

{{svg "octicon-device-desktop" 16}} macOS

+ +
+ {{end}} + {{if $linuxFiles}} +
+

{{svg "octicon-terminal" 16}} Linux

+ +
+ {{end}} + {{if not $.HideMobileReleases}} + {{if $androidFiles}} +
+

{{svg "octicon-device-mobile" 16}} Android

+ +
+ {{end}} + {{if $iosFiles}} +
+

{{svg "octicon-device-mobile" 16}} iOS

+ +
+ {{end}} + {{end}} + {{if or $.GooglePlayID $.AppStoreID}} +
+

{{svg "octicon-device-mobile" 16}} App Stores

+
+ {{if $.GooglePlayID}} + + + Google Play + + {{end}} + {{if $.AppStoreID}} + + + App Store + + {{end}} +
+
+ {{end}} + {{if $otherFiles}} +
+

{{svg "octicon-file" 16}} Other

+ +
+ {{end}} +
+
+ {{end}} + + + {{if .Config.ValueProps}} +
+
+
+ +

{{if .Config.Brand.Name}}Why {{.Config.Brand.Name}}?{{else}}Why Choose Us{{end}}

+

Everything you need to get started quickly.

+
+
+ {{range .Config.ValueProps}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "check")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.Features}} +
+
+
+ +

Features

+

Powerful capabilities at your fingertips.

+
+
+ {{range .Config.Features}} +
+
+ {{svg (printf "octicon-%s" (or .Icon "zap")) 20}} +
+

{{.Title}}

+

{{.Description}}

+
+ {{end}} +
+
+
+ {{end}} + + + {{if or .Config.SocialProof.Logos .Config.SocialProof.Testimonials}} +
+
+ {{if .Config.SocialProof.Logos}} +
+ {{range .Config.SocialProof.Logos}} +
{{.}}
+ {{end}} +
+ {{end}} + {{if .Config.SocialProof.Testimonials}} +
+ {{range .Config.SocialProof.Testimonials}} + + {{end}} +
+ + {{end}} +
+
+ {{end}} + + + {{if .Config.Pricing.Plans}} +
+
+
+ +

{{if .Config.Pricing.Headline}}{{.Config.Pricing.Headline}}{{else}}Pricing{{end}}

+

{{if .Config.Pricing.Subheadline}}{{.Config.Pricing.Subheadline}}{{else}}Choose the plan that works for you{{end}}

+
+
+ {{range .Config.Pricing.Plans}} +
+ {{if .Featured}}Popular{{end}} +
{{.Name}}
+
{{.Price}}
+
{{.Period}}
+ {{if .Features}} +
    + {{range .Features}}
  • {{.}}
  • {{end}} +
+ {{end}} + {{if .CTA}}{{.CTA}}{{else}}Get Started{{end}} +
+ {{end}} +
+
+
+ {{end}} + + + {{if .Config.CTASection.Headline}} +
+
+

{{.Config.CTASection.Headline}}

+ {{if .Config.CTASection.Subheadline}} +

{{.Config.CTASection.Subheadline}}

+ {{end}} + + {{if .Config.CTASection.Button.Label}}{{.Config.CTASection.Button.Label}}{{else}}Get Started{{end}} + {{svg "octicon-arrow-right" 16}} + +
+
+ {{end}} + + + {{if and .Config.Blog.Enabled .BlogPosts}} +
+
+
+ +

{{if .Config.Blog.Headline}}{{.Config.Blog.Headline}}{{else}}Latest Posts{{end}}

+ {{if .Config.Blog.Subheadline}}

{{.Config.Blog.Subheadline}}

{{end}} +
+ + {{if .Config.Blog.CTAButton.Label}} + + {{end}} +
+
+ {{end}} + + + {{if and .Config.Gallery.Enabled .GalleryImages}} + + {{end}} + + {{end}}{{/* end PageIsBlogDetail / PageIsBlogList / else */}} + + + +
+ + + + +{{template "pages/base_footer" .}} \ No newline at end of file