static void Main(string[] args) { #if MONO LatexToMathMLConverter.GhostScriptBinaryPath = "gs"; #else LatexToMathMLConverter.GhostScriptBinaryPath = @"C:\\Program Files (x86)\\gs\\gs8.64\\bin\\gswin32c.exe"; #endif var lmm = new LatexToMathMLConverter( "E:\\source.txt", Encoding.GetEncoding(1251), "E:\\source.xml"); lmm.ValidateResult = true; lmm.Convert(); }
static void Main(string[] args) { Console.WriteLine("Graphics can be automatically converted from eps/pdf to png. The path to GhostScript must be set to provide that.\n"); Console.WriteLine("For now, it is hard-coded: d:\\Program Files\\GhostScript\\gs9.00\\bin\\gswin32c.exe"); if (args.Length != 2) { Console.WriteLine("Usage: ltx2mml doc.tex doc.xhtml"); return; } #if MONO LatexToMathMLConverter.GhostScriptBinaryPath = "gs"; #else LatexToMathMLConverter.GhostScriptBinaryPath = @"d:\Program Files\GhostScript\gs9.00\bin\gswin32c.exe"; #endif var lmm = new LatexToMathMLConverter( args[0], Encoding.GetEncoding(1251), args[1]); lmm.ValidateResult = true; lmm.Convert(); }
/// <summary> /// Must set Text, ItemId, ItemType, CultureCode, CultureCodeStatus and CreatedByUserId or it will not save anything /// If text is versioned, it creates a new version /// If text is not versioned, it creates new text or updates text depending on TextId. /// </summary> /// <param name="t"></param> public void SaveLatexText(PHLatex t) { if (t.Text == null || t.ItemId == 0 || t.ItemType == ELatexItemType.NotSet || t.CultureCode == null || t.CultureCodeStatus == ECultureCodeStatus.NotSet || t.CreatedByUserId == 0) return; //Nothing to save if (t.ModifiedByUserId == 0) t.ModifiedByUserId = t.CreatedByUserId; t.ModifiedOnDate = DateTime.Now; t.CurrentVersion = true; if (t.HtmlText==null || t.HtmlText == "") { LatexToMathMLConverter myConverter = new LatexToMathMLConverter(t.Text); myConverter.Convert(); t.HtmlText = myConverter.HTMLOutput; } bool isVersioned = (t.ItemType == ELatexItemType.PluggComponentLatex || t.ItemType == ELatexItemType.CourseLatexText); if (isVersioned) { var prevText = rep.GetCurrentVersionLatexText(t.CultureCode, t.ItemId, t.ItemType); if (prevText == null) { t.Version = 1; } else { t.Version = prevText.Version++; prevText.CurrentVersion = false; rep.UpdateLatexText(prevText); } t.CreatedOnDate = DateTime.Now; rep.CreateLatexText(t); } else { t.Version = 0; if (t.LatexId == 0) { t.CreatedOnDate = DateTime.Now; rep.CreateLatexText(t); } else rep.UpdateLatexText(t); } }
public void UpdatePlugg(Plugg p, PluggContent pc) { //For restore if something goes wrong Plugg oldP = GetPlugg(p.PluggId); IEnumerable<PluggContent> oldPCs = GetAllContentInPlugg(p.PluggId); rep.UpdatePlugg(p); //No repair necessary if this fails //For now, remove all PluggContent and recreate in all languages from pc. Fix this when we can deal with translations try { foreach (PluggContent pcDelete in oldPCs) { rep.DeletePluggContent(pcDelete); } pc.PluggId = p.PluggId; if (pc.LatexText != null) { LatexToMathMLConverter myConverter = new LatexToMathMLConverter(pc.LatexText); myConverter.Convert(); pc.LatexTextInHtml = myConverter.HTMLOutput; } LocaleController lc = new LocaleController(); var locales = lc.GetLocales(PortalID); foreach (var locale in locales) { pc.CultureCode = locale.Key; rep.CreatePluggContent(pc); } } catch (Exception) { //recreate old Plugg/PluggContent before rethrow var pcs = GetAllContentInPlugg(p.PluggId); foreach (PluggContent pcDelete in pcs) { rep.DeletePluggContent(pcDelete); } rep.DeletePlugg(p); rep.CreatePlugg(oldP); foreach (PluggContent oldPC in oldPCs) rep.CreatePluggContent(oldPC); throw; } }
public void SavePlugg(PluggContainer p) { try { bool isNew = p.ThePlugg.PluggId == 0; //Temporary - remove soon p.ThePlugg.Title = "Title no longer here"; p.ThePlugg.CreatedByUserId = 1; p.ThePlugg.ModifiedByUserId = 1; if (isNew) rep.CreatePlugg(p.ThePlugg); else rep.UpdatePlugg(p.ThePlugg); //Todo: Update.. p.TheTitle.ItemId = p.ThePlugg.PluggId; p.TheTitle.ItemType = ETextItemType.PluggTitle; p.TheTitle.CcStatus = ECCStatus.InCreationLanguage; p.TheTitle.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheTitle.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhText(p.TheTitle); //Todo: Update.. if (p.TheHtmlText != null) { p.TheHtmlText.ItemId = p.ThePlugg.PluggId; p.TheHtmlText.ItemType = ETextItemType.PluggHtml; p.TheHtmlText.CcStatus = ECCStatus.InCreationLanguage; p.TheHtmlText.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheHtmlText.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; SavePhText(p.TheHtmlText); } //Todo: Update.. if (p.TheLatex != null) { p.TheLatex.ItemId = p.ThePlugg.PluggId; p.TheLatex.ItemType = ELatexType.Plugg; p.TheLatex.CcStatus = ECCStatus.InCreationLanguage; p.TheLatex.CreatedByUserId = p.ThePlugg.CreatedByUserId; p.TheLatex.ModifiedByUserId = p.ThePlugg.ModifiedByUserId; LatexToMathMLConverter myConverter = new LatexToMathMLConverter(p.TheLatex.Text); myConverter.Convert(); p.TheLatex.HtmlText = myConverter.HTMLOutput; SaveLatexText(p.TheLatex); } LocaleController lc = new LocaleController(); var locales = lc.GetLocales(PortalID); foreach (var locale in locales) { if (locale.Key != p.ThePlugg.CreatedInCultureCode) { GoogleTranslate(p.TheTitle, locale.Key); if (p.TheHtmlText != null) GoogleTranslate(p.TheHtmlText, locale.Key); if (p.TheLatex != null) GoogleTranslate(p.TheLatex, locale.Key); } } //Create PluggPage DNNHelper d = new DNNHelper(); string pageUrl = p.ThePlugg.PluggId.ToString(); string pageName = pageUrl + ": " + p.TheTitle.Text; TabInfo newTab = d.AddPluggPage(pageName, pageUrl); p.ThePlugg.TabId = newTab.TabID; rep.UpdatePlugg(p.ThePlugg); } catch (Exception) { //Todo: Update DeletePlugg(p.ThePlugg); throw; } }