pattern-lab/patternengine-mustache

此包已被废弃且不再维护。未建议替代包。

Pattern Lab 的 Mustache-based PatternEngine。

安装次数: 53,068

依赖: 9

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 1

公开问题: 1

类型:patternlab-patternengine

v2.1.0 2016-06-21 01:51 UTC

This package is auto-updated.

Last update: 2023-03-06 09:06:51 UTC


README

license Packagist Gitter

Pattern Lab PHP 的 Mustache PatternEngine

Mustache PatternEngine 允许您将 Mustache 用作 Pattern Lab PHP 的模板语言。一旦安装了 PatternEngine,您就可以使用基于 Mustache 的 StarterKits 和 StyleguideKits。

安装

Mustache PatternEngine 将随 Pattern Lab 标准版预安装。

Composer

Pattern Lab PHP 使用 Composer 来管理项目依赖和 Pattern Lab 版本。要将 Mustache PatternEngine 添加到您版本的依赖列表中,您可以在项目根目录下命令行中输入以下内容

composer require pattern-lab/patternengine-mustache

有关最新版本的详细信息,请参阅 Packagist 信息

概述

本文档分为两部分

扩展 Mustache

Mustache 提供两种扩展底层模板解析器的方式

Mustache PatternEngine 通过 Helper 实现这些功能。

Helper

使用 Helper 与 Pattern Lab 的要求

  • 文件必须放在 ./source/_mustache-components/helpers
  • 文件必须有 .helper.php 扩展名(这可以在配置中修改
  • Helper 必须 设置变量 $helper
  • 每个文件只能有一个 Helper(例如,每个文件只能设置一次 $helper

一个示例函数 verbatim.helper.mustache,位于 ./source/_mustache-components/helpers

<?php

$helper = function ($text) {
  return "{{=%%pl pl%%=}}".$text."%%pl={{ }}=pl%%";
};

?>

这个 Helper 可以在模式中这样使用。注意标签使用的是文件名,这是一个 lambda 的示例

{{# verbatim }}
  {{ this won't be parsed }}
{{/ verbatim }}

Mustache 还允许使用点符号与 Helper。一个示例函数 case.helper.mustache,位于 ./source/_mustache-components/helpers

<?php

$helper = array(
    'lower' => function($value) { return strtolower((string) $value); },
    'upper' => function($value) { return strtoupper((string) $value); },
));

?>

这个 Helper 可以在模式中这样使用。注意标签使用的是文件名,这是一个 filter 的示例

{{ greeting | case.upper }}

可用的加载器

如果您正在构建一个将解析 Mustache 文件的插件,您可以使用三个加载器。建议您使用这些加载器而不是直接访问 Mustache,因为这些加载器将与其他 PatternEngines 一起工作。

字符串加载器

字符串加载器接受一个简单的字符串并将其编译。要使用

$data         = array("hello" => "world");
$string       = "If I say hello you say {{ hello }}.";
$stringLoader = \PatternLab\Template::getStringLoader();
$output       = $stringLoader->render(array("string" => $string, "data" => $data));
print $output; // outputs "If I say hello you say world."

文件系统加载器

文件系统加载器将在配置的StyleguideKit目录中查找模板并将它们编译。文件系统加载器的模板位置不可修改。要使用

$data             = array(...);
$filesystemLoader = \PatternLab\Template::getFilesystemLoader();
$output           = $filesystemLoader->render(array("template" => "viewall", "data" => $data));
print $output; // outputs the viewall view from the configured styleguidekit

模式加载器

模式加载器查找模式并允许使用Pattern Lab特定的部分语法。要使用

$data                  = array(...);
$patternContent        = file_get_contents("path/to/pattern");
$patternEngineBasePath = \PatternLab\PatternEngine::getInstance()->getBasePath();
$patternLoaderClass    = $patternEngineBasePath."\Loaders\PatternLoader";
$patternLoader         = new $patternLoaderClass($options);
$code                  = $patternLoader->render(array("pattern" => $patternContent, "data" => $data));
print $output; // outputs the given pattern