mirror of
https://git.proxmox.com/git/pve-docs
synced 2025-05-28 19:18:49 +00:00
61 lines
1.7 KiB
Perl
Executable File
61 lines
1.7 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
use JSON;
|
|
use IO::File;
|
|
use Data::Dumper;
|
|
|
|
my $fh = IO::File->new("link-refs.json", "r") ||
|
|
die "unable to open 'link-refs.json' - $!\n";
|
|
|
|
my $data_str = "";
|
|
while (<$fh>) { $data_str .= $_; }
|
|
my $fileinfo = decode_json($data_str);
|
|
|
|
my $cmd = shift;
|
|
|
|
die "missing command name" if !$cmd;
|
|
die "too many arguments" if scalar(@ARGV);
|
|
|
|
|
|
#print Dumper($fileinfo);
|
|
|
|
if ($cmd eq 'chapter-table') {
|
|
print '[width="100%",options="header"]' . "\n";
|
|
print "|====\n";
|
|
print "|Title|Link\n";
|
|
my $filelist = $fileinfo->{outfile}->{default};
|
|
foreach my $sourcefile (sort keys %$filelist) {
|
|
my $target = $filelist->{$sourcefile};
|
|
next if $target eq 'pve-admin-guide.html';
|
|
my $title = $fileinfo->{titles}->{default}->{$sourcefile} ||
|
|
die "not title for '$sourcefile'";
|
|
print "|$title|link:$target\[\]\n";
|
|
}
|
|
print "|====\n";
|
|
|
|
} elsif ($cmd =~ m/^man([158])page-table$/) {
|
|
my $section = $1;
|
|
print '[width="100%",cols="5*d",options="header"]' . "\n";
|
|
print "|====\n";
|
|
print "|Name 3+|Title|Link\n";
|
|
my $filelist = $fileinfo->{outfile}->{manvolnum};
|
|
foreach my $manpage (sort keys %$filelist) {
|
|
next if $section ne $fileinfo->{mansection}->{manvolnum}->{$manpage};
|
|
my $mantitle = $fileinfo->{titles}->{manvolnum}->{$manpage} ||
|
|
die "not manual title for '$manpage'";
|
|
my $title = $fileinfo->{titles}->{default}->{$manpage} ||
|
|
die "not title for '$manpage'";
|
|
|
|
# hack - remove command name prefix from titles
|
|
$title =~ s/^[a-z]+\s*-\s*//;
|
|
|
|
my $target = $filelist->{$manpage};
|
|
print "|$mantitle 3+|$title|link:$target.html\[$target\]\n\n";
|
|
}
|
|
print "|====\n";
|
|
} else {
|
|
die "unknown command '$cmd'\n";
|
|
}
|