using System.Text.RegularExpressions; using Microsoft.Maui.Controls; namespace NotesDataAnalyst.NoteContent { public static class NoteLinkManager { private static readonly Regex LinkPattern = new(@"(.*?)", RegexOptions.Compiled); // Метод для вставки HTML-ссылки на заметку public static string InsertLink(string currentText, Note selectedNote) { string linkText = $"{selectedNote.Title}"; return currentText + " " + linkText; } // Метод для извлечения ссылок в HTML public static List<(string Id, string Title)> ParseLinks(string html) { var links = new List<(string Id, string Title)>(); var matches = LinkPattern.Matches(html); foreach (Match match in matches) { string id = match.Groups[1].Value; string title = match.Groups[2].Value; links.Add((id, title)); } return links; } // Реализуем метод NavigateToNoteByIdAsync для перехода к заметке по Id public static async Task NavigateToNoteByIdAsync(string noteId, INavigation navigation) { var note = App.Database.GetAllNotes().FirstOrDefault(n => n.Id == noteId); if (note != null) { await navigation.PushAsync(new NoteDetailPage(note)); } else { await Application.Current.MainPage.DisplayAlert("Ошибка", "Заметка не найдена", "OK"); } } } }