- my ($ctx, $mime, $full_pfx, $footer) = @_;
- if (defined $footer) {
- $footer = "\n" . $footer;
- } else {
- $footer = '';
- }
- headers_to_html_header($mime, $full_pfx, $ctx) .
- multipart_text_as_html($mime, $full_pfx) .
- '</pre><hr />' . PRE_WRAP .
- html_footer($mime, 1, $full_pfx, $ctx) .
- $footer .
- '</pre></body></html>';
-}
-
-sub feed_entry {
- my ($class, $mime, $full_pfx) = @_;
-
- PRE_WRAP . multipart_text_as_html($mime, $full_pfx) . '</pre>';
+ my ($ctx, $mime, $footer) = @_;
+ $footer = defined($footer) ? "\n$footer" : '';
+ my $hdr = $mime->header_obj;
+ my $n = 0;
+ Plack::Util::inline_object(
+ close => sub {}, # noop
+ getline => sub {
+ my $nr = $n++;
+ if ($nr == 0) {
+ headers_to_html_header($hdr, $ctx) .
+ multipart_text_as_html($mime, '') .
+ '</pre><hr />'
+ } elsif ($nr == 1) {
+ '<pre>' .
+ html_footer($hdr, 1, $ctx) .
+ '</pre>' . msg_reply($ctx, $hdr) .
+ '<hr /><pre>'. $footer .
+ '</pre></body></html>'
+ } else {
+ undef
+ }
+ }
+ )
+}
+
+# /$INBOX/$MESSAGE_ID/#R
+sub msg_reply {
+ my ($ctx, $hdr) = @_;
+ my $se_url =
+ 'https://kernel.org/pub/software/scm/git/docs/git-send-email.html';
+
+ my ($arg, $link) = mailto_arg_link($hdr);
+ push @$arg, '/path/to/YOUR_REPLY';
+
+ "<hr /><pre\nid=R>".
+ "You may reply publically to <a\nhref=#t>this message</a> via\n".
+ "plain-text email using any one of the following methods:\n\n" .
+ "* Save the following mbox file, import it into your mail client,\n" .
+ " and reply-to-all from there: <a\nhref=raw>mbox</a>\n\n" .
+ "* Reply to all the recipients using the <b>--to</b>, <b>--cc</b>,\n" .
+ " and <b>--in-reply-to</b> switches of git-send-email(1):\n\n" .
+ "\tgit send-email \\\n\t\t" .
+ join(" \\\n\t\t", @$arg ). "\n\n" .
+ qq( <a\nhref="$se_url">$se_url</a>\n\n) .
+ "* If your mail client supports setting the <b>In-Reply-To</b>" .
+ " header\n via mailto: links, try the " .
+ qq(<a\nhref="$link">mailto: link</a>\n) .
+ '</pre>';