With escaped HTML output.

This commit is contained in:
Alex Schroeder
2004-08-11 01:35:17 +00:00
parent 1f4067b4bb
commit 6fefae0f69

View File

@@ -16,7 +16,7 @@
# 59 Temple Place, Suite 330
# Boston, MA 02111-1307 USA
$ModulesDescription .= '<p>$Id: atom.pl,v 1.2 2004/08/11 00:30:45 as Exp $</p>';
$ModulesDescription .= '<p>$Id: atom.pl,v 1.3 2004/08/11 01:35:17 as Exp $</p>';
$Action{atom} = \&DoAtom;
@@ -38,26 +38,26 @@ sub AtomTag {
sub GetRcAtom {
# from http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-01.txt
my $result = <<EOT;
print <<EOT;
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
EOT
$result .= AtomTag('title', $SiteName);
$result .= "<link href=\"$ScriptName\" rel=\"alternate\" title=\"$SiteName\" type=\"text/html\" />\n";
$result .= AtomTag('author', "<person><name>$RssPublisher</name></person>")
print AtomTag('title', $SiteName);
print "<link href=\"$ScriptName\" rel=\"alternate\" title=\"$SiteName\" type=\"text/html\" />\n";
print AtomTag('author', "<person><name>$RssPublisher</name></person>")
if $RssPublisher;
$result .= AtomTag('contributor', "<person><name>$RssContributor</name></person>")
print AtomTag('contributor', "<person><name>$RssContributor</name></person>")
if $RssContributor;
$result .= "<generator url=\"http://www.oddmuse.org/\">Oddmuse</generator>\n";
$result .= AtomTag('copyright', $RssRights)
print "<generator url=\"http://www.oddmuse.org/\">Oddmuse</generator>\n";
print AtomTag('copyright', $RssRights)
if $RssRights;
$result .= <<EOT;
print <<EOT;
<info mode="xml" type="text/html">
<div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site.</div>
</info>
EOT
$result .= AtomTag('modified', AtomTime($LastUpdate));
print AtomTag('modified', AtomTime($LastUpdate));
GetRc(sub {},
sub {
my ($pagename, $timestamp, $host, $userName, $summary, $minor, $revision, $languages, $cluster) = @_;
@@ -66,20 +66,34 @@ EOT
my $author = $userName;
$author = $host unless $author;
my $link = $ScriptName . ($UsePathInfo ? '/' : '?') . $pagename;
OpenPage($pagename);
my $content = QuoteHtml($Page{text});
# output
$result .= "<entry>\n";
$result .= AtomTag('title', $name);
$result .= AtomTag('link', $link);
$result .= AtomTag('author', "<person><name>$author</name></person>");
$result .= AtomTag('modified', AtomTime($timestamp));
$result .= AtomTag('issued', AtomTime($timestamp));
$result .= AtomTag('summary', $summary);
$result .= "<content mode=\"escaped\" type=\"text/plain\">$content</content>\n" if $content;
$result .= "</entry>\n";
my $entry = "<entry>\n";
print AtomTag('title', $name);
print AtomTag('link', $link);
print AtomTag('author', "<person><name>$author</name></person>");
print AtomTag('modified', AtomTime($timestamp));
print AtomTag('issued', AtomTime($timestamp));
print AtomTag('summary', $summary);
print "<content type=\"text/html\" mode=\"escaped\">\n";
print AtomPage($pagename);
print "\n</content>\n";
print "</entry>\n";
},
@_);
$result .= "</feed>\n";
return $result;
print "</feed>\n";
return '';
}
sub AtomPage {
my $id = shift;
my $result = '';
local *STDOUT;
open(STDOUT, '>', \$result) or die "Can't open memory file: $!";
OpenPage($id);
if ($Page{blocks} && $Page{flags}) {
PrintCache();
} else {
PrintWikiToHTML($Page{text}, 1); # save cache, current revision, no main lock
}
return QuoteHtml($result);
}