Browse Source

Handle missing closer in Scriban section renderer

Added checks for the presence of the 'Closer' string before substring operations in ScribanDocumentSectionRenderer. This prevents exceptions when the closer is not found in the document content.
pull/23744/head
SALİH ÖZKARA 5 months ago
parent
commit
ef9895f8d3
  1. 20
      modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Rendering/ScribanDocumentSectionRenderer.cs

20
modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Rendering/ScribanDocumentSectionRenderer.cs

@ -213,12 +213,15 @@ public class ScribanDocumentSectionRenderer : IDocumentSectionRenderer
documentContent.IndexOf(Opener, StringComparison.Ordinal) + Opener.Length
);
var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0,
afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal)
);
var closerIndex = afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal);
if(closerIndex < 0)
{
break;
}
var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, closerIndex);
documentContent = afterJsonOpener.Substring(
afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal) + Closer.Length
closerIndex + Closer.Length
);
if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates))
@ -257,9 +260,12 @@ public class ScribanDocumentSectionRenderer : IDocumentSectionRenderer
document.IndexOf(Opener, StringComparison.Ordinal) + Opener.Length
);
var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0,
afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal)
);
var closerIndex = afterJsonOpener.IndexOf(Closer, StringComparison.Ordinal);
if (closerIndex < 0)
{
break;
}
var betweenJsonOpenerAndCloser = afterJsonOpener.Substring(0, closerIndex);
if (!betweenJsonOpenerAndCloser.Contains(DocsTemplates))
{

Loading…
Cancel
Save