unsafe public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is MarkdownData)
{
var markdownData = value as MarkdownData;
try
{
var categoryVisitor = new SnuDomCategoryVisitor();
((IDomObject)markdownData.MarkdownDom).Accept(categoryVisitor);
switch (categoryVisitor.Category)
{
case MarkdownCategory.PlainText:
{
var visitor = new SnuDomPlainTextVisitor();
((IDomObject)markdownData.MarkdownDom).Accept(visitor);
return MakePlain(visitor.Result);
}
case MarkdownCategory.Formatted:
case MarkdownCategory.Full:
{
var visitor = new SnuDomFullUIVisitor(new SolidColorBrush(Colors.White));
((IDomObject)markdownData.MarkdownDom).Accept(visitor);
if (visitor.ResultGroup != null)
return visitor.ResultGroup;
else
return visitor.Result;
}
default:
return new TextBlock { Text = "" };
}
}
catch (Exception ex)
{
return MakePlain(ex.ToString());
}
}
else
return new TextBlock { Text = "" };
}