Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions archetypes/blog.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ draft: true
# author: "(author name)"
# image: "name"
# cover: "cover.png" # Default


# guest_author:
# name: (author name) # This is the name used at the bottom of the blog post, author field is still required
# title: "(Chess extraordinaire)"
# image_url: "(URL to image)"
# url: "(URL when name is clicked on)"
# socials:
# github: "(github username)"
# website: "(url to website)"
# twitter: "https://twitter.com/(handle here)"
# discord: "(url to discord)"
---

(This page is not yet written)
Expand Down
8 changes: 8 additions & 0 deletions content/blog/2025/EngineBattle/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
---
guest_author:
name: lepned
title: "EngineBattle Developer"
image_url: "https://avatars.githubusercontent.com/u/1504584?v=4"
url: "https://github.com/lepned"
socials:
github: "lepned"
website: "https://github.com/lepned/EngineBattle"
author: lepned
published: "2025-07-22"
title: 'EngineBattle: A Comprehensive Streaming, Testing and Analysis Tool for Lc0
Expand Down
10 changes: 9 additions & 1 deletion content/blog/2025/Leela_odds_tournament/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
---
author: GM Larry "Hissha" Kaufman
author: Hissha
published: "2025-12-07"
title: 'Leela Odds Tournament in Jerusalem'
guest_author:
name: GM Larry "Hissha" Kaufman
title: "American Chess Grand Master"
image_url: "https://images.chesscomfiles.com/uploads/v1/user/8883540.f9bceb19.160x160o.a156447c9ff7.jpeg"
# url: "https://github.com/N/A"
# socials:
# github: "N/A"
# website: "N/A"
---

Is a rook advantage enough for a master to beat a superhuman AI in classical chess? For decades, the answer was an obvious "yes." However, a recent event in Jerusalem suggests the answer is no longer guaranteed.
Expand Down
24 changes: 24 additions & 0 deletions layouts/_partials/socials.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{{ with .socials }}
<div class="author-socials">
{{ with .github }}
<a href="https://github.com/{{ . }}" target="_blank" rel="noopener" class="social-link" aria-label="GitHub">
<i class="qlementine-icons--github-fill-24"></i>
</a>
{{ end }}
{{ with .twitter }}
<a href="https://twitter.com/{{ . }}" target="_blank" rel="noopener" class="social-link" aria-label="Twitter">
<i class="qlementine-icons--x-24"></i>
</a>
{{ end }}
{{ with .discord }}
<a href="{{ . }}" target="_blank" rel="noopener" class="social-link" aria-label="Discord">
<i class="qlementine-icons--discord-fill-24"></i>
</a>
{{ end }}
{{ with .website }}
<a href="{{ . }}" target="_blank" rel="noopener" class="social-link" aria-label="Website">
<i class="lucide--link-2"></i>
</a>
{{ end }}
</div>
{{ end }}
59 changes: 48 additions & 11 deletions layouts/blog/page.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
<div class="main-container">
<div class="content-container">

<div class="blog-date">{{ .PublishDate.Format "2006-01-02" }}</div>
<h1 class="blog-title">{{ .Title }}</h1>
<div class="blog-meta">
{{ if .PublishDate }}
<time class="author-date" datetime="{{ .PublishDate.Format "2006-01-02" }}">{{ .PublishDate.Format "January 2, 2006" }}</time>
{{ end }}
</div>

{{if .Draft}}
<div class="banner">
Expand All @@ -15,22 +19,55 @@ <h1 class="blog-title">{{ .Title }}</h1>

{{ .Content }}

{{ if .Params.author }}
<div class="last-updated">
Posted by: {{ .Params.author }}
</div>
{{ if .Params.guest_author }}
{{ $authorData := .Params.guest_author }}
{{ with $authorData }}
<div class="author-box">
{{ with .image_url }}
<img src="{{ . }}" alt="Photo of {{ $authorData.name }}" class="author-avatar">
{{ end }}
<div class="author-info">
{{ with .url }}
<a href="{{ . }}" target="_blank" rel="noopener" class="author-name">{{ $authorData.name }}</a>
{{ else }}
<span class="author-name">{{ $authorData.name }}</span>
{{ end }}
{{ with .title }}
<div class="author-title">{{ . }}</div>
{{ end }}
{{ partial "socials.html" . }}
</div>
</div>
{{ end }}
{{ else if .Params.author }}
<div class="last-updated">
Posted by: {{ .Params.author }}
</div>
{{ end }}

<div class="bottom-nav">
{{ with .NextInSection }}
<a class="next" href="{{.Permalink}}">
<i class="material-symbols--arrow-left-alt"></i>
<div class="nav-link-text">
<span class="nav-link-label">Next</span>
<span class="nav-link-title">{{.Title}}</span>
</div>
</a>
{{ else }}
<span></span>
{{ end }}
{{ with .PrevInSection }}
<a class="previous" href="{{.Permalink}}">
◃◃◃ {{.Title}}</a>
{{ end }}
{{ with .NextInSection }}
<a class="next" href="{{.Permalink}}">{{.Title}} ▹▹▹</a>
<div class="nav-link-text">
<span class="nav-link-label">Previous</span>
<span class="nav-link-title">{{.Title}}</span>
</div>
<i class="material-symbols--arrow-right-alt"></i>
</a>
{{ else }}
<span></span>
{{ end }}
</div>

