[frontend] Implement mfm plain node, fix code formatting in RenderMfm
This commit is contained in:
parent
0f97845b88
commit
989c5765fc
2 changed files with 39 additions and 24 deletions
|
@ -59,3 +59,9 @@
|
||||||
text-decoration-line: underline;
|
text-decoration-line: underline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::deep {
|
||||||
|
.plain {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,12 +44,13 @@ public static class MfmRenderer
|
||||||
|
|
||||||
private static INode RenderNode(MfmNodeTypes.MfmNode node, IDocument document, List<EmojiResponse> emoji)
|
private static INode RenderNode(MfmNodeTypes.MfmNode node, IDocument document, List<EmojiResponse> emoji)
|
||||||
{
|
{
|
||||||
|
// Hard wrap makes this impossible to read
|
||||||
|
// @formatter:off
|
||||||
var rendered = node switch
|
var rendered = node switch
|
||||||
{
|
{
|
||||||
MfmNodeTypes.MfmCenterNode mfmCenterNode => MfmCenterNode(mfmCenterNode, document),
|
MfmNodeTypes.MfmCenterNode mfmCenterNode => MfmCenterNode(mfmCenterNode, document),
|
||||||
MfmNodeTypes.MfmCodeBlockNode mfmCodeBlockNode => MfmCodeBlockNode(mfmCodeBlockNode, document),
|
MfmNodeTypes.MfmCodeBlockNode mfmCodeBlockNode => MfmCodeBlockNode(mfmCodeBlockNode, document),
|
||||||
MfmNodeTypes.MfmMathBlockNode mfmMathBlockNode =>
|
MfmNodeTypes.MfmMathBlockNode mfmMathBlockNode => throw new NotImplementedException($"{mfmMathBlockNode.GetType()}"),
|
||||||
throw new NotImplementedException($"{mfmMathBlockNode.GetType()}"),
|
|
||||||
MfmNodeTypes.MfmQuoteNode mfmQuoteNode => MfmQuoteNode(mfmQuoteNode, document),
|
MfmNodeTypes.MfmQuoteNode mfmQuoteNode => MfmQuoteNode(mfmQuoteNode, document),
|
||||||
MfmNodeTypes.MfmSearchNode mfmSearchNode => throw new NotImplementedException($"{mfmSearchNode.GetType()}"),
|
MfmNodeTypes.MfmSearchNode mfmSearchNode => throw new NotImplementedException($"{mfmSearchNode.GetType()}"),
|
||||||
MfmNodeTypes.MfmBlockNode mfmBlockNode => throw new NotImplementedException($"{mfmBlockNode.GetType()}"),
|
MfmNodeTypes.MfmBlockNode mfmBlockNode => throw new NotImplementedException($"{mfmBlockNode.GetType()}"),
|
||||||
|
@ -60,10 +61,9 @@ public static class MfmRenderer
|
||||||
MfmNodeTypes.MfmInlineCodeNode mfmInlineCodeNode => MfmInlineCodeNode(mfmInlineCodeNode, document),
|
MfmNodeTypes.MfmInlineCodeNode mfmInlineCodeNode => MfmInlineCodeNode(mfmInlineCodeNode, document),
|
||||||
MfmNodeTypes.MfmItalicNode mfmItalicNode => MfmItalicNode(mfmItalicNode, document),
|
MfmNodeTypes.MfmItalicNode mfmItalicNode => MfmItalicNode(mfmItalicNode, document),
|
||||||
MfmNodeTypes.MfmLinkNode mfmLinkNode => MfmLinkNode(mfmLinkNode, document),
|
MfmNodeTypes.MfmLinkNode mfmLinkNode => MfmLinkNode(mfmLinkNode, document),
|
||||||
MfmNodeTypes.MfmMathInlineNode mfmMathInlineNode =>
|
MfmNodeTypes.MfmMathInlineNode mfmMathInlineNode => throw new NotImplementedException($"{mfmMathInlineNode.GetType()}"),
|
||||||
throw new NotImplementedException($"{mfmMathInlineNode.GetType()}"),
|
|
||||||
MfmNodeTypes.MfmMentionNode mfmMentionNode => MfmMentionNode(mfmMentionNode, document),
|
MfmNodeTypes.MfmMentionNode mfmMentionNode => MfmMentionNode(mfmMentionNode, document),
|
||||||
MfmNodeTypes.MfmPlainNode mfmPlainNode => throw new NotImplementedException($"{mfmPlainNode.GetType()}"),
|
MfmNodeTypes.MfmPlainNode mfmPlainNode => MfmPlainNode(mfmPlainNode, document),
|
||||||
MfmNodeTypes.MfmSmallNode mfmSmallNode => MfmSmallNode(mfmSmallNode, document),
|
MfmNodeTypes.MfmSmallNode mfmSmallNode => MfmSmallNode(mfmSmallNode, document),
|
||||||
MfmNodeTypes.MfmStrikeNode mfmStrikeNode => MfmStrikeNode(mfmStrikeNode, document),
|
MfmNodeTypes.MfmStrikeNode mfmStrikeNode => MfmStrikeNode(mfmStrikeNode, document),
|
||||||
MfmNodeTypes.MfmTextNode mfmTextNode => MfmTextNode(mfmTextNode, document),
|
MfmNodeTypes.MfmTextNode mfmTextNode => MfmTextNode(mfmTextNode, document),
|
||||||
|
@ -71,6 +71,8 @@ public static class MfmRenderer
|
||||||
MfmNodeTypes.MfmInlineNode mfmInlineNode => throw new NotImplementedException($"{mfmInlineNode.GetType()}"),
|
MfmNodeTypes.MfmInlineNode mfmInlineNode => throw new NotImplementedException($"{mfmInlineNode.GetType()}"),
|
||||||
_ => throw new ArgumentOutOfRangeException(nameof(node))
|
_ => throw new ArgumentOutOfRangeException(nameof(node))
|
||||||
};
|
};
|
||||||
|
// @formatter:on
|
||||||
|
|
||||||
if (node.Children.Length > 0)
|
if (node.Children.Length > 0)
|
||||||
{
|
{
|
||||||
foreach (var childNode in node.Children)
|
foreach (var childNode in node.Children)
|
||||||
|
@ -91,6 +93,13 @@ public static class MfmRenderer
|
||||||
return rendered;
|
return rendered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static INode MfmPlainNode(MfmNodeTypes.MfmPlainNode _, IDocument document)
|
||||||
|
{
|
||||||
|
var el = document.CreateElement("span");
|
||||||
|
el.ClassName = "plain";
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
private static INode MfmCenterNode(MfmNodeTypes.MfmCenterNode _, IDocument document)
|
private static INode MfmCenterNode(MfmNodeTypes.MfmCenterNode _, IDocument document)
|
||||||
{
|
{
|
||||||
var el = document.CreateElement("div");
|
var el = document.CreateElement("div");
|
||||||
|
|
Loading…
Add table
Reference in a new issue