2023-04-14 16:36:03 +08:00
|
|
|
|
// /************************************************************************
|
|
|
|
|
// * @file MarkDownToHtmlConverter.cs
|
|
|
|
|
// * @author Su Liang
|
|
|
|
|
// * @date 2023/04/14
|
|
|
|
|
// *
|
|
|
|
|
// * @copyright © Sicentury Inc.
|
|
|
|
|
// *
|
|
|
|
|
// * @brief
|
|
|
|
|
// *
|
|
|
|
|
// * @details
|
|
|
|
|
// *
|
|
|
|
|
// *
|
|
|
|
|
// * *****************************************************************************/
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Globalization;
|
2023-04-15 13:21:06 +08:00
|
|
|
|
using System.Text;
|
2023-04-14 16:36:03 +08:00
|
|
|
|
using System.Windows.Data;
|
|
|
|
|
|
|
|
|
|
namespace MECF.Framework.UI.Core.Converters
|
|
|
|
|
{
|
|
|
|
|
public class MarkdownToHtmlConverter : IValueConverter
|
|
|
|
|
{
|
|
|
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
|
|
|
{
|
2023-04-15 13:21:06 +08:00
|
|
|
|
if (value is string mdText)
|
2023-04-14 16:36:03 +08:00
|
|
|
|
{
|
2023-04-15 13:21:06 +08:00
|
|
|
|
var conv = new MarkdownDeep.Markdown();
|
|
|
|
|
var html = conv.Transform(mdText);
|
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
|
sb.Append(
|
|
|
|
|
"<!DOCTYPE html><html lang=\"en\">" +
|
|
|
|
|
"<head> " +
|
|
|
|
|
" <meta charset=\"UTF-8\" />" +
|
|
|
|
|
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /> " +
|
|
|
|
|
" <title>Sic ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7>¼</title> " +
|
|
|
|
|
" <style> " +
|
|
|
|
|
" .mainContainer { font-family: Tahoma, Verdana, sans-serif; margin: 10px;} " +
|
|
|
|
|
" </style>" +
|
|
|
|
|
" </head><body oncontextmenu=\"return false;\"> " +
|
|
|
|
|
" <div class=mainContainer> ");
|
|
|
|
|
sb.Append(html);
|
|
|
|
|
sb.Append("<div>" +
|
|
|
|
|
"</body>" +
|
|
|
|
|
"</html>");
|
|
|
|
|
return sb.ToString();
|
2023-04-14 16:36:03 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return "<h1>Content is not Markdown text<h1>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|