mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-31 23:45:39 +00:00
Ajustements
This commit is contained in:
parent
80105428a2
commit
72587c773a
6 changed files with 140 additions and 131 deletions
|
|
@ -1,4 +1,7 @@
|
||||||
using System;
|
using AideDeJeu.Tools;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
@ -21,5 +24,123 @@ namespace AideDeJeuLib
|
||||||
public string Source { get; set; }
|
public string Source { 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;
|
||||||
|
//DumpHeadingBlock(headingBlock);
|
||||||
|
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
||||||
|
{
|
||||||
|
if (this.Name != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.Name = headingBlock.Inline.ToMarkdownString();
|
||||||
|
//Console.WriteLine(spell.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
if (block.IsNewItem())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
||||||
|
|
||||||
|
this.DescriptionHtml += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
||||||
|
////DumpParagraphBlock(paragraphBlock);
|
||||||
|
//Console.WriteLine(paragraphBlock.IsBreakable);
|
||||||
|
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
||||||
|
//if(paragraphBlock.IsBreakable)
|
||||||
|
//{
|
||||||
|
// spell.DescriptionHtml += "\n";
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
if (block is Markdig.Syntax.ListBlock)
|
||||||
|
{
|
||||||
|
var listBlock = block as Markdig.Syntax.ListBlock;
|
||||||
|
//DumpListBlock(listBlock);
|
||||||
|
if (listBlock.BulletType == '-')
|
||||||
|
{
|
||||||
|
this.Source = "";
|
||||||
|
foreach (var inblock in listBlock)
|
||||||
|
{
|
||||||
|
//DumpBlock(inblock);
|
||||||
|
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
||||||
|
if (inblock is Markdig.Syntax.ListItemBlock)
|
||||||
|
{
|
||||||
|
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
||||||
|
foreach (var ininblock in listItemBlock)
|
||||||
|
{
|
||||||
|
//DumpBlock(ininblock);
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
//DumpParagraphBlock(paragraphBlock);
|
||||||
|
var str = paragraphBlock.Inline.ToMarkdownString();
|
||||||
|
|
||||||
|
var properties = new List<Tuple<string, Action<Spell, string>>>()
|
||||||
|
{
|
||||||
|
new Tuple<string, Action<Spell, string>>("NameVO: ", (m, s) => m.NameVO = 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)
|
||||||
|
{
|
||||||
|
//DumpBlock(ininblock);
|
||||||
|
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
||||||
|
{
|
||||||
|
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
||||||
|
this.DescriptionHtml += listBlock.BulletType + " " + MarkdownExtensions.MarkdownToHtml(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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,134 +57,18 @@ namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
$"# {Name}\n" +
|
$"# {Name}\n" +
|
||||||
$"- {NameVO}\n" +
|
$"{NameVO}\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\n" +
|
||||||
$"{DescriptionHtml}\n\n" +
|
$"{DescriptionHtml}\n\n" +
|
||||||
$"- **Source :** {Source}";
|
$"**Source :** {Source}";
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
//DumpHeadingBlock(headingBlock);
|
|
||||||
if (headingBlock.HeaderChar == '#' && headingBlock.Level == 1)
|
|
||||||
{
|
|
||||||
if(this.Name != null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.Name = headingBlock.Inline.ToMarkdownString();
|
|
||||||
//Console.WriteLine(spell.Name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
if(block.IsNewItem())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
|
|
||||||
|
|
||||||
this.DescriptionHtml += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
|
|
||||||
////DumpParagraphBlock(paragraphBlock);
|
|
||||||
//Console.WriteLine(paragraphBlock.IsBreakable);
|
|
||||||
//spell.DescriptionHtml += paragraphBlock.Inline.ToContainerString();
|
|
||||||
//if(paragraphBlock.IsBreakable)
|
|
||||||
//{
|
|
||||||
// spell.DescriptionHtml += "\n";
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
if (block is Markdig.Syntax.ListBlock)
|
|
||||||
{
|
|
||||||
var listBlock = block as Markdig.Syntax.ListBlock;
|
|
||||||
//DumpListBlock(listBlock);
|
|
||||||
if (listBlock.BulletType == '-')
|
|
||||||
{
|
|
||||||
this.Source = "";
|
|
||||||
foreach (var inblock in listBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(inblock);
|
|
||||||
var regex = new Regex("(?<key>.*?): (?<value>.*)");
|
|
||||||
if (inblock is Markdig.Syntax.ListItemBlock)
|
|
||||||
{
|
|
||||||
var listItemBlock = inblock as Markdig.Syntax.ListItemBlock;
|
|
||||||
foreach (var ininblock in listItemBlock)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
//DumpParagraphBlock(paragraphBlock);
|
|
||||||
var str = paragraphBlock.Inline.ToMarkdownString();
|
|
||||||
|
|
||||||
var properties = new List<Tuple<string, Action<Spell, string>>>()
|
|
||||||
{
|
|
||||||
new Tuple<string, Action<Spell, string>>("NameVO: ", (m, s) => m.NameVO = 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)
|
|
||||||
{
|
|
||||||
//DumpBlock(ininblock);
|
|
||||||
if (ininblock is Markdig.Syntax.ParagraphBlock)
|
|
||||||
{
|
|
||||||
var paragraphBlock = ininblock as Markdig.Syntax.ParagraphBlock;
|
|
||||||
this.DescriptionHtml += listBlock.BulletType + " " + MarkdownExtensions.MarkdownToHtml(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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,5 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Parse(ref ContainerBlock.Enumerator enumerator)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,8 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
resourceName = "AideDeJeu.Data.spells_vo.md";
|
resourceName = "AideDeJeu.Data.spells_vo.md";
|
||||||
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
|
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
|
||||||
_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(md);
|
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
|
||||||
|
//_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(md);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ItemSourceType.SpellHD:
|
case ItemSourceType.SpellHD:
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
<ContentPage Title=" ">
|
<ContentPage Title=" ">
|
||||||
<StackLayout Orientation="Vertical">
|
<StackLayout Orientation="Vertical">
|
||||||
<StackLayout Margin="10,5,10,0" Padding="0" Spacing="0">
|
<StackLayout Margin="10,5,10,0" Padding="0" Spacing="0">
|
||||||
<Label Text="Listes" Style="{StaticResource Key=subsubsection}" />
|
<Label Text="Listes" Style="{StaticResource Key=subsubsection}" AutomationProperties.IsInAccessibleTree="True" AutomationProperties.Name="test"/>
|
||||||
<Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding ItemsSources, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding ItemsSourcesIndex}" />
|
<Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding ItemsSources, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding ItemsSourcesIndex}" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<ListView SelectionMode="None" ItemsSource="{Binding ItemSourceType, Converter={StaticResource ItemSourceTypeToFilterConverter}}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False" HorizontalOptions="FillAndExpand" >
|
<ListView SelectionMode="None" ItemsSource="{Binding ItemSourceType, Converter={StaticResource ItemSourceTypeToFilterConverter}}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False" HorizontalOptions="FillAndExpand" >
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<ListView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped">
|
<ListView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped">
|
||||||
<ListView.ItemTemplate>
|
<ListView.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<ViewCell>
|
<ViewCell AutomationProperties.IsInAccessibleTree="True" AutomationId="machin" AutomationProperties.Name="hop">
|
||||||
<StackLayout Padding="10" Orientation="Vertical">
|
<StackLayout Padding="10" Orientation="Vertical">
|
||||||
<Label Text="{Binding Name}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="16" />
|
<Label Text="{Binding Name}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="16" />
|
||||||
<Label Text="{Binding NameVOText}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="12" />
|
<Label Text="{Binding NameVOText}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="12" />
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,13 @@ namespace AideDeJeu.Views
|
||||||
//Navigator = new Navigator((Detail as NavigationPage).Navigation);
|
//Navigator = new Navigator((Detail as NavigationPage).Navigation);
|
||||||
//BindingContext = viewModel = new MainViewModel(Navigator);
|
//BindingContext = viewModel = new MainViewModel(Navigator);
|
||||||
BindingContext = Main;
|
BindingContext = Main;
|
||||||
|
|
||||||
|
this.SizeChanged += (o, e) => {
|
||||||
|
if(this.Width > 0 && this.Height > 0)
|
||||||
|
{
|
||||||
|
this.IsPresented = this.Width > this.Height;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnAppearing()
|
protected override void OnAppearing()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue