Publicado el :

Generación de documentación SAS en Markdown y HTML

Este código también está disponible en: Deutsch English Français
En espera de validación
El script inicializa varias tablas de trabajo (alias_list, order_list, header_list, scrub_list) a través de pasos DATA con datalines. Estas tablas definen alias de secciones, el orden de las secciones, los encabezados y las secciones a ocultar para la macro %code_diary. La macro %code_diary se llama luego para analizar un archivo SAS© principal especificado por input_main_file y generar archivos Markdown de salida. Finalmente, la macro %convert_markdown_to_html se utiliza para transformar uno de los archivos Markdown generados en un documento HTML.
Análisis de datos

Type : MIXTO


Los datos iniciales (listas de alias, orden, encabezados y limpieza) se crean internamente a través de bloques DATALINES. Sin embargo, las macros llamadas (%code_diary y %convert_markdown_to_html) procesan archivos externos (archivos SAS para %code_diary y archivos Markdown para %convert_markdown_to_html).

1 Bloque de código
Macro Inclusion
Explicación :
Estas líneas incluyen dos macros SAS (`code_diary` y `convert_markdown_to_html`) desde la ubicación especificada por la variable macro `&MACRO_ROOT`. Estas macros son esenciales para la funcionalidad de generación de documentación del script.
¡Copiado!
1%include "&MACRO_ROOT.code_diary.sas";
2%include "&MACRO_ROOT.convert_markdown_to_html.sas";
3 
2 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA crea la tabla de trabajo `work.alias_list` que contiene pares de palabras clave cortas y largas. Es utilizada por la macro `%code_diary` para gestionar los alias de secciones en la documentación generada.
¡Copiado!
1DATA work.alias_list;
2 INFILE DATALINES;
3 INPUT short_keyword $1-10 long_keyword $11-50;
4 
5 DATALINES;
6excl exclusion
7stat statistics
8;
3 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA crea la tabla de trabajo `work.order_list` que define el orden de visualización de las diferentes secciones en la documentación generada por la macro `%code_diary`.
¡Copiado!
1DATA work.order_list;
2 INFILE DATALINES;
3 INPUT keyword $1-20 order_no 21-25;
4 
5 DATALINES;
6todo -30
7exclusion -20
8exclusion.time -19
9exclusion.person -18
10methods -10
11no_keyword 0
12;
4 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA crea la tabla de trabajo `work.header_list` que asocia palabras clave con encabezados de sección para la documentación producida por la macro `%code_diary`.
¡Copiado!
1DATA work.header_list;
2 INFILE DATALINES;
3 INPUT keyword $1-15 header $16-50;
4 
5 DATALINES;
6exclusion Exclusion criteria
7person Subjects
8time Time periods
9todo Task list
10;
5 Bloque de código
DATA STEP Data
Explicación :
Este paso DATA crea la tabla de trabajo `work.scrub_list` que lista las palabras clave de las secciones a ocultar o limpiar durante la generación de la documentación por la macro `%code_diary`.
¡Copiado!
1DATA work.scrub_list;
2 INFILE DATALINES;
3 INPUT keyword $1-15;
4 
5 DATALINES;
6todo
7regex
8;
6 Bloque de código
Macro Call
Explicación :
Esta llamada a la macro `%code_diary` es la función principal del script. Toma como entrada un archivo SAS (`&DEMO_ROOT.project_main.sas`) y, utilizando las listas definidas previamente (`alias_list`, `order_list`, `header_list`, `scrub_list`), genera dos archivos Markdown de documentación (`output-coder.md` y `output-for-all.md`) en el directorio `&DEMO_ROOT`.
¡Copiado!
1%code_diary(
2 input_main_file = &DEMO_ROOT.project_main.sas,
3 out_dir = &DEMO_ROOT,
4 out_file = OUTPUT-coder.md,
5 out_file_scrubbed = OUTPUT-for-all.md,
6 debug_mode = 0,
7 section_aliases = work.alias_list,
8 section_order = work.order_list,
9 section_headers = work.header_list,
10 sections_scrubbed = work.scrub_list
11);
7 Bloque de código
Macro Call
Explicación :
Esta llamada a la macro `%convert_markdown_to_html` toma el archivo Markdown `output-for-all.md` generado previamente y lo convierte en un archivo HTML (`output-for-all.htm`), también en el directorio `&DEMO_ROOT`.
¡Copiado!
1%convert_markdown_to_html(
2 in_file_md = "&DEMO_ROOT.output-for-all.md",
3 out_file_html = "&DEMO_ROOT.output-for-all.htm",
4 debug_mode = 0
5);
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.