Example #1
0
        /// <summary>
        ///		Procesa la generación de documentación de un programa
        /// </summary>
        internal DocumentFileModelCollection Process(ProgramModel objProgram)
        {
            NameSpaceGroupModelCollection objColGroups    = new Prepare.NameSpaceGroupGenerator().Generate(objProgram);
            DocumentFileModelCollection   objColDocuments = new DocumentFileModelCollection();

            // Carga las plantillas
            Templates = new Repository.Templates.TemplateRepository().Load(DocumentationProcessor.Parameters.TemplateFileName);
            // Crea los documentos
            foreach (NameSpaceGroupModel objGroup in objColGroups)
            {
                if (Templates.MustGenerateFile(objGroup, DocumentationProcessor.Parameters))
                {
                    DocumentFileModel objDocument = new DocumentFileModel(null, objGroup.NameSpace, 0);

                    // Procesa la estructura del lenguaje
                    if (objGroup.NameSpace != null)
                    {
                        Generate(objGroup.NameSpace, objDocument);
                    }
                    else
                    {
                        objDocument.Name = objGroup.Name;
                    }
                    // Añade el documento a la colección
                    objColDocuments.Add(objDocument);
                }
            }
            // Graba los documentos
            ProcessDocuments(objColDocuments);
            // Devuelve los documentos
            return(objColDocuments);
        }
Example #2
0
        /// <summary>
        ///		Convierte una estructura XML en HTML
        /// </summary>
        private string ConvertMLBulider(DocumentFileModel objDocument, string strOutputPath, string strRootPath,
                                        string strTitle, string strDescription,
                                        MLIntermedialBuilder objMLBuilder, string strFileNameTemplate)
        {
            string strResult = new Repository.Templates.TemplateRepository().LoadTextRootTemplate(strFileNameTemplate);
            string strHtml   = objConversor.Convert(strRootPath, objMLBuilder);

            // Reemplaza los datos de la plantilla de entrada
            if (strResult.IsEmpty())
            {
                strResult = strHtml;
            }
            else
            {                                     // Asigna el título y la descripción
                strResult = strResult.ReplaceWithStringComparison("{{Title}}", strTitle);
                strResult = strResult.ReplaceWithStringComparison("{{Description}}", strDescription);
                // Crea el vínculo a la página superior
                if (objDocument != null && objDocument.Parent != null)
                {
                    strResult = strResult.ReplaceWithStringComparison("{{TopPage}}", string.Format("<a href='{0}'>{1}</a>",
                                                                                                   GetUrl(objDocument.Parent, ""),
                                                                                                   objDocument.Parent.Name));
                }
                else
                {
                    strResult = strResult.ReplaceWithStringComparison("{{TopPage}}", "");
                }
                // Cambia los vínculos
                strResult = UpdateLinks(System.IO.Path.Combine(strRootPath, "filler.htm"), strResult);
                // Asigna el cuerpo
                strResult = strResult.ReplaceWithStringComparison("{{Body}}", strHtml);
            }
            // Devuelve el texto
            return(strResult);
        }
Example #3
0
        /// <summary>
        ///		Procesa la generación de documentos
        /// </summary>
        internal void Process(StructDocumentationModelCollection structDocs)
        {
            DocumentFileModelCollection documents = new DocumentFileModelCollection();

            // Carga las plantillas
            Templates = new Repository.Templates.TemplateRepository().Load(Project.TemplatePath);
            // Crea los documentos
            foreach (StructDocumentationModel structDoc in structDocs)
            {
                if (Templates.MustGenerateFile(structDoc, Project.GenerationParameters))
                {
                    DocumentFileModel document = new DocumentFileModel(null, structDoc, 0);

                    // Procesa la estructura del lenguaje
                    Generate(structDoc, document);
                    // Añade el documento a la colección
                    documents.Add(document);
                }
            }
            // Graba los documentos
            ProcessDocuments(documents);
        }
Example #4
0
        /// <summary>
        ///		Convierte una estructura XML en HTML
        /// </summary>
        private string ConvertMLBuilder(DocumentFileModel document, string rootPath,
                                        string title, string description, MLIntermedialBuilder builderML, string fileNameTemplate)
        {
            string result = new Repository.Templates.TemplateRepository().LoadTextRootTemplate(fileNameTemplate);
            string html   = conversor.Convert(rootPath, builderML);

            // Convierte los vínculos del cuerpo HTML
            html = UpdateLinksBody(System.IO.Path.Combine(rootPath, "filler.htm"), html);
            // Reemplaza los datos de la plantilla de entrada
            if (result.IsEmpty())
            {
                result = html;
            }
            else
            {
                // Asigna el título y la descripción
                result = result.ReplaceWithStringComparison("{{Title}}", title);
                result = result.ReplaceWithStringComparison("{{Description}}", description);
                // Crea el vínculo a la página superior
                if (document != null && document.Parent != null)
                {
                    result = result.ReplaceWithStringComparison("{{TopPage}}", string.Format("<a href='{0}'>{1}</a>",
                                                                                             GetUrl(document.Parent, ""),
                                                                                             document.Parent.Name));
                }
                else
                {
                    result = result.ReplaceWithStringComparison("{{TopPage}}", "");
                }
                // Cambia los vínculos
                result = UpdateLinks(System.IO.Path.Combine(rootPath, "filler.htm"), result);
                // Asigna el cuerpo
                result = result.ReplaceWithStringComparison("{{Body}}", html);
            }
            // Devuelve el texto
            return(result);
        }