ChWebsiteApp/CHDataManagement/Generator/RequiredHeaders.swift
2024-12-15 21:20:12 +01:00

47 lines
1.2 KiB
Swift

enum HeaderFile: Int {
case codeHightlighting = 4
case modelViewer = 3
/// CSS File to style the audio player
case audioPlayerCss = 1
/// JavaScript file for the audio player
case audioPlayerJs = 2
func header(content: Content) -> HeaderElement? {
switch self {
case .codeHightlighting:
if let file = content.settings.pages.codeHighlightingJsFile {
return HeaderElement.js(file: file, defer: true)
}
case .modelViewer:
if let file = content.settings.pages.modelViewerJsFile {
return HeaderElement.jsModule(file)
}
case .audioPlayerCss:
if let file = content.settings.pages.audioPlayerCssFile {
return .css(file)
}
case .audioPlayerJs:
if let file = content.settings.pages.audioPlayerJsFile {
return .js(file: file, defer: true)
}
}
return nil
}
}
extension HeaderFile: Comparable {
static func < (lhs: HeaderFile, rhs: HeaderFile) -> Bool {
lhs.rawValue < rhs.rawValue
}
}
typealias RequiredHeaders = Set<HeaderFile>