aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Reaction/UI/ViewPort/SiteLayout.pm5
-rw-r--r--lib/Reaction/UI/Widget/SiteLayout.pm9
-rw-r--r--share/skin/default/layout/site_layout.tt9
3 files changed, 23 insertions, 0 deletions
diff --git a/lib/Reaction/UI/ViewPort/SiteLayout.pm b/lib/Reaction/UI/ViewPort/SiteLayout.pm
index 4560dc6..a8ee133 100644
--- a/lib/Reaction/UI/ViewPort/SiteLayout.pm
+++ b/lib/Reaction/UI/ViewPort/SiteLayout.pm
@@ -9,6 +9,11 @@ class SiteLayout is ViewPort, which {
has 'static_base_uri' => (isa => 'Str', is => 'rw', lazy_fail => 1);
+ has 'meta_info' => (
+ is => 'rw', isa => 'HashRef',
+ required => '1', default => sub { {} }
+ );
+
};
1;
diff --git a/lib/Reaction/UI/Widget/SiteLayout.pm b/lib/Reaction/UI/Widget/SiteLayout.pm
index 73406a9..dc9574a 100644
--- a/lib/Reaction/UI/Widget/SiteLayout.pm
+++ b/lib/Reaction/UI/Widget/SiteLayout.pm
@@ -10,6 +10,15 @@ class SiteLayout is Container, which {
arg title => $_{viewport}->title;
};
+ implements fragment meta_info {
+ render meta_member => over [keys %{$_{viewport}->meta_info}];
+ };
+
+ implements fragment meta_member {
+ arg 'meta_name' => $_;
+ arg 'meta_value' => $_{viewport}->meta_info->{$_};
+ };
+
};
1;
diff --git a/share/skin/default/layout/site_layout.tt b/share/skin/default/layout/site_layout.tt
index 1e7afa1..e9b70ca 100644
--- a/share/skin/default/layout/site_layout.tt
+++ b/share/skin/default/layout/site_layout.tt
@@ -24,6 +24,15 @@
=for layout head_meta
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ [% meta_info %]
+
+=for layout meta_info
+
+[% call_next %]
+
+=for layout meta_member
+
+<meta name="[% meta_name %]" content="[% meta_value %]" />[% "\n" %]
=for layout head_style