@* File: `OmegaLeo.HelperLib.Web/Views/Home/Library.cshtml` *@ @using ColorCode.Styling @using OmegaLeo.HelperLib.Extensions @using Markdig @model OmegaLeo.HelperLib.Web.Models.LibraryDocumentationViewModel @{ ViewData["Title"] = Model.LibraryName; var groupedByNamespace = Model.Documentation.GroupBy(d => d.AssemblyName).OrderBy(g => g.Key); var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() .UseSyntaxHighlighting(StyleDictionary.DefaultDark) .Build(); }
@Model.LibraryName
Overview @foreach (var ns in groupedByNamespace) { @ns.Key } Changelog

@Model.LibraryName

@Model.Description


@foreach (var ns in groupedByNamespace) {

@ns.Key

@foreach (var classDoc in ns.OrderBy(d => d.ClassName)) {

@classDoc.ClassName

@classDoc.AssemblyName
@if (classDoc.Descriptions != null && classDoc.Descriptions.Any()) {
@foreach (var desc in classDoc.Descriptions) { var methodParameters = desc.MethodParameters ?? Array.Empty(); var attributeParameters = desc.Parameters ?? Array.Empty(); var methodParameterSet = new HashSet(methodParameters, StringComparer.OrdinalIgnoreCase); var filteredAttributeParameters = attributeParameters .Where(p => !methodParameterSet.Contains(p)) .Distinct(StringComparer.OrdinalIgnoreCase) .ToArray(); }
Member Documentation
@desc.Title @Html.Raw(Markdig.Markdown.ToHtml(desc.Description))
@if (desc.ReturnType.IsNotNullOrEmpty()) { Returns: @desc.ReturnType
} @if (methodParameters.Any()) { Parameters:
    @foreach (var methodParameter in methodParameters) {
  • @methodParameter
  • }
} @if (filteredAttributeParameters.Any()) { Attribute Args:
    @foreach (var attributeParameter in filteredAttributeParameters) {
  • @attributeParameter
  • }
} @if (desc.CodeExample.IsNotNullOrEmpty()) { Example:
@Html.Raw(Markdig.Markdown.ToHtml(desc.CodeExample, pipeline))
}
} else {

No documentation available.

}
}
} @if (!string.IsNullOrEmpty(Model.ChangelogMarkdown)) {

Changelog

@Html.Raw(Markdig.Markdown.ToHtml(Model.ChangelogMarkdown))
}