1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00

Améliorations sorts

This commit is contained in:
Yan Maniez 2018-07-21 10:41:35 +02:00
parent b6a48565c2
commit 3e8dad4e49
6 changed files with 5047 additions and 3561 deletions

View file

@ -25,33 +25,25 @@ namespace AideDeJeuLib
} }
} }
public override void Parse(ref ContainerBlock.Enumerator enumerator) public void ParseBlock(Block block)
{ {
enumerator.MoveNext(); if (block is HeadingBlock)
while (enumerator.Current != null)
{ {
var block = enumerator.Current; var headingBlock = block as HeadingBlock;
if (block.IsNewItem()) if (this.Name == null)
{ {
return; this.Name = headingBlock.Inline.ToMarkdownString();
} }
if (block is HeadingBlock) this.Text += block.ToMarkdownString();
}
else if (block is ListBlock)
{
var listBlock = block as ListBlock;
if (listBlock.BulletType == '-')
{ {
var headingBlock = block as HeadingBlock; var regex = new Regex("(?<key>.*?): (?<value>.*)");
if (this.Name == null) var str = block.ToMarkdownString();
{ var properties = new List<Tuple<string, Action<Generic, string>>>()
this.Name = headingBlock.Inline.ToMarkdownString();
}
this.Text += block.ToMarkdownString();
}
else if (block is ListBlock)
{
var listBlock = block as ListBlock;
if (listBlock.BulletType == '-')
{
var regex = new Regex("(?<key>.*?): (?<value>.*)");
var str = block.ToMarkdownString();
var properties = new List<Tuple<string, Action<Generic, string>>>()
{ {
new Tuple<string, Action<Generic, string>>("- AltName: ", (m, s) => new Tuple<string, Action<Generic, string>>("- AltName: ", (m, s) =>
{ {
@ -63,25 +55,36 @@ namespace AideDeJeuLib
}), }),
}; };
foreach (var property in properties) foreach (var property in properties)
{
if (str.StartsWith(property.Item1))
{
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
break;
}
}
}
else
{ {
this.Text += block.ToMarkdownString(); if (str.StartsWith(property.Item1))
{
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
break;
}
} }
} }
else else
{ {
this.Text += block.ToMarkdownString(); this.Text += block.ToMarkdownString();
} }
}
else
{
this.Text += block.ToMarkdownString();
}
}
public override void Parse(ref ContainerBlock.Enumerator enumerator)
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
if (block.IsNewItem())
{
return;
}
ParseBlock(block);
enumerator.MoveNext(); enumerator.MoveNext();
} }

View file

@ -22,111 +22,8 @@ namespace AideDeJeuLib
public string Duration { get; set; } public string Duration { get; set; }
public string DescriptionHtml { get; set; } public string DescriptionHtml { get; set; }
public string Source { get; set; } public string Source { get; set; }
public string Classes { get; set; }
public abstract string LevelType { get; set; } public abstract string LevelType { get; set; }
public override void Parse(ref ContainerBlock.Enumerator enumerator)
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
if (block is Markdig.Syntax.HeadingBlock)
{
var headingBlock = block as Markdig.Syntax.HeadingBlock;
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
{
if (this.Name != null)
{
return;
}
this.Name = headingBlock.Inline.ToMarkdownString();
}
}
if (block is Markdig.Syntax.ParagraphBlock)
{
if (block.IsNewItem())
{
return;
}
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
}
if (block is Markdig.Syntax.ListBlock)
{
var listBlock = block as Markdig.Syntax.ListBlock;
if (listBlock.BulletType == '-')
{
this.Source = "";
foreach (var inblock in listBlock)
{
var regex = new Regex("(?<key>.*?): (?<value>.*)");
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
var str = paragraphBlock.Inline.ToMarkdownString();
var properties = new List<Tuple<string, Action<Spell, string>>>()
{
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
new Tuple<string, Action<Spell, string>>("CastingTime: ", (m, s) => m.CastingTime = s),
new Tuple<string, Action<Spell, string>>("Components: ", (m, s) => m.Components = s),
new Tuple<string, Action<Spell, string>>("Duration: ", (m, s) => m.Duration = s),
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
new Tuple<string, Action<Spell, string>>("Range: ", (m, s) => m.Range = s),
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Source += s),
new Tuple<string, Action<Spell, string>>("", (m,s) =>
{
})
};
foreach (var property in properties)
{
if (str.StartsWith(property.Item1))
{
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
break;
}
}
}
}
}
}
}
else
{
foreach (var inblock in listBlock)
{
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
}
}
}
}
}
}
else if (block is Markdig.Extensions.Tables.Table)
{
var tableBlock = block as Markdig.Extensions.Tables.Table;
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
}
enumerator.MoveNext();
}
}
} }
} }

View file

