forked from github/kensanata.oddmuse
With escaped HTML output.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user