mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 15:36:07 +00:00 
			
		
		
		
	Réorg liens markdown
This commit is contained in:
		
							parent
							
								
									5f6422bc3e
								
							
						
					
					
						commit
						0f19bc9195
					
				
					 5 changed files with 44 additions and 48 deletions
				
			
		|  | @ -53,5 +53,16 @@ namespace AideDeJeu.Tools | |||
|             return new string(chars).Normalize(NormalizationForm.FormC); | ||||
|         } | ||||
| 
 | ||||
|         public static string Capitalize(string text) | ||||
|         { | ||||
|             return string.Concat(text.Take(1)).ToUpper() + string.Concat(text.Skip(1)).ToString().ToLower(); | ||||
|         } | ||||
| 
 | ||||
|         public static string IdFromName(string name) | ||||
|         { | ||||
|             return RemoveDiacritics(name.ToLower().Replace(" ", "-")); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -2,6 +2,9 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.ObjectModel; | ||||
| using System.Linq; | ||||
| using System.Text.RegularExpressions; | ||||
| using System.Threading.Tasks; | ||||
| using Xamarin.Forms; | ||||
| 
 | ||||
| namespace AideDeJeu.ViewModels | ||||
|  | @ -155,5 +158,26 @@ namespace AideDeJeu.ViewModels | |||
|                     await GetItemsViewModel(ItemSourceType).ExecuteLoadItemsCommandAsync(); | ||||
|                 }); | ||||
|         } | ||||
| 
 | ||||
|         public async Task NavigateToLink(string s) | ||||
|         { | ||||
|             var regex = new Regex("/(?<file>.*)\\.md#(?<anchor>.*)"); | ||||
|             var match = regex.Match(s); | ||||
|             var file = match.Groups["file"].Value; | ||||
|             var anchor = match.Groups["anchor"].Value; | ||||
|             if (file == "spells_hd") | ||||
|             { | ||||
|                 var spells = await GetItemsViewModel(ItemSourceType.SpellHD).GetAllItemsAsync(); | ||||
|                 var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Id) == anchor).FirstOrDefault(); | ||||
|                 await Navigator.GotoSpellDetailPageAsync(spell); | ||||
|             } | ||||
|             else if (file == "monsters_hd") | ||||
|             { | ||||
|                 var monsters = await GetItemsViewModel(ItemSourceType.MonsterHD).GetAllItemsAsync(); | ||||
|                 var monster = monsters.Where(i => Tools.Helpers.IdFromName(i.Id) == anchor).FirstOrDefault(); | ||||
|                 await Navigator.GotoMonsterDetailPageAsync(monster); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  | @ -5,6 +5,7 @@ using AideDeJeuLib.Spells; | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Text; | ||||
| using System.Text.RegularExpressions; | ||||
| using System.Threading.Tasks; | ||||
| using Xamarin.Forms; | ||||
| 
 | ||||
|  | @ -51,5 +52,7 @@ namespace AideDeJeu.ViewModels | |||
|             vm.LoadItemCommand.Execute(null); | ||||
|             await Navigation.PushAsync(new SpellDetailPage(vm)); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -89,11 +89,11 @@ | |||
| 
 | ||||
|             <Label Text="Réactions" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
|             <!--<Label FormattedText="{Binding Item.Reactions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" />--> | ||||
|             <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Reactions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
|             <mdview:MarkdownView x:Name="mdReactions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.Reactions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.Reactions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
| 
 | ||||
|             <Label Text="Actions légendaires" Style="{StaticResource Key=subsubsection}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
|             <!--<Label FormattedText="{Binding Item.LegendaryActions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" />--> | ||||
|             <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.LegendaryActions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
|             <mdview:MarkdownView x:Name="mdLegendaryActions" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Item.LegendaryActions, Converter={StaticResource HtmlNodesToFormattedStringConverter}}" IsVisible="{Binding Item.LegendaryActions, Converter={StaticResource NullToFalseConverter}}" /> | ||||
| 
 | ||||
|             <!--<ListView ItemsSource="{Binding Item.SpecialFeaturesNodes}"> | ||||
|                 <ListView.ItemTemplate> | ||||
|  |  | |||
|  | @ -26,54 +26,12 @@ namespace AideDeJeu.Views | |||
| 
 | ||||
|             BindingContext = this.viewModel = viewModel; | ||||
| 
 | ||||
|             mdSpecialFeatures.NavigateToLink = async(s) => await NavigateToLink(s); | ||||
|             mdActions.NavigateToLink = async (s) => await NavigateToLink(s); | ||||
|             mdSpecialFeatures.NavigateToLink = async(s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdReactions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|             mdLegendaryActions.NavigateToLink = async (s) => await viewModel.Main.NavigateToLink(s); | ||||
|         } | ||||
| 
 | ||||
|         public async Task NavigateToLink(string s) | ||||
|         { | ||||
|             var regex = new Regex("/(?<file>.*)\\.md#(?<anchor>.*)"); | ||||
|             var match = regex.Match(s); | ||||
|             var file = match.Groups["file"].Value; | ||||
|             var anchor = match.Groups["anchor"].Value; | ||||
|             if (file == "spells_hd") | ||||
|             { | ||||
|                 var spells = await viewModel.Main.GetItemsViewModel(ItemSourceType.SpellHD).GetAllItemsAsync(); | ||||
|                 var spell = spells.Where(i => IdFromName(i.Id) == anchor).FirstOrDefault(); | ||||
|                 var page = new SpellDetailPage(new SpellDetailViewModel(spell as Spell)); | ||||
|                 await Navigation.PushAsync(page); | ||||
|             } | ||||
|             else if (file == "monsters_hd") | ||||
|             { | ||||
|                 var monsters = await viewModel.Main.GetItemsViewModel(ItemSourceType.MonsterHD).GetAllItemsAsync(); | ||||
|                 var monster = monsters.Where(i => IdFromName(i.Id) == anchor).FirstOrDefault(); | ||||
|                 var page = new MonsterDetailPage(new MonsterDetailViewModel(monster as Monster)); | ||||
|                 await Navigation.PushAsync(page); | ||||
|             } | ||||
|             //Device.OpenUri(new Uri(s)); | ||||
|         } | ||||
| 
 | ||||
|         public static string Capitalize(string text) | ||||
|         { | ||||
|             return string.Concat(text.Take(1)).ToUpper() + string.Concat(text.Skip(1)).ToString().ToLower(); | ||||
|         } | ||||
| 
 | ||||
|         public static string RemoveDiacritics(string text) | ||||
|         { | ||||
|             if (string.IsNullOrWhiteSpace(text)) | ||||
|                 return text; | ||||
| 
 | ||||
|             text = text.Normalize(NormalizationForm.FormD); | ||||
|             var chars = text.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark).ToArray(); | ||||
|             return new string(chars).Normalize(NormalizationForm.FormC); | ||||
|         } | ||||
| 
 | ||||
|         static string IdFromName(string name) | ||||
|         { | ||||
|             return RemoveDiacritics(name.ToLower().Replace(" ", "-")); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         public MonsterDetailPage() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez