
We presently use the ".txt" extension for our AsciiDoc files. While not wrong, most editors do not associate this extension with AsciiDoc, meaning that contributors don't get automatic editor functionality that could be useful, such as syntax highlighting and prose linting. It is much more common to use the ".adoc" extension for AsciiDoc files, since this helps editors automatically detect files and also allows various forges to provide rich (HTML-like) rendering. Let's do that here, renaming all of the files and updating the includes where relevant. Adjust the various build scripts and makefiles to use the new extension as well. Note that this should not result in any user-visible changes to the documentation. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
70 lines
1.5 KiB
Perl
Executable File
70 lines
1.5 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
# Parse arguments, a simple state machine for input like:
|
|
#
|
|
# <file-to-check.adoc> <valid-files-to-link-to> --section=1 git.adoc git-add.adoc [...] --to-lint git-add.adoc a-file.adoc [...]
|
|
my %TXT;
|
|
my %SECTION;
|
|
my $section;
|
|
my $lint_these = 0;
|
|
my $to_check = shift @ARGV;
|
|
for my $arg (@ARGV) {
|
|
if (my ($sec) = $arg =~ /^--section=(\d+)$/s) {
|
|
$section = $sec;
|
|
next;
|
|
}
|
|
|
|
my ($name) = $arg =~ /^(.*?)\.adoc$/s;
|
|
unless (defined $section) {
|
|
$TXT{$name} = $arg;
|
|
next;
|
|
}
|
|
|
|
$SECTION{$name} = $section;
|
|
}
|
|
|
|
my $exit_code = 0;
|
|
sub report {
|
|
my ($pos, $line, $target, $msg) = @_;
|
|
substr($line, $pos) = "' <-- HERE";
|
|
$line =~ s/^\s+//;
|
|
print STDERR "$ARGV:$.: error: $target: $msg, shown with 'HERE' below:\n";
|
|
print STDERR "$ARGV:$.:\t'$line\n";
|
|
$exit_code = 1;
|
|
}
|
|
|
|
@ARGV = sort values %TXT;
|
|
die "BUG: No list of valid linkgit:* files given" unless @ARGV;
|
|
@ARGV = $to_check;
|
|
while (<>) {
|
|
my $line = $_;
|
|
while ($line =~ m/linkgit:((.*?)\[(\d)\])/g) {
|
|
my $pos = pos $line;
|
|
my ($target, $page, $section) = ($1, $2, $3);
|
|
|
|
# De-AsciiDoc
|
|
$page =~ s/{litdd}/--/g;
|
|
|
|
if (!exists $TXT{$page}) {
|
|
report($pos, $line, $target, "link outside of our own docs");
|
|
next;
|
|
}
|
|
if (!exists $SECTION{$page}) {
|
|
report($pos, $line, $target, "link outside of our sectioned docs");
|
|
next;
|
|
}
|
|
my $real_section = $SECTION{$page};
|
|
if ($section != $SECTION{$page}) {
|
|
report($pos, $line, $target, "wrong section (should be $real_section)");
|
|
next;
|
|
}
|
|
}
|
|
# this resets our $. for each file
|
|
close ARGV if eof;
|
|
}
|
|
|
|
exit $exit_code;
|