Generate first feed pages, images

This commit is contained in:
Christoph Hagen
2024-12-04 08:10:45 +01:00
parent dc7b7a0e90
commit b3cc4a57db
25 changed files with 928 additions and 272 deletions

View File

@ -9,7 +9,9 @@ struct FileOnDisk {
let name: String
init(image: String, url: URL) {
self.type = .image
let ext = image.fileExtension!
let type = ImageType(fileExtension: ext)!
self.type = .image(type)
self.url = url
self.name = image
}

View File

@ -1,7 +1,8 @@
import Foundation
enum FileType {
case image
case image(ImageType)
case file
case video
case resource
@ -9,8 +10,16 @@ enum FileType {
init(fileExtension: String) {
switch fileExtension.lowercased() {
case "jpg", "jpeg", "png", "gif":
self = .image
case "jpg", "jpeg":
self = .image(.jpg)
case "png":
self = .image(.png)
case "avif":
self = .image(.avif)
case "webp":
self = .image(.webp)
case "gif":
self = .image(.gif)
case "html", "stl", "f3d", "step", "f3z", "zip", "json", "conf", "css", "js", "cpp", "cddx", "svg", "glb", "mp3", "pdf", "swift":
self = .file
case "mp4":
@ -22,4 +31,19 @@ enum FileType {
self = .resource
}
}
var fileExtension: String {
switch self {
case .image(let imageType): return imageType.fileExtension
default:
return "" // TODO: Fix
}
}
var isImage: Bool {
if case .image = self {
return true
}
return false
}
}