1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 23:16:09 +00:00
This commit is contained in:
Yan Maniez 2019-06-17 00:19:22 +02:00
parent 9222fcd9bf
commit 50a8a6876a

View file

@ -447,7 +447,7 @@ namespace AideDeJeuCmd
var divStyle = txtDiv.GetAttributeValue("style", ""); var divStyle = txtDiv.GetAttributeValue("style", "");
var parsedSpan = new ParsedSpan() var parsedSpan = new ParsedSpan()
{ {
Text = span.InnerText, Text = span.InnerText.Replace("",""),
Style = spanStyle, Style = spanStyle,
IdStyle = spanIdStyle, IdStyle = spanIdStyle,
DivStyle = divStyle, DivStyle = divStyle,
@ -502,6 +502,46 @@ namespace AideDeJeuCmd
bool started = false; bool started = false;
public string MDStyle(string text, string style)
{
text = text.Trim();
if (style.Contains("italic"))
{
text = $"_{text}_";
}
if (style.Contains("bold"))
{
text = $"**{text}**";
}
return text;
}
List<KeyValuePair<string, string>> MDSizes = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("Petite/Très Grande", "P/TG"),
new KeyValuePair<string, string>("Très Petite", "TP"),
new KeyValuePair<string, string>("Très Grande", "TG"),
new KeyValuePair<string, string>("Grande", "G"),
new KeyValuePair<string, string>("Moyenne", "M"),
new KeyValuePair<string, string>("Gigantesque", "Gig"),
//new KeyValuePair<string, string>("Moyenne (métamorphe)", "M"),
//new KeyValuePair<string, string>("Très Petite taille ", "TP"),
new KeyValuePair<string, string>("Petite", "P"),
//new KeyValuePair<string, string>("Petite taille (cynome)", "P"),
//new KeyValuePair<string, string>("Grande taille délémentaires de taille Minuscule", "G"),
};
string ToMDSize(string size)
{
foreach(var mdsize in MDSizes)
{
if(size.Contains(mdsize.Key))
{
return mdsize.Value;
}
}
return size;
}
public void OutputMarkdown(FullText fullText, TextWriter output, TextWriter error) public void OutputMarkdown(FullText fullText, TextWriter output, TextWriter error)
{ {
var page = fullText.Where(l => l.FirstOrDefault().Style.Contains(st16_255))?.FirstOrDefault()?.FirstOrDefault()?.Text; var page = fullText.Where(l => l.FirstOrDefault().Style.Contains(st16_255))?.FirstOrDefault()?.FirstOrDefault()?.Text;
@ -515,31 +555,32 @@ namespace AideDeJeuCmd
string value = ""; string value = "";
if (line.Count > 1) if (line.Count > 1)
{ {
value = line.Skip(1).Select(p => p.Text).Aggregate((p1, p2) => p1.Trim() + " " + p2.Trim()); value = line.Skip(1).Select(p => MDStyle(p.Text, p.Style)).Aggregate((p1, p2) => p1.Trim() + " " + p2.Trim());
} }
string text = MDStyle(keySpan.Text, keySpan.Style);
Console.ForegroundColor = ConsoleColor.DarkGray; Console.ForegroundColor = ConsoleColor.DarkGray;
error.Write($"{keySpan.Text}"); error.Write($"{text}");
error.WriteLine($" {value}"); error.WriteLine($" {value}");
if (keySpan.Style.Contains(st48_0) && keySpan.IdStyle.Contains(idsnn)) if (keySpan.Style.Contains(st48_0) && keySpan.IdStyle.Contains(idsnn))
{ // titre de page { // titre de page
Console.ForegroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Blue;
error.Write($"{keySpan.Text} {value}\n"); error.Write($"{text} {value}\n");
} }
else if (keySpan.Style.Contains(st9_203) && keySpan.IdStyle.Contains(idssnn)) else if (keySpan.Style.Contains(st9_203) && keySpan.IdStyle.Contains(idssnn))
{ // bloodmark { // bloodmark
Console.ForegroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Blue;
error.Write($"{keySpan.Text} {value}\n"); error.Write($"{text} {value}\n");
} }
else if (keySpan.Style.Contains(st16_255) && keySpan.IdStyle.Contains(idsbn)) else if (keySpan.Style.Contains(st16_255) && keySpan.IdStyle.Contains(idsbn))
{ // page { // page
Console.ForegroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Blue;
error.Write($"{keySpan.Text} {value}\n"); error.Write($"{text} {value}\n");
} }
else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idsnn)) else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idsnn))
{ // encadré { // encadré
Console.ForegroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Blue;
error.Write($"{keySpan.Text} {value}\n"); error.Write($"{text} {value}\n");
} }
else if (keySpan.Style.Contains(st11_255) && keySpan.IdStyle.Contains(idssnn)) else if (keySpan.Style.Contains(st11_255) && keySpan.IdStyle.Contains(idssnn))
{ // nom { // nom
@ -555,23 +596,34 @@ namespace AideDeJeuCmd
output.Write("\n<!--/MonsterItem-->\n\n"); output.Write("\n<!--/MonsterItem-->\n\n");
} }
output.Write("<!--MonsterItem Family=\"TomeOfBeasts\"-->\n\n"); output.Write("<!--MonsterItem Family=\"TomeOfBeasts\"-->\n\n");
output.Write($"# <!--Name-->{CultureInfo.CurrentCulture.TextInfo.ToTitleCase(keySpan.Text.ToLower())}<!--/Name-->\n\n- Source: <!--Source-->(LDM p{page})<!--/Source-->\n"); output.Write($"# <!--Name-->{CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower())}<!--/Name-->\n\n- Source: <!--Source-->(LDM p{page})<!--/Source-->\n");
} }
else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssni) && keySpan.Text.Contains("taille")) else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssni) && text.Contains("taille"))
{ // type / size / alignment { // type / size / alignment
// todo : découper type / size / alignment // todo : découper type / size / alignment
var regex = new Regex("^(?<type>.*?) de (taille )?(?<size>.*?)( taille)?, (?<alignment>.*?)$");
var match = regex.Match(text);
var type = match.Groups["type"].Value;
var size = match.Groups["size"].Value;
var alignment = match.Groups["alignment"].Value;
if (type.Length > 0)
{
text = text.Replace(type, $"<!--Type-->{type}<!--/Type-->");
text = text.Replace(",", $" (<!--Size-->{ToMDSize(size)}<!--/Size-->),");
text = text.Replace(alignment, $"<!--Alignment-->{alignment}<!--/Alignment-->");
}
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"-  <!--Type-->{keySpan.Text}<!--/Alignment-->\n"); output.Write($"-  {text}\n");
} }
else if (keySpan.Style.Contains(st8_121) && keySpan.IdStyle.Contains(idssbn)) else if (keySpan.Style.Contains(st8_121) && keySpan.IdStyle.Contains(idssbn))
{ // key / ... { // key / ...
string tag = ""; string tag = "";
if (KeyTags.ContainsKey(keySpan.Text.Trim())) if (KeyTags.ContainsKey(text.Trim()))
{ {
tag = KeyTags[keySpan.Text.Trim()]; tag = KeyTags[text.Trim()];
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"- **{keySpan.Text.Trim()}** <!--{tag}-->{value}<!--/{tag}-->\n"); output.Write($"- **{text.Trim()}** <!--{tag}-->{value}<!--/{tag}-->\n");
} }
else else
{ {
@ -587,7 +639,7 @@ namespace AideDeJeuCmd
{ // ... / value { // ... / value
if (abilities != null) if (abilities != null)
{ {
abilities += keySpan.Text; abilities += text;
if (abilities.Count(c => c == '(') == 6) if (abilities.Count(c => c == '(') == 6)
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
@ -598,33 +650,33 @@ namespace AideDeJeuCmd
else else
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"{keySpan.Text} {value}\n"); output.Write($"{text} {value}\n");
} }
} }
else if (keySpan.Style.Contains(st14_137) && keySpan.IdStyle.Contains(idsnn)) else if (keySpan.Style.Contains(st14_137) && keySpan.IdStyle.Contains(idsnn))
{ // actions / réactions { // actions / réactions
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"\n## {keySpan.Text}\n{value}\n"); output.Write($"\n## {text}\n{value}\n");
} }
else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssnn)) else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssnn))
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"{keySpan.Text.Trim()} {value}\n"); output.Write($"{text.Trim()} {value}\n");
} }
else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssbi)) else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssbi))
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"\n**_{keySpan.Text.Trim()}_** {value}\n"); output.Write($"\n**_{text.Trim()}_** {value}\n");
} }
else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssbn)) else if (keySpan.Style.Contains(st8_0) && keySpan.IdStyle.Contains(idssbn))
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
output.Write($"\n**{keySpan.Text.Trim()}** {value}\n"); output.Write($"\n**{text.Trim()}** {value}\n");
} }
else else
{ {
Console.ForegroundColor = ConsoleColor.Red; Console.ForegroundColor = ConsoleColor.Red;
error.Write($"{keySpan.Text} {value}\n"); error.Write($"{text} {value}\n");
error.Write($"{keySpan.Style}\n"); error.Write($"{keySpan.Style}\n");
error.Write($"{keySpan.IdStyle}\n"); error.Write($"{keySpan.IdStyle}\n");
} }