feat: images

This commit is contained in:
2026-02-23 09:50:42 +01:00
parent 3f321f0836
commit 6f98d730bb
21 changed files with 518 additions and 29 deletions
+13 -7
View File
@@ -13,6 +13,7 @@ import (
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/images"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/translate"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/filesystem"
"github.com/studio-b12/gowebdav"
)
@@ -34,25 +35,28 @@ func (s *Service) getPageHeaders(ctx context.Context, uid string) (page PageHead
lang := translate.Language(ctx)
var coverImage *gowebdav.File
var contentMD *gowebdav.File
var coverImage filesystem.FileInfo
var contentMD filesystem.FileInfo
for _, f := range info {
file := f.(gowebdav.File)
file, ok := f.(filesystem.FileInfo)
if !ok {
continue
}
if strings.HasPrefix(file.ContentType(), "image/") {
coverImage = &file
coverImage = file
}
parts := strings.Split(file.Name(), ".")
// fallback content
if contentMD == nil && len(parts) == 2 && parts[1] == "md" {
contentMD = &file
contentMD = file
}
// language content
if len(parts) == 3 && parts[1] == lang && parts[2] == "md" {
contentMD = &file
contentMD = file
}
}
@@ -71,7 +75,9 @@ func (s *Service) getPageHeaders(ctx context.Context, uid string) (page PageHead
page.UID = uid
page.Title = title[1]
page.CoverImageUID, err = images.UIDFromPath(coverImage.Path())
if coverImage != nil {
page.CoverImageUID, err = images.UIDFromPath(coverImage.Path())
}
return
}
+3 -3
View File
@@ -3,14 +3,14 @@ package page
import (
"log/slog"
"github.com/studio-b12/gowebdav"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/filesystem"
)
type Service struct {
fs *gowebdav.Client
fs filesystem.FS
}
func New(fs *gowebdav.Client) *Service {
func New(fs filesystem.FS) *Service {
info, err := fs.ReadDir("/")
if err != nil {
slog.Error("could not read dir", "err", err)