Skip to content

Commit bb922b7

Browse files
committed
Only include RenderInlineContent.image if it resolves
Currently we resolve and diagnose image references but include the `RenderInlineContent.image` regardless. This cleans up that behavior to only include it in the case where the image resolves.
1 parent 2b466c9 commit bb922b7

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

Sources/SwiftDocC/Model/Rendering/RenderContentCompiler.swift

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ struct RenderContentCompiler: MarkupVisitor {
9090
altText: String?,
9191
caption: [RenderInlineContent]?
9292
) -> [RenderContent] {
93-
let imageIdentifier = resolveImage(source: source, altText: altText)
93+
guard let imageIdentifier = resolveImage(source: source, altText: altText) else {
94+
return []
95+
}
9496

9597
var metadata: RenderContentMetadata?
9698
if let caption = caption {
@@ -100,21 +102,23 @@ struct RenderContentCompiler: MarkupVisitor {
100102
return [RenderInlineContent.image(identifier: imageIdentifier, metadata: metadata)]
101103
}
102104

103-
mutating func resolveImage(source: String, altText: String? = nil) -> RenderReferenceIdentifier {
105+
mutating func resolveImage(source: String, altText: String? = nil) -> RenderReferenceIdentifier? {
104106
let unescapedSource = source.removingPercentEncoding ?? source
105107
let imageIdentifier: RenderReferenceIdentifier = .init(unescapedSource)
106-
if let resolvedImages = context.resolveAsset(
108+
guard let resolvedImages = context.resolveAsset(
107109
named: unescapedSource,
108110
in: identifier,
109111
withType: .image
110-
) {
111-
imageReferences[unescapedSource] = ImageReference(
112-
identifier: imageIdentifier,
113-
altText: altText,
114-
imageAsset: resolvedImages
115-
)
112+
) else {
113+
return nil
116114
}
117115

116+
imageReferences[unescapedSource] = ImageReference(
117+
identifier: imageIdentifier,
118+
altText: altText,
119+
imageAsset: resolvedImages
120+
)
121+
118122
return imageIdentifier
119123
}
120124

Tests/SwiftDocCTests/Model/SemaToRenderNodeTests.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2692,7 +2692,6 @@ Document
26922692
RenderBlockContent.heading(.init(level: 2, text: "Discussion", anchor: "discussion")),
26932693
.paragraph(.init(inlineContent: [
26942694
.text("Doc extension discussion. Missing: "),
2695-
.image(identifier: RenderReferenceIdentifier("my-inherited-image.png"), metadata: nil),
26962695
.text("."),
26972696
]))
26982697
])
@@ -2867,7 +2866,6 @@ Document
28672866
RenderBlockContent.heading(.init(level: 2, text: "Discussion", anchor: "discussion")),
28682867
.paragraph(.init(inlineContent: [
28692868
.text("Inherited discussion. Missing: "),
2870-
.image(identifier: RenderReferenceIdentifier("my-inherited-image.png"), metadata: nil),
28712869
.text("."),
28722870
])),
28732871
])

0 commit comments

Comments
 (0)