more blog stuff

This commit is contained in:
LinuxSquare 2025-02-27 20:37:24 +01:00
parent 5c24754ea2
commit 0ef577c20b
38 changed files with 527 additions and 150 deletions

138
assets/scss/blog.scss Normal file
View 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;
}
}
}
}

View file

@ -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

View file

@ -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]

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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
View file

@ -0,0 +1,7 @@
---
title: "Noveria Blog"
date: 2024-05-26T06:05:24-04:00
url: "/blog"
---
# This is content/posts/_index.md

View file

@ -6,6 +6,6 @@ services:
volumes:
- ./public:/usr/share/nginx/html:ro
ports:
- 8080:80
- 1313:80
environment:
- NGINX_PORT=80

View file

@ -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 }}

View file

@ -1,3 +0,0 @@
{{ define "main" }}
{{ .Content }}
{{ end }}

View file

@ -1,3 +1,3 @@
{{ define "main" }}
{{- define "main" -}}
{{ .Content }}
{{ end }}
{{- end -}}

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View file

@ -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"
>

View file

@ -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" }}

View file

@ -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>

View file

@ -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 }}">

View file

@ -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
View 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
View 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 }}

View 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 }}

View file

@ -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>

View file

@ -0,0 +1,7 @@
<ul>
{{ range .Data.Pages }}
<li>
<a href="{{.RelPermalink}}">{{ .Title }}</a>
</li>
{{ end }}
</ul>

View file

@ -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' }

View file

@ -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>

View file

@ -1,3 +0,0 @@
authors:
- name: LinuxSquare
description: Owner and Founder of Noveria

View file

@ -23,11 +23,11 @@
"sub": [
{
"source": "simpleicons",
"icon": "instagram"
"icon": "pixelfed"
},
{
"source": "simpleicons",
"icon": "threads"
"icon": "mastodon"
},
{
"source": "simpleicons",

View file

@ -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')