Add screen slider component

This commit is contained in:
Christoph Hagen
2025-02-20 23:44:12 +01:00
parent a8bc7298ff
commit d4c0da0a32
6 changed files with 328 additions and 10 deletions

View File

@ -1,19 +1,25 @@
enum KnownHeaderElement: Int {
enum KnownHeaderElement {
case codeHightlighting = 4
case codeHightlighting
case modelViewer = 3
case modelViewer
/// CSS File to style the audio player
case audioPlayerCss = 1
case audioPlayerCss
/// JavaScript file for the audio player
case audioPlayerJs = 2
case audioPlayerJs
case imageCompareJs = 5
case imageCompareJs
case imageCompareCss = 6
case imageCompareCss
case swiperCss
case swiperJs
case style(String)
func header(content: Content) -> HeaderElement? {
switch self {
@ -41,15 +47,32 @@ enum KnownHeaderElement: Int {
if let file = content.settings.pages.imageCompareCssFile {
return .css(file: file, order: HeaderElement.imageCompareCssOrder)
}
case .swiperCss:
if let swiperCss = content.settings.posts.swiperCssFile {
return .css(file: swiperCss, order: HeaderElement.swiperCssFileOrder)
}
case .swiperJs:
if let swiperJs = content.settings.posts.swiperJsFile {
return .js(file: swiperJs, defer: true)
}
case .style(let code):
return .style(code)
}
return nil
}
}
extension KnownHeaderElement: Comparable {
extension KnownHeaderElement: Equatable {
static func < (lhs: KnownHeaderElement, rhs: KnownHeaderElement) -> Bool {
lhs.rawValue < rhs.rawValue
static func == (lhs: KnownHeaderElement, rhs: KnownHeaderElement) -> Bool {
lhs.description == rhs.description
}
}
extension KnownHeaderElement: Hashable {
func hash(into hasher: inout Hasher) {
hasher.combine(description)
}
}
@ -69,6 +92,12 @@ extension KnownHeaderElement: CustomStringConvertible {
return "image-compare-js"
case .imageCompareCss:
return "image-compare-css"
case .swiperCss:
return "swiper-css"
case .swiperJs:
return "swiper-js"
case .style(let style):
return "style: " + style
}
}
}