Compare commits

...

10 Commits

Author SHA1 Message Date
Mary f164d48e0c Change the config and file 2023-07-08 17:45:26 +01:00
Mary 5f4258f32a Modify the post's pic. 2022-11-10 10:43:37 +00:00
Mary 9ce9818119 Add google-analytics. 2022-11-10 10:42:16 +00:00
Mary b29a407817 Modify the style of the footer. 2022-11-09 14:43:15 +00:00
Mary d5a539576f Edit the style of the post tags. 2022-11-08 17:00:04 +00:00
Mary e0aba41b9d Edit the style of pages. 2022-11-08 16:40:30 +00:00
Mary e2911a9e0f Change the draft status. 2022-11-06 16:11:03 +00:00
Sameer Rahmani 7ec9a2604a Add the deploy target 2022-11-06 12:36:56 +00:00
Sameer Rahmani db577a69ea Add the search page 2022-10-09 19:14:56 +01:00
Mary ac474ceccc Add coyote theme 2022-10-09 18:40:27 +01:00
39 changed files with 998 additions and 19 deletions

9
Makefile Normal file
View File

@ -0,0 +1,9 @@
build:
hugo -D
npm run index
clean:
rm -rf public
rm -v $(shell find . -iname "*~")
deploy:
hugo
rsync -vlcr --delete-after ./public/* mary@core.sweetandsourcherries.com:/home/mary/deliciousium/public/

View File

@ -3,6 +3,9 @@ languageCode = 'en-us'
title = 'deliciousium'
theme = 'coyote'
copyright = "deliciousium - All rights reserved"
googleAnalytics = "341643661"
[params]
logo = "/images/deliciousium.png"
[outputs]
home = ['HTML', 'JSON', 'RSS']

View File

@ -1,6 +0,0 @@
---
title: ""
date: 2022-10-01T12:11:53+01:00
draft: true
---

View File

@ -7,9 +7,9 @@ tags: ["cake"]
keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
---
##### Ingredients for cake
![alt text](images/pumpkinCakeIngredients.png "Ingredients")
##### Ingredients for the cake
| | |
|:----------|:-------------------------------------------------------------|
| 2 Cups | Cake flour |
@ -17,7 +17,7 @@ keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
| 1 Cup | Chopped walnuts |
| 1 Cup | Pumpkin puree |
| 3 Tbsp | Yogurt |
| 1 Cup | Rapseed oil |
| 1 Cup | Rapseed oil |
| 3 | Eggs |
| 1 1/2 Tsp | Pumpkin pie spice |
| 2 Tsp | Baking powder |
@ -25,10 +25,9 @@ keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
| A pinch | Salt to taste |
##### Ingredients for buttercream frosting
##### Ingredients for the buttercream frosting
| | |
|:------------|:--------------------------------------|
| | |
| 400 G | Icing sugar |
| 200 G | Unsalted butter (at room temperature) |
| 3-4 Tbsp | Milk |
@ -51,8 +50,11 @@ keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
6. At this stage, Do not use a mixer at all, and stirring with a spatula is enough.
7. Now grease a desired mould with a bit of oil (I used a large Pyrex bowl as a mould.). Transfer the batter to the mould and put it in the oven for 30 to 45 minutes (depending on the type of oven) or until a skewer inserted comes out clean.
8. When the cake is made, turn off the oven and wait for 5 minutes. Then take the mould out of the oven and let the cake cool on the mould for about 10 minutes then inverting it on a wire cooling rack.
7. Add the chopped walnuts and mix well
8. Now grease a desired mould with a bit of oil (I used a large Pyrex bowl as a mould.). Transfer the batter to the mould and put it in the oven for 30 to 45 minutes (depending on the type of oven) or until a skewer inserted comes out clean.
9. When the cake is made, turn off the oven and wait for 5 minutes. Then take the mould out of the oven and let the cake cool on the mould for about 10 minutes then inverting it on a wire cooling rack.
###### Instruction for buttercream frosting:
@ -62,6 +64,7 @@ keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
3. Add the icing sugar in 2 or 3 step and mix with the butter.
4. Add vanilla extract and milk and mix.
5. I divided the buttercream into two parts and drizzled food colouring over the buttercream. I divided 1/2 cup for making the pumpkin's stem and made it green and the other part. For frosting the cake and made it orange. It is better to add the colours little by little and stir until you finally reach the desired colour.
@ -77,3 +80,6 @@ keywords: ["cake", "pumpkin", "autumn", "pumpkincake"]
10. Put the cake in the fridge to chill a little bit before serving.
11. Enjoy it!
{{< youtube id="QXqhNGPxMoQ" title="Pumpkin Shape Cake" autoplay="true" >}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 147 KiB

4
content/search.md Normal file
View File

@ -0,0 +1,4 @@
---
title: "Search"
layout: "search"
---

View File

@ -1,6 +1,6 @@
{
"scripts": {
"index": "hugo-lunr"
"index": "mkdir -p public/db && hugo-lunr -i 'content/**' -o public/db/db.json"
},
"dependencies": {
"hugo-lunr": "^0.0.4"

View File

@ -1,5 +1,84 @@
.deliciousiumlogo
.body {
backgroun-color = #ffcc00;
.deliciousiumlogo {
}
body {
//background-color: #FFCC00;
}
.card-title {
text-align: center;
}
.post_title {
text-align: center;
border-bottom: none !important;
margin-top: 0!important;
margin-bottom: 1.5em !important;
}
.post table {
border-collapse: collapse !important;
width: 100% !important;
margin-bottom: 4rem !important;
margin-top: -2rem !important;
display: table !important;
}
.posttags {
background-color: #6d0f00 !important;
//font-weight: bold !important;
}
th, td {
border: none !important;
text-align: left;
padding: 8px !important;
background: none !important;
}
tr:nth-child(even) {
background-color: #FFF6D3 !important;
}
td:nth-child(odd) {
width: 25% !important;
}
.post h5 {
background-color: #D40B0C !important;
color: white !important;
margin-top: 5rem;
}
td img {
padding-bottom: 1rem;
padding-top: 1rem;
}
.post-imge {
margin-bottom: 4rem !important;
}
.post ol {
margin-bottom: 3rem !important;
}
.site-footer {
background-color: #fc0;
padding: 4rem;
margin-top: 3rem;
}
.font-footer {
color: #400000 !important;
font-weight: bold !important;
font-size: 1.5rem !important;
}
.font-footer a {
color: #400000 !important;
}

21
themes/coyote/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 nightswinger
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

24
themes/coyote/README.md Normal file
View File

@ -0,0 +1,24 @@
# Hugo Theme Coyote
## Demo
[Example Site](https://nightswinger.github.io/hugo-theme-coyote/)
## Install
Clone this repo to `themes` folder:
```bash
git clone https://github.com/nightswinger/hugo-theme-coyote.git themes/coyote --depth=1
```
Then, add the theme to your site config:
```bash
echo theme = \"coyote\" >> config.toml
```
## Features
* **Search** supported by [Fuse.js](https://github.com/krisk/Fuse)
* **Google Analytics** supported

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,50 @@
let fuse
const fuseOptions = {
shouldSort: true,
includeMatches: true,
threshold: 0.0,
tokenize:true,
location: 0,
distance: 100,
maxPatternLength: 32,
minMatchCharLength: 1,
keys: [
{name:"title",weight:0.8},
{name:"contents",weight:0.5},
{name:"tags",weight:0.3},
{name:"categories",weight:0.3}
]
}
window.onload = function () {
fetch('/db/db.json')
.then(resp => resp.json())
.then(data => {
fuse = new Fuse(data, fuseOptions)
})
}
const input = document.getElementById('searchInput')
const results = document.getElementById('searchResults')
input.addEventListener('keyup', (e) => {
const items = fuse.search(e.target.value)
if (items.length > 0) {
let itemList = ''
for (let i in items) {
itemList += `<div class="resultItem">`
+ `<div class="resultItem__media" style="background-image: url(${items[i].item.image});"></div>`
+ `<div class="resultItem__body">`
+ `<h3 class="resultItem__title"><a href="${items[i].item.permalink}">${items[i].item.title}</a></h3>`
+ `<div class="resultItem__footer">${items[i].item.date}</div>`
+ `</div>`
+ `</div>`
}
results.innerHTML = itemList
} else {
results.innerHTML = ''
}
})

View File

@ -0,0 +1,65 @@
.article-list {
display: grid;
gap: 2.4rem 1.6rem;
grid-template-columns: repeat(2, 1fr);
padding: 3.2rem 1.6rem;
@media screen and (min-width: 768px) {
grid-template-columns: repeat(3, 1fr);
}
}
.article {
position: relative;
display: flex;
flex-direction: column;
border-radius: 8px;
box-shadow: 0 4px 8px -2px #000a3c1a;
background-color: #fff;
overflow: hidden;
transition: box-shadow .2s;
&:hover {
box-shadow: 0 6px 12px -4px #001b4433;
}
&__inner {
color: #111111;
text-decoration: none;
flex: 1;
}
&__header {
position: relative;
padding-top: 50%;
}
&__image {
position: absolute;
top: 0;
left: 0;
max-width: none;
width: 100%;
height: 100%;
object-fit: cover;
}
&__text {
padding-top: 1.2rem;
padding-right: 1.6rem;
padding-left: 1.6rem;
}
&__title {
font-size: 1.6rem;
font-weight: 700;
line-height: 1.5;
overflow: hidden;
}
&__footer {
padding: 1rem 1.4rem 1.6rem;
color: #93a5b1;
font-size: 1.1rem;
}
}

View File

@ -0,0 +1,73 @@
/* Box sizing rules */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
margin: 0;
}
/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role="list"],
ol[role="list"] {
list-style: none;
}
/* Set core root defaults */
html:focus-within {
scroll-behavior: smooth;
}
/* Set core body defaults */
body {
min-height: 100vh;
text-rendering: optimizeSpeed;
line-height: 1.5;
}
/* A elements that don't have a class get default styles */
a:not([class]) {
text-decoration-skip-ink: auto;
}
/* Make images easier to work with */
img,
picture {
max-width: 100%;
display: block;
}
/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
font: inherit;
}
/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
html:focus-within {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}

