#!/usr/bin/perl
+no lib '.';
use warnings;
use strict;
-use lib '.'; # For use in nonstandard directory, munged by Makefile.
+use FindBin; use lib $FindBin::Bin; # For use in nonstandard directory, munged by Makefile.
use IkiWiki;
use IkiWiki::Plugin::comments;
use Getopt::Long;
my $pagefile=shift || usage();
my $interactive = -t STDIN;
my $content;
- my ($format, $username, $subject, $date);
+ my ($format, $username, $subject, $date, $url, $email, $ip);
GetOptions(
'format:s' => \$format,
'username:s' => \$username,
'subject:s' => \$subject,
'date:s' => \$date,
+ 'url:s' => \$url,
+ 'email:s' => \$email,
+ 'ip:s' => \$ip,
) || usage();
my $dir=get_dir($pagefile);
$format ||= 'mdwn';
$username ||= get_username();
$subject ||= get_subject($page, $dir);
- $date ||= get_date();
+ $date ||= IkiWiki::Plugin::comments::commentdate();
+ $url ||= undef;
+ $email ||= undef;
+ $ip ||= undef;
} else {
$format ||= undef;
die "must supply username" unless defined $username;
$subject ||= get_subject($page, $dir);
die "must supply date" unless defined $date;
+ $url ||= undef;
+ $email ||= undef;
+ $ip ||= undef;
chomp($content = join('', <STDIN>));
}
- my $comment=get_comment($format, $username, $subject, $date, $content);
+ my $comment=get_comment($format, $username, $subject, $date, $url, $email, $ip, $content);
# For interactive use, this will yield a hash of the comment before
# it's edited, but that's ok; the date provides sufficient entropy
return "comment $comment_num";
}
-sub get_date {
- my $date = IkiWiki::Plugin::comments::commentdate();
- $date =~ s|^date=\\"||;
- $date =~ s|\\"$||;
- return $date;
-}
-
sub get_comment {
- my ($format, $username, $subject, $date, $content) = @_;
+ my ($format, $username, $subject, $date, $url, $email, $ip, $content) = @_;
$format = defined $format ? $format = " format=$format" : q{};
$content = '' unless defined $content;
my $comment="[[!comment$format\n";
$comment.=" username=\"$username\"\n";
$comment.=" subject=\"\"\"$subject\"\"\"\n";
$comment.=" date=\"$date\"\n";
+ $comment.=" url=\"$url\"\n" if defined $url;
+ $comment.=" email=\"$email\"\n" if defined $email;
+ $comment.=" ip=\"$ip\"\n" if defined $ip;
$comment.=" content=\"\"\"\n$content\n\"\"\"]]\n";
return $comment;
}
@editor=split(' ', $ENV{EDITOR});
}
if (exists $ENV{VISUAL}) {
- @editor=split(' ', $ENV{VISUAL});
+ @editor=split(' ', $ENV{VISUAL});
}
exec(@editor, $file);
}