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

Loading…
Cancel
Save