Skip to content

Commit 5eb2bd7

Browse files
committed
Fix testcase issue
Refactor link rendering to use overriding titles only when appropriate
1 parent 37fe8bc commit 5eb2bd7

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Sources/SwiftDocC/Model/Rendering/RenderContentCompiler.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,24 @@ struct RenderContentCompiler: MarkupVisitor {
169169
let plainTextLinkTitle = linkTitleInlineContent.plainText
170170
let overridingTitle = plainTextLinkTitle.isEmpty ? nil : plainTextLinkTitle
171171
let overridingTitleInlineContent = linkTitleInlineContent.isEmpty ? nil : linkTitleInlineContent
172+
173+
let useOverriding: Bool
174+
if link.isAutolink { // If the link is an auto link, we don't use overriding info
175+
useOverriding = false
176+
} else if let overridingTitle,
177+
overridingTitle.hasPrefix(DocumentationSchemeHandler.scheme + ":"),
178+
destination.hasPrefix(DocumentationSchemeHandler.fullScheme),
179+
destination.hasSuffix(overridingTitle.dropFirst((DocumentationSchemeHandler.scheme + ":").count)) { // If the link is a transformed doc link, we don't use overriding info
180+
useOverriding = false
181+
} else {
182+
useOverriding = true
183+
}
172184
return [
173185
RenderInlineContent.reference(
174186
identifier: .init(resolved.absoluteString),
175187
isActive: true,
176-
overridingTitle: link.isAutolink ? nil : overridingTitle,
177-
overridingTitleInlineContent: link.isAutolink ? nil : overridingTitleInlineContent
188+
overridingTitle: useOverriding ? overridingTitle : nil,
189+
overridingTitleInlineContent: useOverriding ? overridingTitleInlineContent : nil
178190
)
179191
]
180192
}

Sources/SwiftDocC/Semantics/MarkupReferenceResolver.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,8 @@ struct MarkupReferenceResolver: MarkupRewriter {
112112
guard let resolvedURL = resolve(reference: unresolved, range: link.range, severity: .warning) else {
113113
return link
114114
}
115-
let isAutolink = link.isAutolink // save the original isAutolink status
116115
var link = link
117116
link.destination = resolvedURL.absoluteString
118-
link.isAutolink = isAutolink // restore the original isAutolink status
119117
return link
120118
}
121119

0 commit comments

Comments
 (0)