1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-11-02 00:16:07 +00:00

Presque...

This commit is contained in:
Yan Maniez 2018-06-07 23:14:27 +02:00
parent aeb44fd497
commit f42080a4af

View file

@ -26,22 +26,38 @@ namespace AideDeJeuCmd
var str = string.Empty; var str = string.Empty;
foreach(var inline in inlines) foreach(var inline in inlines)
{ {
Console.WriteLine(inline.GetType());
string add = string.Empty;
if (inline is Markdig.Syntax.Inlines.LineBreakInline) if (inline is Markdig.Syntax.Inlines.LineBreakInline)
{ {
str += "\n"; add = "\n";
} }
else if (inline is Markdig.Syntax.Inlines.LiteralInline) else if (inline is Markdig.Syntax.Inlines.LiteralInline)
{ {
str += inline.ToString(); var literalInline = inline as Markdig.Syntax.Inlines.LiteralInline;
add = literalInline.Content.ToString();
} }
else if(inline is Markdig.Syntax.Inlines.ContainerInline) else if (inline is Markdig.Syntax.Inlines.EmphasisInline)
{ {
str += (inline as Markdig.Syntax.Inlines.ContainerInline).ToContainerString(); var emphasisInline = inline as Markdig.Syntax.Inlines.EmphasisInline;
var delimiterChar = emphasisInline.DelimiterChar.ToString();
if (emphasisInline.IsDouble)
{
delimiterChar += delimiterChar;
}
add = delimiterChar + emphasisInline.ToContainerString() + delimiterChar;
}
else if (inline is Markdig.Syntax.Inlines.ContainerInline)
{
var containerInline = inline as Markdig.Syntax.Inlines.ContainerInline;
add = containerInline.ToContainerString();
} }
else else
{ {
str += inline.ToString(); add = inline.ToString();
} }
Console.WriteLine(add);
str += add;
} }
return str; return str;
} }
@ -81,8 +97,8 @@ namespace AideDeJeuCmd
.Replace("</em>", "_") .Replace("</em>", "_")
.Replace("<li>", "* ") .Replace("<li>", "* ")
.Replace("</li>", "") .Replace("</li>", "")
.Replace("\n", "\n\n") .Replace("\n", "\r\n\r\n")
.Replace("<br/>", "\n\n") .Replace("<br/>", "\r\n\r\n")
; ;
md += "\n\n"; md += "\n\n";
return md; return md;
@ -95,15 +111,15 @@ namespace AideDeJeuCmd
public IEnumerable<Spell> MarkdownToSpells(string md) public IEnumerable<Spell> MarkdownToSpells(string md)
{ {
var spells = new List<Spell>(); var spells = new List<Spell>();
var document = Markdig.Parsers.MarkdownParser.Parse(MD); var document = Markdig.Parsers.MarkdownParser.Parse(md);
Spell spell = null; Spell spell = null;
foreach (var block in document) foreach (var block in document)
{ {
DumpBlock(block); //DumpBlock(block);
if (block is Markdig.Syntax.HeadingBlock) if (block is Markdig.Syntax.HeadingBlock)
{ {
var headingBlock = block as Markdig.Syntax.HeadingBlock; var headingBlock = block as Markdig.Syntax.HeadingBlock;
DumpHeadingBlock(headingBlock); //DumpHeadingBlock(headingBlock);
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1) if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
{ {
if (spell != null) if (spell != null)
@ -112,35 +128,41 @@ namespace AideDeJeuCmd
} }
spell = new Spell(); spell = new Spell();
spell.Name = spell.NamePHB = headingBlock.Inline.ToContainerString(); spell.Name = spell.NamePHB = headingBlock.Inline.ToContainerString();
//Console.WriteLine(spell.Name);
} }
} }
if (block is Markdig.Syntax.ParagraphBlock) if (block is Markdig.Syntax.ParagraphBlock)
{ {
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock; var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
DumpParagraphBlock(paragraphBlock); //DumpParagraphBlock(paragraphBlock);
Console.WriteLine(paragraphBlock.IsBreakable);
spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString(); spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
if(paragraphBlock.IsBreakable)
{
spell.DescriptionHtml += "\n";
}
} }
if (block is Markdig.Syntax.ListBlock) if (block is Markdig.Syntax.ListBlock)
{ {
var listBlock = block as Markdig.Syntax.ListBlock; var listBlock = block as Markdig.Syntax.ListBlock;
DumpListBlock(listBlock); //DumpListBlock(listBlock);
if (listBlock.BulletType == '-') if (listBlock.BulletType == '-')
{ {
spell.Source = ""; spell.Source = "";
foreach (var inblock in listBlock) foreach (var inblock in listBlock)
{ {
DumpBlock(inblock); //DumpBlock(inblock);
var regex = new Regex("(?<key>.*?): (?<value>.*)"); var regex = new Regex("(?<key>.*?): (?<value>.*)");
if (inblock is Markdig.Syntax.ListItemBlock) if (inblock is Markdig.Syntax.ListItemBlock)
{ {
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock; var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock) foreach (var ininblock in listItemBlock)
{ {
DumpBlock(ininblock); //DumpBlock(ininblock);
if(ininblock is Markdig.Syntax.ParagraphBlock) if(ininblock is Markdig.Syntax.ParagraphBlock)
{ {
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock; var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
DumpParagraphBlock(paragraphBlock); //DumpParagraphBlock(paragraphBlock);
var str = paragraphBlock.Inline.ToContainerString(); var str = paragraphBlock.Inline.ToContainerString();
var match = regex.Match(str); var match = regex.Match(str);
var key = match.Groups["key"].Value; var key = match.Groups["key"].Value;
@ -166,7 +188,7 @@ namespace AideDeJeuCmd
spell.Range = value; spell.Range = value;
break; break;
case "Source": case "Source":
spell.Source += value; spell.Source += value + " ";
break; break;
case "Classes": case "Classes":
spell.Source += value; spell.Source += value;
@ -175,7 +197,7 @@ namespace AideDeJeuCmd
} }
} }
DumpListItemBlock(inblock as Markdig.Syntax.ListItemBlock); //DumpListItemBlock(inblock as Markdig.Syntax.ListItemBlock);
} }
} }
} }
@ -189,7 +211,7 @@ namespace AideDeJeuCmd
return spells; return spells;
} }
} }
static string MD;
static void DumpParagraphBlock(Markdig.Syntax.ParagraphBlock block) static void DumpParagraphBlock(Markdig.Syntax.ParagraphBlock block)
{ {
//if (block.Lines != null) //if (block.Lines != null)
@ -237,7 +259,7 @@ namespace AideDeJeuCmd
Console.WriteLine(block.Line); Console.WriteLine(block.Line);
Console.WriteLine(block.RemoveAfterProcessInlines); Console.WriteLine(block.RemoveAfterProcessInlines);
Console.WriteLine(block.Span.ToString()); Console.WriteLine(block.Span.ToString());
Console.WriteLine(block.Span.ToString(MD)); //Console.WriteLine(block.Span.ToString(MD));
Console.WriteLine(block.ToString()); Console.WriteLine(block.ToString());
if(block is Markdig.Syntax.ParagraphBlock) if(block is Markdig.Syntax.ParagraphBlock)
{ {