47 lines
1.2 KiB
Swift
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>
|