标签: assemble

我应该如何配置grunt-usemin来处理相对路径

我有一个由我自己构建的yeoman-generator支持的grunt项目generator-webapp,如果有任何帮助,你可以在GitHub上找到它

咕噜咕噜的项目使我们成为了grunt-usemin这项任务.

我的项目涉及建立一个多语言网站,为了保持清洁,我决定将所有用一种语言写成的页面放在文件夹名称之后,用两个字母的短代码表示.

| project/
|--dist/
|----en/
|------index.html
|------404.html
|------...
|----fr/
|------index.html
|------404.html
|------...
Run Code Online (Sandbox Code Playgroud)

这些文件由把手模板制成并使用assemble.在布局中我有usemin像这样的构建块

<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="../styles/main.css">
<!-- endbuild -->
<!-- build:js scripts/vendor/modernizr.js -->
<script src="../bower_components/modernizr/modernizr.js"></script>
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

在一个完美的世界中,这将转化为

<link rel="stylesheet" href="../styles/main.css">
<script src="../scripts/vendor/modernizr.js"></script>
Run Code Online (Sandbox Code Playgroud)

而是显示

<link rel="stylesheet" href="styles/main.css">
<script src="scripts/vendor/modernizr.js"></script>
Run Code Online (Sandbox Code Playgroud)

