From f8df8078df159951e50feb1694d2e19a3b5c7a6f Mon Sep 17 00:00:00 2001 From: Maniez Yan Date: Fri, 18 Jan 2019 23:35:57 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9coupage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AideDeJeu/AideDeJeu/Models/Item.cs | 36 ++++++++++++++- AideDeJeu/AideDeJeuCmd/Program.cs | 70 +++++++++++++++++++----------- 2 files changed, 78 insertions(+), 28 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Models/Item.cs b/AideDeJeu/AideDeJeu/Models/Item.cs index fd01e7a8..e85b298a 100644 --- a/AideDeJeu/AideDeJeu/Models/Item.cs +++ b/AideDeJeu/AideDeJeu/Models/Item.cs @@ -1,4 +1,5 @@ -using AideDeJeu.ViewModels; +using AideDeJeu.Tools; +using AideDeJeu.ViewModels; using SQLite; using System; using System.Collections; @@ -235,7 +236,7 @@ namespace AideDeJeuLib { get { - return $"---\n{Yaml}---\n{Markdown}"; + return $"---\n{Yaml}---\n{CleanMarkdown}"; } } @@ -260,5 +261,36 @@ namespace AideDeJeuLib item.Markdown = yamlmd.Substring(parser.Current.End.Index + 1); return post as Item; } + + public string CleanMarkdown + { + get + { + var md = Markdown; + var rx = new Regex(""); + md = rx.Replace(md, ""); + return md; + } + } + + public string NewId + { + get + { + var id = string.IsNullOrEmpty(RootId) ? Id : RootId; + if(id.Contains("_hd.md")) + { + return "hd_" + Helpers.RemoveDiacritics(id).Replace("_hd.md#", "_").Replace("_hd.md", "").Replace("-","_").Replace("__","_").ToLower() + ".md"; + } + else if(id.Contains("_vo.md")) + { + return "srd_" + Helpers.RemoveDiacritics(id).Replace("_vo.md#", "_").Replace("_vo.md", "").Replace("-", "_").Replace("__", "_").ToLower() + ".md"; + } + else + { + return Helpers.RemoveDiacritics(id).Replace("-", "_").Replace("__", "_").ToLower() + ".md"; + } + } + } } } diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index cac5a8fc..5191a8b9 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; +using System.Net; using System.Runtime.Serialization.Json; using System.Text; using System.Text.RegularExpressions; @@ -292,6 +293,8 @@ namespace AideDeJeuCmd Console.ReadLine(); } + static string outDir = @"..\..\..\..\..\Data\HD\"; + static async Task Main(string[] args) { Tests.Xamarin.Forms.Mocks.MockForms.Init(); @@ -321,37 +324,52 @@ namespace AideDeJeuCmd var monstersVO = await context.MonstersVO.ToListAsync(); var spells = await context.Spells.ToListAsync(); - var item1 = monsters.FirstOrDefault(); + //var item1 = monsters.FirstOrDefault(); - var test1y = item1.Yaml; - var test1m = item1.Markdown; - var test1ym = item1.YamlMarkdown; + //var test1y = item1.Yaml; + //var test1m = item1.Markdown; + //var test1ym = item1.YamlMarkdown; - var item2 = Item.ParseYamlMarkdown(test1ym); + //var item2 = Item.ParseYamlMarkdown(test1ym); - var test2y = item2.Yaml; - var test2m = item2.Markdown; - var test2ym = item2.YamlMarkdown; + //var test2y = item2.Yaml; + //var test2m = item2.Markdown; + //var test2ym = item2.YamlMarkdown; - var serializer = new SerializerBuilder() - .WithTagMapping("!MonsterHD", typeof(MonsterHD)) - .WithTagMapping("!MonsterVO", typeof(MonsterVO)) - .WithTagMapping("!Monsters", typeof(List)) - .EnsureRoundtrip() - .WithNamingConvention(new PascalCaseNamingConvention()) - .Build(); - var deserializer = new DeserializerBuilder() - .WithTagMapping("!MonsterHD", typeof(MonsterHD)) - .WithTagMapping("!MonsterVO", typeof(MonsterVO)) - .WithTagMapping("!Monsters", typeof(List)) - .WithNamingConvention(new PascalCaseNamingConvention()) - .Build(); - var yaml = serializer.Serialize(monsters); - var sr = new StringReader(yaml); - var deser = deserializer.Deserialize(sr); + var items = await context.Items.ToListAsync(); - var truc = Item.ParseYamlMarkdown(monsters.FirstOrDefault().YamlMarkdown); - Console.WriteLine(yaml); + var matchids = new Dictionary(); + + foreach (var item in await context.Items.ToListAsync()) + { + matchids[item.Id] = Helpers.RemoveDiacritics(item.Id).Replace(".md#", "_") + ".md"; + } + + foreach (var item in await context.Items.ToListAsync()) + { + var filename = Path.Combine(outDir, WebUtility.UrlEncode(item.NewId)); + await SaveStringAsync(filename, item.YamlMarkdown); + } + + //var serializer = new SerializerBuilder() + // .WithTagMapping("!MonsterHD", typeof(MonsterHD)) + // .WithTagMapping("!MonsterVO", typeof(MonsterVO)) + // .WithTagMapping("!Monsters", typeof(List)) + // .EnsureRoundtrip() + // .WithNamingConvention(new PascalCaseNamingConvention()) + // .Build(); + //var deserializer = new DeserializerBuilder() + // .WithTagMapping("!MonsterHD", typeof(MonsterHD)) + // .WithTagMapping("!MonsterVO", typeof(MonsterVO)) + // .WithTagMapping("!Monsters", typeof(List)) + // .WithNamingConvention(new PascalCaseNamingConvention()) + // .Build(); + //var yaml = serializer.Serialize(monsters); + //var sr = new StringReader(yaml); + //var deser = deserializer.Deserialize(sr); + + //var truc = Item.ParseYamlMarkdown(monsters.FirstOrDefault().YamlMarkdown); + //Console.WriteLine(yaml); }