First Main Commit
2
archetypes/default.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
+++
|
||||||
|
+++
|
6
exampleSite/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
48
exampleSite/config.toml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
baseURL = 'http://example.org/'
|
||||||
|
languageCode = 'en-us'
|
||||||
|
theme = 'graysx'
|
||||||
|
title = 'Example Graysx Site'
|
||||||
|
|
||||||
|
## Site Settings
|
||||||
|
[params]
|
||||||
|
logo = "assets/img/logo.webp"
|
||||||
|
favicon = "assets/favicon.png"
|
||||||
|
|
||||||
|
# Info
|
||||||
|
address = "123 Arch B1W, GNU/Linux"
|
||||||
|
email = "hello@graysx.com"
|
||||||
|
phone = "123456"
|
||||||
|
|
||||||
|
# Socials
|
||||||
|
|
||||||
|
twitter = "#"
|
||||||
|
facebook = "#"
|
||||||
|
github = "https://github.com/akatiggerx04/graysx-hugo"
|
||||||
|
|
||||||
|
# Other
|
||||||
|
|
||||||
|
# Startbootstrap Contact Form Token https://startbootstrap.com/solution/contact-forms
|
||||||
|
sbtoken = "TOKEN_HERE"
|
||||||
|
|
||||||
|
## Menu Items
|
||||||
|
[menu]
|
||||||
|
[[menu.main]]
|
||||||
|
name = "About"
|
||||||
|
URL = "#about"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Projects"
|
||||||
|
URL = "#projects"
|
||||||
|
weight = 2
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Contact"
|
||||||
|
URL = "#signup"
|
||||||
|
weight = 3
|
||||||
|
|
||||||
|
|
||||||
|
# Credits
|
||||||
|
|
||||||
|
# This theme is forked from: https://github.com/startbootstrap/startbootstrap-grayscale
|
||||||
|
# This theme is forked by: https://github.com/akatiggerx04
|
32
exampleSite/data/homepage.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Main Title
|
||||||
|
main:
|
||||||
|
header:
|
||||||
|
title : "Graysx Theme" # Title Text
|
||||||
|
description : "Aut Deleniti Solu Facilis Idlau imq Atque Ac Itaqu A Co Volup Nu Quaecu Nec Archite At." # Title Desc
|
||||||
|
button:
|
||||||
|
text: "Learn More" # Button Text
|
||||||
|
url: "#about" # Button URL
|
||||||
|
|
||||||
|
# About
|
||||||
|
about:
|
||||||
|
title: "About us"
|
||||||
|
desc: "Max Ducim Qua Labo Pa Adre Nam Ased Di Ullam Ess Num Minim Quorecu Re Iur Ipsam Autemo Autem Max Iurer Ut Enim Praese Ips Fugia Ne Dig Assumen Cul Ipsum Velit Magna Inl Odio Enimodi Nonve Sunti Tem Incidu Velqui Lauda Assume Volupt Nih Es Autem Officia Culpa Impedit Harum Blandi Si Quis Dol Facilis Verodo Tot Quib Quoden"
|
||||||
|
button:
|
||||||
|
enable: true
|
||||||
|
text: "Button"
|
||||||
|
url: "#"
|
||||||
|
image: "assets/img/ipad.png"
|
||||||
|
|
||||||
|
projects:
|
||||||
|
card1:
|
||||||
|
title: "Graysx"
|
||||||
|
text: "Place Cons Rerum Provide SuntSin Incid Fac Nonse Mollitia Quia Itaque! Iusto Necessi Ullam Recusand Nobi Quo Nequ Inulla Beatae Recusand Suscipit Ip Autem Rep Dol Quoquis Inu Rer Odiorem Suscipi Praes Accusant Quia Quosqu Anim Incidunt Nobis Odio Omnis"
|
||||||
|
img: "assets/img/bg-masthead.jpg"
|
||||||
|
card2:
|
||||||
|
title: "Graysx"
|
||||||
|
text: "Place Cons Rerum Provide SuntSin Incid Fac Nonse Mollitia Quia Itaque! Iusto Necessi Ullam Recusand Nobi Quo Nequ Inulla Beatae Recusand Suscipit Ip Autem Rep Dol Quoquis Inu Rer Odiorem Suscipi Praes Accusant Quia Quosqu Anim Incidunt Nobis Odio Omnis"
|
||||||
|
img: "assets/img/demo-image-01.jpg"
|
||||||
|
card3:
|
||||||
|
title: "Graysx"
|
||||||
|
text: "Place Cons Rerum Provide SuntSin Incid Fac Nonse Mollitia Quia Itaque! Iusto Necessi Ullam Recusand Nobi Quo Nequ Inulla Beatae Recusand Suscipit Ip Autem Rep Dol Quoquis Inu Rer Odiorem Suscipi Praes Accusant Quia Quosqu Anim Incidunt Nobis Odio Omnis"
|
||||||
|
img: "assets/img/demo-image-02.jpg"
|
BIN
exampleSite/static/assets/favicon.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
exampleSite/static/assets/img/bg-masthead.jpg
Normal file
After Width: | Height: | Size: 213 KiB |
BIN
exampleSite/static/assets/img/bg-signup.jpg
Normal file
After Width: | Height: | Size: 523 KiB |
BIN
exampleSite/static/assets/img/demo-image-01.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
exampleSite/static/assets/img/demo-image-02.jpg
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
exampleSite/static/assets/img/ipad.png
Normal file
After Width: | Height: | Size: 190 KiB |
BIN
exampleSite/static/assets/img/logo.webp
Normal file
After Width: | Height: | Size: 2.2 KiB |
0
layouts/404.html
Normal file
11
layouts/_default/baseof.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
{{- partial "head.html" . -}}
|
||||||
|
<body>
|
||||||
|
{{- partial "header.html" . -}}
|
||||||
|
<div id="content">
|
||||||
|
{{- block "main" . }}{{- end }}
|
||||||
|
</div>
|
||||||
|
{{- partial "footer.html" . -}}
|
||||||
|
</body>
|
||||||
|
</html>
|
0
layouts/_default/list.html
Normal file
0
layouts/_default/single.html
Normal file
153
layouts/index.html
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
{{- partial "head.html" . -}}
|
||||||
|
<body id="page-top">
|
||||||
|
{{- partial "header.html" . -}}
|
||||||
|
<!-- Masthead-->
|
||||||
|
<header class="masthead">
|
||||||
|
<div class="container px-4 px-lg-5 d-flex h-100 align-items-center justify-content-center">
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<div class="text-center">
|
||||||
|
{{ with site.Data.homepage.main }}
|
||||||
|
<h1 class="mx-auto my-0 text-uppercase">{{ .header.title }}</h1>
|
||||||
|
<h2 class="text-white-50 mx-auto mt-2 mb-5">{{ .header.description }}</h2>
|
||||||
|
<a class="btn btn-primary" href="{{ .header.button.url }}">{{ .header.button.text }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<!-- About-->
|
||||||
|
{{ with site.Data.homepage.about }}
|
||||||
|
<section class="about-section text-center" id="about">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5 justify-content-center">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<h2 class="text-white mb-4">{{ .title }}</h2>
|
||||||
|
<p class="text-white-50">{{ .desc }}</p>
|
||||||
|
{{ if .button.enable }}
|
||||||
|
<a class="btn btn-primary about-btn" href="{{ .button.url }}">{{ .button.text }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<img class="img-fluid" src="{{ .image }}" alt="..." />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
<!-- Projects-->
|
||||||
|
{{ with site.Data.homepage.projects }}
|
||||||
|
<section class="projects-section bg-light" id="projects">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<!-- Featured Project Row-->
|
||||||
|
<div class="row gx-0 mb-4 mb-lg-5 align-items-center">
|
||||||
|
<div class="col-xl-8 col-lg-7"><img class="img-fluid mb-3 mb-lg-0" src="{{ .card1.img }}" alt="..." /></div>
|
||||||
|
<div class="col-xl-4 col-lg-5">
|
||||||
|
<div class="featured-text text-center text-lg-left">
|
||||||
|
<h4>{{ .card1.title }}</h4>
|
||||||
|
<p class="text-black-50 mb-0">{{ .card1.text }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Project One Row-->
|
||||||
|
<div class="row gx-0 mb-5 mb-lg-0 justify-content-center">
|
||||||
|
<div class="col-lg-6"><img class="img-fluid" src="{{ .card2.img }}" alt="..." /></div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="bg-black text-center h-100 project">
|
||||||
|
<div class="d-flex h-100">
|
||||||
|
<div class="project-text w-100 my-auto text-center text-lg-left">
|
||||||
|
<h4 class="text-white">{{ .card2.title }}</h4>
|
||||||
|
<p class="mb-0 text-white-50">{{ .card2.text }}</p>
|
||||||
|
<hr class="d-none d-lg-block mb-0 ms-0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Project Two Row-->
|
||||||
|
<div class="row gx-0 justify-content-center">
|
||||||
|
<div class="col-lg-6"><img class="img-fluid" src="{{ .card3.img }}" alt="..." /></div>
|
||||||
|
<div class="col-lg-6 order-lg-first">
|
||||||
|
<div class="bg-black text-center h-100 project">
|
||||||
|
<div class="d-flex h-100">
|
||||||
|
<div class="project-text w-100 my-auto text-center text-lg-right">
|
||||||
|
<h4 class="text-white">{{ .card3.title }}</h4>
|
||||||
|
<p class="mb-0 text-white-50">{{ .card3.text }}</p>
|
||||||
|
<hr class="d-none d-lg-block mb-0 me-0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
<!-- Signup-->
|
||||||
|
<section class="signup-section" id="signup">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5">
|
||||||
|
<div class="col-md-10 col-lg-8 mx-auto text-center">
|
||||||
|
<i class="far fa-paper-plane fa-2x mb-2 text-white"></i>
|
||||||
|
<h2 class="text-white mb-5">Subscribe to receive updates!</h2>
|
||||||
|
<form class="form-signup" id="contactForm" data-sb-form-api-token="{{ site.Params.sbtoken }}">
|
||||||
|
<div class="row input-group-newsletter">
|
||||||
|
<div class="col"><input class="form-control" id="emailAddress" type="email" placeholder="Enter email address..." aria-label="Enter email address..." data-sb-validations="required,email" /></div>
|
||||||
|
<div class="col-auto"><button class="btn btn-primary disabled" id="submitButton" type="submit">Notify Me!</button></div>
|
||||||
|
</div>
|
||||||
|
<div class="invalid-feedback mt-2" data-sb-feedback="emailAddress:required">An email is required.</div>
|
||||||
|
<div class="invalid-feedback mt-2" data-sb-feedback="emailAddress:email">Email is not valid.</div>
|
||||||
|
<div class="d-none" id="submitSuccessMessage">
|
||||||
|
<div class="text-center mb-3 mt-2 text-white">
|
||||||
|
<div class="fw-bolder">Form submission successful!</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-none" id="submitErrorMessage"><div class="text-center text-danger mb-3 mt-2">Error sending message!</div></div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- Contact-->
|
||||||
|
<section class="contact-section bg-black">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<div class="row gx-4 gx-lg-5">
|
||||||
|
<div class="col-md-4 mb-3 mb-md-0">
|
||||||
|
<div class="card py-4 h-100">
|
||||||
|
<div class="card-body text-center">
|
||||||
|
<i class="fas fa-map-marked-alt text-primary mb-2"></i>
|
||||||
|
<h4 class="text-uppercase m-0">Address</h4>
|
||||||
|
<hr class="my-4 mx-auto" />
|
||||||
|
<div class="small text-black-50">{{ site.Params.address }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 mb-3 mb-md-0">
|
||||||
|
<div class="card py-4 h-100">
|
||||||
|
<div class="card-body text-center">
|
||||||
|
<i class="fas fa-envelope text-primary mb-2"></i>
|
||||||
|
<h4 class="text-uppercase m-0">Email</h4>
|
||||||
|
<hr class="my-4 mx-auto" />
|
||||||
|
<div class="small text-black-50"><a href="#!">{{ site.Params.email }}</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 mb-3 mb-md-0">
|
||||||
|
<div class="card py-4 h-100">
|
||||||
|
<div class="card-body text-center">
|
||||||
|
<i class="fas fa-mobile-alt text-primary mb-2"></i>
|
||||||
|
<h4 class="text-uppercase m-0">Phone</h4>
|
||||||
|
<hr class="my-4 mx-auto" />
|
||||||
|
<div class="small text-black-50">{{ site.Params.phone }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="social d-flex justify-content-center">
|
||||||
|
<a class="mx-2" href="{{ site.Params.twitter }}"><i class="fab fa-twitter"></i></a>
|
||||||
|
<a class="mx-2" href="{{ site.Params.facebook }}"><i class="fab fa-facebook-f"></i></a>
|
||||||
|
<a class="mx-2" href="{{ site.Params.github }}"><i class="fab fa-github"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{- partial "footer.html" . -}}
|
||||||
|
</body>
|
||||||
|
</html>
|
11
layouts/partials/footer.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Footer-->
|
||||||
|
<footer class="footer bg-black small text-center text-white-50"><div class="container px-4 px-lg-5">Copyright © {{ .Name }} {{ now.Format "2006"}}</div></footer>
|
||||||
|
<!-- Bootstrap core JS-->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Core theme JS-->
|
||||||
|
<script src="js/scripts.js"></script>
|
||||||
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-->
|
||||||
|
<!-- * * SB Forms JS * *-->
|
||||||
|
<!-- * * Activate your form at https://startbootstrap.com/solution/contact-forms * *-->
|
||||||
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-->
|
||||||
|
<script src="https://cdn.startbootstrap.com/sb-forms-latest.js"></script>
|
17
layouts/partials/head.html
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<meta name="author" content="" />
|
||||||
|
<link rel="icon" href="{{ site.Params.favicon }}" />
|
||||||
|
<!-- Font Awesome icons (free version)-->
|
||||||
|
<script src="https://use.fontawesome.com/releases/v6.1.0/js/all.js" crossorigin="anonymous"></script>
|
||||||
|
<!-- Google fonts-->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet" />
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet" />
|
||||||
|
<!-- Core theme CSS (includes Bootstrap)-->
|
||||||
|
<link href="css/styles.css" rel="stylesheet" />
|
||||||
|
{{ $title := print .Site.Title " | " .Title }}
|
||||||
|
{{ if .IsHome }}{{ $title = .Site.Title }}{{ end }}
|
||||||
|
<title>{{ $title }}</title>
|
||||||
|
</head>
|
17
layouts/partials/header.html
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Navigation-->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
|
||||||
|
<div class="container px-4 px-lg-5">
|
||||||
|
<a class="navbar-brand" href="#page-top"><img src="{{ .Site.Params.logo }}"></a>
|
||||||
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
Menu
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
{{ range site.Menus.main }}
|
||||||
|
<li class="nav-item"><a class="nav-link" href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
11708
static/css/styles.css
Normal file
54
static/js/scripts.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*!
|
||||||
|
* Start Bootstrap - Grayscale v7.0.5 (https://startbootstrap.com/theme/grayscale)
|
||||||
|
* Copyright 2013-2022 Start Bootstrap
|
||||||
|
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-grayscale/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// Scripts
|
||||||
|
//
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', event => {
|
||||||
|
|
||||||
|
// Navbar shrink function
|
||||||
|
var navbarShrink = function () {
|
||||||
|
const navbarCollapsible = document.body.querySelector('#mainNav');
|
||||||
|
if (!navbarCollapsible) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (window.scrollY === 0) {
|
||||||
|
navbarCollapsible.classList.remove('navbar-shrink')
|
||||||
|
} else {
|
||||||
|
navbarCollapsible.classList.add('navbar-shrink')
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Shrink the navbar
|
||||||
|
navbarShrink();
|
||||||
|
|
||||||
|
// Shrink the navbar when page is scrolled
|
||||||
|
document.addEventListener('scroll', navbarShrink);
|
||||||
|
|
||||||
|
// Activate Bootstrap scrollspy on the main nav element
|
||||||
|
const mainNav = document.body.querySelector('#mainNav');
|
||||||
|
if (mainNav) {
|
||||||
|
new bootstrap.ScrollSpy(document.body, {
|
||||||
|
target: '#mainNav',
|
||||||
|
offset: 74,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// Collapse responsive navbar when toggler is visible
|
||||||
|
const navbarToggler = document.body.querySelector('.navbar-toggler');
|
||||||
|
const responsiveNavItems = [].slice.call(
|
||||||
|
document.querySelectorAll('#navbarResponsive .nav-link')
|
||||||
|
);
|
||||||
|
responsiveNavItems.map(function (responsiveNavItem) {
|
||||||
|
responsiveNavItem.addEventListener('click', () => {
|
||||||
|
if (window.getComputedStyle(navbarToggler).display !== 'none') {
|
||||||
|
navbarToggler.click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
18
theme.toml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
name = "Graysx"
|
||||||
|
license = "GPLv3"
|
||||||
|
licenselink = "https://github.com/akatiggerx04/graysx-hugo/blob/master/LICENSE"
|
||||||
|
description = "A minimal responsive gray Hugo theme."
|
||||||
|
homepage = "https://github.com/akatiggerx04/graysx-hugo"
|
||||||
|
tags = ["minimal", "gray", "dark"]
|
||||||
|
features = ["responsive"]
|
||||||
|
min_version = "0.41.0"
|
||||||
|
|
||||||
|
[author]
|
||||||
|
name = "akatiggerx04"
|
||||||
|
homepage = "https://github.com/akatiggerx04/graysx-hugo"
|
||||||
|
repo = "https://github.com/akatiggerx04/graysx-hugo"
|
||||||
|
|
||||||
|
[original]
|
||||||
|
name = "GrayScale"
|
||||||
|
homepage = "https://startbootstrap.com/theme/grayscale"
|
||||||
|
repo = "https://github.com/startbootstrap/startbootstrap-grayscale"
|