static string GenerarIndice(Pagina[] list) { String ret = "<ul style='list-style-type: none;margin-left:0; padding-left:0;'>\n"; foreach (Pagina p in list){ ret += String.Format ( "<li><a href=\"{0}.html\">{1}</a></li>\n", p.FileName, p.Name ); } ret += "</ul>\n"; return ret; }
// Parámetros <xml con contenidos> <plantilla> <directorio destino> public static void Main(string [] args) { string input = args[0]; string template = args[1]; string destDir = args[2]; SourceDir = new FileInfo(args[0]).DirectoryName; XmlDocument document = new XmlDocument(); document.Load (input); nsmgr = new XmlNamespaceManager (document.NameTable); nsmgr.AddNamespace ("t", "http://dalle.sourceforge.net/web.xsd"); XmlNodeList paginas = document.SelectNodes ("/t:web/t:page", nsmgr); Pagina[] list = new Pagina [paginas.Count]; int count = 0; foreach (XmlNode node in paginas){ list[count++] = new Pagina (node); } MakeAllPages (list, template, destDir); }
static void MakeAllPages(Pagina[] list, string template, string destDir) { string plantilla = Fichero.CargarTexto (template); string indice = GenerarIndice(list); for (int i=0; i < list.Length; i++){ Pagina p = list[i]; Console.WriteLine (p.Name); string salida = plantilla.Replace ("#TITLE#", "Dalle - " + p.Name); salida = salida.Replace ("#CONTENT#", p.Content); salida = salida.Replace ("#MENU#", indice); salida = salida.Replace (" xmlns=\"http://dalle.sourceforge.net/web.xsd\"", ""); Fichero.GuardarTexto (destDir +Path.DirectorySeparatorChar +p.FileName + ".html", salida); } }