return "$link\[$text\]";
}
-sub prepare_adoc_file {
- my ($filename, $attributes) = @_;
+sub replace_xref {
+ my ($env, $blockid, $text) = @_;
+ if ($env eq 'wiki') {
+ return replace_wiki_xref($blockid, $text);
+ } else {
+ die "implement me";
+ }
+}
+
+sub prepare_adoc_file {
+ my ($target_env, $filename, $attributes) = @_;
return if $prepared_files->{$filename};
if ($line =~ m/^include::(\S+)(\[.*\]\s*)$/) {
my ($fn, $rest) = ($1, $2);
print "INCLUDE: $fn\n";
- my $new_fn = prepare_adoc_file($fn, $attributes);
+ my $new_fn = prepare_adoc_file($target_env, $fn, $attributes);
$line = "include::${new_fn}$rest\n";
}
# fix xrefs
- $line =~ s/xref:([^\s\[\]]+)\[([^\]]*)\]/replace_wiki_xref($1,$2)/ge;
+ $line =~ s/xref:([^\s\[\]]+)\[([^\]]*)\]/replace_xref(${target_env},$1,$2)/ge;
- $line =~ s/<<([^\s,\[\]]+)(?:,(.*?))?>>/replace_wiki_xref($1,$2)/ge;
+ $line =~ s/<<([^\s,\[\]]+)(?:,(.*?))?>>/replace_xref(${target_env},$1,$2)/ge;
print $outfh $line;
}
return $outfilename;
}
-sub compile_wiki {
+sub compile_asciidoc {
+ my ($env) = @_;
my $verbose;
my $outfile;
- my $target_env;
GetOptions ("outfile=s" => \$outfile,
"verbose" => \$verbose) or
scalar(@ARGV) == 0 or
die "too many arguments...\n";
- my $env = 'wiki';
+ if ($env eq 'wiki') {
+ } else {
+ die "unknown environment '$env'";
+ }
+
my $title = $fileinfo->{titles}->{$env}->{$infile} or
die "unable to get title for '$infile'\n";
-
print "compile: $title\n";
my $leveloffset = 0;
revnumber => $release,
};
+ if (!($env eq 'wiki') || ($env ne 'manvolnum')) {
+ $attributes->{toc} = undef;
+ }
+
my $cmd = ['asciidoc', '-s'];
foreach my $key (keys %$attributes) {
push @$cmd, '--out-file', $outfile;
- my $new_infile = prepare_adoc_file($infile, $attributes);
+ my $new_infile = prepare_adoc_file($env, $infile, $attributes);
push @$cmd, $new_infile;
die "aciidoc error";
}
+
if ($clicmd eq 'compile-wiki') {
- eval { compile_wiki(); };
+ eval { compile_asciidoc('wiki'); };
my $err = $@;
cleanup();