如何在项目中使用模式实验室生成的模板



我们正在使用模式实验室的节点版本为我们的新网站构建生成样式指南,我们还希望在我们的电子商务平台的模板中使用模式实验室生成的模板文件。

有没有一种方法可以在编译后不显示生成的标记和节点标记的情况下创建模式实验室模板的另一个版本?

例如,我们有一个名为main.mustache的PL模板。当我们的PL grunt watch任务运行时,生成的模板最终会在patternlab\public\patterns\30 templates主文件夹中作为一个html文件,内容如下…

<!-- Start: REMOVE THIS -->
<!DOCTYPE html>
<html class="pl">
<head>
    <title>My Component Library</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width" />
    <!--<link rel="stylesheet" href="../../css/style.css?1462369182849" media="all" />-->
    <!-- Begin Pattern Lab (Required for Pattern Lab to run properly) -->
    <!-- never cache patterns -->
    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />
    <link rel="stylesheet" href="../../styleguide/css/styleguide.css?1462369182849" media="all">
    <link rel="stylesheet" href="../../styleguide/css/styleguide-specific.css?1462369182849" media="all" />
    <!-- End Pattern Lab -->
</head>
<body class="body">
<!-- End: REMOVE THIS -->
**[ TEMPLATE CONTENT CODE IS HERE WHICH I WANT... ]**
<!-- Start: REMOVE THIS -->
<!--DO NOT REMOVE-->
<!-- DO NOT MODIFY -->
<script>
  // handle injection of items from Node
  var patternPartial = "templates-main";
  var lineage = [{lineagePattern:"organisms-messages",lineagePath:"../../patterns/20-organisms-global-messages/20-organisms-global-messages.html"},{lineagePattern:"organisms-header",lineagePath:"../../patterns/20-organisms-global-header/20-organisms-global-header.html"},{lineagePattern:"organisms-promotion-messages",lineagePath:"../../patterns/20-organisms-global-promotion-messages/20-organisms-global-promotion-messages.html"},{lineagePattern:"molecules-search",lineagePath:"../../patterns/10-molecules-forms-search/10-molecules-forms-search.html"},{lineagePattern:"organisms-footer",lineagePath:"../../patterns/20-organisms-global-footer/20-organisms-global-footer.html"}];
  var lineageR = [{lineagePattern:"pages-main",lineagePath:"../../patterns/40-pages-main/40-pages-main.html"}];
  var patternState = "";
  var baseurl = "";
  var cssEnabled = false; //TODO
</script>
<script type="text/html" id="sg-pattern-html">
  {% patternHTML %}
</script>
<script type="text/html" id="sg-pattern-css">
  {% patternCSS %}
</script>
    <script src="../../styleguide/js/vendor/jwerty.js?1462369182849"></script>
    <script src="../../styleguide/js/postmessage.js?1462369182849"></script>
    <script src="../../data/annotations.js?1462369182849"></script>
    <script src="../../styleguide/js/annotations-pattern.js?1462369182849"></script>
    <script src="../../styleguide/js/code-pattern.js?1462369182849"></script>

</body>
</html>
<!-- End: REMOVE THIS -->

如果有一个没有额外标记的版本(请参阅上面"删除这个"评论中的内容),那就太好了,所以我们只剩下生成的模板html,它是使用我们的生物体、分子和原子等构建的。

在同一文件夹中生成的代码段总是有一个转义版本。以你为例patternlabpublicpatterns30-templates-main-main将包含:

  • 30-templates-main-main.html-带有附加标记的代码段(页眉+页脚)
  • 30-templates-main-main.mustache-escaped.splash(带变量),没有附加标记
  • 30-templates-main-main.escaped.html-转义HTML,没有附加标记

.mustache.escaped.html都将只包含代码段内容,而不包含其他标记。请注意,这两个文件都包含转义的HTML,所以在进一步使用HTML之前,不要忘记将其取消转义。根据您的语言,这可以通过多种方式实现,即有一个NPM模块可以从转义文本中解码HTML:https://www.npmjs.com/package/html-entities

最新更新