mirror of
https://github.com/xoofx/markdig.git
synced 2026-10-08 22:57:51 +00:00
Merge pull request #161 from tthiery/normalize-tasklists
Add Normalization Support for Task Lists
This commit is contained in:
@@ -396,6 +396,21 @@ This is a last line";
|
||||
AssertNormalizeNoTrim(input);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TaskLists()
|
||||
{
|
||||
AssertNormalizeNoTrim("- [X] This is done");
|
||||
AssertNormalizeNoTrim("- [x] This is done",
|
||||
"- [X] This is done");
|
||||
AssertNormalizeNoTrim("- [ ] This is not done");
|
||||
|
||||
// ignore
|
||||
AssertNormalizeNoTrim("[x] This is not a task list");
|
||||
AssertNormalizeNoTrim("[ ] This is not a task list");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static void AssertSyntax(string expected, MarkdownObject syntax)
|
||||
{
|
||||
var writer = new StringWriter();
|
||||
@@ -425,7 +440,11 @@ This is a last line";
|
||||
input = NormText(input, trim);
|
||||
expected = NormText(expected, trim);
|
||||
|
||||
var result = Markdown.Normalize(input, options);
|
||||
var pipeline = new MarkdownPipelineBuilder()
|
||||
.UseTaskLists()
|
||||
.Build();
|
||||
|
||||
var result = Markdown.Normalize(input, options, pipeline: pipeline);
|
||||
result = NormText(result, trim);
|
||||
|
||||
Console.WriteLine("```````````````````Source");
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
using Markdig.Renderers.Normalize;
|
||||
|
||||
namespace Markdig.Extensions.TaskLists
|
||||
{
|
||||
public class NormalizeTaskListRenderer : NormalizeObjectRenderer<TaskList>
|
||||
{
|
||||
protected override void Write(NormalizeRenderer renderer, TaskList obj)
|
||||
{
|
||||
renderer.Write("[");
|
||||
renderer.Write(obj.Checked ? "X" : " ");
|
||||
renderer.Write("]");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
// Copyright (c) Alexandre Mutel. All rights reserved.
|
||||
// Copyright (c) Alexandre Mutel. All rights reserved.
|
||||
// This file is licensed under the BSD-Clause 2 license.
|
||||
// See the license.txt file in the project root for more information.
|
||||
|
||||
using Markdig.Parsers.Inlines;
|
||||
using Markdig.Renderers;
|
||||
using Markdig.Renderers.Normalize;
|
||||
|
||||
namespace Markdig.Extensions.TaskLists
|
||||
{
|
||||
@@ -28,6 +29,12 @@ namespace Markdig.Extensions.TaskLists
|
||||
{
|
||||
htmlRenderer.ObjectRenderers.AddIfNotAlready<HtmlTaskListRenderer>();
|
||||
}
|
||||
|
||||
var normalizeRenderer = renderer as NormalizeRenderer;
|
||||
if (normalizeRenderer != null)
|
||||
{
|
||||
normalizeRenderer.ObjectRenderers.AddIfNotAlready<NormalizeTaskListRenderer>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user