View File

@ -0,0 +1,6 @@
.footer {
text-align: center;
color: #6c6c6c;
padding: 1.6rem 2.4rem;
font-size: 1.1rem;
}

View File

@ -0,0 +1,26 @@
.header {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin-right: auto;
margin-left: auto;
margin-bottom: 2.5rem;
padding: 0 1.6rem;
&__title {
font-size: 2.8rem;
font-family: 'Eczar', serif;
margin: 1.6rem 0;
}
}
.headerNav {
&__items {
list-style: none;
> li {
font-size: 1.4rem;
}
}
}

View File

@ -0,0 +1,24 @@
.pagination {
display: flex;
justify-content: center;
gap: 1.6rem;
margin: 1.6rem auto 3.2rem;
&__item {
text-align: center;
}
&__link {
display: block;
min-width: 40px;
padding: 12px;
color: #111;
background-color: #ebeef2;
border-radius: 8px;
&--current {
background-color: #5486cc;
color: #fff;
}
}
}

View File

@ -0,0 +1,206 @@
.post {
max-width: 768px;
padding: 1.6rem 3.2rem;
margin: 0 auto;
&__header {
position: relative;
padding-top: 50%;
border-radius: 8px;
overflow: hidden;
}
&__image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
h1 {
& + p {
margin-top: 0.3em;
}
}
h1,
h2 {
margin-top: 2.3em;
margin-bottom: 0.5em;
}
h3,
h4,
h5,
h6 {
margin-top: 2.25em;
margin-bottom: 0.5em;
}
h1 {
padding-bottom: 0.5rem;
font-size: 2.7rem;
position: relative;
border-bottom: solid 1px #5c93bb2b
}
h2 {
font-size: 2.4rem;
}
h3 {
font-size: 2.1rem;
}
h4 {
font-size: 1.8rem;
}
h5 {
font-size: 1.6rem;
}
h6 {
font-size: 1.5rem;
}
p {
font-size: 1.5rem;
line-height: 1.8;
}
p + p {
margin-top: 1.5em;
}
p > a {
color: #0f83fd;
&:hover {
text-decoration: underline;
}
}
blockquote {
font-size: 0.97em;
margin: 1.4rem 0;
border-left: solid 3px #9dacb7;
padding: 2px 0 2px 0.7em;
color: #505c64;
p {
margin: 1rem 0;
}
& > :first-child {
margin-top: 0;
}
& > :last-child {
margin-bottom: 0;
}
}
code {
padding: 0.2em 0.4em;
background: rgba(33, 90, 160, 0.07);
font-size: 0.85em;
border-radius: 4px;
vertical-align: 0.08em;
}
table {
margin: 2rem auto;
width: auto;
border-collapse: collapse;
font-size: 1.4rem;
line-height: 1.5;
word-break: normal;
display: block;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
th,
td {
padding: 0.8rem;
border: solid 1px #cfdce6;
background: #fff;
}
th {
font-weight: 700;
background: #edf2f7;
}
pre {
margin: 1.6rem 0;
background: #1a2638;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: 8px;
box-shadow: 0 4px 6px -1px rgba(0, 14, 30, 0.15);
word-break: normal;
word-wrap: normal;
display: flex;
&:after {
content: '';
width: 8px;
flex-shrink: 0;
}
code {
margin: 0;
padding: 0;
background: transparent;
font-size: 1.4rem;
color: #fff;
}
& > code {
display: block;
padding: 1.6rem;
}
}
.code-block-container {
position: relative;
margin: 1.3rem 0;
pre {
margin: 0;
}
}
.code-block-filename {
display: table;
max-width: 100%;
background: #323e52;
color: rgba(255, 255, 255, 0.9);
font-size: 1.2rem;
line-height: 1.3;
border-radius: 8px 8px 0 0;
padding: 6px 12px 20px;
margin-bottom: -16px;
}
.code-block-filename-container + pre {
border-top-left-radius: 0;
}
ol,
ul {
font-size: 1.5rem;
margin: 2.2rem 0;
line-height: 1.8;
}
ol,
ul {
margin: 0;
}
}
.post__tags {
display: flex;
gap: 8px;
margin: 1.6rem 0;
+ .post__content {
#title {
margin-top: 3.2rem;
}
}
}
.post__tag {
font-size: 1.3rem;
color: #fff;
background-color: #35475c;
padding: 0.6rem 1.2rem;
display: inline-block;
border-radius: 6px;
}

