Publié le :

Génération de documentation SAS en Markdown et HTML

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script initialise plusieurs tables de travail (alias_list, order_list, header_list, scrub_list) via des DATA steps avec des datalines. Ces tables définissent des alias de sections, l'ordre des sections, les en-têtes et les sections à masquer pour la macro %code_diary. La macro %code_diary est ensuite appelée pour analyser un fichier SAS© principal spécifié par input_main_file et générer des fichiers Markdown de sortie. Enfin, la macro %convert_markdown_to_html est utilisée pour transformer l'un des fichiers Markdown générés en un document HTML.
Analyse des données

Type : MIXTE


Les données initiales (listes d'alias, d'ordre, d'en-têtes et de nettoyage) sont créées en interne via des blocs DATALINES. Cependant, les macros appelées (%code_diary et %convert_markdown_to_html) traitent des fichiers externes (fichiers SAS pour %code_diary et fichiers Markdown pour %convert_markdown_to_html).

1 Bloc de code
Macro Inclusion
Explication :
Ces lignes incluent deux macros SAS (`code_diary` et `convert_markdown_to_html`) à partir de l'emplacement spécifié par la variable macro `&MACRO_ROOT`. Ces macros sont essentielles pour la fonctionnalité de génération de documentation du script.
Copié !
1%include "&MACRO_ROOT.code_diary.sas";
2%include "&MACRO_ROOT.convert_markdown_to_html.sas";
3 
2 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée la table de travail `work.alias_list` qui contient des paires de mots-clés courts et longs. Elle est utilisée par la macro `%code_diary` pour gérer les alias de sections dans la documentation générée.
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée la table de travail `work.order_list` qui définit l'ordre d'affichage des différentes sections dans la documentation générée par la macro `%code_diary`.
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée la table de travail `work.header_list` qui associe des mots-clés à des en-têtes de section pour la documentation produite par la macro `%code_diary`.
Copié !
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 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée la table de travail `work.scrub_list` qui liste les mots-clés des sections à masquer ou à nettoyer lors de la génération de la documentation par la macro `%code_diary`.
Copié !
1DATA work.scrub_list;
2 INFILE DATALINES;
3 INPUT keyword $1-15;
4 
5 DATALINES;
6todo
7regex
8;
6 Bloc de code
Macro Call
Explication :
Cet appel à la macro `%code_diary` est la fonction principale du script. Elle prend en entrée un fichier SAS (`&DEMO_ROOT.project_main.sas`) et, en utilisant les listes définies précédemment (`alias_list`, `order_list`, `header_list`, `scrub_list`), génère deux fichiers Markdown de documentation (`output-coder.md` et `output-for-all.md`) dans le répertoire `&DEMO_ROOT`.
Copié !
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 Bloc de code
Macro Call
Explication :
Cet appel à la macro `%convert_markdown_to_html` prend le fichier Markdown `output-for-all.md` généré précédemment et le convertit en un fichier HTML (`output-for-all.htm`), également dans le répertoire `&DEMO_ROOT`.
Copié !
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);
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.