This method creates an instance of the Markdown Parser processing pipeline and applies the configuration that determines what features the parser uses.
This specific function creates a MarkDig markdown parser and sets common options for the parser. You can override and replace this method to change the settings for the MarkDig
parser pipeline that determines how markdown is parsed.
Here's the default implementation - you can simply copy this code and remove or add additional configuration settings as needed in a subclass to create different behavior.
FUNCTION CreateParser(llForce, llPragmaLines)
LOCAL loBuilder, loValue, loBridge
IF llForce OR ISNULL(this.oPipeline)
loBridge = this.oBridge
loBuilder = loBridge.CreateInstance("Markdig.MarkdownPipelineBuilder")
loValue = loBridge.Createcomvalue()
loValue.SetEnum("Markdig.Extensions.EmphasisExtras.EmphasisExtraOptions.Default")
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseEmphasisExtras",loBuilder,loValue)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseListExtras",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseCustomContainers",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseFooters",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseFigures",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseFootnotes",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseCitations",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UsePipeTables",loBuilder,null)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseGridTables",loBuilder)
loValue = loBridge.Createcomvalue()
loValue.SetEnum("Markdig.Extensions.AutoIdentifiers.AutoIdentifierOptions.GitHub")
loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseAutoIdentifiers",loBuilder,loValue)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseAutoLinks",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseYamlFrontMatter",loBuilder)
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UseEmojiAndSmiley",loBuilder,.T.)
IF this.lNoHtmlAllowed
loBuilder = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","DisableHtml",loBuilder)
ENDIF
IF llPragmaLines
loBuiler = loBridge.Invokestaticmethod("Markdig.MarkdownExtensions","UsePragmaLines",loBuilder)
ENDIF
THIS.oPipeline = loBuilder.Build()
ENDIF
RETURN this.oPipeline
ENDFUNC
o.CreateParser()
See also:
Class MarkdownParser© West Wind Technologies, 2023 • Updated: 08/16/21
Comment or report problem with topic