View File

@ -0,0 +1,17 @@
.profile {
&__inner {
padding: 3.2rem 1.6rem;
display: flex;
}
&__name {
font-size: 1.8rem;
}
&__description {
color: #bababa;
font-size: 1.4rem;
margin-top: 0.6rem;
margin-bottom: 0.6rem;
}
}

View File

@ -0,0 +1,63 @@
.search-container {
max-width: 720px;
padding: 3.2rem 1.6rem;
margin: 0 auto;
}
.search {
position: relative;
display: flex;
align-items: center;
border: 1px solid #e6e3ed;
border-radius: 20px;
margin-bottom: 3.2rem;
&__label {
position: absolute;
left: 1.6rem;
color: #93a5b1;
}
&__input {
width: 100%;
padding: 1.2rem 1.2rem 1.2rem 4.8rem;
font-size: 1.5rem;
line-height: 2rem;
border: 0;
border-radius: inherit;
outline: none;
}
}
.results {
display: flex;
flex-direction: column;
gap: 2.4rem;
}
.resultItem {
display: flex;
&__media {
width: 80px;
height: 80px;
background-position: center;
background-size: cover;
border-radius: 8px;
}
&__body {
padding: 0 1.6rem;
}
&__title {
font-size: 1.8rem;
font-weight: 700;
margin-bottom: 0.4rem;
}
&__footer {
color: #93a5b1;
font-size: 1.1rem;
}
}

