Skip to content

Commit ec7d843

Browse files
committed
Set interface ITitledBlock on blocks that have a Title property and use that in LlmDirectiveRenderer
1 parent c186837 commit ec7d843

File tree

5 files changed

+10
-19
lines changed

5 files changed

+10
-19
lines changed

src/Elastic.Markdown/Myst/Directives/Admonition/AdmonitionBlock.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Elastic.Markdown.Myst.Directives.Admonition;
88

99
public class DropdownBlock(DirectiveBlockParser parser, ParserContext context) : AdmonitionBlock(parser, "dropdown", context);
1010

11-
public class AdmonitionBlock : DirectiveBlock
11+
public class AdmonitionBlock : DirectiveBlock, ITitledBlock
1212
{
1313
public AdmonitionBlock(DirectiveBlockParser parser, string admonition, ParserContext context) : base(parser, context)
1414
{
@@ -45,5 +45,3 @@ public override void FinalizeAndValidate(ParserContext context)
4545
Title = Title.ReplaceSubstitutions(context);
4646
}
4747
}
48-
49-

src/Elastic.Markdown/Myst/Directives/DirectiveBlock.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313

1414
namespace Elastic.Markdown.Myst.Directives;
1515

16+
public interface ITitledBlock
17+
{
18+
string Title { get; }
19+
}
20+
1621
public interface IBlockExtension : IBlock
1722
{
1823
BuildContext Build { get; }

src/Elastic.Markdown/Myst/Directives/Stepper/StepperBlock.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public override void FinalizeAndValidate(ParserContext context)
1616
}
1717
}
1818

19-
public class StepBlock(DirectiveBlockParser parser, ParserContext context) : DirectiveBlock(parser, context)
19+
public class StepBlock(DirectiveBlockParser parser, ParserContext context) : DirectiveBlock(parser, context), ITitledBlock
2020
{
2121
public override string Directive => "step";
2222
public string Title { get; private set; } = string.Empty;

src/Elastic.Markdown/Myst/Directives/Tabs/TabSetBlock.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public int FindIndex()
3333
}
3434

3535
public class TabItemBlock(DirectiveBlockParser parser, ParserContext context)
36-
: DirectiveBlock(parser, context)
36+
: DirectiveBlock(parser, context), ITitledBlock
3737
{
3838
public override string Directive => "tab-item";
3939

src/Elastic.Markdown/Myst/Renderers/LlmMarkdown/LlmBlockRenderers.cs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
using Elastic.Markdown.Helpers;
66
using Elastic.Markdown.Myst.CodeBlocks;
77
using Elastic.Markdown.Myst.Directives;
8-
using Elastic.Markdown.Myst.Directives.Admonition;
98
using Elastic.Markdown.Myst.Directives.Image;
109
using Elastic.Markdown.Myst.Directives.Include;
11-
using Elastic.Markdown.Myst.Directives.Tabs;
1210
using Markdig.Extensions.DefinitionLists;
1311
using Markdig.Extensions.Tables;
1412
using Markdig.Extensions.Yaml;
@@ -382,18 +380,8 @@ protected override void Write(LlmMarkdownRenderer renderer, DirectiveBlock obj)
382380
renderer.Writer.Write("<");
383381
renderer.Writer.Write(obj.Directive);
384382

385-
switch (obj)
386-
{
387-
case DropdownBlock dropdown:
388-
renderer.Writer.Write($" title=\"{dropdown.Title}\"");
389-
break;
390-
case TabItemBlock tabItem:
391-
renderer.Writer.Write($" title=\"{tabItem.Title}\"");
392-
break;
393-
case AdmonitionBlock admonition when obj.Directive is "admonition":
394-
renderer.Writer.Write($" title=\"{admonition.Title}\"");
395-
break;
396-
}
383+
if (obj is ITitledBlock titledBlock)
384+
renderer.Writer.Write($" title=\"{titledBlock.Title}\"");
397385

398386
renderer.WriteLine(">");
399387
renderer.EnsureLine();

0 commit comments

Comments
 (0)