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__ =pod =head1 NAME Rudesind::UI - Functions used by the Rudesind UI =head1 SYNOPSIS my ( $gallery, $image ) = Rudesind::UI::new_from_path( $path ); my $html = Rudesind::UI::text_to_html( $image->caption ); =head1 DESCRIPTION This module contains a few functions needed for Rudesind's Mason UI. =head1 FUNCTIONS Currently, this module provides two functions: =over 4 =item * 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 C object. If it is for an image, it returns a list consisting of a C and C object. =item * text_to_html($text) Given a piece of text (a gallery or image caption), this method formats that text as HTML using C, and returns the HTML. =back =cut