mirror of
https://github.com/xoofx/markdig.git
synced 2026-10-08 06:38:39 +00:00
Simplify Markdown top-level api
This commit is contained in:
@@ -28,11 +28,11 @@ namespace Testamina.Markdig.Benchmarks
|
||||
public void TestMarkdig()
|
||||
{
|
||||
//var reader = new StreamReader(File.Open("spec.md", FileMode.Open));
|
||||
Markdown.ConvertToHtml(text);
|
||||
Markdown.Convert(text);
|
||||
//File.WriteAllText("spec.html", writer.ToString());
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void TestCommonMark()
|
||||
{
|
||||
////var reader = new StreamReader(File.Open("spec.md", FileMode.Open));
|
||||
@@ -73,7 +73,7 @@ namespace Testamina.Markdig.Benchmarks
|
||||
{
|
||||
var clock = Stopwatch.StartNew();
|
||||
var program = new Program();
|
||||
for (int i = 0; i < 500; i++)
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
if (markdig)
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Textamina.Markdig.Tests
|
||||
// var reader = new StringReader(@"> > toto tata
|
||||
//> titi toto
|
||||
//");
|
||||
var result = Markdown.ConvertToHtml(reader);
|
||||
var result = Markdown.Convert(reader);
|
||||
Console.WriteLine(result);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Textamina.Markdig.Tests
|
||||
MarkdownParser.Log = Console.Out;
|
||||
var reader = new StringReader(inputText);
|
||||
var output = new StringWriter();
|
||||
Markdown.ConvertToHtml(reader, output);
|
||||
Markdown.Convert(reader, output);
|
||||
|
||||
var result = Compact(output.ToString());
|
||||
expectedOutputText = Compact(expectedOutputText);
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Textamina.Markdig.Tests
|
||||
//> titi toto
|
||||
//");
|
||||
|
||||
var result = Markdown.ConvertToHtml(reader);
|
||||
var result = Markdown.Convert(reader);
|
||||
Console.WriteLine(result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,34 +8,40 @@ namespace Textamina.Markdig
|
||||
{
|
||||
public class Markdown
|
||||
{
|
||||
public static string ConvertToHtml(string markdown)
|
||||
public static string Convert(string markdown)
|
||||
{
|
||||
if (markdown == null) throw new ArgumentNullException(nameof(markdown));
|
||||
var reader = new StringReader(markdown);
|
||||
var writer = new StringWriter();
|
||||
ConvertToHtml(reader, writer);
|
||||
return writer.ToString();
|
||||
return Convert(reader)?.ToString() ?? string.Empty;
|
||||
}
|
||||
|
||||
public static string ConvertToHtml(StringReader reader)
|
||||
public static object Convert(TextReader reader, MarkdownPipeline pipeline = null)
|
||||
{
|
||||
if (reader == null) throw new ArgumentNullException(nameof(reader));
|
||||
var writer = new StringWriter();
|
||||
ConvertToHtml(reader, writer);
|
||||
return writer.ToString();
|
||||
pipeline = pipeline ?? new MarkdownPipeline();
|
||||
|
||||
if (pipeline.Renderer == null)
|
||||
{
|
||||
pipeline.Renderer = new HtmlMarkdownRenderer(new StringWriter());
|
||||
}
|
||||
|
||||
var document = Parse(reader, pipeline);
|
||||
return pipeline.Renderer.WriteDocument(document);
|
||||
}
|
||||
|
||||
public static void ConvertToHtml(TextReader reader, TextWriter writer, MarkdownPipeline pipeline = null)
|
||||
public static void Convert(TextReader reader, TextWriter writer, MarkdownPipeline pipeline = null)
|
||||
{
|
||||
if (reader == null) throw new ArgumentNullException(nameof(reader));
|
||||
if (writer == null) throw new ArgumentNullException(nameof(writer));
|
||||
pipeline = pipeline ?? new MarkdownPipeline();
|
||||
|
||||
if (!(pipeline.Renderer is HtmlMarkdownRenderer))
|
||||
{
|
||||
pipeline.Renderer = new HtmlMarkdownRenderer(writer);
|
||||
}
|
||||
|
||||
Convert(reader, writer, pipeline);
|
||||
var document = Parse(reader, pipeline);
|
||||
pipeline.Renderer.WriteChildren(document);
|
||||
writer.Flush();
|
||||
}
|
||||
|
||||
@@ -44,10 +50,10 @@ namespace Textamina.Markdig
|
||||
return Parse(new StringReader(markdown), new MarkdownPipeline());
|
||||
}
|
||||
|
||||
public static Document Parse(TextReader input, MarkdownPipeline pipeline)
|
||||
public static Document Parse(TextReader input, MarkdownPipeline pipeline = null)
|
||||
{
|
||||
if (input == null) throw new ArgumentNullException(nameof(input));
|
||||
if (pipeline == null) throw new ArgumentNullException(nameof(pipeline));
|
||||
pipeline = pipeline ?? new MarkdownPipeline();
|
||||
|
||||
BlockParserState blockParserState;
|
||||
InlineParserState inlineParserState;
|
||||
@@ -56,16 +62,5 @@ namespace Textamina.Markdig
|
||||
var markdownParser = new MarkdownParser(input, blockParserState, inlineParserState);
|
||||
return markdownParser.Parse();
|
||||
}
|
||||
|
||||
public static void Convert(TextReader reader, TextWriter writer, MarkdownPipeline pipeline)
|
||||
{
|
||||
if (reader == null) throw new ArgumentNullException(nameof(reader));
|
||||
if (writer == null) throw new ArgumentNullException(nameof(writer));
|
||||
if (pipeline == null) throw new ArgumentNullException(nameof(pipeline));
|
||||
|
||||
var document = Parse(reader, pipeline);
|
||||
pipeline.Renderer.WriteChildren(document);
|
||||
writer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -283,5 +283,11 @@ namespace Textamina.Markdig.Renderers
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public override object WriteDocument(Document document)
|
||||
{
|
||||
WriteChildren(document);
|
||||
return textWriter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,8 @@ namespace Textamina.Markdig.Renderers
|
||||
|
||||
public List<MarkdownObjectRenderer> Renderers { get; }
|
||||
|
||||
public abstract object WriteDocument(Document document);
|
||||
|
||||
public void WriteChildren(ContainerBlock containerBlock)
|
||||
{
|
||||
if (containerBlock == null)
|
||||
|
||||
Reference in New Issue
Block a user