The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Catalyst::Helper::View::SemanticUI - Helper for Semantic UI and TT view which builds a skeleton web site


# use the helper to create the view module and templates

    $ script/ view HTML SemanticUI

# add something like the following actions to your main application module

    sub message : Global {
        my ( $self, $c ) = @_;
        $c->stash->{template} = 'message.tt2';
        $c->stash->{message}  ||= $c->req->param('message') || 'No message';

    sub index : Path : Args(0) {
        my ( $self, $c ) = @_;
        $c->stash->{template} = 'welcome.tt2';

    sub end : Private { # Or use Catalyst::Action::RenderView
        my ( $self, $c ) = @_;
        $c->forward( $c->view('HTML') );


This helper module creates a TT View module. It goes further than Catalyst::Helper::View::TT in that it additionally creates a simple set of templates to get you started with your web site presentation using Semantic UI from a CDN (Content Delivery Network).

It creates the templates in root/ directory underneath your main project directory. In here two further subdirectories are created: root/src which contains the main page templates, and root/lib containing a library of other template components (header, footer, etc.) that the page templates use.

The view module that the helper creates is automatically configured to locate these templates.

It sets character encoding to utf-8 and it delivers HTML5 pages.

Default Rendering

To render a template the following process is applied:

The configuration template root/lib/config/main is rendered. This is controlled by the PRE_PROCESS configuration variable set in the controller generated by Catalyst::Helper::View::SemanticUI. Additionally, templates referenced by the PROCESS directive will then be rendered.

Next, the template defined by the WRAPPER config variable is called. The default wrapper template is located in root/lib/site/wrapper. The wrapper template passes files with .css/.js/.txt extensions through as text OR processes the templates defined after the WRAPPER directive: site/html and site/layout.

Based on the default value of the WRAPPER directive in root/lib/site/wrapper, the following templates are processed in order:

  • root/src/your_template.tt2

  • root/lib/site/footer

  • root/lib/site/header

  • root/lib/site/sidemenu

  • root/lib/site/layout

  • root/lib/site/html

Finally, the rendered content is returned to the bowser.



Generates the component class.


Generates the templates.


Catalyst, Catalyst::View::TT, Catalyst::Helper, Catalyst::Helper::View::TT SemanticUI


Ferruccio Zamuner <>

Following have contributed to Catalyst::Helper::View::Bootstrap:

Juan Paredes Colin Keith <>


This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.


[% class %] - Catalyst TT SemanticUI View


See "[% app %]"


Catalyst TTSite View.


[% author %]


This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.