# Jedi-Plugin-Template **Repository Path**: mirrors_gitpan/Jedi-Plugin-Template ## Basic Information - **Project Name**: Jedi-Plugin-Template - **Description**: Read-only release history for Jedi-Plugin-Template - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-20 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NAME Jedi::Plugin::Template - Plugin for Template Toolkit # VERSION version 1.001 # DESCRIPTION This is a [Template::Toolkit](https://metacpan.org/pod/Template::Toolkit) plugin for [Jedi](https://metacpan.org/pod/Jedi) web app framework. [Jedi](https://metacpan.org/pod/Jedi) is just a simple web app framework that help your create app above [Plack](https://metacpan.org/pod/Plack). This plugin handle your [Template::Toolkit](https://metacpan.org/pod/Template::Toolkit) files for you. It will use the Jedi config to get the directory of your templates. The default value is the dist\_dir of your module. # SYNOPSIS The directory of your templates should look like : * public * views * layouts The public directory contain all your static files. It is generally your javascripts and css. The views directory contain all your template toolkit files. The views/layouts contain all your template toolkit layout files. To use it in your Jedi app : package MyApps; use Jedi::App; use Jedi::Plugin::Template; sub jedi_app { # ... $jedi->get('/bla', sub { my ($jedi, $request, $response) = @_; $response->body( $jedi->jedi_template('test.tt', {hello => 'world'}, 'main.tt'); ); return 1; }) } 1; The views directory here, look like : * views * test.tt * layouts * main.tt The main.tt look like
This will wrap your content : [% content %] And your test.tt :Hello [% hello %]
# CONFIGURATION: template\_dir By default [Jedi::Plugin::Template](https://metacpan.org/pod/Jedi::Plugin::Template) will setup the 'template\_dir' configuration to the dist\_dir of your package : MyApps: template_dir: DIST_DIR('MyApps') You can create a config file to be able to do development in your working directory like this : MyApps: template_dir: ./share/ In order to be able to deploy and use properly your app like any other perl packages, use the 'share' directory. With [Dist::Zilla](https://metacpan.org/pod/Dist::Zilla) it will be automatic if the "public" and "views" directory is placed under the "share" directory. If you use [Module::Build](https://metacpan.org/pod/Module::Build) you need to defined : my %module_build_args = ( # ... "share_dir" => { "dist" => "share" }, # ... ); # SET A DEFAULT LAYOUT: jedi\_template\_default\_layout You can defined a default layout, by setting the attribute : 'jedi_template_default_layout' $jedi_app->jedi_template_default_layout('main.tt'); # GET YOUR TEMPLATE: jedi\_template The method 'jedi\_template' will use [Template](https://metacpan.org/pod/Template) to process your template. $jedi_app->jedi_template($file, \%vars); $jedi_app->jedi_template($file, \%vars, $layout); The layout use the jedi\_template\_default\_layout by default. You can also remove any layout, using the value "none". $jedi_app->jedi_template($file, \%vars, 'none'), # THE PUBLIC DIRECTORY The plugin will match all missing by sending a public file if this one exists. It handle cache and compression for you. * public * mystyle.css curl http://localhost:3000/mystyle.css If no route match the '/mystyle.css', then the plugin will check in the public dir and send the file if this one is present. # BUGS Please report any bugs or feature requests on the bugtracker website https://github.com/celogeek/perl-jedi-plugin-template/issues When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. # AUTHOR celogeek