</div>
</div>
{{ end }}
30 changes: 21 additions & 9 deletions layouts/blog/section.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,40 @@ <h1 class="title">{{ .Title }}</h1>
{{if default true .Params.show_contents}}
{{ $paginator := .Paginate .Pages }}
{{ range $paginator.Pages }}
<div class="blog-summary">
<div class="blog-summary-title">
<a href="{{ .Permalink }}">
<span class="blog-summary-date">{{ .PublishDate.Format "2006-01-02" }}</span>{{ .Title }}
</a>
<div class="blog-summary">
<div class="blog-summary-header">
{{ if .PublishDate }}
<time class="blog-summary-date" datetime="{{ .PublishDate.Format "2006-01-02" }}">{{ .PublishDate.Format "2006-01-02" }}</time>
{{ end }}
<h2 class="blog-summary-title">
<a href="{{ .Permalink }}">{{ .Title }}</a>
</h2>
</div>

{{/* Fetch and display the author name */}}
{{ with .Params.author }}
{{ $authorKey := . }}
{{ $authorData := index site.Data.authors $authorKey }}
{{ $authorName := $authorData.name | default $authorKey }}
<div class="blog-summary-meta">
By {{ $authorName }}
</div>
{{ end }}

{{ if .Params.image }}
<img alt="{{ .Title }}" src="{{ .Params.image }}" />
{{ end}}
<p>{{ .Summary }}</p>
<p class="blog-summary-content">{{ .Summary }}</p>
</div>
{{ end }}

<!-- Pagination navigation -->
{{ if gt $paginator.TotalPages 1 }}
<nav class="pagination">
<a {{ if $paginator.HasPrev }}href="{{ $paginator.Prev.URL }}" class="pagination-prev" {{ else }}class="pagination-prev pagination-disabled"{{ end }}>← Previous</a>

<span class="pagination-current">Page {{ $paginator.PageNumber }} of {{ $paginator.TotalPages }}</span>

<a {{ if $paginator.HasNext }}href="{{ $paginator.Next.URL }}" class="pagination-next" {{ else }}class="pagination-next pagination-disabled"{{ end }}>Next →</a>
</nav>
</nav>
{{ end }}
{{ end }}
{{ end }}
182 changes: 182 additions & 0 deletions themes/leela/assets/css/blog.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
.blog-summary {
margin-top: 3rem; /* Creates vertical space between posts */
padding-bottom: 2rem;
border-bottom: 1px solid var(--color-border-primary);
}

.blog-summary:last-of-type {
border-bottom: none;
padding-bottom: 0;
}

.blog-summary-header {
display: flex;
align-items: center;
gap: 1rem;
}

.blog-summary-date {
flex-shrink: 0; /* Prevents the date from shrinking */
background-color: var(--color-bg-secondary);
color: var(--color-text-tertiary);
font-size: 0.875rem;
padding: 0.3rem 0.6rem;
border-radius: 5px;
white-space: nowrap;
}

.blog-summary-title {
margin: 0;
font-size: var(--font-size-h4);
font-weight: 600;
}

.blog-summary-meta {
margin-top: 0.5rem;
font-style: italic;
}

.blog-meta {
margin-top: -1.5rem;
}

.blog-summary-content {
margin-top: 0.75rem;
}

.author-box {
display: flex;
align-items: center;
gap: 1rem;
padding: 0.875rem 1.25rem;
margin-block: 2rem 2.5rem;
background-color: var(--color-bg-secondary);
border-left: 4px solid var(--color-accent);
border-radius: 8px;
box-shadow: 0 4px 12px -4px var(--shadow-color);
}

.author-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
object-fit: cover;
flex-shrink: 0;
}

.author-info {
flex-grow: 1;
}

.author-name {
font-size: 1.125rem;
font-weight: 600;
color: var(--color-text-primary);
}

.author-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 0.125rem;
}

.author-title {
font-size: 0.9rem;
color: var(--color-text-secondary);
font-style: italic;
}

.author-date {
font-size: 0.9rem;
color: var(--color-text-secondary);
}

.meta-separator {
color: var(--color-text-secondary);
}

/* --- Fallback Styling --- */
.author-default .author-info {
display: flex;
align-items: center;
gap: 0.5rem;
}

.author-default .author-name,
.author-default .author-date,
.author-default .meta-separator {
font-size: 1rem;
font-style: italic;
color: var(--color-text-tertiary);
}

.author-default .author-name {
font-weight: 400;
}
.author-socials {
display: flex;
align-items: center;
gap: 0.75rem;
margin-top: 0.5rem;
}

.social-link {
color: var(--color-text-tertiary);
transition: color 0.2s ease-in-out;
}

.social-link:hover {
color: var(--color-text-primary);
}

.bottom-nav {
display: flex;
justify-content: space-between;
align-items: stretch; /* To make links have same height */
margin-top: 3rem;
margin-bottom: 1rem;
gap: 1rem;
width: 100%;
}

.bottom-nav a {
display: flex;
align-items: center;
gap: 1rem;
padding: 0.5rem;
border: 1px solid var(--color-border-primary);
border-radius: 8px;
text-decoration: none;
color: var(--color-text-secondary);
transition: all 0.2s ease-in-out;
flex-basis: 50%; /* Each link takes up to 50% of the width */
}

.bottom-nav .previous {
justify-content: flex-end;
text-align: right;
}

.nav-link-text {
display: flex;
flex-direction: column;
}

.nav-link-label {
font-size: 0.875rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
}

.nav-link-title {
font-size: 1rem;
font-weight: 500;
}

.bottom-nav a i {
font-size: 1.5rem;
flex-shrink: 0;
}
Loading