use Getopt::Long;
my $opt_lang = 'en';
-GetOptions ('lang=s' => \$opt_lang)
+my $opt_index;
+GetOptions ('lang=s' => \$opt_lang,
+ 'index' => \$opt_index)
or die("bad command line arguments\n");
my $link_re =
my $txt = do { local $/; <STDIN> };
+
my $title = html_esc($txt =~ /\A([^\n]+)/);
$title =~ s/^\s+|\s+$//g;
if ($opt_lang eq 'fa') {
$title .= ' — bandali' if $title !~ /bandali/;
}
+my ($upd, $pub, $url) = $txt =~ /(.*)\r?\n(.*)\r?\n(.*)\r?\n?\z/;
+($upd) = $upd =~ /(?:updated|ویرایش): (.*)/ if $upd;
+($pub) = $pub =~ /(?:published|انتشار): (.*)/ if $pub;
+($url) = $url =~ /(?:plain text|متن ساده): (.*)/ if $url;
+$url = 'https://bndl.org/bandali-cv.txt'
+ if (!$url and $title =~ /curriculum vitae/);
+$url = html_esc($url) if $url;
+
$txt = linkify(html_esc($txt));
-print('<!doctype html>',
+print("<!doctype html>",
qq(<html lang="$opt_lang"),
- $opt_lang eq 'fa' ? ' dir="rtl"' : '', '>',
- '<head><meta
-http-equiv="Content-Type"
-content="text/html; charset=utf-8"
-/>',
- "<title>$title</title>",
+ $opt_lang eq 'fa' ? ' dir="rtl"' : '',
+ ">",
+ qq(<head>
+<meta http-equiv="Content-Type"
+content="text/html; charset=utf-8" />\n),
+ "<title>$title</title>\n",
+ qq(<link rel="icon" href="data:,">\n),
+ $url ? qq(<link rel="alternate" href="$url"
+title="plain text" type="text/plain" />\n) : '',
+ ($opt_index and $opt_lang eq 'en')
+ ? qq(<link rel="alternate" href="https://bndl.org/fa/"
+hreflang="fa" title="persian" />\n)
+ : ($opt_index and $opt_lang eq 'fa')
+ ? qq(<link rel="alternate" href="https://bndl.org/"
+hreflang="en" title="english" />\n)
+ : '',
+ qq(<style>\@media(prefers-color-scheme:dark){
+body{background:#1c1c1c;color:white;}a:link{color:#acdeff;}
+a:visited{color:#f8f;}a:active{color:#e00;}}),
$opt_lang eq 'fa'
- ? "\n<style>\@font-face{font-family:sahel;font-weight:normal;
+ ? qq(\n\@font-face{font-family:sahel;font-weight:normal;
src:local('Sahel WOL'),local('Sahel'),
-url('sahel.woff2')format('woff2');}pre{font-family:sahel}</style>\n"
+url('sahel.woff2')format('woff2');}pre{font-family:sahel})
: '',
- '</head><body><pre>', $txt, '</pre></body></html>');
+ "</style>\n",
+ "</head><body><pre>$txt</pre></body></html>\n");
STDOUT->flush;