View File

@ -0,0 +1,38 @@
@import url('https://fonts.googleapis.com/css2?family=Eczar:wght@700&display=swap');
@import "external/reset.scss";
@import "article.scss";
@import "footer.scss";
@import "header.scss";
@import "post.scss";
@import "profile.scss";
@import "pagination.scss";
@import "search.scss";
@import "tags.scss";
html {
font-size: 62.50%;
}
a {
color: #1e1e1e;
text-decoration: none;
}
.container {
max-width: 960px;
margin: 0 auto;
}
.main {
min-height: calc(100vh - 87px - 48.5px);
}
.not-found {
height: 70vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 12rem;
span {
font-size: 2.4rem;
}
}

View File

@ -0,0 +1,16 @@
.tags {
max-width: 768px;
padding: 1.6rem 3.2rem;
margin: 0 auto;
&__header {
display: flex;
align-items: center;
gap: 4px;
margin-bottom: 4.8rem;
}
&__title {
font-size: 1.8rem;
}
}

3
themes/coyote/go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/nightswinger/hugo-theme-coyote
go 1.18

View File

@ -0,0 +1,9 @@
{{ define "main" }}
<section class="not-found">
<h3>404</h3>
<span>page not found</span>
<div>
<h1><a href="{{ "" | absLangURL }}">Go Home</a></h1>
</div>
</section>
{{ end }}

