]> git.proxmox.com Git - pve-docs.git/blobdiff - asciidoc-pve.in
factor out cleanup method
[pve-docs.git] / asciidoc-pve.in
index 1d0c7912185d88a5bf580721603ea820cc9a64d4..0e17b7a39cdb4737ffc5a6cd83a2190f04a47722 100644 (file)
@@ -61,20 +61,31 @@ sub pop_environment {
     }
 }
 
+sub cleanup {
+
+    # TODO: anything ?
+}
+
 sub replace_wiki_xref {
     my ($blockid, $text) = @_;
 
     my $link = $fileinfo->{blockid_target}->{wiki}->{$blockid};
+    my $reftext = $fileinfo->{reftext}->{wiki}->{$blockid};
 
     die "unable to resolve wiki link (xref:$blockid)\n"
        if !defined($link);
 
+    $text = $reftext if !length($text);
+
+    die "xref: no text for '$blockid'\n" if !$text;
+
     return "$link\[$text\]";
 }
 
 sub prepare_adoc_file {
     my ($filename, $attributes) = @_;
 
+
     return if $prepared_files->{$filename};
 
     print "PREPARE $filename\n";
@@ -121,6 +132,7 @@ sub prepare_adoc_file {
        # fix xrefs
        $line =~ s/xref:([^\s\[\]]+)\[([^\]]*)\]/replace_wiki_xref($1,$2)/ge;
 
+       $line =~ s/<<([^\s,\[\]]+)(?:,(.*?))?>>/replace_wiki_xref($1,$2)/ge;
 
        print $outfh $line;
     }
@@ -155,11 +167,8 @@ sub compile_wiki {
 
     my $leveloffset = 0;
 
-    if ($clicmd eq 'compile-wiki-chapter') {
-       $leveloffset = 0;
-    } elsif ($clicmd eq 'compile-wiki-section') {
-       $leveloffset = -1;
-    }
+    my $doctype = $fileinfo->{doctype}->{$env}->{$infile} // 0;
+    $leveloffset = - $doctype;
 
     my $date = `date`;
     chomp $date;
@@ -204,13 +213,12 @@ sub compile_wiki {
        die "aciidoc error";
 }
 
-if ($clicmd eq 'compile-wiki-chapter' ||
-    $clicmd eq 'compile-wiki-section') {
+if ($clicmd eq 'compile-wiki') {
 
     eval { compile_wiki(); };
     my $err = $@;
 
-    # cleanup
+    cleanup();
 
     die $err if $err;