in src/PSRule/Pipeline/Output/MarkdownOutputWriter.cs [90:167]
private void RuleSummary(RuleRecord[] records)
{
if (records.Length == 0)
return;
Section(2, records[0].Info.DisplayName);
LineBreak();
AppendLine("> ", records[0].RuleName);
LineBreak();
AppendLine(records[0].Info.Synopsis);
LineBreak();
AppendLine(records[0].Info.Description);
LineBreak();
// Info block
AppendLine("```yaml");
foreach (var key in records[0].Info.Annotations.Keys)
{
if (key.ToString() != "online version")
{
AppendLine(key.ToString(), ": ", records[0].Info.Annotations[key].ToString());
}
}
AppendLine("```");
LineBreak();
// Add recommendation
AppendLine("**", ReportStrings.Markdown_Recommendation, "**:");
LineBreak();
AppendLine(records[0].Recommendation);
LineBreak();
// Add links
if (records[0]?.Info?.Links?.Length > 0)
{
AppendLine("**", ReportStrings.Markdown_Links, "**:");
LineBreak();
for (var i = 0; i < records[0].Info.Links.Length; i++)
{
Link(records[0].Info.Links[i]);
}
}
LineBreak();
// Get padding
var padding = new int[3] { 0, 0, 0 };
GetColumnPadding(padding, ReportStrings.Markdown_TargetName, ReportStrings.Markdown_TargetType, ReportStrings.Markdown_Outcome);
for (var i = 0; i < records.Length; i++)
GetColumnPadding(padding, records[i].TargetName, records[i].TargetType, records[i].Outcome.ToString());
// Build results table
LineBreak();
AppendLine("**", ReportStrings.Markdown_Results, "**:");
LineBreak();
AppendLine(ReportStrings.Markdown_ResultText);
LineBreak();
AppendColumn(ReportStrings.Markdown_TargetName, Space, padding[0]);
Append(" | ");
AppendColumn(ReportStrings.Markdown_TargetType, Space, padding[1]);
Append(" | ");
AppendColumn(ReportStrings.Markdown_Outcome, Space, padding[2]);
LineEnd();
AppendColumn('-', ReportStrings.Markdown_TargetName.Length, Space, padding[0]);
Append(" | ");
AppendColumn('-', ReportStrings.Markdown_TargetType.Length, Space, padding[1]);
Append(" | ");
Append('-', ReportStrings.Markdown_Outcome.Length);
LineEnd();
for (var i = 0; i < records.Length; i++)
{
AppendColumn(records[i].TargetName, Space, padding[0]);
Append(" | ");
AppendColumn(records[i].TargetType, Space, padding[1]);
Append(" | ");
Append(records[i].Outcome.ToString());
LineEnd();
}
}