HelpNDoc 6.0 contiene mayor soporte para estatus de temas, simplificando enormemente el mantenimiento de proyectos de documentación para los autores técnicos: se pueden etiquetar los temas como “Sin Actualizar”, “En Progreso”, “Por Revisar”, “Completo”, o cualquier estatus personalizado que definas. Es posible que te apetezca sacar partido a esta función para actualizar un antiguo proyecto y cambiar el estatus de todos tus temas a “Por Revisar” para empezar a revisarlos uno por uno. Pero actualizar individualmente cada tema es un gran proyecto que llevará tiempo. Por suerte, las funciones de scripts de HelpNDoc permiten actualizar los estatus de todo el proyecto de documentación en un instante. Vamos a ver cómo podemos hacerlo.

Usando el editor de scripts de HelpNDoc

Cuando una función no está disponible en HelpNDoc, sólo hay que usar el editor de scripts y sacar partido a su API de creación de scripts para crearla tú mismo.

El editor de scripts de puede utilizar para automatizar casi todas las partes del proceso de escritura y mantenimiento de documentación. Para utilizar el editor de scripts en HelpNDoc:

  • En la pestaña “Herramientas”, haz clic en “Editor de scripts”. Con esto aparecerá la ventana “Creación y ejecución de scripts”;
  • Introduce el contenido de tu script en el editor de código. Comprueba la documentación sobre los métodos API disponibles para saber lo que hay disponible en tu script personalizado.
  • Utiliza el botón “Crear script” (o el atajo MAYS+F9) para asegurarte de que la sintaxis es correcta;
  • Utiliza el botón “Ejecutar script” (o el atajo F9) para ejecutar el script;

Escribir el script

El algoritmo que necesitamos desarrollar para actualizar cada tema a un status específico es muy sencillo: primero tenemos que obtener el identificador único del status, después repasar cíclicamente todos los temas del proyecto, y luego establecer el estatus del tema en el identificador correcto.

1. Obtener el identificador del estatus

Antes de aplicar el estatus a cada tema, tenemos que obtener su identificador único.
Por suerte, la API HelpNDoc para el objeto HndStatus incluye el método HndStatus.GetStatusByCaption() para simplificar enormemente esta tarea. Este es un script que demuestra cómo se puede hacer:

const
  // Nombre del estatus
  STATUS_TO_LOOK_FOR = 'Por Revisar';
var
  // ID del estatus
  aStatusId: string;
begin
  // Obtener la ID única del estatus
  aStatusId := HndStatus.GetStatusByCaption(STATUS_TO_LOOK_FOR);
end;

2. Repasar cíclicamente todos los temas

Ahora que hemos recuperado el identificador único del estatus, lo que queremos es aplicarlo a todos los temas. Podemos repasar cada uno de ellos en sucesión de la siguiente manera:

var
  // ID del tema actual
  aTopicId: string;
begin
  // Obtener el primer tema
  aTopicId := HndTopics.GetTopicFirst();
  // Repasar cíclicamente los temas
  while aTopicId <> '' do
  begin

    // ... Establecer el estatus del tema aquí...

    // Obtener tema siguiente
    aTopicId := HndTopics.GetTopicNext(aTopicId);
  end;
end.

3. Establecer el estatus del tema

Ahora podemos sencillamente utilizar el método HndTopics para establecer el estatus de este tema:

// Establecer su estatus
HndTopics.SetTopicStatusId(aTopicId, aStatusId);

El script completo

Ahora tenemos todas las piezas de código listas para escribir el script completo para cambiar los estatus de todo el proyecto de documentación. Vamos a revisar todo el script.

Estatus de temas en la tabla de contenido

El script siguiente modificará automáticamente el estatus de todos los temas en el proyecto actualmente abierto a “Por Revisar”. Puede personalizarse si hace falta: no hay más que cambiar el valor de la constante llamada STATUS_TO_LOOK_FOR para establecer otro estatus. También se puede reforzar el script para que sólo aplique el estatus a los temas que cumplan una condición, como tener un padre, una ID de Ayuda o un estatus actual específicos… las posibilidades son infinitas.
En el editor de scripts de HelpNDoc se puede pegar el script entero, que se incluirá en una versión futura de HelpNDoc:

const
  // Nombre del estatus
  STATUS_TO_LOOK_FOR = 'Por Revisar';
var
  // ID del estatus
  aStatusId: string;
  // ID del tema actual
  aTopicId: string;
begin
  // Obtener la ID única del estatus
  aStatusId := HndStatus.GetStatusByCaption(STATUS_TO_LOOK_FOR);
  // Obtener el primer tema
  aTopicId := HndTopics.GetTopicFirst();
  // Repasar cíclicamente los temas
  while aTopicId <> '' do
  begin
    // Establecer su estatus
    HndTopics.SetTopicStatusId(aTopicId, aStatusId);
    // Obtener tema siguientes
    aTopicId := HndTopics.GetTopicNext(aTopicId);
  end;
end.

Ver también


Categorías: artículos