public ActionResult LoremIpsum() { Dialect dialect = Dialect.LooseyGoosey; dialect.IncludeApocrypha = false; TextGenerator tg = new TextGenerator(dialect); List <Sentence> sentences = new List <Sentence>(); for (int i = 0; i < 1000; i++) { Sentence s = tg.GenerateSentence(); sentences.Add(s); } StringBuilder spitBackSb = new StringBuilder(); StringBuilder bracketSb = new StringBuilder(); StringBuilder posSb = new StringBuilder(); StringBuilder glossSb = new StringBuilder(); StringBuilder colorized = new StringBuilder(); StringBuilder errors = new StringBuilder(); HtmlFormatter hf = new HtmlFormatter(); StringBuilder sb = new StringBuilder(); foreach (Sentence s in sentences) { Sentence parsedSentence = s; string normalized; //////// TP try { normalized = parsedSentence.ToString("g", dialect); spitBackSb.AppendLine(normalized.ToHtml() + "<br/>"); } catch (Exception ex) { string error = "[[CANNOT REPEAT BACK: " + ex.Message + "]]"; spitBackSb.AppendLine(hf.BoldTheWords(error.ToHtml()) + "<br/>"); errors.Append(error); } try { string result = parsedSentence.ToString("html", dialect); //if (result.Replace("<span", "").Contains("<")) //{ // throw new InvalidOperationException("No HTML allowed in input"); //} colorized.AppendLine(result + "<br/>"); } catch (Exception ex) { string error = "[[CANNOT COLORIZE: " + ex.Message + "]]"; spitBackSb.AppendLine(hf.BoldTheWords(error.ToHtml()) + "<br/>"); errors.Append(error); } //////// TP try { string diagrammed = parsedSentence.ToString("b", dialect); bracketSb.AppendLine(hf.BoldTheWords(diagrammed.ToHtml()) + "<br/>"); } catch (Exception ex) { string error = "[[CANNOT BRACKET: " + ex.Message + "]]"; bracketSb.AppendLine(hf.BoldTheWords(error.ToHtml()) + "<br/>"); errors.Append(error); } //////// ENGLISH try { dialect.TargetGloss = "en"; GlossMaker gm = new GlossMaker(); string glossed = gm.GlossOneSentence(false, s, dialect); glossSb.AppendLine(glossed.ToHtml() + "<br/>"); glossed = gm.GlossOneSentence(true, s, dialect); posSb.AppendLine(glossed.ToHtml() + "<br/>"); //bs doesn't do anything. } catch (Exception ex) { string error = "[[CANNOT GLOSS: " + ex.Message.ToHtml() + "]]"; glossSb.AppendLine(hf.BoldTheWords(error.ToHtml()) + "<br/>"); errors.Append(error); } sb.Append(colorized.ToString()); //sb.Append("<br/>"); sb.Append(bracketSb.ToString()); //sb.Append("<br/>"); sb.Append(glossSb.ToString()); sb.Append(hf.SubThePartsOfSpeech(posSb.ToString())); //sb.Append("<br/>"); sb.Append("<br/>"); spitBackSb.Clear(); bracketSb.Clear(); posSb.Clear(); glossSb.Clear(); colorized.Clear(); } return(View(new LoremIpsumModel { Html = sb.ToString() })); }