View File

@ -0,0 +1,9 @@
<div class="code-block-container">
{{- $name := .Attributes.name -}}
<div class="code-block-filename-container">
{{ with $name }}<span class="code-block-filename">{{ . }}</span>{{ end }}
</div>
<div>
{{- highlight (.Inner | safeHTML) .Type .Options }}
</div>
</div>

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
{{- partial "head.html" . -}}
</head>
<body>
<!-- Code that all your templates share, like a header -->
{{- partial "header.html" . -}}
<div class="container">
<main class="main">
{{ block "main" . }}
<!-- The part of the page that begins to differ between templates -->
{{ end }}
</main>
</div>
<div class="site-footer">
{{- partialCached "footer.html" . }}
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
{{- $.Scratch.Add "index" slice -}}
{{- range site.RegularPages -}}
{{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }}
{{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary "date" (.Date.Format "2006/01/02") "image" ((print .Permalink .Params.image) | absURL)) -}}
{{- end }}
{{- end -}}
{{- $.Scratch.Get "index" | jsonify -}}

View File

@ -0,0 +1,21 @@
{{- define "main" }}
<section class="tags">
<div class="tags__header">
<h2 class="tags__title">{{ .Title }}</h2>
</div>
<div class="results">
{{- $pages := union .RegularPages .Sections }}
{{ range $pages }}
<div class="resultItem">
<div class="resultItem__media" style="background-image: url({{ (print .Permalink .Params.image) | absURL }});"></div>
<div class="resultItem__body">
<h3 class="resultItem__title"><a href="{{ .Permalink }}">{{ .Title }}</a></h3>
<!-- <div class="resultItem__footer">{{ .Date.Format "2006/01/02" }}</div> -->
</div>
</div>
{{ end }}
</div>
</section>
{{- end }}

View File

@ -0,0 +1,16 @@
{{- define "main" }}
<div class="search-container">
<form class="search">
<label class="search__label">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</label>
<input class="search__input" id="searchInput" placeholder="Search contents...">
</form>
<div class="results" id="searchResults"></div>
</div>
{{ end }}

View File

@ -0,0 +1,26 @@
{{ define "main" }}
<div class="post">
<h1 class="post_title" id="title">{{ .Title }}</h1>
<div class="post__header">
{{ $image := .Resources.GetMatch .Params.image }}
<img class="post__image post-imge" src="{{ $image.RelPermalink }}">
</div>
{{ with .Params.tags }}
<div class="post__tags">
{{ range . }}
<a class="post__tag posttags" href="{{ "tags/" | absURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
</div>
{{ end }}
<section class="post__content">
<div>
<article>
{{ .Content }}
</article>
</div>
</section>
</div>
{{ end }}

View File

@ -0,0 +1,14 @@
<article class="article">
<a class="article__inner" href="{{ .Permalink }}">
<div class="article__header">
{{ $image := .Resources.GetMatch .Params.image }}
<img class="article__image" src="{{ $image.RelPermalink }}">
</div>
<div class="article__text">
<h3 class="article__title card-title">{{ .Title }}</h3>
</div>
</a>
<footer class="article__footer">
<!-- <time datetime="{{ .Date }}">{{ .Date.Format "2006/01/02" }}</time>-->
</footer>
</article>

View File

@ -0,0 +1,17 @@
{{ define "main" }}
{{- partial "profile.html" }}
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
{{- $paginator := .Paginate $pages }}
<section class="article-list">
{{ range $paginator.Pages }}
{{ .Render "summary"}}
{{ end }}
</section>
{{- if gt $paginator.TotalPages 1 }}
{{- partial "pagination.html" . -}}
{{- end }}
{{ end }}

View File

@ -0,0 +1,3 @@
<footer class="footer font-footer">
<span>&copy; {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ .Site.Copyright }}</a></span>
</footer>

View File

@ -0,0 +1,19 @@
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
{{ template "_internal/google_analytics.html" . }}
{{ with .Site.Params.logo}}<link rel="icon" href="{{ . | urlize | relURL }}">{{ end }}
<title>{{ if not .IsHome }}{{ if .Title }}{{ .Title }} - {{ end }}{{ end }}{{ .Site.Title }}</title>
{{ $sass := resources.Get "scss/style.scss" }}
{{ $style := $sass | resources.ToCSS | minify | resources.Fingerprint "sha256" }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<link rel="stylesheet" href="{{ "./css/style.css" | urlize | relURL }}">
{{- if (eq .Layout "search") }}
{{ $fusejs := resources.Get "js/fuse.basic.min.js" }}
{{ $search := resources.Get "js/search.js" }}
{{ $js := slice $fusejs $search | resources.Concat "js/bundle.js" | resources.Fingerprint "sha512" }}
<script defer type="text/javascript" src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}"></script>
{{- end }}

View File

@ -0,0 +1,18 @@
<header class="header">
<div class="header__title">
<a href="{{ "" | absLangURL }}">{{ with .Site.Params.logo }}<img src="{{ . | urlize | relURL }}" alt="logo">{{ end }}</a>
</div>
<div class="headerNav">
<ul class="headerNav__items">
<li>
<a href="{{ "search" | absURL }}">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</a>
</li>
</ul>
</div>
</header>

View File

@ -0,0 +1,13 @@
{{- if (eq .name "github") -}}
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path fill="currentColor" d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z" />
</svg>
{{- else if (eq .name "instagram") -}}
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path fill="currentColor" d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z" />
</svg>
{{- else if (eq .name "twitter") -}}
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path fill="currentColor" d="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" />
</svg>
{{- end -}}

View File

@ -0,0 +1,12 @@
<div class="pagination">
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
{{- $paginator := .Paginate $pages }}
{{ range $paginator.Pagers }}
<div class="pagination__item">
<a class="pagination__link{{ if eq . $paginator }} pagination__link--current{{ end }}" href="{{ .URL }}" >
{{ .PageNumber }}
</a>
</div>
{{ end }}
</div>

View File

@ -0,0 +1,19 @@
<section class="profile">
{{- with site.Params.profile }}
{{ if .enabled }}
<div class="profile__inner">
<div class="profile__body">
<h3 class="profile__name">{{ .name }}</h3>
<p class="profile__description">{{ .description }}</p>
<div class="profile__social">
{{ range site.Params.social }}
<a href="{{ .url }}" target="_blank">
{{ partial "icons.html" . }}
</a>
{{ end }}
</div>
</div>
</div>
{{ end }}
{{- end }}
</section>

20
themes/coyote/theme.toml Normal file
View File

@ -0,0 +1,20 @@
name = "Coyote"
license = "MIT"
licenselink = "https://github.com/nightswinger/hugo-theme-coyote/blob/main/LICENSE"
description = "Card-based blog theme for Hugo"
# The home page of the theme, where the source can be found.
homepage = "https://github.com/nightswinger/hugo-theme-coyote"
# If you have a running demo of the theme.
demosite = "https://nightswinger.github.io/hugo-theme-coyote/"
tags = ["blog"]
features = ["awesome", "card"]
min_version = "0.101.0"
# If the theme has a single author
[author]
name = "nightswinger"
homepage = "https://github.com/nightswinger"