more blog stuff
This commit is contained in:
parent
5c24754ea2
commit
0ef577c20b
38 changed files with 527 additions and 150 deletions
138
assets/scss/blog.scss
Normal file
138
assets/scss/blog.scss
Normal file
|
@ -0,0 +1,138 @@
|
|||
body#blog {
|
||||
figure.image {
|
||||
width: calc(66.666% - 13px);
|
||||
align-self: stretch;
|
||||
}
|
||||
|
||||
.blog-section {
|
||||
.title {
|
||||
font-size: 20px;
|
||||
line-height: 30px;
|
||||
padding-bottom: 16px;
|
||||
border-bottom: 1px solid #e7ebf2;
|
||||
}
|
||||
.blog-list {
|
||||
display: flex;
|
||||
|
||||
&.-threecol {
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
align-items: stretch;
|
||||
margin: 0 -19px 79px;
|
||||
border-top: none;
|
||||
padding-top: 18px;
|
||||
|
||||
.blog-item {
|
||||
flex: 0 0 33.333%;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0 19px;
|
||||
&:nth-child(3n+1), &:nth-child(3n+2) {
|
||||
border-right: 1px solid #e7ebf2;
|
||||
}
|
||||
.image {
|
||||
flex: none;
|
||||
width: 100%;
|
||||
}
|
||||
.inner {
|
||||
padding: 15px 0 0;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.-plain {
|
||||
flex-direction: column;
|
||||
.blog-item {
|
||||
min-width: 100%;
|
||||
border-bottom: 1px solid #e7ebf2;
|
||||
flex: 0 0 153px;
|
||||
padding: 18px 0;
|
||||
|
||||
&.-hidden {
|
||||
opacity: 0;
|
||||
max-height: 0;
|
||||
padding: 0 !important;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.image {
|
||||
height: 153px;
|
||||
}
|
||||
|
||||
.inner {
|
||||
flex: auto;
|
||||
padding-left: 20px;
|
||||
align-self: stretch;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.blog-item {
|
||||
display: flex;
|
||||
color: #3c4650;
|
||||
align-items: flex-start;
|
||||
transition: opacity 300ms;
|
||||
|
||||
&.-top {
|
||||
align-items: stretch;
|
||||
max-height: 387px;
|
||||
|
||||
.image {
|
||||
flex: none
|
||||
}
|
||||
}
|
||||
|
||||
.image {
|
||||
flex: 0 0 296px;
|
||||
}
|
||||
|
||||
.inner {
|
||||
position: relative;
|
||||
align-items: flex-start;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.datetime {
|
||||
font-size: 12px;
|
||||
color: #808a9d;
|
||||
transition: color 300ms;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.inner {
|
||||
.title {
|
||||
line-height: 40px;
|
||||
margin: 4px 0 13px;
|
||||
}
|
||||
.lead {
|
||||
font-size: 16px;
|
||||
line-height: 26px;
|
||||
margin-bottom: 29px;
|
||||
flex: initial;
|
||||
text-overflow: ellipsis;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
a.tag {
|
||||
border: 1px solid #a7b0bf;
|
||||
border-radius: 11px;
|
||||
color: #808a9d;
|
||||
font-size: 12px;
|
||||
padding: 0 6px;
|
||||
height: 18px;
|
||||
margin-right: 8px;
|
||||
margin-bottom: 8px;
|
||||
transition: ease-in-out .1s;
|
||||
&:hover {
|
||||
background-color: #3c4650;
|
||||
color: #FFF;
|
||||
border-color: #3c4650;
|
||||
transition: ease-in-out .1s;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
@import "fonts.scss";
|
||||
@import "style.scss";
|
||||
@import "blog.scss";
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,11 @@
|
|||
baseURL = 'https://noveria.org/'
|
||||
languageCode = 'en-gb'
|
||||
title = 'Noveria'
|
||||
summaryLength = 20
|
||||
|
||||
[permalinks]
|
||||
posts = "/blog/:year/:title/"
|
||||
tags = "/blog/:slug"
|
||||
|
||||
[privacy]
|
||||
[privacy.disqus]
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Wie Katzen die Weltherrschaft an sich reissen"
|
||||
date: 2024-06-21T00:58:28+02:00
|
||||
tags: ["Katzen", "Weltherrschaft"]
|
||||
image: https://i.pinimg.com/originals/98/76/4f/98764fcf2c6f29e1c83dcbbc8bf0b1ae.jpg
|
||||
---
|
||||
|
||||
Meine Katze mag mich nicht. Das habe ich heute erfahren.
|
||||
Der Kater rennt ständig vor mir weg. Die Katze kommt kuscheln.
|
||||
|
||||
Der Kater plant bestimmt die Weltherrschaft. Denn, wie schon bekannt, gehört den Katzen die Welt... Nur wissen wir es noch nicht.
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Wie Katzen die Weltherrschaft an sich reissen"
|
||||
date: 2024-06-21T00:58:28+02:00
|
||||
tags: ["Katzen", "Weltherrschaft"]
|
||||
image: https://i.pinimg.com/originals/98/76/4f/98764fcf2c6f29e1c83dcbbc8bf0b1ae.jpg
|
||||
---
|
||||
|
||||
Meine Katze mag mich nicht. Das habe ich heute erfahren.
|
||||
Der Kater rennt ständig vor mir weg. Die Katze kommt kuscheln.
|
||||
|
||||
Der Kater plant bestimmt die Weltherrschaft. Denn, wie schon bekannt, gehört den Katzen die Welt... Nur wissen wir es noch nicht.
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Wie Katzen die Weltherrschaft an sich reissen"
|
||||
date: 2024-06-20T20:58:28+02:00
|
||||
tags: ["Katzen", "Weltherrschaft"]
|
||||
image: https://i.pinimg.com/originals/98/76/4f/98764fcf2c6f29e1c83dcbbc8bf0b1ae.jpg
|
||||
---
|
||||
|
||||
Meine Katze mag mich nicht. Das habe ich heute erfahren.
|
||||
Der Kater rennt ständig vor mir weg. Die Katze kommt kuscheln.
|
||||
|
||||
Der Kater plant bestimmt die Weltherrschaft. Denn, wie schon bekannt, gehört den Katzen die Welt... Nur wissen wir es noch nicht.
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Wie Katzen die Weltherrschaft an sich reissen"
|
||||
date: 2024-06-19T20:58:28+02:00
|
||||
tags: ["Katzen", "Weltherrschaft"]
|
||||
image: https://i.pinimg.com/originals/98/76/4f/98764fcf2c6f29e1c83dcbbc8bf0b1ae.jpg
|
||||
---
|
||||
|
||||
Meine Katze mag mich nicht. Das habe ich heute erfahren.
|
||||
Der Kater rennt ständig vor mir weg. Die Katze kommt kuscheln.
|
||||
|
||||
Der Kater plant bestimmt die Weltherrschaft. Denn, wie schon bekannt, gehört den Katzen die Welt... Nur wissen wir es noch nicht.
|
7
content/posts/_index.md
Normal file
7
content/posts/_index.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Noveria Blog"
|
||||
date: 2024-05-26T06:05:24-04:00
|
||||
url: "/blog"
|
||||
---
|
||||
|
||||
# This is content/posts/_index.md
|
|
@ -6,6 +6,6 @@ services:
|
|||
volumes:
|
||||
- ./public:/usr/share/nginx/html:ro
|
||||
ports:
|
||||
- 8080:80
|
||||
- 1313:80
|
||||
environment:
|
||||
- NGINX_PORT=80
|
||||
|
|
|
@ -4,7 +4,10 @@
|
|||
<body>
|
||||
{{ partial "header" }}
|
||||
<main>
|
||||
<div id="banner"></div>
|
||||
{{- $result := or .Params.no_banner false -}}
|
||||
{{- if eq $result false -}}
|
||||
<div id="banner"></div>
|
||||
{{- end -}}
|
||||
<div class="flex justify-center w-full mt-5">
|
||||
<div class="prose w-3/6">
|
||||
{{ block "main" . }}{{ end }}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
|
@ -1,3 +1,3 @@
|
|||
{{ define "main" }}
|
||||
{{- define "main" -}}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
|
7
layouts/partials/content/aside-banner.html
Normal file
7
layouts/partials/content/aside-banner.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
<div class="rounded-2xl p-4 bg-zinc-100 mb-10">
|
||||
|
||||
<img class="aspect-video rounded" src="/images/email-3249062_1280_by-Muhammad-Ribkhan-Pixabay.jpg" alt="Banner Email Marketing">
|
||||
|
||||
<p class="text-right text-xs mt-2 leading-none text-zinc-500">Adversitiment</p>
|
||||
|
||||
</div>
|
17
layouts/partials/content/aside.html
Normal file
17
layouts/partials/content/aside.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<div class="lg:sticky lg:top-8">
|
||||
|
||||
{{- partial "content/aside-banner.html" -}}
|
||||
|
||||
<div class="space-y-6">
|
||||
|
||||
<h2 class="font-bold text-xl mb-8">Recent Post</h2>
|
||||
|
||||
{{ range where .Site.RegularPages "Type" "posts" | first 5}}
|
||||
|
||||
{{- partial "content/list-post.html" . -}}
|
||||
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
9
layouts/partials/content/breadcrumb.html
Normal file
9
layouts/partials/content/breadcrumb.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<div id="breadcrumb" class="max-w-7xl mx-auto py-8">
|
||||
<ul class="flex space-x-4 text-sm text-zinc-500">
|
||||
{{- range .Ancestors.Reverse }}
|
||||
<li class="after:content-['❯'] after:ml-4 after:opacity-30 last:after:content-none uppercase">
|
||||
<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
21
layouts/partials/content/card.html
Normal file
21
layouts/partials/content/card.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<article class="relative group rounded-3xl">
|
||||
<figure class="w-full aspect-video overflow-hidden rounded-3xl">
|
||||
{{- if .Params.image }}
|
||||
<a class="insert-link" href="{{ .RelPermalink }}">
|
||||
{{- if (strings.HasPrefix .Params.image "http") }}
|
||||
<img class="object-cover group-hover:scale-105 transition duration-500 cursor-pointer" src="{{ .Params.image }}" alt="{{ $.Name }}" style="width: 100%; height: 100%; object-fit: cover;">
|
||||
{{- else }}
|
||||
{{- with $imgcard := resources.Get .Params.image -}}
|
||||
{{- $imgcard := $imgcard.Process "resize 750x" -}}
|
||||
<img class="object-cover group-hover:scale-105 transition duration-500 cursor-pointer" src="{{ $imgcard.Permalink }}" alt="{{ $.Name }}" width="{{ $imgcard.Width }}" height="{{ $imgcard.Height }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</a>
|
||||
{{- end }}
|
||||
</figure>
|
||||
<div class="p-6">
|
||||
<small>{{ .Date | time.Format ":date_long" }}</small>
|
||||
<h3 class="my-4 text-2xl font-bold group-hover:underline">{{ .Title }}</h3>
|
||||
<p class="text-normal leading-normal text-zinc-500 line-clamp-2">{{ .Params.description }}</p>
|
||||
</div>
|
||||
</article>
|
26
layouts/partials/content/list-post.html
Normal file
26
layouts/partials/content/list-post.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<article class="relative group flex flex-row">
|
||||
<a class="insert-link" href="{{ .RelPermalink }}"></a>
|
||||
<figure class="basis-1/3 aspect-square overflow-hidden rounded-2xl bg-zinc-100">
|
||||
|
||||
{{- if .Params.image }}
|
||||
|
||||
{{- if (strings.HasPrefix .Params.image "http") }}
|
||||
|
||||
<img class="object-cover h-full w-full group-hover:scale-105 transition duration-500 cursor-pointer" src="{{ .Params.image }}" alt="{{ $.Name }}" style="width: 100%; height: 100%; object-fit: cover;" style="width: 100%; height: 100%; object-fit: cover;">
|
||||
|
||||
{{- else }}
|
||||
|
||||
{{- with $imglist := resources.Get .Params.image -}}
|
||||
{{- $imglist := $imglist.Crop "250x250 Center" -}}
|
||||
<img class="object-cover h-full w-full group-hover:scale-105 transition duration-500 cursor-pointer" src="{{ $imglist.Permalink }}" alt="{{ $.Name }}" width="{{ $imglist.Width }}" height="{{ $imglist.Height }}">
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
|
||||
</figure>
|
||||
<div class="basis-2/3 self-center ml-4">
|
||||
<h3 class="font-bold group-hover:underline decoration-auto">{{ .LinkTitle }}</h3>
|
||||
</div>
|
||||
</article>
|
28
layouts/partials/content/newsletter.html
Normal file
28
layouts/partials/content/newsletter.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
<div class="max-w-7xl mx-auto my-16 rounded-3xl bg-blue-500">
|
||||
|
||||
<div class="flex flex-wrap p-6 lg:p-10 space-y-6 lg:space-y-0">
|
||||
|
||||
<div class="w-full md:w-3/5 lg:pr-10 text-white">
|
||||
|
||||
<h3 class="text-2xl font-semibold mb-4">Stay In The Loop! Subscribe to Our Newsletter.</h3>
|
||||
|
||||
<p>Join our community of enthusiasts and stay informed. Just enter your email below, and we'll make sure you're always in the know!</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="self-center flex flex-col w-full md:w-2/5">
|
||||
|
||||
<form class="block lg:flex space-y-6 lg:space-y-0 lg:space-x-4">
|
||||
|
||||
<input class="w-full lg:w-3/5 px-6 py-2 rounded-full" type="text" placeholder="Email...">
|
||||
|
||||
<button class="w-full lg:w-2/5 px-6 py-2 rounded-full bg-white">Subscribe</button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
30
layouts/partials/content/social-media.html
Normal file
30
layouts/partials/content/social-media.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
<ul id="social-media" class="flex items-center space-x-4">
|
||||
<li>
|
||||
<a class="w-12 h-12 rounded-full bg-white hover:bg-zinc-200 flex items-center justify-center p-2" href="https://www.facebook.com/#" target="_blank" rel="noopener noreferrer">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="w-12 h-12 rounded-full bg-white hover:bg-zinc-200 flex items-center justify-center p-2" href="https://www.twitter.com/#" target="_blank" rel="noopener noreferrer">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865l8.875 11.633Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="w-12 h-12 rounded-full bg-white hover:bg-zinc-200 flex items-center justify-center p-2" href="https://www.github.com/#" target="_blank" rel="noopener noreferrer">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="w-12 h-12 rounded-full bg-white hover:bg-zinc-200 flex items-center justify-center p-2" href="https://www.instagram.com/#" target="_blank" rel="noopener noreferrer">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.917 3.917 0 0 0-1.417.923A3.927 3.927 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.916 3.916 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.926 3.926 0 0 0-.923-1.417A3.911 3.911 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0h.003zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599.28.28.453.546.598.92.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.47 2.47 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.478 2.478 0 0 1-.92-.598 2.48 2.48 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233 0-2.136.008-2.388.046-3.231.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92.28-.28.546-.453.92-.598.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045v.002zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92zm-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217zm0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
|
@ -1,4 +1,4 @@
|
|||
<footer class="bg-red-950">
|
||||
<footer class="bg-red-950 shrink-0">
|
||||
<div
|
||||
class="w-full mx-auto max-w-screen-xl p-4 md:flex md:items-center md:justify-between"
|
||||
>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Noveria - {{ .title | title }}</title>
|
||||
<!-- Stylesheets -->
|
||||
<!-- Tailwind CSS -->
|
||||
{{ $styles := resources.Get "scss/tailwind.css" }}
|
||||
{{- $styles := resources.Get "scss/tailwind.css" -}}
|
||||
<link rel="stylesheet" href="{{ $styles.RelPermalink }}">
|
||||
<!-- Parse SCSS to CSS -->
|
||||
{{ partial "libsass" "scss/default.scss" }}
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
<li>
|
||||
<a href="/jobs" class="block py-2 pr-4 pl-3 lg:text-primary-700 lg:p-0 text-white">Jobs</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/blog" class="block py-2 pr-4 pl-3 lg:text-primary-700 lg:p-0 text-white">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" class="block py-2 pr-4 pl-3 lg:text-primary-700 lg:p-0 text-white">Forum</a>
|
||||
</li>
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
{{ $opts := (dict "transpiler" "libsass" "outputStyle" "compressed" "includePaths" (slice "node_modules")) }}
|
||||
{{ if eq hugo.Environment "development" }}
|
||||
{{ $opts = (dict "transpiler" "libsass" "enableSourceMap" true "includePaths" (slice "node_modules")) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $css := resources.Get . }}
|
||||
{{ $css := $css | toCSS $opts }}
|
||||
|
||||
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
|
||||
{{- $opts := (dict "transpiler" "libsass" "outputStyle" "compressed" "includePaths" (slice "node_modules")) -}}
|
||||
{{- if eq hugo.Environment "development" -}}
|
||||
{{- $opts = (dict "transpiler" "libsass" "enableSourceMap" true "includePaths" (slice "node_modules")) -}}
|
||||
{{- end -}}
|
||||
{{- $css := resources.Get . -}}
|
||||
{{- $css := $css | toCSS $opts -}}
|
||||
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!-- Flowbite -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.6.5/flowbite.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/flowbite/2.3.0/flowbite.min.js"></script>
|
||||
<script src="//code.iconify.design/1/1.0.6/iconify.min.js"></script>
|
||||
|
||||
|
||||
|
|
50
layouts/posts/baseof.html
Normal file
50
layouts/posts/baseof.html
Normal file
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="overflow-x-hidden">
|
||||
{{ partial "head" (dict "title" .Title) }}
|
||||
<body id="blog" class="flex flex-col">
|
||||
{{ partial "header" }}
|
||||
<div id="submenu" class="flex bg-blue-100 h-14">
|
||||
<div class="flex flex-10 mx-auto relative lg:min-w-940 max-w-6xl">
|
||||
<ul class="list-none pt-4">
|
||||
<li class="inline mr-6">
|
||||
<a href="/blog/">Noveria Blog</a>
|
||||
</li>
|
||||
{{range $name, $taxonomy := .Site.Taxonomies.tags}}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
|
||||
<li class="inline mr-6">
|
||||
<a href="{{ .RelPermalink }}">{{$name | title}}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<main class="flex flex-10 flex-col py-0 mx-auto relative lg:min-w-940 max-w-6xl">
|
||||
{{ block "blog-main" . }}{{ end }}
|
||||
</main>
|
||||
{{ partial "footer" }}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
<!-- {{ define "main" }}
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-14">
|
||||
<section class="md:col-span-2">
|
||||
<h2 class="text-3xl font-bold mb-10">{{ .Title | humanize }}</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-y-10 gap-x-4">
|
||||
{{ range ( .Paginator 6 ).Pages }}
|
||||
{{- partial "content/card.html" . -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="flex items-center mt-10">
|
||||
{{- if .Paginator.HasPrev -}}
|
||||
<a class="border rounded-full px-6 py-2 hover:bg-zinc-200 mr-auto" href="{{ .Paginator.Prev.URL }}">← Previous</a>
|
||||
{{- end -}}
|
||||
{{- if .Paginator.HasNext -}}
|
||||
<a class="border rounded-full px-6 py-2 hover:bg-zinc-200" href="{{ .Paginator.Next.URL }}">Next →</a>
|
||||
{{- end -}}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
{{ end }} -->
|
89
layouts/posts/list.html
Normal file
89
layouts/posts/list.html
Normal file
|
@ -0,0 +1,89 @@
|
|||
{{ define "blog-main" }}
|
||||
<div class="blog-topitem pt-24 pb-20">
|
||||
{{- range first 1 .Pages -}}
|
||||
<div class="blog-item -top group cursor-pointer h-96">
|
||||
<figure class="image mt-1 w-full aspect-video overflow-hidden rounded-3xl">
|
||||
<a href="{{.RelPermalink}}">
|
||||
<img class="object-cover group-hover:scale-105 transition duration-500 w-full h-full" src="{{ .Params.Image }}" alt="{{ .Title }}">
|
||||
</a>
|
||||
</figure>
|
||||
<div class="inner pl-10 pt-1">
|
||||
<time class="datetime">{{ .Date | time.Format ":date_long" }}</time>
|
||||
<a href="{{.RelPermalink}}">
|
||||
<h2 class="title text-3xl font-bold group-hover:underline">{{ .Title }}</h2>
|
||||
<p class="lead">{{ .Summary }}</p>
|
||||
</a>
|
||||
<div class="flex flex-wrap content-start">
|
||||
{{ range $name := .Params.tags }}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
|
||||
<a class="tag" href="{{ .RelPermalink }}">{{ $name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{- end -}}
|
||||
</div>
|
||||
<div class="blog-section mt-5 mx-auto">
|
||||
<h2 class="title">Our latest posts</h2>
|
||||
<div class="blog-list -threecol">
|
||||
{{ range first 3 .Pages }}
|
||||
<div class="blog-item group cursor-pointer">
|
||||
<figure class="image mt-1 w-full aspect-video overflow-hidden rounded-3xl">
|
||||
<a href="{{.RelPermalink}}">
|
||||
<img class="object-cover group-hover:scale-105 transition duration-500 w-full h-full" src="{{ .Params.Image }}" alt="">
|
||||
</a>
|
||||
</figure>
|
||||
<div class="inner">
|
||||
<time class="datetime">{{ .Date | time.Format ":date_long" }}</time>
|
||||
<a href="{{.RelPermalink}}">
|
||||
<h2 class="title text-3xl font-bold group-hover:underline">{{ .Title }}</h2>
|
||||
</a>
|
||||
<div class="tag-list">
|
||||
{{ range $name := .Params.tags }}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
|
||||
<a class="tag" href="{{ .RelPermalink }}">{{ $name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ if gt .Pages 3 }}
|
||||
<div id="blog-all-posts" class="blog-section">
|
||||
<h2 class="title">All Posts</h2>
|
||||
<div class="blog-list -plain">
|
||||
{{ range after 3 .Pages }}
|
||||
<div class="blog-item group cursor-pointer">
|
||||
<figure class="image flex-none mt-1 w-full aspect-video overflow-hidden rounded-3xl">
|
||||
<a href="{{.RelPermalink}}">
|
||||
<img class="object-cover group-hover:scale-105 transition duration-500 w-full h-full" src="{{ .Params.Image }}" alt="{{ .Title }}">
|
||||
</a>
|
||||
</figure>
|
||||
<div class="inner">
|
||||
<time class="datetime">{{ .Date | time.Format ":date_long" }}</time>
|
||||
<a href="{{.RelPermalink}}">
|
||||
<h2 class="title text-3xl font-bold group-hover:underline">{{ .Title }}</h2>
|
||||
</a>
|
||||
<div class="tag-list">
|
||||
{{ range $name := .Params.tags }}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
|
||||
<a class="tag" href="{{ .RelPermalink }}">{{ $name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="mt-20 mb-64">
|
||||
<button type="button" class="text-white bg-blue-700 hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium rounded-full text-sm px-5 py-2.5 text-center me-2 mb-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
||||
Load more posts
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
7
layouts/posts/single.html
Normal file
7
layouts/posts/single.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{ define "blog-main" }}
|
||||
<div class="prose w-3/6 mt-5 mx-auto">
|
||||
<h1 id="{{ .Title }}">{{ .Title }}</h1>
|
||||
<img src="{{ .Params.image }}" alt="">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
{{ end }}
|
|
@ -1,6 +1,6 @@
|
|||
<!-- Get Data maybe from strapi -->
|
||||
<div class="flex flex-col">
|
||||
{{ range last 4 (site.GetPage "posts").Pages.ByDate }}
|
||||
{{ range first 4 (site.GetPage "posts").Pages }}
|
||||
<div class="flex-auto">
|
||||
<h3 class="mb-0">{{ .Title }}</h3>
|
||||
<small>{{ .Date | time.Format ":date_long" }}</small>
|
||||
|
|
7
layouts/taxonomy/tag.html
Normal file
7
layouts/taxonomy/tag.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
<ul>
|
||||
{{ range .Data.Pages }}
|
||||
<li>
|
||||
<a href="{{.RelPermalink}}">{{ .Title }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
|
@ -1,110 +0,0 @@
|
|||
backend:
|
||||
name: gitea
|
||||
repo: Noveria/noveria.org
|
||||
app_id: <fill-me-out>
|
||||
api_root: https://codeberg.org/api/v1
|
||||
base_url: https://codeberg.org
|
||||
auth_endpoint: https://codeberg.org/login/oauth/authorize
|
||||
branch: main
|
||||
|
||||
site_url: https://noveria.org
|
||||
|
||||
publish_mode: simple
|
||||
media_folder: static/blog/assets/uploads
|
||||
|
||||
collections: # A list of collections the CMS should be able to edit
|
||||
- name: 'posts' # Used in routes, ie.: /admin/collections/:slug/edit
|
||||
label: 'Posts' # Used in the UI
|
||||
label_singular: 'Post' # Used in the UI, ie: "New Post"
|
||||
description: >
|
||||
The description is a great place for tone setting, high level information, and editing
|
||||
guidelines that are specific to a collection.
|
||||
folder: 'static/blog/posts'
|
||||
slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
|
||||
summary: '{{title}} -- {{year}}/{{month}}/{{day}}'
|
||||
create: true # Allow users to create new documents in this collection
|
||||
view_filters:
|
||||
- label: Posts With Index
|
||||
field: title
|
||||
pattern: 'This is post #'
|
||||
- label: Posts Without Index
|
||||
field: title
|
||||
pattern: front matter post
|
||||
- label: Drafts
|
||||
field: draft
|
||||
pattern: true
|
||||
view_groups:
|
||||
- label: Year
|
||||
field: date
|
||||
pattern: \d{4}
|
||||
- label: Drafts
|
||||
field: draft
|
||||
fields: # The fields each document in this collection have
|
||||
- { label: 'Title', name: 'title', widget: 'string', tagname: 'h1' }
|
||||
- {
|
||||
label: 'Publish Date',
|
||||
name: 'date',
|
||||
widget: 'datetime',
|
||||
date_format: 'YYYY-MM-DD',
|
||||
time_format: 'HH:mm',
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
}
|
||||
- name: authors
|
||||
label: Authors
|
||||
label_singular: 'Author'
|
||||
widget: list
|
||||
fields:
|
||||
- { label: 'Name', name: 'name', widget: 'string', hint: 'First and Last' }
|
||||
- { label: 'Description', name: 'description', widget: 'markdown' }
|
||||
- label: 'Cover Image'
|
||||
name: 'image'
|
||||
widget: 'image'
|
||||
required: false
|
||||
tagname: ''
|
||||
|
||||
- { label: 'Body', name: 'body', widget: 'markdown', hint: 'Main content goes here.' }
|
||||
|
||||
- name: 'settings'
|
||||
label: 'Settings'
|
||||
delete: false # Prevent users from deleting documents in this collection
|
||||
editor:
|
||||
preview: false
|
||||
files:
|
||||
- name: 'general'
|
||||
label: 'Site Settings'
|
||||
file: 'static/blog/assets/data/settings.json'
|
||||
description: 'General Site Settings'
|
||||
fields:
|
||||
- { label: 'Global title', name: 'site_title', widget: 'string' }
|
||||
- label: 'Post Settings'
|
||||
name: posts
|
||||
widget: 'object'
|
||||
fields:
|
||||
- {
|
||||
label: 'Number of posts on frontpage',
|
||||
name: front_limit,
|
||||
widget: number,
|
||||
min: 1,
|
||||
max: 10,
|
||||
}
|
||||
- { label: 'Default Author', name: author, widget: string }
|
||||
- {
|
||||
label: 'Default Thumbnail',
|
||||
name: thumb,
|
||||
widget: image,
|
||||
class: 'thumb',
|
||||
required: false,
|
||||
}
|
||||
|
||||
- name: 'authors'
|
||||
label: 'Authors'
|
||||
file: 'static/blog/assets/data/authors.yml'
|
||||
description: 'Author descriptions'
|
||||
fields:
|
||||
- name: authors
|
||||
label: Authors
|
||||
label_singular: 'Author'
|
||||
widget: list
|
||||
fields:
|
||||
- { label: 'Name', name: 'name', widget: 'string', hint: 'First and Last' }
|
||||
- { label: 'Description', name: 'description', widget: 'markdown' }
|
|
@ -1,13 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="robots" content="noindex" />
|
||||
<title>Content Manager</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Include the script that builds the page and powers Decap CMS -->
|
||||
<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,3 +0,0 @@
|
|||
authors:
|
||||
- name: LinuxSquare
|
||||
description: Owner and Founder of Noveria
|
|
@ -23,11 +23,11 @@
|
|||
"sub": [
|
||||
{
|
||||
"source": "simpleicons",
|
||||
"icon": "instagram"
|
||||
"icon": "pixelfed"
|
||||
},
|
||||
{
|
||||
"source": "simpleicons",
|
||||
"icon": "threads"
|
||||
"icon": "mastodon"
|
||||
},
|
||||
{
|
||||
"source": "simpleicons",
|
||||
|
|
|
@ -14,6 +14,9 @@ module.exports = {
|
|||
'18': '4.50rem',
|
||||
'19': '4.75rem'
|
||||
},
|
||||
minWidth: {
|
||||
'940': '59rem'
|
||||
},
|
||||
colors: {
|
||||
'red': {
|
||||
950: '#520000'
|
||||
|
@ -21,8 +24,21 @@ module.exports = {
|
|||
},
|
||||
borderWidth: {
|
||||
'1': '1px'
|
||||
},
|
||||
}
|
||||
},
|
||||
flex: {
|
||||
'10': '1 0'
|
||||
},
|
||||
width: {
|
||||
'2/3': '66.6666667%'
|
||||
},
|
||||
maxWidth: {
|
||||
'6xl': '72rem'
|
||||
},
|
||||
margin: {
|
||||
'20': '5rem',
|
||||
'64': '16rem'
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
require('@tailwindcss/typography')
|
||||
|
|
Loading…
Reference in a new issue