Browse files

Moved Perl version drop-down menu to external JavaScript file

  • Loading branch information...
1 parent 0a819d6 commit ef7adda6c3a21fbeccdb9603f9f2d88ee5e167d5 @jonallen committed May 16, 2010
View
21 javascript/perlversion.js
@@ -0,0 +1,21 @@
+// perlversion.js - writes Perl version drop-down menu
+
+function selectPerlVersion(element) {
+ if (element.value.substring(0,1) == '/') {
+ location.href = element.value;
+ }
+}
+
+document.write('<select id="perl_version_select" name="version-chooser" onChange="selectPerlVersion(this)">');
+document.write(' <option selected>Select...');
+document.write(' <optgroup label="Perl 5 version 12">');
+document.write(' <option value="/index.html">Perl 5.12.0');
+document.write(' </optgroup>');
+document.write(' <optgroup label="Perl 5 version 10">');
+document.write(' <option value="/5.10.0/index.html">Perl 5.10.0');
+document.write(' </optgroup>');
+document.write(' <optgroup label="Perl 5 version 8">');
+document.write(' <option value="/5.8.9/index.html">Perl 5.8.9');
+document.write(' <option value="/5.8.8/index.html">Perl 5.8.8');
+document.write(' </optgroup>');
+document.write('</select>');
View
599 lib/Pod/POM/Node.pm.orig
@@ -1,599 +0,0 @@
-#============================================================= -*-Perl-*-
-#
-# Pod::POM::Node
-#
-# DESCRIPTION
-# Base class for a node in a Pod::POM tree.
-#
-# AUTHOR
-# Andy Wardley <abw@wardley.org>
-#
-# COPYRIGHT
-# Copyright (C) 2000-2003 Andy Wardley. All Rights Reserved.
-#
-# This module is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# REVISION
-# $Id: Node.pm 60 2009-03-20 12:41:35Z ford $
-#
-#========================================================================
-
-package Pod::POM::Node;
-
-require 5.004;
-
-use strict;
-use Pod::POM::Nodes;
-use Pod::POM::Constants qw( :all );
-use vars qw( $VERSION $DEBUG $ERROR $NODES $NAMES $AUTOLOAD );
-use constant DUMP_LINE_LENGTH => 80;
-
-$VERSION = sprintf("%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/);
-$DEBUG = 0 unless defined $DEBUG;
-$NODES = {
- pod => 'Pod::POM::Node::Pod',
- head1 => 'Pod::POM::Node::Head1',
- head2 => 'Pod::POM::Node::Head2',
- head3 => 'Pod::POM::Node::Head3',
- head4 => 'Pod::POM::Node::Head4',
- over => 'Pod::POM::Node::Over',
- item => 'Pod::POM::Node::Item',
- begin => 'Pod::POM::Node::Begin',
- for => 'Pod::POM::Node::For',
- text => 'Pod::POM::Node::Text',
- code => 'Pod::POM::Node::Code',
- verbatim => 'Pod::POM::Node::Verbatim',
-};
-$NAMES = {
- map { ( $NODES->{ $_ } => $_ ) } keys %$NODES,
-};
-
-# overload stringification to present node via a view
-use overload
- '""' => 'present',
- fallback => 1,
- 'bool' => sub { 1 };
-
-# alias meta() to metadata()
-*meta = \*metadata;
-
-
-#------------------------------------------------------------------------
-# new($pom, @attr)
-#
-# Constructor method. Returns a new Pod::POM::Node::* object or undef
-# on error. First argument is the Pod::POM parser object, remaining
-# arguments are node attributes as specified in %ATTRIBS in derived class
-# package.
-#------------------------------------------------------------------------
-
-sub new {
- my $class = shift;
- my $pom = shift;
- my ($type, $attribs, $accept, $key, $value, $default);
-
- $type = $NAMES->{ $class };
-
- {
- no strict qw( refs );
- $attribs = \%{"$class\::ATTRIBS"} || [ ];
- $accept = \@{"$class\::ACCEPT"} || [ ];
- unless (defined (%{"$class\::ACCEPT"})) {
- %{"$class\::ACCEPT"} = (
- map { ( $_ => $NODES->{ $_ } ) } @$accept,
- );
- }
- }
-
- # create object with slots for each acceptable child and overall content
- my $self = bless {
- type => $type,
- content => bless([ ], 'Pod::POM::Node::Content'),
- map { ($_ => bless([ ], 'Pod::POM::Node::Content')) }
- (@$accept, 'code'),
- }, $class;
-
- # set attributes from arguments
- keys %$attribs; # reset hash iterator
- while(my ($key, $default) = each %$attribs) {
- $value = shift || $default;
- return $class->error("$type expected a $key")
- unless $value;
- $self->{ $key } = $value;
- }
-
- return $self;
-}
-
-
-#------------------------------------------------------------------------
-# add($pom, $type, @attr)
-#
-# Adds a new node as a child element (content) of the current node.
-# First argument is the Pod::POM parser object. Second argument is the
-# child node type specified by name (e.g. 'head1') which is mapped via
-# the $NODES hash to a class name against which new() can be called.
-# Remaining arguments are attributes passed to the child node constructor.
-# Returns a reference to the new node (child was accepted) or one of the
-# constants REDUCE (child terminated node, e.g. '=back' terminates an
-# '=over' node), REJECT (child rejected, e.g. '=back' expected to terminate
-# '=over' but something else found instead) or IGNORE (node didn't expect
-# child and is implicitly terminated).
-#------------------------------------------------------------------------
-
-sub add {
- my $self = shift;
- my $pom = shift;
- my $type = shift;
- my $class = ref $self;
- my ($name, $attribs, $accept, $expect, $nodeclass, $node);
-
- $name = $NAMES->{ $class }
- || return $self->error("no name for $class");
- {
- no strict qw( refs );
- $accept = \%{"$class\::ACCEPT"};
- $expect = ${"$class\::EXPECT"};
- }
-
- # SHIFT: accept indicates child nodes that can be accepted; a
- # new node is created, added it to content list and node specific
- # list, then returned by reference.
-
- if ($nodeclass = $accept->{ $type }) {
- defined($node = $nodeclass->new($pom, @_))
- || return $self->error($nodeclass->error())
- unless defined $node;
- push(@{ $self->{ $type } }, $node);
- push(@{ $self->{ content } }, $node);
- $pom->{in_begin} = 1 if $nodeclass eq 'Pod::POM::Node::Begin';
- return $node;
- }
-
- # REDUCE: expect indicates the token that should terminate this node
- if (defined $expect && ($type eq $expect)) {
- DEBUG("$name terminated by expected $type\n");
- $pom->{in_begin} = 0 if $name eq 'begin';
- return REDUCE;
- }
-
- # REJECT: expected terminating node was not found
- if (defined $expect) {
- DEBUG("$name rejecting $type, expecting a terminating $expect\n");
- $self->error("$name expected a terminating $expect");
- return REJECT;
- }
-
- # IGNORE: don't know anything about this node
- DEBUG("$name ignoring $type\n");
- return IGNORE;
-}
-
-
-#------------------------------------------------------------------------
-# present($view)
-#
-# Present the node by making a callback on the appropriate method against
-# the view object passed as an argument. $Pod::POM::DEFAULT_VIEW is used
-# if $view is unspecified.
-#------------------------------------------------------------------------
-
-sub present {
- my ($self, $view, @args) = @_;
- $view ||= $Pod::POM::DEFAULT_VIEW;
- my $type = $self->{ type };
- my $method = "view_$type";
- DEBUG("presenting method $method to $view\n");
- return $view->$method($self, @args);
-}
-
-
-#------------------------------------------------------------------------
-# metadata()
-# metadata($key)
-# metadata($key, $value)
-#
-# Returns the metadata hash when called without any arguments. Returns
-# the value of a metadata item when called with a single argument.
-# Sets a metadata item to a value when called with two arguments.
-#------------------------------------------------------------------------
-
-sub metadata {
- my ($self, $key, $value) = @_;
- my $metadata = $self->{ METADATA } ||= { };
-
- return $metadata unless defined $key;
-
- if (defined $value) {
- $metadata->{ $key } = $value;
- }
- else {
- $value = $self->{ METADATA }->{ $key };
- return defined $value ? $value
- : $self->error("no such metadata item: $key");
- }
-}
-
-
-#------------------------------------------------------------------------
-# error()
-# error($msg, ...)
-#
-# May be called as a class or object method to set or retrieve the
-# package variable $ERROR (class method) or internal member
-# $self->{ _ERROR } (object method). The presence of parameters indicates
-# that the error value should be set. Undef is then returned. In the
-# abscence of parameters, the current error value is returned.
-#------------------------------------------------------------------------
-
-sub error {
- my $self = shift;
- my $errvar;
-# use Carp;
-
- {
- no strict qw( refs );
- if (ref $self) {
-# my ($pkg, $file, $line) = caller();
-# print STDERR "called from $file line $line\n";
-# croak "cannot get/set error in non-hash: $self\n"
-# unless UNIVERSAL::isa($self, 'HASH');
- $errvar = \$self->{ ERROR };
- }
- else {
- $errvar = \${"$self\::ERROR"};
- }
- }
- if (@_) {
- $$errvar = ref($_[0]) ? shift : join('', @_);
- return undef;
- }
- else {
- return $$errvar;
- }
-}
-
-
-#------------------------------------------------------------------------
-# dump()
-#
-# Returns a representation of the element and all its children in a
-# format useful only for debugging. The structure of the document is
-# shown by indentation (inspired by HTML::Element).
-#------------------------------------------------------------------------
-
-sub dump {
- my($self, $depth) = @_;
- my $output;
- $depth = 0 unless defined $depth;
- my $nodepkg = ref $self;
- if ($self->isa('REF')) {
- $self = $$self;
- my $cmd = $self->[CMD];
- my @content = @{ $self->[CONTENT] };
- if ($cmd) {
- $output .= (" " x $depth) . $cmd . $self->[LPAREN] . "\n";
- }
- foreach my $item (@content) {
- if (ref $item) {
- $output .= $item->dump($depth+1); # recurse
- }
- else { # text node
- $output .= _dump_text($item, $depth+1);
- }
- }
- if ($cmd) {
- $output .= (" " x $depth) . $self->[RPAREN] . "\n", ;
- }
- }
- else {
- no strict 'refs';
- my @attrs = sort keys %{"*${nodepkg}::ATTRIBS"};
- $output .= (" " x $depth) . $self->type . "\n";
- foreach my $attr (@attrs) {
- if (my $value = $self->{$attr}) {
- $output .= (" " x ($depth+1)) . "\@$attr\n";
-
- if (ref $value) {
- $output .= $value->dump($depth+1);
- }
- else {
- $output .= _dump_text($value, $depth+2);
- }
- }
- }
- foreach my $item (@{$self->{content}}) {
- if (ref $item) { # element
- $output .= $item->dump($depth+1); # recurse
- }
- else { # text node
- $output .= _dump_text($item, $depth+1);
- }
- }
- }
-
- return $output;
-}
-
-sub _dump_text {
- my ($text, $depth) = @_;
-
- my $output = "";
- my $padding = " " x $depth;
- my $max_text_len = DUMP_LINE_LENGTH - length($depth) - 2;
-
- foreach my $line (split(/\n/, $text)) {
- $output .= $padding;
- if (length($line) > $max_text_len or $line =~ m<[\x00-\x1F]>) {
- # it needs prettyin' up somehow or other
- my $x = (length($line) <= $max_text_len) ? $_ : (substr($line, 0, $max_text_len) . '...');
- $x =~ s<([\x00-\x1F])>
- <'\\x'.(unpack("H2",$1))>eg;
- $output .= qq{"$x"\n};
- } else {
- $output .= qq{"$line"\n};
- }
- }
- return $output;
-}
-
-
-#------------------------------------------------------------------------
-# AUTOLOAD
-#------------------------------------------------------------------------
-
-sub AUTOLOAD {
- my $self = shift;
- my $name = $AUTOLOAD;
- my $item;
-
- $name =~ s/.*:://;
- return if $name eq 'DESTROY';
-
-# my ($pkg, $file, $line) = caller();
-# print STDERR "called from $file line $line to return ", ref($item), "\n";
-
- return $self->error("can't manipulate \$self")
- unless UNIVERSAL::isa($self, 'HASH');
- return $self->error("no such member: $name")
- unless defined ($item = $self->{ $name });
-
- return wantarray ? ( UNIVERSAL::isa($item, 'ARRAY') ? @$item : $item )
- : $item;
-}
-
-
-#------------------------------------------------------------------------
-# DEBUG(@msg)
-#------------------------------------------------------------------------
-
-sub DEBUG {
- print STDERR "DEBUG: ", @_ if $DEBUG;
-}
-
-1;
-
-
-
-=head1 NAME
-
-Pod::POM::Node - base class for a POM node
-
-=head1 SYNOPSIS
-
- package Pod::POM::Node::Over;
- use base qw( Pod::POM::Node );
- use vars qw( %ATTRIBS @ACCEPT $EXPECT $ERROR );
-
- %ATTRIBS = ( indent => 4 );
- @ACCEPT = qw( over item begin for text verbatim );
- $EXPECT = q( back );
-
- package main;
- my $list = Pod::POM::Node::Over->new(8);
- $list->add('item', 'First Item');
- $list->add('item', 'Second Item');
- ...
-
-=head1 DESCRIPTION
-
-This documentation describes the inner workings of the Pod::POM::Node
-module and gives a brief overview of the relationship between it and
-its derived classes. It is intended more as a guide to the internals
-for interested hackers than as general user documentation. See
-L<Pod::POM> for information on using the modules.
-
-This module implements a base class node which is subclassed to
-represent different elements within a Pod Object Model.
-
- package Pod::POM::Node::Over;
- use base qw( Pod::POM::Node );
-
-The base class implements the new() constructor method to instantiate
-new node objects.
-
- my $list = Pod::POM::Node::Over->new();
-
-The characteristics of a node can be specified by defining certain
-variables in the derived class package. The C<%ATTRIBS> hash can be
-used to denote attributes that the node should accept. In the case of
-an C<=over> node, for example, an C<indent> attribute can be specified
-which otherwise defaults to 4.
-
- package Pod::POM::Node::Over;
- use base qw( Pod::POM::Node );
- use vars qw( %ATTRIBS $ERROR );
-
- %ATTRIBS = ( indent => 4 );
-
-The new() method will now expect an argument to set the indent value,
-or will use 4 as the default if no argument is provided.
-
- my $list = Pod::POM::Node::Over->new(8); # indent: 8
- my $list = Pod::POM::Node::Over->new( ); # indent: 4
-
-If the default value is undefined then the argument is mandatory.
-
- package Pod::POM::Node::Head1;
- use base qw( Pod::POM::Node );
- use vars qw( %ATTRIBS $ERROR );
-
- %ATTRIBS = ( title => undef );
-
- package main;
- my $head = Pod::POM::Node::Head1->new('My Title');
-
-If a mandatory argument isn't provided then the constructor will
-return undef to indicate failure. The $ERROR variable in the derived
-class package is set to contain a string of the form "$type expected a
-$attribute".
-
- # dies with error: "head1 expected a title"
- my $head = Pod::POM::Node::Head1->new()
- || die $Pod::POM::Node::Head1::ERROR;
-
-For convenience, the error() subroutine can be called as a class
-method to retrieve this value.
-
- my $type = 'Pod::POM::Node::Head1';
- my $head = $type->new()
- || die $type->error();
-
-The C<@ACCEPT> package variable can be used to indicate the node types
-that are permitted as children of a node.
-
- package Pod::POM::Node::Head1;
- use base qw( Pod::POM::Node );
- use vars qw( %ATTRIBS @ACCEPT $ERROR );
-
- %ATTRIBS = ( title => undef );
- @ACCEPT = qw( head2 over begin for text verbatim );
-
-The add() method can then be called against a node to add a new child
-node as part of its content.
-
- $head->add('over', 8);
-
-The first argument indicates the node type. The C<@ACCEPT> list is
-examined to ensure that the child node type is acceptable for the
-parent node. If valid, the constructor for the relevant child node
-class is called passing any remaining arguments as attributes. The
-new node is then returned.
-
- my $list = $head->add('over', 8);
-
-The error() method can be called against the I<parent> node to retrieve
-any constructor error generated by the I<child> node.
-
- my $list = $head->add('over', 8);
- die $head->error() unless defined $list;
-
-If the child node is not acceptable to the parent then the add()
-method returns one of the constants IGNORE, REDUCE or REJECT, as
-defined in Pod::POM::Constants. These return values are used by the
-Pod::POM parser module to implement a simple shift/reduce parser.
-
-In the most common case, IGNORE is returned to indicate that the
-parent node doesn't know anything about the new child node. The
-parser uses this as an indication that it should back up through the
-parse stack until it finds a node which I<will> accept this child node.
-Through this mechanism, the parser is able to implicitly terminate
-certain POD blocks. For example, a list item initiated by a C<=item>
-tag will I<not> accept another C<=item> tag, but will instead return IGNORE.
-The parser will back out until it finds the enclosing C<=over> node
-which I<will> accept it. Thus, a new C<=item> implicitly terminates any
-previous C<=item>.
-
-The C<$EXPECT> package variable can be used to indicate a node type
-which a parent expects to terminate itself. An C<=over> node, for
-example, should always be terminated by a matching C<=back>. When
-such a match is made, the add() method returns REDUCE to indicate
-successful termination.
-
- package Pod::POM::Node::Over;
- use base qw( Pod::POM::Node );
- use vars qw( %ATTRIBS @ACCEPT $EXPECT $ERROR );
-
- %ATTRIBS = ( indent => 4 );
- @ACCEPT = qw( over item begin for text verbatim );
- $EXPECT = q( back );
-
- package main;
- my $list = Pod::POM::Node::Over->new();
- my $item = $list->add('item');
- $list->add('back'); # returns REDUCE
-
-If a child node isn't specified in the C<@ACCEPT> list or doesn't match
-any C<$EXPECT> specified then REJECT is returned. The parent node sets
-an internal error of the form "$type expected a terminating $expect".
-The parser uses this to detect missing POD tags. In nearly all cases
-the parser is smart enough to fix the incorrect structure and downgrades
-any errors to warnings.
-
- # dies with error 'over expected terminating back'
- ref $list->add('head1', 'My Title') # returns REJECT
- || die $list->error();
-
-Each node contains a 'type' field which contains a simple string
-indicating the node type, e.g. 'head1', 'over', etc. The $NODES and
-$NAMES package variables (in the base class) reference hash arrays
-which map these names to and from package names (e.g. head1 E<lt>=E<gt>
-Pod::POM::Node::Head1).
-
- print $list->{ type }; # 'over'
-
-An AUTOLOAD method is provided to access to such internal items for
-those who don't like violating an object's encapsulation.
-
- print $list->type();
-
-Nodes also contain a 'content' list, blessed into the
-Pod::POM::Node::Content class, which contains the content (child
-elements) for the node. The AUTOLOAD method returns this as a list
-reference or as a list of items depending on the context in which it
-is called.
-
- my $items = $list->content();
- my @items = $list->content();
-
-Each node also contains a content list for each individual child node
-type that it may accept.
-
- my @items = $list->item();
- my @text = $list->text();
- my @vtext = $list->verbatim();
-
-The present() method is used to present a node through a particular view.
-This simply maps the node type to a method which is then called against the
-view object. This is known as 'double dispatch'.
-
- my $view = 'Pod::POM::View::HTML';
- print $list->present($view);
-
-The method name is constructed from the node type prefixed by 'view_'.
-Thus the following are roughly equivalent.
-
- $list->present($view);
-
- $view->view_list($list);
-
-The benefit of the former over the latter is, of course, that the
-caller doesn't need to know or determine the type of the node. The
-node itself is in the best position to determine what type it is.
-
-=head1 AUTHOR
-
-Andy Wardley E<lt>abw@kfs.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (C) 2000, 2001 Andy Wardley. All Rights Reserved.
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-Consult L<Pod::POM> for a general overview and examples of use.
-
View
480 lib/Pod/POM/View/HTML.pm.orig
@@ -1,480 +0,0 @@
-#============================================================= -*-Perl-*-
-#
-# Pod::POM::View::HTML
-#
-# DESCRIPTION
-# HTML view of a Pod Object Model.
-#
-# AUTHOR
-# Andy Wardley <abw@kfs.org>
-#
-# COPYRIGHT
-# Copyright (C) 2000 Andy Wardley. All Rights Reserved.
-#
-# This module is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-# REVISION
-# $Id: HTML.pm 33 2009-03-17 21:10:42Z ford $
-#
-#========================================================================
-
-package Pod::POM::View::HTML;
-
-require 5.004;
-
-use strict;
-use Pod::POM::View;
-use base qw( Pod::POM::View );
-use vars qw( $VERSION $DEBUG $ERROR $AUTOLOAD );
-use Text::Wrap;
-
-$VERSION = sprintf("%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/);
-$DEBUG = 0 unless defined $DEBUG;
-my $HTML_PROTECT = 0;
-my @OVER;
-
-sub new {
- my $class = shift;
- my $self = $class->SUPER::new(@_)
- || return;
-
- # initalise stack for maintaining info for nested lists
- $self->{ OVER } = [];
-
- return $self;
-}
-
-
-sub view {
- my ($self, $type, $item) = @_;
-
- if ($type =~ s/^seq_//) {
- return $item;
- }
- elsif (UNIVERSAL::isa($item, 'HASH')) {
- if (defined $item->{ content }) {
- return $item->{ content }->present($self);
- }
- elsif (defined $item->{ text }) {
- my $text = $item->{ text };
- return ref $text ? $text->present($self) : $text;
- }
- else {
- return '';
- }
- }
- elsif (! ref $item) {
- return $item;
- }
- else {
- return '';
- }
-}
-
-
-sub view_pod {
- my ($self, $pod) = @_;
- return "<html>\n<body bgcolor=\"#ffffff\">\n"
- . $pod->content->present($self)
- . "</body>\n</html>\n";
-}
-
-
-sub view_head1 {
- my ($self, $head1) = @_;
- my $title = $head1->title->present($self);
- return "<h1>$title</h1>\n\n"
- . $head1->content->present($self);
-}
-
-
-sub view_head2 {
- my ($self, $head2) = @_;
- my $title = $head2->title->present($self);
- return "<h2>$title</h2>\n"
- . $head2->content->present($self);
-}
-
-
-sub view_head3 {
- my ($self, $head3) = @_;
- my $title = $head3->title->present($self);
- return "<h3>$title</h3>\n"
- . $head3->content->present($self);
-}
-
-
-sub view_head4 {
- my ($self, $head4) = @_;
- my $title = $head4->title->present($self);
- return "<h4>$title</h4>\n"
- . $head4->content->present($self);
-}
-
-
-sub view_over {
- my ($self, $over) = @_;
- my ($start, $end, $strip);
- my $items = $over->item();
-
- if (@$items) {
-
- my $first_title = $items->[0]->title();
-
- if ($first_title =~ /^\s*\*\s*/) {
- # '=item *' => <ul>
- $start = "<ul>\n";
- $end = "</ul>\n";
- $strip = qr/^\s*\*\s*/;
- }
- elsif ($first_title =~ /^\s*\d+\.?\s*/) {
- # '=item 1.' or '=item 1 ' => <ol>
- $start = "<ol>\n";
- $end = "</ol>\n";
- $strip = qr/^\s*\d+\.?\s*/;
- }
- else {
- $start = "<ul>\n";
- $end = "</ul>\n";
- $strip = '';
- }
-
- my $overstack = ref $self ? $self->{ OVER } : \@OVER;
- push(@$overstack, $strip);
- my $content = $over->content->present($self);
- pop(@$overstack);
-
- return $start
- . $content
- . $end;
- }
- else {
- return "<blockquote>\n"
- . $over->content->present($self)
- . "</blockquote>\n";
- }
-}
-
-
-sub view_item {
- my ($self, $item) = @_;
-
- my $over = ref $self ? $self->{ OVER } : \@OVER;
- my $title = $item->title();
- my $strip = $over->[-1];
-
- if (defined $title) {
- $title = $title->present($self) if ref $title;
- $title =~ s/$strip// if $strip;
- if (length $title) {
- my $anchor = $title;
- $anchor =~ s/^\s*|\s*$//g; # strip leading and closing spaces
- $anchor =~ s/\W/_/g;
- $title = qq{<a name="item_$anchor"></a><b>$title</b>};
- }
- }
-
- return '<li>'
- . "$title\n"
- . $item->content->present($self)
- . "</li>\n";
-}
-
-
-sub view_for {
- my ($self, $for) = @_;
- return '' unless $for->format() =~ /\bhtml\b/;
- return $for->text()
- . "\n\n";
-}
-
-
-sub view_begin {
- my ($self, $begin) = @_;
- return '' unless $begin->format() =~ /\bhtml\b/;
- $HTML_PROTECT++;
- my $output = $begin->content->present($self);
- $HTML_PROTECT--;
- return $output;
-}
-
-
-sub view_textblock {
- my ($self, $text) = @_;
- return $HTML_PROTECT ? "$text\n" : "<p>$text</p>\n";
-}
-
-
-sub view_verbatim {
- my ($self, $text) = @_;
- for ($text) {
- s/&/&amp;/g;
- s/</&lt;/g;
- s/>/&gt;/g;
- }
- return "<pre>$text</pre>\n\n";
-}
-
-
-sub view_seq_bold {
- my ($self, $text) = @_;
- return "<b>$text</b>";
-}
-
-
-sub view_seq_italic {
- my ($self, $text) = @_;
- return "<i>$text</i>";
-}
-
-
-sub view_seq_code {
- my ($self, $text) = @_;
- return "<code>$text</code>";
-}
-
-sub view_seq_file {
- my ($self, $text) = @_;
- return "<i>$text</i>";
-}
-
-sub view_seq_space {
- my ($self, $text) = @_;
- $text =~ s/\s/&nbsp;/g;
- return $text;
-}
-
-
-sub view_seq_entity {
- my ($self, $entity) = @_;
- return "&$entity;"
-}
-
-
-sub view_seq_index {
- return '';
-}
-
-
-sub view_seq_link {
- my ($self, $link) = @_;
-
- # view_seq_text has already taken care of L<http://example.com/>
- if ($link =~ /^<a href=/ ) {
- return $link;
- }
-
- # full-blown URL's are emitted as-is
- if ($link =~ m{^\w+://}s ) {
- return make_href($link);
- }
-
- $link =~ s/\n/ /g; # undo line-wrapped tags
-
- my $orig_link = $link;
- my $linktext;
- # strip the sub-title and the following '|' char
- if ( $link =~ s/^ ([^|]+) \| //x ) {
- $linktext = $1;
- }
-
- # make sure sections start with a /
- $link =~ s|^"|/"|;
-
- my $page;
- my $section;
- if ($link =~ m|^ (.*?) / "? (.*?) "? $|x) { # [name]/"section"
- ($page, $section) = ($1, $2);
- }
- elsif ($link =~ /\s/) { # this must be a section with missing quotes
- ($page, $section) = ('', $link);
- }
- else {
- ($page, $section) = ($link, '');
- }
-
- # warning; show some text.
- $linktext = $orig_link unless defined $linktext;
-
- my $url = '';
- if (defined $page && length $page) {
- $url = $self->view_seq_link_transform_path($page);
- }
-
- # append the #section if exists
- $url .= "#$section" if defined $url and
- defined $section and length $section;
-
- return make_href($url, $linktext);
-}
-
-
-# should be sub-classed if extra transformations are needed
-#
-# for example a sub-class may search for the given page and return a
-# relative path to it.
-#
-# META: where this functionality should be documented? This module
-# doesn't have docs section
-#
-sub view_seq_link_transform_path {
- my($self, $page) = @_;
-
- # right now the default transform doesn't check whether the link
- # is not dead (i.e. whether there is a corresponding file.
- # therefore we don't link L<>'s other than L<http://>
- # subclass to change the default (and of course add validation)
-
- # this is the minimal transformation that will be required if enabled
- # $page = "$page.html";
- # $page =~ s|::|/|g;
- #print "page $page\n";
- return undef;
-}
-
-
-sub make_href {
- my($url, $title) = @_;
-
- if (!defined $url) {
- return defined $title ? "<i>$title</i>" : '';
- }
-
- $title = $url unless defined $title;
- #print "$url, $title\n";
- return qq{<a href="$url">$title</a>};
-}
-
-
-
-
-# this code has been borrowed from Pod::Html
-my $urls = '(' . join ('|',
- qw{
- http
- telnet
- mailto
- news
- gopher
- file
- wais
- ftp
- } ) . ')';
-my $ltrs = '\w';
-my $gunk = '/#~:.?+=&%@!\-';
-my $punc = '.:!?\-;';
-my $any = "${ltrs}${gunk}${punc}";
-
-sub view_seq_text {
- my ($self, $text) = @_;
-
- unless ($HTML_PROTECT) {
- for ($text) {
- s/&/&amp;/g;
- s/</&lt;/g;
- s/>/&gt;/g;
- }
- }
-
- $text =~ s{
- \b # start at word boundary
- ( # begin $1 {
- $urls : # need resource and a colon
- (?!:) # Ignore File::, among others.
- [$any] +? # followed by one or more of any valid
- # character, but be conservative and
- # take only what you need to....
- ) # end $1 }
- (?= # look-ahead non-consumptive assertion
- [$punc]* # either 0 or more punctuation followed
- (?: # followed
- [^$any] # by a non-url char
- | # or
- $ # end of the string
- ) #
- | # or else
- $ # then end of the string
- )
- }{<a href="$1">$1</a>}igox;
-
- return $text;
-}
-
-
-1;
-
-=head1 NAME
-
-Pod::POM::View::HTML
-
-=head1 DESCRIPTION
-
-HTML view of a Pod Object Model.
-
-=head1 METHODS
-
-=over 4
-
-=item C<view($self, $type, $item)>
-
-=item C<view_pod($self, $pod)>
-
-=item C<view_head1($self, $head1)>
-
-=item C<view_head2($self, $head2)>
-
-=item C<view_head3($self, $head3)>
-
-=item C<view_head4($self, $head4)>
-
-=item C<view_over($self, $over)>
-
-=item C<view_item($self, $item)>
-
-=item C<view_for($self, $for)>
-
-=item C<view_begin($self, $begin)>
-
-=item C<view_textblock($self, $textblock)>
-
-=item C<view_verbatim($self, $verbatim)>
-
-=item C<view_meta($self, $meta)>
-
-=item C<view_seq_bold($self, $text)>
-
-Returns the text of a C<BE<lt>E<gt>> sequence enclosed in a C<E<lt>b<E<gt>> element.
-
-=item C<view_seq_italic($self, $text)>
-
-Returns the text of a C<IE<lt>E<gt>> sequence enclosed in a C<E<lt>i<E<gt>> element.
-
-=item C<view_seq_code($self, $text)>
-
-Returns the text of a C<CE<lt>E<gt>> sequence enclosed in a C<E<lt>code<E<gt>> element.
-
-=item C<view_seq_file($self, $text)>
-
-=item C<view_seq_entity($self, $text)>
-
-=item C<view_seq_index($self, $text)>
-
-Returns an empty string. Index sequences are suppressed in HTML view.
-
-=item C<view_seq_link($self, $text)>
-
-=back
-
-=head1 AUTHOR
-
-Andy Wardley E<lt>abw@kfs.orgE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (C) 2000 Andy Wardley. All Rights Reserved.
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
View
36 lib/Pod/POM/View/HTML.pm.patch
@@ -1,36 +0,0 @@
---- HTML.pm.orig 2009-04-02 10:10:37.000000000 +0100
-+++ HTML.pm 2009-04-02 10:17:10.000000000 +0100
-@@ -27,6 +27,7 @@
- use Pod::POM::View;
- use base qw( Pod::POM::View );
- use vars qw( $VERSION $DEBUG $ERROR $AUTOLOAD );
-+use HTML::Entities;
- use Text::Wrap;
-
- $VERSION = sprintf("%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/);
-@@ -208,11 +209,7 @@
-
- sub view_verbatim {
- my ($self, $text) = @_;
-- for ($text) {
-- s/&/&amp;/g;
-- s/</&lt;/g;
-- s/>/&gt;/g;
-- }
-+ $text = encode_entities($text);
- return "<pre>$text</pre>\n\n";
- }
-
-@@ -370,11 +367,7 @@
- my ($self, $text) = @_;
-
- unless ($HTML_PROTECT) {
-- for ($text) {
-- s/&/&amp;/g;
-- s/</&lt;/g;
-- s/>/&gt;/g;
-- }
-+ $text = encode_entities($text);
- }
-
- $text =~ s{
View
851 static/css-20100513.css
@@ -0,0 +1,851 @@
+/* @override http://localhost:3323/static/css-20100402.css */
+
+/* @override http://localhost:3323/static/css-20100402.css */
+
+/* @override http://localhost:3323/css-20090810.css */
+
+/* @override http://localhost:3323/css-20090730.css */
+
+/* @override http://localhost:3323/css-20090727.css */
+
+/* @override http://localhost:3323/css-20090722.css */
+
+/* @override http://localhost:3323/css-20090721.css */
+
+/* @override http://localhost:3323/css.css */
+
+/* @group Layout */
+
+body {
+ background-color: #004065;
+ margin: 0;
+ font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+}
+
+div.clear {
+ clear: both;
+}
+
+div#page {
+ width: 946px;
+ margin: 16px auto 26px;
+ position: relative;
+}
+
+p {
+ margin: 0;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+
+/* @group Header */
+
+div#header {
+ height: 105px;
+ background-image: url(header.png);
+ position: relative;
+ width: 946px;
+}
+
+div#strapline {
+
+ color: #b4b4b4;
+ position: absolute;
+ top: 63px;
+ left: 119px;
+ font-size: .8em;
+ text-align: center;
+ width: 228px;
+}
+
+/* @group Download */
+
+div#download_link {
+ position: absolute;
+ top: 48px;
+ font-size: .8em;
+ left: 724px;
+}
+
+div#explore_link {
+ position: absolute;
+ top: 48px;
+ font-size: .8em;
+ left: 846px;
+}
+div.download a {
+ text-decoration: none;
+ color: #b4b4b4;
+}
+
+div.download a:hover {
+ color: #eaeaea;
+}
+
+/* @end */
+
+/* @group Homepage link */
+
+div#homepage_link {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ height: 90px;
+ width: 340px;
+}
+
+div#homepage_link a {
+ display: block;
+ height: 90px;
+}
+
+/* @end */
+
+
+
+/* @group Search form */
+
+label.overTxtLabel {
+ color: #afafaf;
+ font-size: .8em;
+ margin-top: -2px;
+ margin-left: -6px;
+}
+
+div#search_form {
+ position: relative;
+ top: 23px;
+ left: 588px;
+ width: 115px;
+}
+
+div#search_form input {
+ border-style: none;
+ width: 115px;
+}
+
+/* @end */
+
+/* @group Body */
+
+div#body {
+ padding-top: 0px;
+ background: url(main_bg.png) repeat-y;
+}
+
+div#left_column {
+ float: left;
+ width: 145px;
+ padding-left: 30px;
+}
+
+div#centre_column {
+ float: left;
+ width: 731px;
+ margin-left: 9px;
+ margin-right: 9px;
+ position: relative;
+}
+
+div#right_column {
+ float: left;
+ width: 145px;
+ padding-left: 6px;
+}
+
+/* @end */
+
+
+
+/* @group Footer */
+
+div#footer {
+
+}
+
+div#footer_content {
+ background-image: url(footer_bg.png);
+ padding-right: 74px;
+ padding-left: 74px;
+}
+
+div#footer_strapline {
+ text-align: center;
+ padding-top: 15px;
+ padding-bottom: 15px;
+ color: #6c6c6c;
+ font: lighter 1.05em "Gill Sans";
+}
+
+div#footer_end {
+ background-image: url(footer.png);
+ width: 946px;
+ height: 42px;
+ clear: both;
+ background-color: #004065;
+}
+
+/* @group Address */
+
+div#address {
+ background: url(onion-grey.png) no-repeat 0 4px;
+ padding-left: 51px;
+ float: left;
+ border-right: 1px solid #b4b4b4;
+ padding-right: 35px;
+}
+
+div#address p.name {
+ margin: 0;
+ color: #414141;
+}
+
+div#address p.address {
+ color: #797979;
+ font-size: .9em;
+ margin: 3px 0 0;
+ padding: 0;
+}
+
+div#address p.contact {
+ color: #797979;
+ margin: 3px 0 0;
+ font-size: .9em;
+}
+
+div#address p.contact a {
+ color: #797979;
+ text-decoration: underline;
+}
+
+div#address p.contact a:hover {
+ color: #515151;
+}
+
+div#address p.address a {
+ color: #797979;
+ text-decoration: underline;
+}
+
+div#address p.address a:hover {
+ color: #515151;
+}
+
+
+/* @end */
+
+/* @group Links */
+
+div#footer_links {
+ background-image: url(footer_bg.png);
+}
+
+ul.f1 {
+ list-style-type: none;
+ margin: 0;
+ float: right;
+ padding: 8px 0 0;
+}
+
+ul.f1 li {
+ float: left;
+ color: #414141;
+ font-size: .8em;
+ text-align: right;
+ padding-left: 40px;
+}
+
+ul.f2 {
+ list-style-type: none;
+ text-align: right;
+ margin: 3px 0 0;
+ padding: 0;
+}
+
+ul.f2 li {
+ float: none;
+ font-size: 1em;
+ margin: 0;
+ padding: 0;
+}
+
+ul.f2 li a {
+ text-decoration: none;
+ color: #858585;
+}
+
+ul.f2 li a:hover {
+ color: #515151;
+}
+
+/* @end */
+
+
+
+/* @end */
+
+/* @end */
+
+/* @group Side panels */
+
+/* @group Perl version form */
+
+select#perl_version_select {
+ margin: 5px 8px 11px;
+ width: 121px;
+}
+
+/* @end */
+
+div.side_group {
+ margin-bottom: 25px;
+}
+
+div.side_panel {
+ width: 130px;
+ background: #3b3b3b url(combined-20090925.png) no-repeat 0 -216px;
+ color: #d8d8d8;
+ padding-right: 8px;
+ font: .8em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+ margin-bottom: 1px;
+}
+
+div.side_panel p {
+ margin: 0;
+ padding-top: 14px;
+ padding-left: 42px;
+ height: 27px;
+ width: 96px;
+ padding-bottom: 0;
+}
+
+div.doc_panel p {
+ background: url(combined-20090925.png) -648px -153px;
+}
+
+div.links_panel p {
+ background: url(combined-20090925.png) -786px -153px;
+}
+
+div.tools_panel p {
+ background: url(combined-20090925.png) -648px -194px;
+}
+
+div.side_panel ul {
+ padding-left: 8px;
+ margin-bottom: 0;
+ padding-bottom: 11px;
+ margin-top: 1px;
+ font-size: .9em;
+ margin-left: 0;
+}
+
+div.side_panel li {
+ list-style-type: none;
+ text-align: right;
+ padding-bottom: 1px;
+}
+
+div.side_panel a {
+ color: #bebebe;
+ text-decoration: none;
+}
+
+div.side_panel a:hover {
+ color: white;
+}
+
+
+
+/* @end */
+
+/* @group Content */
+
+/* @group Header */
+
+div#content_header {
+ background-image: url(content_bg.png);
+ top: 0;
+ width: 731px;
+ height: 85px;
+ z-index: 1;
+}
+
+/* @group Title bar */
+
+div#title_bar {
+ height: 53px;
+ position: relative;
+ background: url(center_header.png) 0 0;
+}
+
+div#page_name {
+ position: absolute;
+ left: 46px;
+ top: 16px;
+}
+
+div#page_name h1 {
+ color: white;
+ font: normal normal 0.85em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+ margin: 0;
+ padding: 0;
+}
+
+div#perl_version {
+ color: #bebebe;
+ font: .7em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+ position: absolute;
+ left: 46px;
+ top: 33px;
+}
+
+div.page_links {
+ color: #7f7f7f;
+ font: .7em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+ position: absolute;
+}
+
+div#page_links_top {
+ top: 18px;
+ right: 179px;
+}
+
+div#page_links_bottom {
+ top: 33px;
+ right: 179px;
+}
+
+div.page_links a {
+ color: #bebebe;
+ text-decoration: none;
+}
+
+div.page_links a:hover {
+ color: white;
+}
+
+div.page_links a:focus {
+ outline: none;
+}
+
+/* @end */
+
+div#breadcrumbs {
+ color: #7f7f7f;
+ padding-left: 30px;
+ padding-top: 10px;
+ font: .8em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
+}
+
+div#breadcrumbs a {
+ color: #5a5a5a;
+}
+
+/* @end */
+
+/* @group Body */
+
+div.mod_az_list {
+ font-size: .9em;
+ text-align: center;
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
+
+div#content_body {
+ padding-right: 30px;
+ padding-left: 30px;
+ font-size: .8em;
+ color: #515151;
+ position: relative;
+ top: 0px;
+ background-image: url(content_bg.png);
+}
+
+div#content_body h1 {
+ font: 1.9em "ITC Garamond", Garamond, Georgia, "Times New Roman", Times, serif;
+ color: #36497d;
+ background: url(h2_bg.png) no-repeat -2px 29px;
+
+ padding-left: 0px;
+ padding-top: 6px;
+ padding-bottom: 8px;
+ margin-top: 0px;
+ margin-bottom: 0;
+}
+
+div#content_body h2 {
+ font: 1.5em "ITC Garamond", Garamond, Georgia, "Times New Roman", Times, serif;
+ color: #36497d;
+ padding-top: 12px;
+ margin: 0;
+ background: url(h2_bg.png) no-repeat -2px 30px;
+ padding-bottom: 4px;
+ padding-left: 0;
+}
+
+div#content_body h3 {
+ font: 1.3em "ITC Garamond", Garamond, Georgia, "Times New Roman", Times, serif;
+ color: #36497d;
+ margin-top: 9px;
+ margin-bottom: 3px;
+}
+
+div#content_body p {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+div#content_body ul li {
+ padding-bottom: 3px;
+}
+
+div#content_body dt {
+ font-weight: bold;
+}
+
+div#content_body a:link, div#content_body a:active {
+ color: #36415c;
+}
+
+div#content_body a:visited {
+ color: #666666;
+}
+
+div#content_body a:hover {
+ color: #888;
+}
+
+div#searchBanner {
+ text-align: center;
+ background-color: #5ab06d;
+ padding: 10px;
+ margin-bottom: 15px;
+ color: #f1f1f1;
+ border: 5px solid #1a661c;
+ margin-right: 15px;
+ margin-left: 15px;
+}
+
+div#searchBanner a {
+ color: white;
+ font-weight: bold;
+}
+
+div#searchBanner a:link {
+ color: white;
+ font-weight: bold;
+}
+
+div#searchBanner a:visited {
+ color: white;
+ font-weight: bold;
+}
+
+div#searchBanner a:hover {
+ color: white;
+ font-weight: bold;
+}
+
+div.noscript {
+ text-align: center;
+ padding: 10px;
+ margin-bottom: 15px;
+ border: 5px solid #dc4c24;
+ margin-right: 15px;
+ margin-left: 15px;
+}
+
+/* @end */
+
+/* @group Footer */
+
+div#content_footer {
+ width: 731px;
+ height: 25px;
+ background: url(content_footer.png) no-repeat;
+ margin-bottom: 20px;
+}
+
+
+/* @end */
+
+
+
+/* @end */
+
+/* @group Syntax highlighting */
+
+.c { color: #228B22;} /* comment */
+.cm { color: #000000;} /* comma */
+.co { color: #000000;} /* colon */
+.h { color: #CD5555; font-weight:bold;} /* here-doc-target */
+.hh { color: #CD5555; font-style:italic;} /* here-doc-text */
+.i { color: #00688B;} /* identifier */
+.j { color: #CD5555; font-weight:bold;} /* label */
+.k { color: #8B008B; font-weight:bold;} /* keyword */
+.m { color: #FF0000; font-weight:bold;} /* subroutine */
+.n { color: #B452CD;} /* numeric */
+.p { color: #000000;} /* paren */
+.pd { color: #228B22; font-style:italic;} /* pod-text */
+.pu { color: #000000;} /* punctuation */
+.q { color: #CD5555;} /* quote */
+.s { color: #000000;} /* structure */
+.sc { color: #000000;} /* semicolon */
+.v { color: #B452CD;} /* v-string */
+.w { color: #000000;} /* bareword */
+
+a.l_k:link, a.l_k:visited, a.l_k:active { color: #8B008B; font-weight:bold;} /* keyword */
+a.l_k:hover { color: #225533; font-weight:bold;} /* keyword */
+
+a.l_w:link, a.l_w:visited, a.l_w:active { color: #000000; } /* keyword */
+a.l_w:hover { color: #225533; } /* keyword */
+
+code.inline {
+ background: #eeeedd;
+ border-width: 1px;
+ border-style: solid solid solid solid;
+ border-color: #ccc;
+ font-size: 1.2em;
+}
+
+pre.verbatim {
+ margin-left: 10px;
+ margin-right: 10px;
+ background: #eeeedd;
+ border-width: 1px;
+ border-style: solid solid solid solid;
+ border-color: #ccc;
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ padding: 3px;
+ font-size: 1.2em;
+}
+
+pre.verbatim ol {
+ background-color: #d8d8d8;
+ color: #3f3f3f;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+pre.verbatim ol li {
+ background: #eeeedd;
+ padding-left: 5px;
+ color: #262626;
+ padding-bottom: 2px;
+}
+
+pre.indent {
+ margin-left: 30px;
+ margin-right: 30px;
+ background: #eeeedd;
+ border-width: 1px;
+ border-style: solid solid solid solid;
+ border-color: #ccc;
+ padding: 10px 10px 10px 10px;
+}
+
+/* @end */
+
+/* @group Page Index */
+
+div#page_index {
+ top: 180px;
+ left: 550px;
+}
+
+div#recent_pages {
+ top: 180px;
+ left: 250px;
+}
+
+div.hud_container {
+ position: fixed;
+ z-index: 2;
+ display: none;
+ visibility: hidden;
+}
+
+div.hud_header {
+}
+
+div.hud_footer {
+}
+
+div.hud_bottomleft {
+ background: url(popup_bottomleft.png) no-repeat;
+ width: 8px;
+ height: 23px;
+ float: left;
+}
+
+div.hud_title {
+ background-image: url(popup_title.png);
+ margin-left: 24px;
+ margin-right: 8px;
+ padding-top: 4px;
+ color: #d8d8d8;
+ text-align: center;
+ padding-right: 16px;
+ font-size: .9em;
+ cursor: move;
+}
+
+div.hud_topright {
+ width: 8px;
+ height: 23px;
+ background-image: url(popup_topright.png);
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+
+div.hud_bottom {
+ background-image: url(popup_bg.png);
+ margin-left: 8px;
+ margin-right: 23px;
+}
+
+div.hud_resize {
+ background: url(popup_resize.png) no-repeat;
+ width: 23px;
+ height: 23px;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ cursor: se-resize;
+}
+
+div.hud_close {
+ width: 24px;
+ height: 23px;
+ background-image: url(popup_close.png);
+ float: left;
+}
+
+div.hud_close a {
+ display: block;
+ width: 24px;
+ height: 23px;
+}
+
+div.hud_content {
+ overflow: auto;
+ width: 250px;
+ height: 200px;
+ background-image: url(popup_bg.png);
+ font-size: .9em;
+ color: #7f7f7f;
+ padding-right: 5px;
+}
+
+div.hud_content ul {
+ margin-top: 10px;
+}
+
+div#content_body div.hud_content a:link {
+ color: #a6a6a6;
+}
+
+div#content_body div.hud_content a:visited {
+ color: #a6a6a6;
+}
+
+div#content_body div.hud_content {
+ color: #a6a6a6;
+}
+
+div#content_body div.hud_content a:hover {
+ color: #fff;
+}
+
+span.hud_span_top {
+ display: inline-block;
+ height: 19px;
+}
+
+span.hud_span_bottom {
+ display: inline-block;
+ height: 23px;
+}
+
+div#recent_pages_content {
+ width: 170px;
+ height: 200px;
+}
+
+/* @end */
+
+/* @group Search results */
+
+div.search_results {
+ margin-bottom: 15px;
+}
+
+div.search_results img {
+ margin-right: 10px;
+ vertical-align: top;
+}
+
+/* @end */
+
+/* @group Preferences */
+
+form.prefs {
+ width: 580px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+form.prefs legend {
+ padding: 2px 15px 2px 8px;
+ color: #3f3f3f;
+ border: 2px solid #bfbfbf;
+ background-color: white;
+ font-weight: bold;
+ font-size: .9em;
+}
+
+form.prefs fieldset {
+ margin-bottom: 20px;
+ padding-bottom: 25px;
+ border: 2px solid #bfbfbf;
+ background-color: #fafafa;
+}
+
+form.prefs label {
+ display: block;
+ margin-left: 50px;
+ margin-bottom: -8px;
+ font-size: .9em;
+}
+
+form.prefs fieldset input {
+ float: left;
+ margin-left: 25px;
+}
+
+div.form_section {
+ font-size: .9em;
+ color: #3f3f3f;
+ border-bottom: 1px solid #bfbfbf;
+ padding-bottom: 1px;
+ margin: 7px 10px 13px;
+ font-weight: bold;
+ font-style: italic;
+}
+
+div.form_buttons {
+ padding-bottom: 5px;
+ text-align: center;
+}
+
+div.form_buttons input {
+ margin-right: 6px;
+ margin-left: 6px;
+ font-size: 1.2em;
+}
+
+/* @end */
View
BIN syntax.cache
Binary file not shown.
View
2 templates/default.tt
@@ -33,7 +33,7 @@
[% UNLESS download %]
<div class="side_panel doc_panel">
<p>Perl version</p>
- [% INCLUDE perlversion.tt %]
+ <script language="JavaScript" type="text/javascript" src="/static/perlversion.js"></script>
<ul>
<li><a href="[% path %]preferences.html">Preferences</a>
</ul>

0 comments on commit ef7adda

Please sign in to comment.