@ -57,18 +57,122 @@ namespace AideDeJeuLib
{ {
return return
$"# {Name}\n" + $"# {Name}\n" +
$"{AltName}\n" + $"{AltName}\n\n" +
$"_{LevelType}_\n" + $"_{LevelType}_\n" +
$"**Temps d'incantation :** {CastingTime}\n" + $"**Temps d'incantation :** {CastingTime}\n" +
$"**Portée :** {Range}\n" + $"**Portée :** {Range}\n" +
$"**Composantes :** {Components}\n" + $"**Composantes :** {Components}\n" +
$"**Durée :** {Duration}\n\n" + $"**Durée :** {Duration}\n" +
$"{DescriptionHtml}\n\n" + $"**Classes :** {Classes}\n" +
$"**Source :** {Source}"; $"**Source :** {Source}\n" +
$"\n" +
$"{DescriptionHtml}";
} }
} }
public override void Parse(ref ContainerBlock.Enumerator enumerator)
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
if (block is Markdig.Syntax.HeadingBlock)
{
var headingBlock = block as Markdig.Syntax.HeadingBlock;
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
{
if (this.Name != null)
{
return;
}
this.Name = headingBlock.Inline.ToMarkdownString();
}
}
if (block is Markdig.Syntax.ParagraphBlock)
{
if (block.IsNewItem())
{
return;
}
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
}
if (block is Markdig.Syntax.ListBlock)
{
var listBlock = block as Markdig.Syntax.ListBlock;
if (listBlock.BulletType == '-')
{
this.Source = "";
foreach (var inblock in listBlock)
{
var regex = new Regex("(?<key>.*?): (?<value>.*)");
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
var str = paragraphBlock.Inline.ToMarkdownString();
var properties = new List<Tuple<string, Action<Spell, string>>>()
{
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
new Tuple<string, Action<Spell, string>>("**Temps d'incantation :** ", (m, s) => m.CastingTime = s),
new Tuple<string, Action<Spell, string>>("**Composantes :** ", (m, s) => m.Components = s),
new Tuple<string, Action<Spell, string>>("**Durée :** ", (m, s) => m.Duration = s),
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
new Tuple<string, Action<Spell, string>>("**Portée :** ", (m, s) => m.Range = s),
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Classes = s),
new Tuple<string, Action<Spell, string>>("", (m,s) =>
{
})
};
foreach (var property in properties)
{
if (str.StartsWith(property.Item1))
{
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
break;
}
}
}
}
}
}
}
else
{
foreach (var inblock in listBlock)
{
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
}
}
}
}
}
}
else if (block is Markdig.Extensions.Tables.Table)
{
var tableBlock = block as Markdig.Extensions.Tables.Table;
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
}
enumerator.MoveNext();
}
}
} }
} }

View file

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using AideDeJeu.Tools;
using Markdig.Syntax; using Markdig.Syntax;
namespace AideDeJeuLib namespace AideDeJeuLib
@ -37,17 +38,122 @@ namespace AideDeJeuLib
{ {
return return
$"# {Name}\n" + $"# {Name}\n" +
$"{AltName}\n" + $"{AltName}\n\n" +
$"_{LevelType}_\n" + $"_{LevelType}_\n" +
$"**Casting Time :** {CastingTime}\n" + $"**Casting Time :** {CastingTime}\n" +
$"**Range :** {Range}\n" + $"**Range :** {Range}\n" +
$"**Components :** {Components}\n" + $"**Components :** {Components}\n" +
$"**Duration :** {Duration}\n\n" + $"**Duration :** {Duration}\n" +
$"{DescriptionHtml}\n\n" + $"**Classes :** {Classes}\n" +
$"**Source :** {Source}"; $"**Source :** {Source}\n" +
$"\n" +
$"{DescriptionHtml}";
} }
} }
public override void Parse(ref ContainerBlock.Enumerator enumerator)
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
if (block is Markdig.Syntax.HeadingBlock)
{
var headingBlock = block as Markdig.Syntax.HeadingBlock;
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
{
if (this.Name != null)
{
return;
}
this.Name = headingBlock.Inline.ToMarkdownString();
}
}
if (block is Markdig.Syntax.ParagraphBlock)
{
if (block.IsNewItem())
{
return;
}
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += paragraphBlock.ToMarkdownString() + "\n";
}
if (block is Markdig.Syntax.ListBlock)
{
var listBlock = block as Markdig.Syntax.ListBlock;
if (listBlock.BulletType == '-')
{
this.Source = "";
foreach (var inblock in listBlock)
{
var regex = new Regex("(?<key>.*?): (?<value>.*)");
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
var str = paragraphBlock.Inline.ToMarkdownString();
var properties = new List<Tuple<string, Action<Spell, string>>>()
{
new Tuple<string, Action<Spell, string>>("AltName: ", (m, s) => m.AltName = s),
new Tuple<string, Action<Spell, string>>("**Casting Time :** ", (m, s) => m.CastingTime = s),
new Tuple<string, Action<Spell, string>>("**Components :** ", (m, s) => m.Components = s),
new Tuple<string, Action<Spell, string>>("**Duration :** ", (m, s) => m.Duration = s),
new Tuple<string, Action<Spell, string>>("LevelType: ", (m, s) => m.LevelType = s),
new Tuple<string, Action<Spell, string>>("**Range :** ", (m, s) => m.Range = s),
new Tuple<string, Action<Spell, string>>("Source: ", (m, s) => m.Source = s),
new Tuple<string, Action<Spell, string>>("Classes: ", (m, s) => m.Classes = s),
new Tuple<string, Action<Spell, string>>("", (m,s) =>
{
})
};
foreach (var property in properties)
{
if (str.StartsWith(property.Item1))
{
property.Item2.Invoke(this, str.Substring(property.Item1.Length));
break;
}
}
}
}
}
}
}
else
{
foreach (var inblock in listBlock)
{
if (inblock is Markdig.Syntax.ListItemBlock)
{
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
foreach (var ininblock in listItemBlock)
{
if (ininblock is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += listBlock.BulletType + " " + paragraphBlock.ToMarkdownString() + "\n";
}
}
}
}
}
}
else if (block is Markdig.Extensions.Tables.Table)
{
var tableBlock = block as Markdig.Extensions.Tables.Table;
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
}
enumerator.MoveNext();
}
}
} }
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff