using aeqw89.DataKeys; using Beam.Dynamic; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Beam.Temporary.Cli { public static class CommonTransformers { public static HtmlTransformer ArticleDataTransformer(DataBindings? binding) => (x) => { return new ArticleData() { Authors = [OnlineCleaner.Clean(binding?.Authors?.Resolve(x) ?? "")], Name = OnlineCleaner.Clean(binding?.Title?.ResolveString(x) ?? ""), Categories = OnlineCleaner.Clean(binding?.Tags?.ResolveString(x) ?? "").Split(';') ?? [], Description = OnlineCleaner.Clean(binding?.Description?.ResolveString(x) ?? "") }; }; public static HtmlTransformer DocumentTransformer(DataBindings? binding, IDocumentMetaData? metaData = null) => (x) => { var resolved = binding?.Resolve(x); var articleData = new ArticleData() { Name = OnlineCleaner.Clean(resolved?.Title), }; Dictionary, IDocumentMetaData> meta = []; meta.Add(IArchitecture.Default.ChapterKey, articleData); if (metaData is not null) meta.Add(IArchitecture.Default.BookKey, metaData); return new StringDocument(Path.GetRandomFileName(), OnlineCleaner.Clean(resolved?.Content)) { MetaData = meta }; }; } }