Skip to content

Commit 33d65a5

Browse files
committed
stage
1 parent 18eea7a commit 33d65a5

14 files changed

+353
-244
lines changed

src/Elastic.Documentation.Navigation/Assembler/AssembledNavigation.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -177,18 +177,18 @@ public SiteNavigation(SiteNavigationFile siteNavigationFile,
177177
context.EmitError(context.ConfigurationPath, $"Could not find navigation node for identifier: {tocRef.Source} (from source: {tocRef.Source})");
178178
return null;
179179
}
180-
if (node is not INavigationPathPrefixProvider prefixProvider)
180+
if (node is not INavigationHomeAccessor homeAccessor)
181181
{
182-
context.EmitError(context.ConfigurationPath, $"Navigation contains an node navigation that does not implement: {nameof(IPathPrefixProvider)} (from source: {tocRef.Source})");
182+
context.EmitError(context.ConfigurationPath, $"Navigation contains an node navigation that does not implement: {nameof(INavigationHomeAccessor)} (from source: {tocRef.Source})");
183183
return null;
184184
}
185185

186186
_ = UnseenNodes.Remove(tocRef.Source);
187187
// Set the navigation index
188188
node.NavigationIndex = index;
189-
prefixProvider.PathPrefixProvider = new PathPrefixProvider(pathPrefix);
189+
homeAccessor.HomeProvider = new NavigationHomeProvider(pathPrefix, root ?? homeAccessor.HomeProvider.NavigationRoot);
190190

191-
var wrapped = new SiteTableOfContentsNavigation<IDocumentationFile>(node, prefixProvider.PathPrefixProvider, parent, root);
191+
var wrapped = new SiteTableOfContentsNavigation<IDocumentationFile>(node, homeAccessor.HomeProvider, parent, root);
192192
parent = wrapped;
193193
root ??= wrapped.NavigationRoot;
194194

@@ -236,10 +236,10 @@ public SiteNavigation(SiteNavigationFile siteNavigationFile,
236236
[DebuggerDisplay("{Url}")]
237237
public sealed class SiteTableOfContentsNavigation<TModel>(
238238
INodeNavigationItem<TModel, INavigationItem> wrappedNode,
239-
IPathPrefixProvider pathPrefixProvider,
239+
INavigationHomeProvider homeProvider,
240240
INodeNavigationItem<INavigationModel, INavigationItem> parent,
241241
IRootNavigationItem<INavigationModel, INavigationItem>? root
242-
) : INodeNavigationItem<TModel, INavigationItem>, INavigationPathPrefixProvider
242+
) : INodeNavigationItem<TModel, INavigationItem>, INavigationHomeAccessor
243243
where TModel : IDocumentationFile
244244
{
245245
// For site navigation TOC references, the path_prefix IS the URL
@@ -248,7 +248,7 @@ public string Url
248248
{
249249
get
250250
{
251-
var url = PathPrefixProvider.PathPrefix.TrimEnd('/');
251+
var url = HomeProvider.PathPrefix.TrimEnd('/');
252252
return string.IsNullOrEmpty(url) ? "/" : url;
253253
}
254254
}
@@ -282,6 +282,6 @@ public int NavigationIndex
282282
public IReadOnlyCollection<INavigationItem> NavigationItems { get; set; } = [];
283283

284284
/// <inheritdoc />
285-
public IPathPrefixProvider PathPrefixProvider { get; set; } = pathPrefixProvider;
285+
public INavigationHomeProvider HomeProvider { get; set; } = homeProvider;
286286
}
287287

src/Elastic.Documentation.Navigation/Isolated/CrossLinkNavigationLeaf.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ public class CrossLinkNavigationLeaf(
1414
string url,
1515
bool hidden,
1616
INodeNavigationItem<INavigationModel, INavigationItem>? parent,
17-
IRootNavigationItem<INavigationModel, INavigationItem> navigationRoot
18-
) : ILeafNavigationItem<CrossLinkModel>
17+
INavigationHomeProvider homeProvider
18+
)
19+
: ILeafNavigationItem<CrossLinkModel>
1920
{
21+
private readonly INavigationHomeProvider _homeProvider = homeProvider;
22+
2023
/// <inheritdoc />
2124
public CrossLinkModel Model { get; init; } = model;
2225

@@ -27,7 +30,7 @@ IRootNavigationItem<INavigationModel, INavigationItem> navigationRoot
2730
public bool Hidden { get; init; } = hidden;
2831

2932
/// <inheritdoc />
30-
public IRootNavigationItem<INavigationModel, INavigationItem> NavigationRoot { get; init; } = navigationRoot;
33+
public IRootNavigationItem<INavigationModel, INavigationItem> NavigationRoot => _homeProvider.NavigationRoot;
3134

3235
/// <inheritdoc />
3336
public INodeNavigationItem<INavigationModel, INavigationItem>? Parent { get; set; } = parent;

0 commit comments

Comments
 (0)