public override void Render(ExtensionHtmlRenderer renderer, Diagram diagram, IFormatState formatState) { var(element, elementsEnumerable) = _provider.GetBpmnElements(new Path(diagram.Name)); var elements = elementsEnumerable.ToList(); elements.Sort(new BpmnElement.AliasComparer()); var sb = new StringBuilder(); sb.AppendLine($@"<h1>{element.Name}</h1>"); foreach (var e in elements) { string name = string.IsNullOrEmpty(e.Name) ? e.Alias : e.Name; sb.AppendLine($@"<h2>{name}</h2>"); sb.AppendLine($@"<p>Lane: {e.Lane}</p>"); sb.AppendLine($@"<p>Description:<br>"); sb.AppendLine($@"{e.Notes}</p>"); } renderer.Write(sb.ToString()); }
public override void Transform(ExtensionHtmlRenderer extensionHtmlRenderer, WorkflowNotesBlock block, Diagram diagram) { var(element, elementsEnumerable) = _provider.GetBpmnElements(new EaProvider.Path(diagram.Name)); var elements = elementsEnumerable.ToList(); elements.Sort(new BpmnElement.AliasComparer()); var sb = new StringBuilder(); sb.AppendLine($@"# {element.Name}"); var converter = new Html2Markdown.Converter(); foreach (BpmnElement e in elements) { string name = string.IsNullOrEmpty(e.Name) ? e.Alias : e.Name; string notes = converter.Convert(e.Notes); MarkdownDocument notesMd = Markdown.Parse(notes); notesMd.IncreaseHeadingLevel(2); string normalizedNotes = null; using (var writer = new StringWriter()) { var pipeline = new MarkdownPipelineBuilder().Build(); pipeline.Extensions.AddIfNotAlready <SoftlineBreakAsHardlineExtension>(); var renderer = new NormalizeRenderer(writer); pipeline.Setup(renderer); renderer.Render(notesMd); writer.Flush(); normalizedNotes = writer.ToString(); } sb.AppendLine($@"## {name}"); sb.AppendLine($@"Lane: {e.Lane}"); sb.AppendLine(); sb.AppendLine($@"Description:"); sb.AppendLine(normalizedNotes); } MarkdownDocument document = Markdown.Parse(sb.ToString()); Replace(block, document); }