]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/meta.pm
* meta: Support license and copyright information. The information will
[ikiwiki.git] / IkiWiki / Plugin / meta.pm
index ec7a2d0813337a53f4e884ae41e42a7363ea2df8..a4dd541f982eda7ef884395692f55a48baa85e83 100644 (file)
@@ -4,13 +4,15 @@ package IkiWiki::Plugin::meta;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 2.00;
 
 my %meta;
 my %title;
 my %permalink;
 my %author;
 my %authorurl;
+my %license;
+my %copyright;
 
 sub import { #{{{
        hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
@@ -45,6 +47,7 @@ sub preprocess (@) { #{{{
        delete $params{$key};
        my $page=$params{page};
        delete $params{page};
+       my $destpage=$params{destpage};
        delete $params{destpage};
        delete $params{preview};
 
@@ -65,7 +68,7 @@ sub preprocess (@) { #{{{
                }
        }
        elsif ($key eq 'title') {
-               $title{$page}=encode_entities($value);
+               $title{$page}=HTML::Entities::encode_numeric($value);
        }
        elsif ($key eq 'permalink') {
                $permalink{$page}=$value;
@@ -87,10 +90,10 @@ sub preprocess (@) { #{{{
                if (! length $stylesheet) {
                        return "[[meta ".gettext("stylesheet not found")."]]";
                }
-               $meta{$page}.='<link href="'.$stylesheet.
+               $meta{$page}.='<link href="'.urlto($stylesheet, $page).
                        '" rel="'.encode_entities($rel).
                        '" title="'.encode_entities($title).
-                       "style=\"text/css\" />\n";
+                       "\" type=\"text/css\" />\n";
        }
        elsif ($key eq 'openid') {
                if (exists $params{server}) {
@@ -100,6 +103,14 @@ sub preprocess (@) { #{{{
                $meta{$page}.='<link href="'.encode_entities($value).
                        "\" rel=\"openid.delegate\" />\n";
        }
+       elsif ($key eq 'license') {
+               $meta{$page}.="<link rel=\"license\" href=\"#page_license\" />\n";
+               $license{$page}=IkiWiki::linkify($page, $destpage, $value);
+       }
+       elsif ($key eq 'copyright') {
+               $meta{$page}.="<link rel=\"copyright\" href=\"#page_copyright\" />\n";
+               $copyright{$page}=IkiWiki::linkify($page, $destpage, $value);
+       }
        else {
                $meta{$page}.=scrub("<meta name=\"".encode_entities($key).
                        "\" content=\"".encode_entities($value)."\" />\n");
@@ -131,6 +142,10 @@ sub pagetemplate (@) { #{{{
                if exists $author{$page} && $template->query(name => "author");
        $template->param(authorurl => $authorurl{$page})
                if exists $authorurl{$page} && $template->query(name => "authorurl");
+       $template->param(license => $license{$page})
+               if exists $license{$page} && $template->query(name => "license");
+       $template->param(copyright => $copyright{$page})
+               if exists $copyright{$page} && $template->query(name => "copyright");
        
 } # }}}