diff --git a/CHDataManagement/Generator/ImageSet.swift b/CHDataManagement/Generator/ImageSet.swift
index 7d59567..e635f85 100644
--- a/CHDataManagement/Generator/ImageSet.swift
+++ b/CHDataManagement/Generator/ImageSet.swift
@@ -52,10 +52,13 @@ struct ImageSet: HtmlProducer {
let prefix1x = "/\(image.outputImageFolder)/\(maxWidth)x\(maxHeight)"
let prefix2x = "/\(image.outputImageFolder)/\(maxWidth*2)x\(maxHeight*2)"
+ let imageSize = (image.getImageDimensions()?.scaledToFit(in: .init(width: maxWidth, height: maxHeight)))
+ .map { " width='\(Int($0.width))' height='\(Int($0.height))'" }
+
result += ""
result += ""
result += ""
- result += "
"
+ result += "
"
result += ""
}
}
diff --git a/CHDataManagement/Main/MainView.swift b/CHDataManagement/Main/MainView.swift
index 085d700..e1684c7 100644
--- a/CHDataManagement/Main/MainView.swift
+++ b/CHDataManagement/Main/MainView.swift
@@ -21,7 +21,6 @@ import SFSafeSymbols
- Graphs, Map, GPX for hikes
**Generation**
- - ImageSet: Specify image aspect ratio (width, height) to prevent page jumps
- Consistency: Check output folder for unused files
- Empty properties: Show warnings for empty link previews, etc.
diff --git a/CHDataManagement/Model/FileResource.swift b/CHDataManagement/Model/FileResource.swift
index 0abfa8c..d656888 100644
--- a/CHDataManagement/Model/FileResource.swift
+++ b/CHDataManagement/Model/FileResource.swift
@@ -152,11 +152,22 @@ final class FileResource: Item, LocalizedItem {
}
func determineImageDimensions() {
- let size = getImageDimensions()
+ let size = getCurrentImageDimensions()
self.update(imageDimensions: size)
}
- private func getImageDimensions() -> CGSize? {
+ func getImageDimensions() -> CGSize? {
+ if let imageDimensions {
+ return imageDimensions
+ }
+ guard let size = getCurrentImageDimensions() else {
+ return nil
+ }
+ self.update(imageDimensions: size)
+ return size
+ }
+
+ private func getCurrentImageDimensions() -> CGSize? {
guard type.isImage else {
return nil
}
diff --git a/CHDataManagement/Page Elements/ContentElements/Images/ImageGallery.swift b/CHDataManagement/Page Elements/ContentElements/Images/ImageGallery.swift
index 1fa9e0b..2129cc5 100644
--- a/CHDataManagement/Page Elements/ContentElements/Images/ImageGallery.swift
+++ b/CHDataManagement/Page Elements/ContentElements/Images/ImageGallery.swift
@@ -31,7 +31,8 @@ struct ImageGallery: HtmlProducer {
let needsPagination = images.count > 1
for image in images {
- result += "
"
+ let sizeText = image.image.getImageDimensions().map { " style='aspect-ratio: \(Int($0.width)) / \(Int($0.height))'"}
+ result += "
"
result += image.content
if needsPagination {
result += "
"
@@ -57,6 +58,9 @@ struct ImageGallery: HtmlProducer {
return """
var swiper_\(id) = new Swiper("#\(id)", {
loop: true,
+ lazy: {
+ loadPrevNext: false,
+ },
slidesPerView: 1,
spaceBetween: 30,
centeredSlides: true,