From 2ebd971309b9bc049dd794b7f7f39321fed7a799 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Tue, 12 Jun 2018 18:52:30 +0200 Subject: [PATCH] Parsing table --- .../AideDeJeu/Tools/MarkdownExtensions.cs | 25 ++++++++++++++++--- AideDeJeu/AideDeJeuCmd/Program.cs | 6 ++++- Data/monsters_hd.md | 5 ++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Tools/MarkdownExtensions.cs b/AideDeJeu/AideDeJeu/Tools/MarkdownExtensions.cs index f0fc615a..7f5cb57b 100644 --- a/AideDeJeu/AideDeJeu/Tools/MarkdownExtensions.cs +++ b/AideDeJeu/AideDeJeu/Tools/MarkdownExtensions.cs @@ -157,7 +157,7 @@ namespace AideDeJeu.Tools //Console.WriteLine(spell.Name); } } - if (block is Markdig.Syntax.ParagraphBlock) + else if (block is Markdig.Syntax.ParagraphBlock) { var paragraphBlock = block as Markdig.Syntax.ParagraphBlock; actions.Add(paragraphBlock.ToParagraphString()); @@ -169,7 +169,7 @@ namespace AideDeJeu.Tools // spell.DescriptionHtml += "\n"; //} } - if (block is Markdig.Syntax.ListBlock) + else if (block is Markdig.Syntax.ListBlock) { var listBlock = block as Markdig.Syntax.ListBlock; //DumpListBlock(listBlock); @@ -260,6 +260,24 @@ namespace AideDeJeu.Tools } } } + else if(block is Markdig.Extensions.Tables.Table) + { + var table = block as Markdig.Extensions.Tables.Table; + foreach(var blockrow in table) + { + var row = blockrow as Markdig.Extensions.Tables.TableRow; + foreach(var blockcell in row) + { + var cell = blockcell as Markdig.Extensions.Tables.TableCell; + foreach(var blockpar in cell) + { + var par = blockpar as Markdig.Syntax.ParagraphBlock; + Debug.WriteLine(par.ToParagraphString()); + } + + } + } + } } if (monster != null) @@ -436,7 +454,8 @@ namespace AideDeJeu.Tools { foreach (var block in document) { - block.Dump(); + Debug.WriteLine(block.GetType()); + //block.Dump(); } } diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index d6103054..700bc8a2 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -2,6 +2,7 @@ using AideDeJeu.Tools; using AideDeJeuLib.Monsters; using AideDeJeuLib.Spells; +using Markdig; using System; using System.Collections.Generic; using System.Diagnostics; @@ -44,7 +45,10 @@ namespace AideDeJeuCmd using (var sr = new StreamReader(filename)) { var md = await sr.ReadToEndAsync(); - var document = Markdig.Parsers.MarkdownParser.Parse(md); + var pipeline = new MarkdownPipelineBuilder() + .UsePipeTables() + .Build(); + var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline); //DumpMarkdownDocument(document); var monsters = document.ToMonsters(); diff --git a/Data/monsters_hd.md b/Data/monsters_hd.md index aa853dd2..898f4352 100644 --- a/Data/monsters_hd.md +++ b/Data/monsters_hd.md @@ -50,10 +50,11 @@ L'aboleth peut effectuer 3 actions légendaires qu'il choisit parmi celles décr - ArmorClass: CA 15 (armure naturelle) - HitPoints: 104 (16d8+32) - Speed: 9 m au sol -+-------+-------+-------+-------+-------+-------+ + | FOR | DEX | CON | INT | SAG | CHA | +| --- | --- | --- | --- | --- | --- | |16 (+3)|14 (+2)|15 (+2)|18 (+4)|13 (+1)|14 (+2)| -+-------+-------+-------+-------+-------+-------+ + - SavingThrows: Int +7, Sag +4, Cha +5 - Competencies: Intimidation +7, Perception +6, Perspicacité +6 - DamageResistancies: acide et froid