diff options
Diffstat (limited to 'Documentation/txt2pre')
-rwxr-xr-x | Documentation/txt2pre | 60 |
1 files changed, 42 insertions, 18 deletions
diff --git a/Documentation/txt2pre b/Documentation/txt2pre index fb07579a..b45c52e8 100755 --- a/Documentation/txt2pre +++ b/Documentation/txt2pre @@ -1,24 +1,26 @@ -#!/usr/bin/env perl -# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org> +#!perl -w +# n.b. this is invoked via $(PERL) in makefiles +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> # # Stupid script to make HTML from preformatted, utf-8 text versions, # only generating links for http(s). Markdown does too much # and requires indentation to output preformatted text. -use strict; -use warnings; +use v5.12; use PublicInbox::Linkify; use PublicInbox::Hval qw(ascii_html); -my %xurls; +my (%xurls, %lei); for (qw[lei(1) lei-add-external(1) lei-add-watch(1) lei-blob(1) lei-config(1) lei-convert(1) + lei-daemon(8) lei-daemon-kill(1) lei-daemon-pid(1) lei-edit-search(1) + lei-export-kw(1) lei-forget-external(1) lei-forget-mail-sync(1) lei-forget-search(1) @@ -34,10 +36,13 @@ for (qw[lei(1) lei-ls-search(1) lei-ls-watch(1) lei-mail-diff(1) + lei-mail-sync-overview(7) lei-overview(7) lei-p2q(1) lei-q(1) lei-rediff(1) + lei-refresh-mail-sync(1) + lei-reindex(1) lei-rm(1) lei-rm-watch(1) lei-security(7) @@ -45,12 +50,13 @@ for (qw[lei(1) lei-tag(1) lei-up(1) public-inbox.cgi(1) + public-inbox-cindex(1) public-inbox-clone(1) public-inbox-config(5) - public-inbox-config(5) public-inbox-convert(1) public-inbox-daemon(8) public-inbox-edit(1) + public-inbox-extindex(1) public-inbox-fetch(1) public-inbox-glossary(7) public-inbox-httpd(1) @@ -59,8 +65,10 @@ for (qw[lei(1) public-inbox-init(1) public-inbox-learn(1) public-inbox-mda(1) + public-inbox-netd(1) public-inbox-nntpd(1) public-inbox-overview(7) + public-inbox-pop3d(1) public-inbox-purge(1) public-inbox-v1-format(5) public-inbox-v2-format(5) @@ -70,16 +78,15 @@ for (qw[lei(1) my ($n) = (/([\w\-\.]+)/); $xurls{$_} = "$n.html"; $xurls{$n} = "$n.html"; + /\Alei-(.+?)\(1\)\z/ and $xurls{"lei $1"} = "$n.html"; } -for (qw[copydatabase(1) xapian-compact(1)]) { - my ($n) = (/([\w\-\.]+)/); - $xurls{$_} = ".$n.1.html" -} +$xurls{'lei/store'} = 'lei-store-format.html'; -for (qw[make(1) flock(2) setrlimit(2) vfork(2) tmpfs(5)]) { +for (qw[make(1) flock(2) setrlimit(2) vfork(2) tmpfs(5) inotify(7) unix(7) + syslog(3)]) { my ($n, $s) = (/([\w\-]+)\((\d)\)/); - $xurls{$_} = "http://www.man7.org/linux/man-pages/man$s/$n.$s.html"; + $xurls{$_} = "https://www.man7.org/linux/man-pages/man$s/$n.$s.html"; } for (qw[git(1) @@ -99,6 +106,7 @@ for (qw[git(1) git-init(1) git-send-email(1) gitrepository-layout(5) + gitglossary(7) ]) { my ($n) = (/([\w\-\.]+)/); $xurls{$_} = "https://kernel.org/pub/software/scm/git/docs/$n.html" @@ -114,6 +122,7 @@ for (qw[ $xurls{$_} = "https://www.freedesktop.org/software/systemd/man/$n.html"; } +# favor upstream docs if they exist, use manpages.debian.org if they don't $xurls{'netrc(5)'} = 'https://manpages.debian.org/stable/ftp/netrc.5.en.html'; $xurls{'mbsync(1)'} = 'https://manpages.debian.org/stable/isync/mbsync.1.en.html'; @@ -131,6 +140,24 @@ $xurls{'cgitrc(5)'} = 'https://git.zx2c4.com/cgit/tree/cgitrc.5.txt'; $xurls{'prove(1)'} = 'https://perldoc.perl.org/prove.html'; $xurls{'mbox(5)'} = 'https://manpages.debian.org/stable/mutt/mbox.5.en.html'; $xurls{'mmdf(5)'} = 'https://manpages.debian.org/stable/mutt/mmdf.5.en.html'; +$xurls{'mutt(1)'} = 'https://manpages.debian.org/stable/mutt/mutt.1.en.html'; +$xurls{'torsocks(1)'} = + 'https://manpages.debian.org/stable/torsocks/torsocks.1.en.html'; +$xurls{'curl(1)'} = 'https://manpages.debian.org/stable/curl/curl.1.en.html'; +$xurls{'copydatabase(1)'} = + 'https://manpages.debian.org/stable/xapian-tools/copydatabase.1.en.html'; +$xurls{'xapian-compact(1)'} = + 'https://manpages.debian.org/stable/xapian-tools/xapian-compact.1.en.html'; +$xurls{'xapian-delve(1)'} = + 'https://manpages.debian.org/stable/xapian-tools/xapian-delve.1.en.html'; +$xurls{'gzip(1)'} = 'https://manpages.debian.org/stable/gzip/gzip.1.en.html'; +$xurls{'chmod(1)'} = + 'https://manpages.debian.org/stable/coreutils/chmod.1.en.html'; +$xurls{'kqueue(2)'} = + 'https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2'; +$xurls{'notmuch(1)'} = 'https://notmuchmail.org/manpages/notmuch-1/'; +$xurls{'mairix(1)'} = + 'https://manpages.debian.org/stable/mairix/mairix.1.en.html'; my $str = do { local $/; <STDIN> }; my ($title) = ($str =~ /\A([^\n]+)/); @@ -140,6 +167,9 @@ if ($str =~ /^NAME\n\s+([^\n]+)/sm) { if ($title =~ /([\w\.\-]+)/) { delete $xurls{$1}; } + if ($title =~ /\blei-([\w\-]+)\b/) { + delete $xurls{"lei $1"}; + } } $title = ascii_html($title); my $l = PublicInbox::Linkify->new; @@ -159,9 +189,3 @@ print '<html><head>', "<title>$title</title>", "</head><body><pre>", $str , '</pre></body></html>'; STDOUT->flush; - -# keep mtime on website consistent so clients can cache -if (-f STDIN && -f STDOUT) { - my @st = stat(STDIN); - utime($st[8], $st[9], \*STDOUT); -} |