diff --git a/src/EAVFW.Extensions.Docs.Generator/ReadMeDocumentationGenerator.cs b/src/EAVFW.Extensions.Docs.Generator/ReadMeDocumentationGenerator.cs index bae36e2..7f55d74 100644 --- a/src/EAVFW.Extensions.Docs.Generator/ReadMeDocumentationGenerator.cs +++ b/src/EAVFW.Extensions.Docs.Generator/ReadMeDocumentationGenerator.cs @@ -102,13 +102,13 @@ public async Task Write(FileInfo outputLocation, string component) await writer.WriteLineAsync("## Table of contents"); var index = 2; - await writer.WriteLineAsync("1. [Class diagram](#class-diagram)"); + await writer.WriteLineAsync("1. [Class diagram](#Class-diagram)"); foreach (var (key, value) in entitiesToWrite) { - await writer.WriteLineAsync($"{index++}. [{key}](#{_schemaNameManager.ToSchemaName(key)})"); + await writer.WriteLineAsync($"{index++}. [{key}](#{key.Replace(' ', '-')})"); } - await writer.WriteLineAsync("# Class diagram "); + await writer.WriteLineAsync("# Class diagram"); await writer.WriteAsync(EntitiesToClassDiagram(_manifestObject, component)); var ignored = new List @@ -116,7 +116,7 @@ public async Task Write(FileInfo outputLocation, string component) foreach (var (key, value) in entitiesToWrite) { - await writer.WriteLineAsync($"## {key} "); + await writer.WriteLineAsync($"## {key}"); await writer.WriteLineAsync(value.Description); @@ -276,15 +276,20 @@ private string EntitiesToClassDiagram(ManifestDefinition manifest, string compon { var diagramBuilder = new StringBuilder(); - diagramBuilder.AppendLine("```mermaid"); + diagramBuilder.AppendLine("::: mermaid"); diagramBuilder.AppendLine("classDiagram"); diagramBuilder.AppendLine($"\tnote \"Class diagram for {component}\""); var t = new DefaultSchemaNameManager(); - var entities = manifest.Entities.Where(entity => - entity.Value.AdditionalFields.ContainsKey("moduleSource") && - entity.Value.AdditionalFields["moduleSource"].ToString() == component); + var entities = manifest.Entities; + if (!string.IsNullOrWhiteSpace(component)) + { + entities = manifest.Entities.Where(entity => + entity.Value.AdditionalFields.ContainsKey("moduleSource") && + entity.Value.AdditionalFields["moduleSource"].ToString() == component) + .ToDictionary(x => x.Key, x => x.Value); + } var ignored = new List { "Modified On", "Modified By", "Created By", "Created On", "Row Version", "Owner" }; @@ -293,7 +298,7 @@ private string EntitiesToClassDiagram(ManifestDefinition manifest, string compon { var attributes = value.Attributes.Where(x => !ignored.Contains(x.Key)).ToList(); - diagramBuilder.AppendLine($"\tclass {t.ToSchemaName(key)}[\"{key}\"]{{"); + diagramBuilder.AppendLine($"\tclass {t.ToSchemaName(key)}{{"); foreach (var (s, attributeDefinitionBase) in attributes) { if (attributeDefinitionBase is AttributeObjectDefinition o) @@ -327,7 +332,7 @@ private string EntitiesToClassDiagram(ManifestDefinition manifest, string compon } } - diagramBuilder.AppendLine("```"); + diagramBuilder.AppendLine(":::"); return diagramBuilder.ToString(); } }