Rudesind::UI - Functions used by the Rudesind UI


Rudesind documentation Contained in the Rudesind distribution.

Index


Code Index:

NAME

Top

Rudesind::UI - Functions used by the Rudesind UI

SYNOPSIS

Top

  my ( $gallery, $image ) = Rudesind::UI::new_from_path( $path );

  my $html = Rudesind::UI::text_to_html( $image->caption );

DESCRIPTION

Top

This module contains a few functions needed for Rudesind's Mason UI.

FUNCTIONS

Top

Currently, this module provides two functions:

* new_from_path($path)

Given a path based on the current URI, this function determines whether this path is for an image or gallery.

If it is for a gallery, it returns a list consisting of a single Rudesind::Gallery object. If it is for an image, it returns a list consisting of a Rudesind::Gallery and Rudesind::Image object.

* text_to_html($text)

Given a piece of text (a gallery or image caption), this method formats that text as HTML using Text::WikiFormat, and returns the HTML.


Rudesind documentation Contained in the Rudesind distribution.

package Rudesind::UI;

use strict;

use Text::WikiFormat ();

use Rudesind::Config;
use Rudesind::Gallery;
use Rudesind::Image;


sub text_to_html
{
    return Text::WikiFormat::format( $_[0],
                                     {},
                                     { implicit_links => 0,
                                       absolute_links => 1,
                                       extended => 1,
                                     },
                                   );
}

sub new_from_path
{
    my $path = shift;
    my $config = shift;

    my $re = Rudesind::Image->image_extension_re;

    if ( $path =~ s/\.html$// || $path =~ /$re/ )
    {
        my ( $dir_path, $file ) = $path =~ m{(.+?)/([^/]+$)};

        $dir_path ||= '/';
        $file ||= $path;

        my $dir = Rudesind::Gallery->new( path => $dir_path, config => $config );

        return unless $dir;

        return ( $dir, $dir->image($file) );
    }
    else
    {
        return ( Rudesind::Gallery->new( path => $path, config => $config ) );
    }
}


1;

__END__