docs/cmdline: change to .md for cmdline docs

- switch all invidual files documenting command line options into .md,
   as the documentation is now markdown-looking.

 - made the parser treat 4-space indents as quotes

 - switch to building the curl.1 manpage using the "mainpage.idx" file,
   which lists the files to include to generate it, instead of using the
   previous page-footer/headers. Also, those files are now also .md
   ones, using the same format. I gave them underscore prefixes to make
   them sort separately:
   _NAME.md, _SYNOPSIS.md, _DESCRIPTION.md, _URL.md, _GLOBBING.md,
   _VARIABLES.md, _OUTPUT.md, _PROTOCOLS.md, _PROGRESS.md, _VERSION.md,
   _OPTIONS.md, _FILES.md, _ENVIRONMENT.md, _PROXYPREFIX.md,
   _EXITCODES.md, _BUGS.md, _AUTHORS.md, _WWW.md, _SEEALSO.md

 - updated test cases accordingly

Closes #12751
This commit is contained in:
Daniel Stenberg 2024-01-20 23:18:43 +01:00
parent dfe34d2559
commit 2494b8dd51
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
295 changed files with 3963 additions and 1834 deletions

View file

@ -28,7 +28,7 @@ curl --manual
# Search for these two sentinel lines in the manual output; if they are found,
# then chances are good the entire manual is there.
<postcheck>
perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(curl\s*-\s*transfer\sa\s*URL)|(CONTRIBUTORS)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' %LOGDIR/stdout%TESTNUMBER
perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(curl\s*-\s*transfer\sa\s*URL)|(AUTHORS)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' %LOGDIR/stdout%TESTNUMBER
</postcheck>
</client>

View file

@ -19,7 +19,7 @@ src/tool_listhelp.c is in sync with docs/cmdline-opts
</name>
<command type="perl">
%SRCDIR/../docs/cmdline-opts/gen.pl listhelp %SRCDIR/../docs/cmdline-opts/*.d
%SRCDIR/../docs/cmdline-opts/gen.pl listhelp %SRCDIR/../docs/cmdline-opts/*.md
</command>
</client>

View file

@ -40,12 +40,27 @@ sub checkfile {
return;
}
open(my $fh, "<", "$f");
my $l = 1;
my $l;
my $prevl;
my $ignore = 0;
my $metadata = 0;
while(<$fh>) {
my $line = $_;
chomp $line;
$l++;
if(($l == 1) && ($line =~ /^---/)) {
# first line is a meta-data divider, skip to the next one
$metadata = 1;
print STDERR "skip meta-data in $f\n";
next;
}
elsif($metadata) {
if($line !~ /^---/) {
next;
}
$metadata = 0;
next;
}
if($line =~ /^(\`\`\`|\~\~\~)/) {
# start or stop ignore-mode
$ignore ^= 1;
@ -87,7 +102,6 @@ sub checkfile {
}
}
$prevl = $line;
$l++;
}
close($fh);
}

View file

@ -37,11 +37,11 @@ sub cmdfiles {
my ($dir)=@_;
opendir(my $dh, $dir) || die "Can't opendir $dir: $!";
my @opts = grep { /\.d$/ && -f "$dir/$_" } readdir($dh);
my @opts = grep { /[a-z0-9].*\.md$/ && -f "$dir/$_" } readdir($dh);
closedir $dh;
for(@opts) {
$_ =~ s/\.d$//;
$_ =~ s/\.md$//;
$file{$_}=1;
}
return @opts;
@ -77,7 +77,7 @@ sub mentions {
sub versioncheck {
my ($f, $v)=@_;
open(my $fh, "<", "$cmddir/$f.d");
open(my $fh, "<", "$cmddir/$f.md");
while(<$fh>) {
chomp;
if(/^Added: ([0-9.]+)/) {