Skip to content

Commit 5e18d71

Browse files
authored
Allow for both <scheme>:/<path> and <scheme://<path> style cross-link lookups (#504)
1 parent dd154c7 commit 5e18d71

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

src/Elastic.Markdown/CrossLinks/CrossLinkResolver.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public static bool TryResolve(Action<string> errorEmitter, HashSet<string> decla
108108
return false;
109109
}
110110

111-
var lookupPath = crossLinkUri.AbsolutePath.TrimStart('/');
111+
var lookupPath = (crossLinkUri.Host + '/' + crossLinkUri.AbsolutePath.TrimStart('/')).Trim('/');
112112
var path = ToTargetUrlPath(lookupPath);
113113
if (!string.IsNullOrEmpty(crossLinkUri.Fragment))
114114
path += crossLinkUri.Fragment;
@@ -121,7 +121,7 @@ public static bool TryResolve(Action<string> errorEmitter, HashSet<string> decla
121121
private static bool TryFullyValidate(Action<string> errorEmitter, LinkReference linkReference, Uri crossLinkUri, [NotNullWhen(true)] out Uri? resolvedUri)
122122
{
123123
resolvedUri = null;
124-
var lookupPath = crossLinkUri.AbsolutePath.TrimStart('/');
124+
var lookupPath = (crossLinkUri.Host + '/' + crossLinkUri.AbsolutePath.TrimStart('/')).Trim('/');
125125
if (string.IsNullOrEmpty(lookupPath) && crossLinkUri.Host.EndsWith(".md"))
126126
lookupPath = crossLinkUri.Host;
127127

tests/authoring/Inline/CrossLinks.fs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,47 @@ type ``link to repository that does not resolve yet`` () =
100100

101101
[<Fact>]
102102
let ``has no warning`` () = markdown |> hasNoWarnings
103+
104+
type ``Using double forward slashes`` () =
105+
106+
static let markdown = Setup.Markdown """
107+
[APM Server binary](docs-content://solutions/observability/apps/apm-server-binary.md#apm-deb)
108+
"""
109+
110+
[<Fact>]
111+
let ``validate HTML`` () =
112+
markdown |> convertsToHtml """
113+
<p><a
114+
href="https://docs-v3-preview.elastic.dev/elastic/docs-content/tree/main/solutions/observability/apps/apm-server-binary#apm-deb">
115+
APM Server binary
116+
</a>
117+
</p>
118+
"""
119+
120+
[<Fact>]
121+
let ``has no errors`` () = markdown |> hasNoErrors
122+
123+
[<Fact>]
124+
let ``has no warning`` () = markdown |> hasNoWarnings
125+
126+
type ``link to repository that does not resolve yet using double slashes`` () =
127+
128+
static let markdown = Setup.Markdown """
129+
[Elasticsearch Documentation](elasticsearch://index.md)
130+
"""
131+
132+
[<Fact>]
133+
let ``validate HTML`` () =
134+
markdown |> convertsToHtml """
135+
<p><a
136+
href="https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/">
137+
Elasticsearch Documentation
138+
</a>
139+
</p>
140+
"""
141+
142+
[<Fact>]
143+
let ``has no errors`` () = markdown |> hasNoErrors
144+
145+
[<Fact>]
146+
let ``has no warning`` () = markdown |> hasNoWarnings

0 commit comments

Comments
 (0)