Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/karupanerura/text-mustachetemplate
mustache template engine for Perl5
https://github.com/karupanerura/text-mustachetemplate
mustache-templates perl
Last synced: 3 days ago
JSON representation
mustache template engine for Perl5
- Host: GitHub
- URL: https://github.com/karupanerura/text-mustachetemplate
- Owner: karupanerura
- License: other
- Created: 2023-12-13T04:24:32.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-06T01:33:04.000Z (8 months ago)
- Last Synced: 2024-12-24T09:01:06.894Z (3 days ago)
- Topics: mustache-templates, perl
- Language: Perl
- Homepage:
- Size: 66.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
- License: LICENSE
Awesome Lists containing this project
README
[![Actions Status](https://github.com/karupanerura/Text-MustacheTemplate/actions/workflows/test.yml/badge.svg)](https://github.com/karupanerura/Text-MustacheTemplate/actions)
# NAMEText::MustacheTemplate - mustache template engine
# SYNOPSIS
use Text::MustacheTemplate;
# local $Text::MustacheTemplate::OPEN_DELIMITER = '<%';
# local $Text::MustacheTemplate::CLOSE_DELIMITER = '%>';my $rendered = Text::MustacheTemplate->render('* {{variable}}', { variable => 'foo' }); # => "* foo"
my $template = Text::MustacheTemplate->parse('* {{variable}}');
$rendered = $template->({ variable => 'foo' }); # => "* foo"
$rendered = $template->({ variable => 'bar' }); # => "* bar"# DESCRIPTION
Text::MustacheTemplate is [mustache](https://mustache.github.io/) template engine written in Pure Perl.
All features of Mustache Template are implemented. (e.g. inheritance, lambda, etc..)
And it is passed all [mustache/spec](https://github.com/mustache/spec) test cases.# METHODS
- parse
Parses the template text. Returns a subroutine reference.
The subroutine receives one argument and processes the parsed template using the context variable specified in the argument.my $template = Text::MustacheTemplate->parse('* {{variable}}');
$rendered = $template->({ variable => 'foo' }); # => "* foo"This method is suitable for rendering the same template multiple times.
- render
Render the template text using the context.
It returns a rendered text.my $rendered_text = Text::MustacheTemplate->render($template_text, $context);
This method is suitable when the same template is rarely used.
# VARIABLES
Text::MustacheTemplate changes its behavior according to the following variables.
By using `local`, this change can be localized.- $OPEN\_DELIMITER
This is the delimiter that opens the tag.
The default value is `"{{"`.- $CLOSE\_DELIMITER
This is the delimiter that closes the tag.
The default value is `"}}"`.- %REFERENCES
This is references to other parsed templates.
It's used by inheritance or partial template feature.- $LAMBDA\_TEMPLATE\_RENDERING
When this flag is truthy, lambda template rendering is enabled.
The default value is falsey.# BENCHMARK
Result of `author/benchmark.pl`:
=============================
parse
=============================
Benchmark: running Template::Mustache, Text::MustacheTemplate for at least 10 CPU seconds...
Template::Mustache: 11 wallclock secs (10.44 usr + 0.07 sys = 10.51 CPU) @ 748.33/s (n=7865)
Text::MustacheTemplate: 10 wallclock secs (10.51 usr + 0.01 sys = 10.52 CPU) @ 10028.52/s (n=105500)
Rate Template::Mustache Text::MustacheTemplate
Template::Mustache 748/s -- -93%
Text::MustacheTemplate 10029/s 1240% --
=============================
render
=============================
Benchmark: running Template::Mustache, Text::MustacheTemplate for at least 10 CPU seconds...
Template::Mustache: 10 wallclock secs (10.49 usr + 0.02 sys = 10.51 CPU) @ 730.73/s (n=7680)
Text::MustacheTemplate: 11 wallclock secs (10.60 usr + 0.02 sys = 10.62 CPU) @ 32508.29/s (n=345238)
Rate Template::Mustache Text::MustacheTemplate
Template::Mustache 731/s -- -98%
Text::MustacheTemplate 32508/s 4349% --
=============================
render (contextual optimization)
=============================
Benchmark: running disabled for at least 10 CPU seconds...
disabled: 11 wallclock secs (10.50 usr + 0.02 sys = 10.52 CPU) @ 9471.20/s (n=99637)
Rate disabled enabled
disabled 9471/s -- -71%
enabled 32508/s 243% --
=============================
render(cached)
=============================
Benchmark: running Template::Mustache, Text::MustacheTemplate for at least 10 CPU seconds...
Template::Mustache: 11 wallclock secs (10.49 usr + 0.01 sys = 10.50 CPU) @ 48871.81/s (n=513154)
Text::MustacheTemplate: 10 wallclock secs (10.57 usr + 0.01 sys = 10.58 CPU) @ 232286.39/s (n=2457590)
Rate Template::Mustache Text::MustacheTemplate
Template::Mustache 48872/s -- -79%
Text::MustacheTemplate 232286/s 375% --# SEE ALSO
[Template::Mustache](https://metacpan.org/pod/Template%3A%3AMustache) [Mustache::Simple](https://metacpan.org/pod/Mustache%3A%3ASimple)
# LICENSE
Copyright (C) karupanerura.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.# AUTHOR
karupanerura