---
name: "MojoX::Renderer"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "0.999926-1+squeeze2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/MojoX::Renderer"
---

# MojoX::Renderer(3pm)

MIME Type Based Renderer

## NAME

MojoX::Renderer - MIME Type Based Renderer

## SYNOPSIS

```
    use MojoX::Renderer;
    my $renderer = MojoX::Renderer->new;
```

## DESCRIPTION

MojoX::Renderer is the standard Mojolicious renderer. It turns your stashed data structures into content.

## ATTRIBUTES

MojoX::Types implements the following attributes.

### "default\_format"

```
    my $default = $renderer->default_format;
    $renderer   = $renderer->default_format('html');
```

The default format to render if `"format"` is not set in the stash. The renderer will use MojoX::Types to look up the content MIME type.

### "default\_handler"

```
    my $default = $renderer->default_handler;
    $renderer   = $renderer->default_handler('epl');
```

The default template handler to use for rendering. There are two handlers in this distribution.

- epl

  `"Embedded Perl Lite"` handled by Mojolicious::Plugin::EplRenderer.

- ep

  `"Embedded Perl"` handled by Mojolicious::Plugin::EpRenderer.

### "default\_status"

```
    my $default = $renderer->default_status;
    $renderer   = $renderer->default_status(404);
```

The default status to set when rendering content, defaults to `200`.

### "default\_template\_class"

```
    my $default = $renderer->default_template_class;
    $renderer   = $renderer->default_template_class('main');
```

The renderer will use this class to look for templates in the `"__DATA__"` section.

### "detect\_templates"

```
    my $detect = $renderer->detect_templates;
    $renderer  = $renderer->detect_templates(1);
```

Template auto detection, the renderer will try to select the right template and renderer automatically. A very powerful alternative to `"default_handler"` that allows parallel use of multiple template systems.

### "encoding"

```
    my $encoding = $renderer->encoding;
    $renderer    = $renderer->encoding('koi8-r');
```

Will encode the content if set.

### "handler"

```
    my $handler = $renderer->handler;
    $renderer   = $renderer->handler({epl => sub { ... }});
```

Registered handlers.

### "helper"

```
    my $helper = $renderer->helper;
    $renderer  = $renderer->helper({url_for => sub { ... }});
```

Registered helpers.

### "layout\_prefix"

```
    my $prefix = $renderer->layout_prefix;
    $renderer  = $renderer->layout_prefix('layouts');
```

Directory to look for layouts in, defaults to `"layouts"`.

### "root"

```
   my $root  = $renderer->root;
   $renderer = $renderer->root('/foo/bar/templates');
```

Directory to look for templates in.

### "types"

```
    my $types = $renderer->types;
    $renderer = $renderer->types(MojoX::Types->new);
```

MojoX::Types object to use for looking up MIME types.

## METHODS

MojoX::Renderer inherits all methods from Mojo::Base and implements the following ones.

### "new"

```
    my $renderer = MojoX::Renderer->new;
```

Construct a new renderer.

### "add\_handler"

```
    $renderer = $renderer->add_handler(epl => sub { ... });
```

Add a new handler to the renderer. See Mojolicious::Plugin::EpRenderer for a sample renderer.

### "add\_helper"

```
    $renderer = $renderer->add_helper(url_for => sub { ... });
```

Add a new helper to the renderer. See Mojolicious::Plugin::EpRenderer for sample helpers.

### "get\_inline\_template"

```
    my $template = $renderer->get_inline_template($c, 'foo.html.ep');
```

Get an inline template by name, usually used by handlers.

### "render"

```
    my $success = $renderer->render($c);
    $c->stash->{partial} = 1;
    my $output = $renderer->render($c);
```

Render output through one of the Mojo renderers. This renderer requires some configuration, at the very least you will need to have a default `"format"` and a default `"handler"` as well as a `"template"` or `"text"`/`"json"`. See Mojolicious::Controller for a more user friendly interface.

### "template\_name"

```
    my $template = $renderer->template_name({
        template => 'foo/bar',
        format   => 'html',
        handler  => 'epl'
    });
```

Builds a template name based on an options hash with `"template"`, `"format"` and `"handler"`.

### "template\_path"

```
    my $path = $renderer->template_path({
        template => 'foo/bar',
        format   => 'html',
        handler  => 'epl'
    });
```

Builds a full template path based on an options hash with `"template"`, `"format"` and `"handler"`.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<http://mojolicious.org\>.