这在我的情况下不太理想.相关部分Gruntfile.js看起来像这样

    useminPrepare: {
        options: {
            dest: '<%= yeoman.dist %>'
        },
        html: [
            '<%= yeoman.app %>/fr/{,*/}*.html',
            '<%= yeoman.app %>/en/{,*/}*.html'
        ]
    },
    usemin: { …
Run Code Online (Sandbox Code Playgroud)

gruntjs yeoman assemble grunt-usemin

21
推荐指数
1
解决办法
2万
查看次数

如何使用Handlebars三元助手?

根据这个答案,我写了一个帮手

module.exports.register = function (Handlebars) {
    Handlebars.registerHelper('ternary', function(test, yes, no) {
        return test ? yes : no;
    });
};
Run Code Online (Sandbox Code Playgroud)

我确定帮助程序已加载并正在定义,但无法弄清楚使用它的语法.我尝试过使用它

<div>{{ternary(true, 'yes', 'no')}}</div>
Run Code Online (Sandbox Code Playgroud)

但这会产生汇编构建错误

Warning: Parse error on line 10:
...<div>{{ternary(true, 'yes',
----------^
Expecting 'ID', 'DATA', got 'INVALID' Use --force to continue.
Run Code Online (Sandbox Code Playgroud)

使用这样的帮助器的正确语法是什么?

handlebars.js assemble

10
推荐指数
2
解决办法
9040
查看次数

什么`{{{variable}}}`在把手中意味着什么?

手柄模板语法中三重花括号的含义是什么?

例如

{{{variable}}}
Run Code Online (Sandbox Code Playgroud)

我找不到任何文件.

谢谢

handlebars.js assemble

10
推荐指数
1
解决办法
3507
查看次数

带有汇编的生成页面的路径

我正在努力处理grunt-assemble grunt任务配置,如下所示:

assemble: {
  options: {
    flatten: false,
    expand: true,

    assets: '',

    layout: 'default.hbs',
    layoutdir: 'templates/layouts',

    partials: ['templates/includes/*.hbs'],
    helpers: ['templates/helpers/*.js'],
    data: ['templates/data/*.{json,yml}']
  },

  dev: {
    src: 'templates/pages/**/*.hbs',
    dest: 'build/'
  }
Run Code Online (Sandbox Code Playgroud)

assemble.io项目模板的脚手架如下所示:

templates
??? helpers
??? includes
?   ??? page-footer.hbs
?   ??? page-header.hbs
?   ??? scripts.hbs
??? layouts
?   ??? default.hbs
??? pages
    ??? en
    ?   ??? index.hbs
    ??? fr
    ?   ??? index.hbs
    ??? index.hbs
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

build
??? en
?   ??? index.html
??? fr
?   ??? index.html
??? index.html
Run Code Online (Sandbox Code Playgroud)

但相反,我得到类似的东西: …

gruntjs assemble grunt-assemble

9
推荐指数
1
解决办法
2073
查看次数

使用汇编时使用多个数据/ json文件时,主模板中{{title}}的上下文

我使用assemble.io作为一个简单的静态网站,但我遇到了{{title}}标记的问题.以下是该问题的概述.

这是我的layout.hbs:

<!DOCTYPE html>
<html>
  <head>
    <title>{{title}}</title>
  </head>
  <body>
    <!-- the body tag is used to "pull in" content from pages -->
    {{> body }}
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我有2个json文件用于数据:

foo1.json

{
  "title": "Hello world I am title 1"
}
Run Code Online (Sandbox Code Playgroud)

foo2.json

{
  "title": "I am a different title"
}
Run Code Online (Sandbox Code Playgroud)

我有2页:

foo1.hbs

{{#foo1 }} 
 {{> module1 }}
 {{> module2 }}
 {{> module3 }}
{{/foo1 }}
Run Code Online (Sandbox Code Playgroud)

foo2.hbs

{{#foo2 }} 
 {{> module1 }}
 {{> module2 }}
 {{> module3 }}
{{/foo2 }}
Run Code Online (Sandbox Code Playgroud)

我的gruntfile.js …

handlebars.js assemble

9
推荐指数
1
解决办法
2070
查看次数

如何使用assemble-middleware-i18n?

我正在检查这个插件进行本地化,但是在我将它包含在我的内容后应该如何使用它gruntfile.js

它似乎有一些用法示例这里

gruntjs assemble grunt-assemble

8
推荐指数
1
解决办法
289
查看次数

组装把手嵌套数学助手

我想知道是否有办法在一次操作中组合两个[Assemble Math helpers] 1.

例如:

  • 我想做{{multiply 12 a}},然后
  • {{round}}对结果做了什么

谢谢你的帮助.

node.js handlebars.js assemble

6
推荐指数
1
解决办法
600
查看次数

Handlebars辅助函数中的options参数是什么?

我正在创建一个自定义的车把助手,但是Object #<Object> has no method 'fn'在通过终端进行编译时,它总是会抛出。

我的车把帮手是:

module.exports.register = function (Handlebars, opts, params)  { 
    Handlebars.registerHelper('compimg', function (context, opts)  { 
        var compImg = ["assets/img/icon-nope.png","assets/img/icon-check.png"];
        return compImg[opts.fn(context)];
    });
}
Run Code Online (Sandbox Code Playgroud)

我的.hbs文件是:

{{#each checkable}}
   <div class="col-md-3 col-xs-3 icon-container"><img src="{{compimg this}}"></div>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

我的JSON文件是:

{
    "desc": "blablabla",
    "checkable": [
        1,
        1,
        1,
        1
    ]
}
Run Code Online (Sandbox Code Playgroud)

当我查看官方文档时,发现了这段代码。有人能解释到底是什么context,并options在这里?

Handlebars.registerHelper('each', function(context, options) {
  var ret = "";

  for(var i=0, j=context.length; i<j; i++) {
    ret = ret + options.fn(context[i]);
  }

  return ret;
});
Run Code Online (Sandbox Code Playgroud)

handlebars.js assemble

6
推荐指数
1
解决办法
4003
查看次数

汇编:布局中插入多个内容点?

所有使用布局的汇编用户都知道"{{> body}}"标记了使用布局的任何页面内容的插入点.但是有可能定义多个插入点,而不是将所有内容扔到{{> body}}的位置吗?

例如,在我的页面中,我想定义一个特定的javascript,但我喜欢自定义的javascript位于页面的最底部以及javascript标签.如果它只将{{> body}}放在哪里,那么这是不可能的,因为脚本只会被附加到内容中.

换句话说,让{{> script}}或甚至可自定义的标记标记不同的插入点是有用的,并且在使用布局的页面中,这些标记是专门定义的.

以上是我理想的用例,有人知道如果这些装配支持吗?

handlebars.js assemble

5
推荐指数
1
解决办法
2602
查看次数

使用Angular JS组装(静态站点生成器)

我想使用assemble,yeoman和angularJS 创建一个站点.计划是汇编将处理内容,AngularJS将通过REST API处理动态内容.这两个兼容,这是一个很好的架构选择吗?我关注的是模板引擎Assemble使用(HandleBars)以及它是否与AngularJS兼容,因为它们似乎都使用{{}}.我只是开始调查,但我很难找到使用类似架构的人的例子.我如何与Yeoman搭建?

handlebars.js angularjs assemble

5
推荐指数
1
解决办法
2007
查看次数