Skip to content

Commit fd0086f

Browse files
petrsvihlikclaude
andcommitted
Redesign site as a dev-tool / terminal aesthetic; remove Pagefind
Port the Claude Design "modern dev tool" mockup into the Statiq/Razor templates and asset pipeline. Shell & pages: - New _Layout shell: sticky topbar (nav, accent-color picker, dark/light toggle), animated ASCII background, JetBrains Mono, pre-paint theme script. - Homepage: $ whoami hero with pixel-resolving avatar canvas, articles as a compact commit-log listing, color-cycling separator. - Projects rendered as cards; single posts and pages restyled with prose/code styles in the new aesthetic. - Design CSS/JS shipped as static assets (bypassing Sass for color-mix/oklab). Features: - grep> filter searches the whole archive (title/category/date/description) via an embedded JSON index, not just the current page. - Live GitHub star counts fetched client-side for project tiles. - Custom image lightbox replacing medium-zoom (embedded images + image links). Other: - Remove Pagefind entirely (orphaned by the redesign): pipeline, CI steps, search partial, sidebar styles, and README/Node prerequisite. - Add Dependabot config (NuGet + GitHub Actions, weekly). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 1a6c8ef commit fd0086f

18 files changed

Lines changed: 1530 additions & 260 deletions

File tree

.github/dependabot.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
version: 2
2+
updates:
3+
# .NET NuGet dependencies (PetrSvihlik.Com.csproj)
4+
- package-ecosystem: "nuget"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
open-pull-requests-limit: 10
10+
labels:
11+
- "dependencies"
12+
- "nuget"
13+
commit-message:
14+
prefix: "build"
15+
include: "scope"
16+
groups:
17+
microsoft:
18+
patterns:
19+
- "Microsoft.*"
20+
- "System.*"
21+
statiq:
22+
patterns:
23+
- "Statiq.*"
24+
25+
# GitHub Actions used in workflows
26+
- package-ecosystem: "github-actions"
27+
directory: "/"
28+
schedule:
29+
interval: "weekly"
30+
day: "monday"
31+
open-pull-requests-limit: 10
32+
labels:
33+
- "dependencies"
34+
- "github-actions"
35+
commit-message:
36+
prefix: "ci"

.github/workflows/dotnet-core.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ jobs:
3737
env:
3838
LinkRoot: ${{ secrets.LINKROOT }} # Fix subfolder links https://statiq.dev/framework/configuration/settings
3939
Host: ${{ secrets.HOST }} # Make links absolute (for feeds, OG...)
40-
- name: Index with Pagefind
41-
run: npx pagefind --site output
4240
- name: "Artifact : site"
4341
uses: actions/upload-artifact@v7
4442
with:

.github/workflows/preview.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ jobs:
2323
run: dotnet build --configuration Release --no-restore
2424
- name: Generate site
2525
run: dotnet run --configuration Release
26-
- name: Index with Pagefind
27-
run: npx pagefind --site output
2826
- name: Install Surge
2927
run: npm install -g surge
3028
- name: Deploy to Surge

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,4 @@ gatsby-starter-lumen.iml
5151
# Claude Code
5252
.claude/worktrees/
5353
.claude/settings.local.json
54+
.claude/scheduled_tasks.lock

Models/ViewModels/HomeViewModel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ public class HomeViewModel : ViewModelBase
88

99
public PagedContent<Article> Articles { get; private set; }
1010

11+
/// <summary>
12+
/// Full, unpaginated article list — powers the homepage client-side
13+
/// filter so it can search the whole archive (not just the current
14+
/// page). Null on non-homepage views.
15+
/// </summary>
16+
public System.Collections.Generic.IReadOnlyList<Article> AllArticles { get; set; }
17+
1118
public SidebarViewModel Sidebar { get; private set; }
1219

1320
public ITitleProvider TitleProvider { get; }

Pipelines/HomePipeline.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,20 @@ public HomePipeline()
3131
.Select(x => x.Get<SiteMetadata>("SiteMetadata")).FirstOrDefault();
3232
var homepage = context.Outputs.FromPipeline(nameof(HomepagePipeline))
3333
.Select(x => x.Get<Homepage>("Homepage")).FirstOrDefault();
34+
35+
// full archive (newest-first) so the homepage filter
36+
// can search every post, not just the current page
37+
var allArticles = context.Outputs.FromPipeline(nameof(PostsPipeline))
38+
.Select(d => d.Get<Article>("ArticleModel"))
39+
.Where(a => a != null)
40+
.OrderByDescending(a => a.PublishDate)
41+
.ToList();
42+
3443
return new HomeViewModel(paged,
35-
new SidebarViewModel(homepage, metadata, true, "/"));
44+
new SidebarViewModel(homepage, metadata, true, "/"))
45+
{
46+
AllArticles = allArticles
47+
};
3648
}))
3749
);
3850

Pipelines/PagefindPipeline.cs

Lines changed: 0 additions & 75 deletions
This file was deleted.

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ Source code for [petrsvihlik.com](https://petrsvihlik.com) — a static site bui
77
## Prerequisites
88

99
- [.NET 10 SDK](https://dotnet.microsoft.com/download)
10-
- [Node.js](https://nodejs.org/) (for Pagefind search indexing)
1110

1211
## Running locally
1312

@@ -22,8 +21,6 @@ Opens at `http://localhost:5080`. The site rebuilds automatically on file change
2221
dotnet run
2322
```
2423

25-
> Note: Pagefind search index is built as part of the normal build but not during `preview`. Search won't work locally unless you run `npx pagefind --site output` manually after a full build.
26-
2724
## Adding content
2825

2926
### New blog post

input/Shared/Sidebar/_Search.cshtml

Lines changed: 0 additions & 3 deletions
This file was deleted.

input/Shared/Sidebar/_Sidebar.cshtml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<div class="sidebar__inner">
66
@await Html.PartialAsync("Shared/Sidebar/_Author", Model)
77
@await Html.PartialAsync("Shared/Sidebar/_Menu", Model.Homepage.NavigationPages, new ViewDataDictionary(ViewData) { { nameof(Model.ActiveMenuItem), Model.ActiveMenuItem } })
8-
@await Html.PartialAsync("Shared/Sidebar/_Search")
98
@await Html.PartialAsync("Shared/Sidebar/_Contacts", Model.Contacts)
109
@if (!string.IsNullOrEmpty(Model.Metadata.Copyright))
1110
{

0 commit comments

Comments
 (0)