Improve asset handling
This commit is contained in:
60
CHDataManagement/Generator/KnownHeaderElement.swift
Normal file
60
CHDataManagement/Generator/KnownHeaderElement.swift
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
enum KnownHeaderElement: 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: file, order: HeaderElement.audioPlayerCssOrder)
|
||||
}
|
||||
case .audioPlayerJs:
|
||||
if let file = content.settings.pages.audioPlayerJsFile {
|
||||
return .js(file: file, defer: true)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
extension KnownHeaderElement: Comparable {
|
||||
|
||||
static func < (lhs: KnownHeaderElement, rhs: KnownHeaderElement) -> Bool {
|
||||
lhs.rawValue < rhs.rawValue
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
extension KnownHeaderElement: CustomStringConvertible {
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
case .codeHightlighting:
|
||||
return "code-highlighting"
|
||||
case .modelViewer:
|
||||
return "model-viewer"
|
||||
case .audioPlayerCss:
|
||||
return "audio-player-css"
|
||||
case .audioPlayerJs:
|
||||
return "audio-player-js"
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user