public static HtmlBuilder Report(GenericDescription desc) { if (desc == null) return null; HtmlBuilder sb = new HtmlBuilder(); if (desc.Name != null) sb.AddSection(desc.Name); sb.AddLine(desc.Description); if (desc.DateSpecified) sb.AddLabel("Created", desc.Date.ToString()); if (desc.License != null) sb.AddLabel("License", desc.License); if (desc.Author != null) { if (desc.Author.Name != null) sb.AddLabel("Author", desc.Author.Name); if (desc.Author.Email != null) sb.AddLabel("Email", desc.Author.Email); if (desc.Author.Homepage != null) sb.AddLabel("Web", string.Format("<a href=\"{0}\">{0}</a>", desc.Author.Homepage)); } sb.AddLine(desc.Comments); if (desc.Name != null) sb.EndSection(); return sb; }
/// <summary> /// Set the HTML /// </summary> private void InitHTML() { StringBuilder html = new StringBuilder(File.ReadAllText(FileManager.getContent("$html/Welcome.html"))); XmlProvider prov = new XmlProvider(); Core.Model.Library lib = prov.Load(ProfileController.Current.LibraryLastFile); HtmlBuilder leftpane = new HtmlBuilder(); HtmlBuilder rightpane = new HtmlBuilder(); Current = lib.GetPuzzleByID(ProfileController.Current.LibraryLastPuzzle); if (Current == null) { ProfileController.Current.LibraryLastPuzzle = lib.Puzzles[0].PuzzleID; Current = lib.Puzzles[0]; } if (Current != null) { leftpane.AddSection(null); HtmlReporter.Report(leftpane, Current.Library.Details); rightpane.AddLine("{0}/{1} '<b>{2}</b>'", Current.Order, Current.Library.Puzzles.Count, Current.Details.Name); rightpane.Add("<a href=\"app://Puzzle/{0}\">", Current.PuzzleID); rightpane.Add(Current.MasterMap, DrawingHelper.DrawPuzzle(Current.MasterMap), null); rightpane.Add("</a>"); rightpane.AddLine("<br/><i>Click to play...</i>"); } else { // Library has no puzzles } html = html.Replace("[Details]", leftpane.GetHTMLBody()); html = html.Replace("[Image]", rightpane.GetHTMLBody()); html = html.Replace("[BASEHREF]", FileManager.getContent("$html")); html = html.Replace("[USERNAME]", ProfileController.Current.UserName); htmlView.SetHTML(html.ToString()); }