@@ -114,7 +114,9 @@ private void AddCommand(MamlCommand command)
114
114
115
115
private void AddLinks ( MamlCommand command )
116
116
{
117
- AddHeader ( ModelTransformerBase . COMMAND_ENTRIES_HEADING_LEVEL , MarkdownStrings . RELATED_LINKS ) ;
117
+ var extraNewLine = command . Links != null && command . Links . Count > 0 ;
118
+
119
+ AddHeader ( ModelTransformerBase . COMMAND_ENTRIES_HEADING_LEVEL , MarkdownStrings . RELATED_LINKS , extraNewLine ) ;
118
120
foreach ( var link in command . Links )
119
121
{
120
122
if ( link . IsSimplifiedTextLink )
@@ -143,7 +145,7 @@ private void AddInputOutput(MamlInputOutput io)
143
145
return ;
144
146
}
145
147
146
- var extraNewLine = string . IsNullOrEmpty ( io . Description ) ;
148
+ var extraNewLine = string . IsNullOrEmpty ( io . Description ) || ShouldBreak ( io . FormatOption ) ;
147
149
AddHeader ( ModelTransformerBase . INPUT_OUTPUT_TYPENAME_HEADING_LEVEL , io . TypeName , extraNewLine ) ;
148
150
AddParagraphs ( io . Description ) ;
149
151
}
@@ -265,9 +267,18 @@ private string JoinWithComma(IEnumerable<string> args)
265
267
return string . Join ( ", " , args ) ;
266
268
}
267
269
270
+ private bool ShouldBreak ( SectionFormatOption formatOption )
271
+ {
272
+ // If the line break flag is set return true.
273
+ return formatOption . HasFlag ( SectionFormatOption . LineBreakAfterHeader ) ;
274
+ }
275
+
268
276
private void AddParameter ( MamlParameter parameter , MamlCommand command )
269
277
{
270
- AddHeader ( ModelTransformerBase . PARAMETERSET_NAME_HEADING_LEVEL , '-' + parameter . Name , extraNewLine : false ) ;
278
+ var extraNewLine = ShouldBreak ( parameter . FormatOption ) ;
279
+
280
+ AddHeader ( ModelTransformerBase . PARAMETERSET_NAME_HEADING_LEVEL , '-' + parameter . Name , extraNewLine : extraNewLine ) ;
281
+
271
282
// for some reason, in the update mode parameters produces extra newline.
272
283
AddParagraphs ( parameter . Description , this . _mode == ParserMode . FormattingPreserve ) ;
273
284
@@ -332,7 +343,10 @@ private void AddExamples(MamlCommand command)
332
343
AddHeader ( ModelTransformerBase . COMMAND_ENTRIES_HEADING_LEVEL , MarkdownStrings . EXAMPLES ) ;
333
344
foreach ( var example in command . Examples )
334
345
{
335
- AddHeader ( ModelTransformerBase . EXAMPLE_HEADING_LEVEL , example . Title , extraNewLine : false ) ;
346
+ var extraNewLine = ShouldBreak ( example . FormatOption ) ;
347
+
348
+ AddHeader ( ModelTransformerBase . EXAMPLE_HEADING_LEVEL , example . Title , extraNewLine : extraNewLine ) ;
349
+
336
350
if ( ! string . IsNullOrEmpty ( example . Introduction ) )
337
351
{
338
352
AddParagraphs ( example . Introduction ) ;
@@ -432,17 +446,17 @@ private void AddSyntax(MamlCommand command)
432
446
}
433
447
}
434
448
435
- private void AddEntryHeaderWithText ( string header , string text )
449
+ private void AddEntryHeaderWithText ( string header , SectionBody body )
436
450
{
437
- AddHeader ( ModelTransformerBase . COMMAND_ENTRIES_HEADING_LEVEL , header , extraNewLine : false ) ;
451
+ var extraNewLine = body == null || string . IsNullOrEmpty ( body . Text ) || ShouldBreak ( body . FormatOption ) ;
452
+
453
+ // Add header
454
+ AddHeader ( ModelTransformerBase . COMMAND_ENTRIES_HEADING_LEVEL , header , extraNewLine : extraNewLine ) ;
455
+
438
456
// to correctly handle empty text case, we are adding new-line here
439
- if ( string . IsNullOrEmpty ( text ) )
440
- {
441
- _stringBuilder . Append ( Environment . NewLine ) ;
442
- }
443
- else
457
+ if ( body != null && ! string . IsNullOrEmpty ( body . Text ) )
444
458
{
445
- AddParagraphs ( text ) ;
459
+ AddParagraphs ( body . Text ) ;
446
460
}
447
461
}
448
462
@@ -525,6 +539,12 @@ private void AddParagraphs(string body, bool noNewLines = false)
525
539
body = GetAutoWrappingForMarkdown ( paragraphs . Select ( para => GetEscapedMarkdownText ( para . Trim ( ) ) ) . ToArray ( ) ) ;
526
540
}
527
541
542
+ // The the body already ended in a line break don't add extra lines on to the end
543
+ if ( body . EndsWith ( "\r \n \r \n " ) )
544
+ {
545
+ noNewLines = true ;
546
+ }
547
+
528
548
_stringBuilder . AppendFormat ( "{0}{1}{1}" , body , noNewLines ? null : Environment . NewLine ) ;
529
549
}
530
550
0 commit comments