Browse Source

Add isIndex to NavigationNode

pull/21599/head
liangshiwei 2 years ago
parent
commit
340486f0a6
  1. 3
      modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs
  2. 16
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
  3. 1
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

3
modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/NavigationNode.cs

@ -15,6 +15,9 @@ namespace Volo.Docs.Documents
[JsonPropertyName("items")]
public List<NavigationNode> Items { get; set; }
[JsonPropertyName("isIndex")]
public bool IsIndex { get; set; }
public bool IsLeaf => !HasChildItems;

16
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -323,14 +323,14 @@
</span>
</li>
}
previousNode = indexDocument;
}
currentNode = currentNode?.Items?.FirstOrDefault(n => n.IsSelected(Model.DocumentNameWithExtension));
}
}
void PrintNode(NavigationNode node, string text = null)
{
var extension = System.IO.Path.GetExtension(node.Path);
@ -341,7 +341,7 @@
</a>
</li>
}
NavigationNode FindIndexNode(NavigationNode node)
{
var nextNode = node.Items?.FirstOrDefault(n => n.IsSelected(Model.DocumentNameWithExtension));
@ -349,15 +349,15 @@
{
nextNode = nextNode.Items.FirstOrDefault(n => n.IsSelected(Model.DocumentNameWithExtension));
}
if(nextNode == null)
{
return node.Items?.FirstOrDefault(n => n.Text == "Overview");
return node.Items?.FirstOrDefault(n => n.IsIndex);
}
var lastSlashIndex = nextNode.Path.LastIndexOf('/');
var path = lastSlashIndex < 0 ? nextNode.Path : nextNode.Path.Substring(0, lastSlashIndex);
return node.Items.FirstOrDefault(n => n.Path != null && (n.IsSelected(path + documentExtension) || n.IsSelected(path + "/index" + documentExtension))) ?? node.Items.FirstOrDefault(n => n.Text == "Overview");
return node.Items.FirstOrDefault(n => n.Path != null && (n.IsSelected(path + documentExtension) || n.IsSelected(path + "/index" + documentExtension))) ?? node.Items.FirstOrDefault(n => n.IsIndex);
}
}
</ol>

1
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -461,7 +461,6 @@ namespace Volo.Docs.Pages.Documents.Project
Version = Version
}
);
}
catch (DocumentNotFoundException) //TODO: What if called on a remote service which may return 404
{

Loading…
Cancel
Save