Veröffentlicht am :

Generierung von SAS-Dokumentation in Markdown und HTML

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert mehrere Arbeitstabellen (alias_list, order_list, header_list, scrub_list) über DATA-Schritte mit Datalines. Diese Tabellen definieren Aliasnamen für Abschnitte, die Reihenfolge der Abschnitte, Header und auszublendende Abschnitte für das Makro %code_diary. Das Makro %code_diary wird dann aufgerufen, um eine durch input_main_file angegebene Haupt-SAS©-Datei zu analysieren und Markdown-Ausgabedateien zu generieren. Schließlich wird das Makro %convert_markdown_to_html verwendet, um eine der generierten Markdown-Dateien in ein HTML-Dokument umzuwandeln.
Datenanalyse

Type : GEMISCHT


Die initialen Daten (Listen von Aliasnamen, Reihenfolge, Headern und Bereinigungen) werden intern über DATALINES-Blöcke erstellt. Die aufgerufenen Makros (%code_diary und %convert_markdown_to_html) verarbeiten jedoch externe Dateien (SAS-Dateien für %code_diary und Markdown-Dateien für %convert_markdown_to_html).

1 Codeblock
Macro Inclusion
Erklärung :
Diese Zeilen inkludieren zwei SAS-Makros (`code_diary` und `convert_markdown_to_html`) vom Speicherort, der durch die Makrovariable `&MACRO_ROOT` angegeben ist. Diese Makros sind essenziell für die Funktionalität der Dokumentationsgenerierung des Skripts.
Kopiert!
1%include "&MACRO_ROOT.code_diary.sas";
2%include "&MACRO_ROOT.convert_markdown_to_html.sas";
3 
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt die Arbeitstabelle `work.alias_list`, die Paare von kurzen und langen Schlüsselwörtern enthält. Sie wird vom Makro `%code_diary` verwendet, um Aliasnamen für Abschnitte in der generierten Dokumentation zu verwalten.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt die Arbeitstabelle `work.order_list`, die die Anzeigereihenfolge der verschiedenen Abschnitte in der vom Makro `%code_diary` generierten Dokumentation festlegt.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt die Arbeitstabelle `work.header_list`, die Schlüsselwörter mit Abschnittsüberschriften für die vom Makro `%code_diary` erzeugte Dokumentation verknüpft.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt die Arbeitstabelle `work.scrub_list`, die die Schlüsselwörter der Abschnitte auflistet, die während der Dokumentationsgenerierung durch das Makro `%code_diary` ausgeblendet oder bereinigt werden sollen.
Kopiert!
1DATA work.scrub_list;
2 INFILE DATALINES;
3 INPUT keyword $1-15;
4 
5 DATALINES;
6todo
7regex
8;
6 Codeblock
Macro Call
Erklärung :
Dieser Aufruf des Makros `%code_diary` ist die Hauptfunktion des Skripts. Es nimmt eine SAS-Datei (`&DEMO_ROOT.project_main.sas`) als Eingabe und generiert unter Verwendung der zuvor definierten Listen (`alias_list`, `order_list`, `header_list`, `scrub_list`) zwei Markdown-Dokumentationsdateien (`output-coder.md` und `output-for-all.md`) im Verzeichnis `&DEMO_ROOT`.
Kopiert!
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 Codeblock
Macro Call
Erklärung :
Dieser Aufruf des Makros `%convert_markdown_to_html` nimmt die zuvor generierte Markdown-Datei `output-for-all.md` und konvertiert sie in eine HTML-Datei (`output-for-all.htm`), ebenfalls im Verzeichnis `&DEMO_ROOT`.
Kopiert!
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);
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.