private Slide BuildSlide(IEnumerable <Token> tokens) { if (tokens == null || !tokens.Any()) { return(null); } var xml = new XElement("tokens", from t in tokens.NonCodeTokens().First() select new XElement("token", new XAttribute("type", t.Type.ToString()), new XAttribute("value", t.Value), new XAttribute("rawValue", t.RawValue), new XAttribute("start", t.Start), new XAttribute("end", t.End)), from c in tokens.CodeTokens().First() .Where(x => x.Type.Equals(TokenType.InlineCode) && x.Value.Length > 3) select new XElement("code", new XAttribute("language", c.Value.Substring(3)), new XCData( tokens.Where(tk => tk.IsCode).Aggregate(string.Empty, (aggregated, token) => { aggregated += token.RawValue + Environment.NewLine; return(aggregated); }))) ); var transXml = _apiService.TransformXml(xml, "token2slide.xslt").GetAwaiter().GetResult(); if (!string.IsNullOrEmpty(transXml)) { return(XmlHelper2 <Slide> .LoadFromString(transXml)); } return(new Slide()); }
public async Task <string> Parse(Slide item) { var xml = XmlHelper2 <Slide> .Save(item); return(await _apiService.TransformXml(XElement.Load(new StringReader(xml)), "slide2markdown.xslt")); }