mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-16 15:19:56 +00:00
Réorg
This commit is contained in:
parent
9be2dac7d6
commit
4e68d6e962
9 changed files with 398 additions and 13 deletions
|
|
@ -16,6 +16,7 @@ namespace AideDeJeu
|
||||||
|
|
||||||
DependencyService.Register<MainViewModel>();
|
DependencyService.Register<MainViewModel>();
|
||||||
DependencyService.Register<BookmarksViewModel>();
|
DependencyService.Register<BookmarksViewModel>();
|
||||||
|
DependencyService.Register<StoreViewModel>();
|
||||||
var vm = DependencyService.Get<MainViewModel>();
|
var vm = DependencyService.Get<MainViewModel>();
|
||||||
var tabbeddPage = new AideDeJeu.Views.MainTabbedPage();
|
var tabbeddPage = new AideDeJeu.Views.MainTabbedPage();
|
||||||
//var mainPage = new ItemDetailPage(new ItemDetailViewModel(new HomeItem()) { Title = "Haches & Dés" });
|
//var mainPage = new ItemDetailPage(new ItemDetailViewModel(new HomeItem()) { Title = "Haches & Dés" });
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace AideDeJeu.Tools
|
||||||
{
|
{
|
||||||
public static class MarkdownExtensions
|
public static class MarkdownExtensions
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
public static Item ToItem(string md)
|
public static Item ToItem(string md)
|
||||||
{
|
{
|
||||||
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
||||||
|
|
@ -216,7 +217,7 @@ namespace AideDeJeu.Tools
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public static Item ToItem(string md)
|
public static Item ToItem(string md)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,13 @@ namespace AideDeJeu.ViewModels
|
||||||
return DependencyService.Get<BookmarksViewModel>();
|
return DependencyService.Get<BookmarksViewModel>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public StoreViewModel Store
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return DependencyService.Get<StoreViewModel>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool isBusy = false;
|
bool isBusy = false;
|
||||||
public bool IsBusy
|
public bool IsBusy
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,13 @@ namespace AideDeJeu.ViewModels
|
||||||
public async Task ExecuteSearchCommandAsync(string searchText)
|
public async Task ExecuteSearchCommandAsync(string searchText)
|
||||||
{
|
{
|
||||||
Main.IsLoading = true;
|
Main.IsLoading = true;
|
||||||
await Task.Run(async () => await Main.PreloadAllItemsAsync());
|
await Task.Run(async () => await Store.PreloadAllItemsAsync());
|
||||||
Items = await Task.Run(async () => await Main.DeepSearchAllItemsAsync(searchText));
|
Items = await Task.Run(async () => await DeepSearchAllItemsAsync(searchText));
|
||||||
Main.IsLoading = false;
|
Main.IsLoading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<MainViewModel.SearchedItem> _Items = null;
|
public IEnumerable<SearchedItem> _Items = null;
|
||||||
public IEnumerable<MainViewModel.SearchedItem> Items
|
public IEnumerable<SearchedItem> Items
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -40,5 +40,47 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _Items, value);
|
SetProperty(ref _Items, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SearchedItem
|
||||||
|
{
|
||||||
|
public string Preview { get; set; }
|
||||||
|
public Item Item { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<SearchedItem>> DeepSearchAllItemsAsync(string searchText)
|
||||||
|
{
|
||||||
|
List<SearchedItem> primaryItems = new List<SearchedItem>();
|
||||||
|
List<SearchedItem> secondaryItems = new List<SearchedItem>();
|
||||||
|
var cleanSearchText = Tools.Helpers.RemoveDiacritics(searchText).ToLower();
|
||||||
|
foreach (var allItem in Store._AllItems)
|
||||||
|
{
|
||||||
|
foreach (var item in allItem.Value.Anchors)
|
||||||
|
{
|
||||||
|
var name = item.Value.Name;
|
||||||
|
var cleanName = Tools.Helpers.RemoveDiacritics(name).ToLower();
|
||||||
|
if (cleanName.Contains(cleanSearchText))
|
||||||
|
{
|
||||||
|
primaryItems.Add(new SearchedItem() { Item = item.Value, Preview = name });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var markdown = item.Value.Markdown;
|
||||||
|
var cleanMarkdown = Tools.Helpers.RemoveDiacritics(markdown).ToLower();
|
||||||
|
if (cleanMarkdown.Contains(cleanSearchText))
|
||||||
|
{
|
||||||
|
int position = cleanMarkdown.IndexOf(cleanSearchText);
|
||||||
|
int startPosition = Math.Max(0, position - 30);
|
||||||
|
int endPosition = Math.Min(markdown.Length, position + searchText.Length + 30);
|
||||||
|
var preview = markdown.Substring(startPosition, endPosition - startPosition - 1);
|
||||||
|
secondaryItems.Add(new SearchedItem() { Item = item.Value, Preview = preview });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
primaryItems.AddRange(secondaryItems);
|
||||||
|
return primaryItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ namespace AideDeJeu.ViewModels
|
||||||
get => _isLoading;
|
get => _isLoading;
|
||||||
set => SetProperty(ref _isLoading, value);
|
set => SetProperty(ref _isLoading, value);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
void AddAnchor(string source, Dictionary<string, Item> anchors, Item item)
|
void AddAnchor(string source, Dictionary<string, Item> anchors, Item item)
|
||||||
{
|
{
|
||||||
if (item != null && item.Name != null)
|
if (item != null && item.Name != null)
|
||||||
|
|
@ -164,7 +164,7 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
return itemWithAnchors.Item;
|
return itemWithAnchors.Item;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
public Command LoadItemsCommand { get; private set; }
|
public Command LoadItemsCommand { get; private set; }
|
||||||
|
|
||||||
private Navigator _Navigator = null;
|
private Navigator _Navigator = null;
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ namespace AideDeJeu.ViewModels
|
||||||
var with = match.Groups["with"].Value;
|
var with = match.Groups["with"].Value;
|
||||||
Main.IsBusy = true;
|
Main.IsBusy = true;
|
||||||
Main.IsLoading = true;
|
Main.IsLoading = true;
|
||||||
var item = await Task.Run(async () => await Main.GetItemFromDataAsync(file, anchor));
|
var item = await Task.Run(async () => await Store.GetItemFromDataAsync(file, anchor));
|
||||||
Main.IsBusy = false;
|
Main.IsBusy = false;
|
||||||
Main.IsLoading = false;
|
Main.IsLoading = false;
|
||||||
if (item != null)
|
if (item != null)
|
||||||
|
|
|
||||||
333
AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs
Normal file
333
AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs
Normal file
|
|
@ -0,0 +1,333 @@
|
||||||
|
using AideDeJeu.Tools;
|
||||||
|
using AideDeJeuLib;
|
||||||
|
using Markdig;
|
||||||
|
using Markdig.Parsers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AideDeJeu.ViewModels
|
||||||
|
{
|
||||||
|
public class StoreViewModel : BaseViewModel
|
||||||
|
{
|
||||||
|
public static Item ToItem(string md)
|
||||||
|
{
|
||||||
|
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
|
||||||
|
var document = MarkdownParser.Parse(md, pipeline);
|
||||||
|
|
||||||
|
var enumerator = document.GetEnumerator();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
enumerator.MoveNext();
|
||||||
|
while (enumerator.Current != null)
|
||||||
|
{
|
||||||
|
var block = enumerator.Current;
|
||||||
|
|
||||||
|
if (block is HtmlBlock)
|
||||||
|
{
|
||||||
|
if (IsNewItem(block))
|
||||||
|
{
|
||||||
|
var item = ParseItem(ref enumerator);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enumerator.MoveNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
enumerator.Dispose();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Item ParseItem(ref ContainerBlock.Enumerator enumerator)
|
||||||
|
{
|
||||||
|
var currentItem = GetNewItem(enumerator.Current);
|
||||||
|
|
||||||
|
if (currentItem != null)
|
||||||
|
{
|
||||||
|
enumerator.MoveNext();
|
||||||
|
while (enumerator.Current != null)
|
||||||
|
{
|
||||||
|
var block = enumerator.Current;
|
||||||
|
|
||||||
|
if (block is HtmlBlock)
|
||||||
|
{
|
||||||
|
if (IsClosingItem(block))
|
||||||
|
{
|
||||||
|
return currentItem;
|
||||||
|
}
|
||||||
|
else if (IsNewItem(block))
|
||||||
|
{
|
||||||
|
var subItem = ParseItem(ref enumerator);
|
||||||
|
|
||||||
|
var propertyName = subItem.GetType().Name;
|
||||||
|
|
||||||
|
if (currentItem.GetType().GetProperty(propertyName) != null)
|
||||||
|
{
|
||||||
|
PropertyInfo prop = currentItem.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
|
||||||
|
if (null != prop && prop.CanWrite)
|
||||||
|
{
|
||||||
|
prop.SetValue(currentItem, subItem, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currentItem is Items)
|
||||||
|
{
|
||||||
|
var items = currentItem as Items;
|
||||||
|
items.Add(subItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else // if (block is ContainerBlock)
|
||||||
|
{
|
||||||
|
ParseItemProperties(currentItem, block);
|
||||||
|
}
|
||||||
|
|
||||||
|
currentItem.Markdown += enumerator.Current.ToMarkdownString();
|
||||||
|
|
||||||
|
enumerator.MoveNext();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return currentItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ParseItemProperties(Item item, Block block)
|
||||||
|
{
|
||||||
|
switch (block)
|
||||||
|
{
|
||||||
|
case Markdig.Extensions.Tables.Table table:
|
||||||
|
ParseItemProperties(item, table);
|
||||||
|
break;
|
||||||
|
case ContainerBlock blocks:
|
||||||
|
ParseItemProperties(item, blocks);
|
||||||
|
break;
|
||||||
|
case LeafBlock leaf:
|
||||||
|
ParseItemProperties(item, leaf.Inline);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ParseItemProperties(Item item, ContainerBlock blocks)
|
||||||
|
{
|
||||||
|
foreach (var block in blocks)
|
||||||
|
{
|
||||||
|
ParseItemProperties(item, block);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ParseItemProperties(Item item, ContainerInline inlines)
|
||||||
|
{
|
||||||
|
if (inlines == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PropertyInfo prop = null;
|
||||||
|
foreach (var inline in inlines)
|
||||||
|
{
|
||||||
|
if (inline is HtmlInline)
|
||||||
|
{
|
||||||
|
var tag = (inline as HtmlInline).Tag;
|
||||||
|
if (tag == "<!--br-->" || tag == "<br>")
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (tag.StartsWith("<!--/"))
|
||||||
|
{
|
||||||
|
prop = null;
|
||||||
|
}
|
||||||
|
else if (tag.StartsWith("<!--") && !tag.StartsWith("<!--/"))
|
||||||
|
{
|
||||||
|
var propertyName = tag.Substring(4, tag.Length - 7);
|
||||||
|
prop = item.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (null != prop && prop.CanWrite)
|
||||||
|
{
|
||||||
|
prop.SetValue(item, inline.ToMarkdownString(), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static bool IsNewItem(Block block)
|
||||||
|
{
|
||||||
|
var htmlBlock = block as HtmlBlock;
|
||||||
|
if (htmlBlock.Type == HtmlBlockType.Comment)
|
||||||
|
{
|
||||||
|
var tag = htmlBlock.Lines.Lines.FirstOrDefault().Slice.ToString();
|
||||||
|
if (!string.IsNullOrEmpty(tag) && tag != "<!--br-->" && tag != "<br>")
|
||||||
|
{
|
||||||
|
if (tag.StartsWith("<!--") && !tag.StartsWith("<!--/"))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsClosingItem(Block block)
|
||||||
|
{
|
||||||
|
var htmlBlock = block as HtmlBlock;
|
||||||
|
if (htmlBlock.Type == HtmlBlockType.Comment)
|
||||||
|
{
|
||||||
|
var tag = htmlBlock.Lines.Lines.FirstOrDefault().Slice.ToString();
|
||||||
|
if (!string.IsNullOrEmpty(tag) && tag != "<!--br-->" && tag != "<br>")
|
||||||
|
{
|
||||||
|
if (tag.StartsWith("<!--/"))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Item GetNewItem(Block block)
|
||||||
|
{
|
||||||
|
var htmlBlock = block as HtmlBlock;
|
||||||
|
if (htmlBlock.Type == HtmlBlockType.Comment)
|
||||||
|
{
|
||||||
|
var tag = htmlBlock.Lines.Lines.FirstOrDefault().Slice.ToString();
|
||||||
|
if (!string.IsNullOrEmpty(tag) && tag != "<!--br-->" && tag != "<br>")
|
||||||
|
{
|
||||||
|
if (tag.StartsWith("<!--") && !tag.StartsWith("<!--/"))
|
||||||
|
{
|
||||||
|
var name = $"AideDeJeuLib.{tag.Substring(4, tag.Length - 7)}, AideDeJeu";
|
||||||
|
var type = Type.GetType(name);
|
||||||
|
var instance = Activator.CreateInstance(type) as Item;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void AddAnchor(string source, Dictionary<string, Item> anchors, Item item)
|
||||||
|
{
|
||||||
|
if (item != null && item.Name != null)
|
||||||
|
{
|
||||||
|
var basename = Helpers.IdFromName(item.Name);
|
||||||
|
//var name = $"{source}.md#{basename}";
|
||||||
|
var name = $"{basename}";
|
||||||
|
int index = 0;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (!anchors.ContainsKey(name))
|
||||||
|
{
|
||||||
|
item.Id = name;
|
||||||
|
anchors.Add(name, item);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
//name = $"{source}.md#{basename}{index}";
|
||||||
|
name = $"{basename}{index}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void MakeAnchors(string source, Dictionary<string, Item> anchors, Item baseItem)
|
||||||
|
{
|
||||||
|
AddAnchor(source, anchors, baseItem);
|
||||||
|
if (baseItem is Items)
|
||||||
|
{
|
||||||
|
foreach (var item in (baseItem as Items))
|
||||||
|
{
|
||||||
|
MakeAnchors(source, anchors, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ItemWithAnchors
|
||||||
|
{
|
||||||
|
public Item Item { get; set; }
|
||||||
|
public Dictionary<string, Item> Anchors { get; set; } = new Dictionary<string, Item>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary<string, ItemWithAnchors> _AllItems = new Dictionary<string, ItemWithAnchors>();
|
||||||
|
|
||||||
|
public async Task PreloadAllItemsAsync()
|
||||||
|
{
|
||||||
|
foreach (var resourceName in Tools.Helpers.GetResourceNames())
|
||||||
|
{
|
||||||
|
var regex = new Regex(@"AideDeJeu\.Data\.(?<name>.*?)\.md");
|
||||||
|
var match = regex.Match(resourceName);
|
||||||
|
var source = match.Groups["name"].Value;
|
||||||
|
if (!string.IsNullOrEmpty(source))
|
||||||
|
{
|
||||||
|
if (!_AllItems.ContainsKey(source))
|
||||||
|
{
|
||||||
|
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
|
||||||
|
if (md != null)
|
||||||
|
{
|
||||||
|
var item = ToItem(md);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
var anchors = new Dictionary<string, Item>();
|
||||||
|
MakeAnchors(source, anchors, item);
|
||||||
|
_AllItems[source] = new ItemWithAnchors() { Item = item, Anchors = anchors };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Item> GetItemFromDataAsync(string source, string anchor)
|
||||||
|
{
|
||||||
|
//await Task.Delay(3000);
|
||||||
|
if (!_AllItems.ContainsKey(source))
|
||||||
|
{
|
||||||
|
//var md = await Tools.Helpers.GetStringFromUrl($"https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/{source}.md");
|
||||||
|
var md = await Tools.Helpers.GetResourceStringAsync($"AideDeJeu.Data.{source}.md");
|
||||||
|
if (md != null)
|
||||||
|
{
|
||||||
|
var item = ToItem(md);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
var anchors = new Dictionary<string, Item>();
|
||||||
|
MakeAnchors(source, anchors, item);
|
||||||
|
_AllItems[source] = new ItemWithAnchors() { Item = item, Anchors = anchors };
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var itemWithAnchors = _AllItems[source];
|
||||||
|
if (!string.IsNullOrEmpty(anchor))
|
||||||
|
{
|
||||||
|
if (itemWithAnchors.Anchors.ContainsKey(anchor))
|
||||||
|
{
|
||||||
|
return itemWithAnchors.Anchors[anchor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return itemWithAnchors.Item;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
using static AideDeJeu.ViewModels.DeepSearchViewModel;
|
||||||
|
|
||||||
namespace AideDeJeu.Views
|
namespace AideDeJeu.Views
|
||||||
{
|
{
|
||||||
|
|
@ -30,7 +31,7 @@ namespace AideDeJeu.Views
|
||||||
|
|
||||||
private async void ItemsListView_ItemTapped(object sender, ItemTappedEventArgs e)
|
private async void ItemsListView_ItemTapped(object sender, ItemTappedEventArgs e)
|
||||||
{
|
{
|
||||||
var searchedItem = e.Item as MainViewModel.SearchedItem;
|
var searchedItem = e.Item as SearchedItem;
|
||||||
await Main.Navigator.GotoItemDetailPageAsync(searchedItem.Item);
|
await Main.Navigator.GotoItemDetailPageAsync(searchedItem.Item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AideDeJeu.Tools;
|
using AideDeJeu.Tools;
|
||||||
|
using AideDeJeu.ViewModels;
|
||||||
using AideDeJeuLib;
|
using AideDeJeuLib;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -45,8 +46,7 @@ namespace AideDeJeuCmd
|
||||||
.Build();
|
.Build();
|
||||||
//var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
//var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
|
||||||
//DumpMarkdownDocument(document);
|
//DumpMarkdownDocument(document);
|
||||||
|
var monsters = AideDeJeu.ViewModels.StoreViewModel.ToItem(md) as IEnumerable<Monster>; // document.ToMonsters<MonsterHD>();
|
||||||
var monsters = AideDeJeu.Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Monster>; // document.ToMonsters<MonsterHD>();
|
|
||||||
//document.Dump();
|
//document.Dump();
|
||||||
Console.WriteLine("ok");
|
Console.WriteLine("ok");
|
||||||
//var md2 = monsters.ToMarkdownString();
|
//var md2 = monsters.ToMarkdownString();
|
||||||
|
|
@ -64,7 +64,7 @@ namespace AideDeJeuCmd
|
||||||
|
|
||||||
var result = string.Empty;
|
var result = string.Empty;
|
||||||
var md = await LoadStringAsync(dataDir + "spells_hd.md");
|
var md = await LoadStringAsync(dataDir + "spells_hd.md");
|
||||||
var items = AideDeJeu.Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Spell>;
|
var items = StoreViewModel.ToItem(md) as IEnumerable<Spell>;
|
||||||
|
|
||||||
var classes = new string[]
|
var classes = new string[]
|
||||||
{
|
{
|
||||||
|
|
@ -130,7 +130,7 @@ namespace AideDeJeuCmd
|
||||||
//if (name.Contains("_hd."))
|
//if (name.Contains("_hd."))
|
||||||
//{
|
//{
|
||||||
var md = await Helpers.GetResourceStringAsync(name);
|
var md = await Helpers.GetResourceStringAsync(name);
|
||||||
var item = AideDeJeu.Tools.MarkdownExtensions.ToItem(md);
|
var item = StoreViewModel.ToItem(md);
|
||||||
allitems.Add(name, item);
|
allitems.Add(name, item);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue