在我正在玩的博客项目中,我有"帖子".这是我的Gruntfile中的汇编块:
assemble: {
options: {
layout: ['src/layouts/default.hbs'],
data: ['src/data/*.{json,yml}']
},
pages: {
src: ['src/posts/**/*.md'],
dest: 'tmp/posts/'
}
}
Run Code Online (Sandbox Code Playgroud)
每个帖子都用markdown表示,带有一些YFM,如下所示:
---
date: '20131129'
latitude: 7.113309999999999
longitude: -73.120468
city: Bucaramanga
country: Colombia
---
# A familiar face...
And then more blog content here...
Run Code Online (Sandbox Code Playgroud)
现在,在我default.hbs,我有标准的东西.我做了一个快速{{inspect page}}来看看我有什么变数.我可以在那里看到,我有一些可能在这件事上有用的信息:
"index": 46,
"next": 47,
"prev":45
Run Code Online (Sandbox Code Playgroud)
我可以想办法通过编写一个自定义手柄助手来处理这个问题,但似乎存在这些变量,这个功能已经存在于某个地方......我只是找不到它.我想到的解决方案似乎过于复杂.
谢谢你!
我跳进了assemble/Grunt尝试改进我为我使用的CMS创建模板的工作流程.我想弄清楚的是:是否可以在开发时(即在"grunt watch"期间)在我的模板中使用块/部分HTML内容,但是然后用我在CMS中需要的include标记替换它最终的HTML输出(即当我做"grunt build"时).像下面这样的东西?
<div id="content">
{{! if in dev context, include this partial }}
{{#if}}
{{> body }}
{{! if in build context, include this partial }}
{{else}}
{{> body-cms-tag }}
{{/if}}
</div>
Run Code Online (Sandbox Code Playgroud)
如果在dev/watch模式下,将输出
<div id="content">
<h1>Test Headline</h1>
<p>This is just test content.</p>
</div<
Run Code Online (Sandbox Code Playgroud)
但在构建模式下,会输出
<div id="content">
<?php echo $mContext['bodyElements']; ?>
</div>
Run Code Online (Sandbox Code Playgroud)
这是可能的,使用Handlebars语法,汇编助手或Grunt任务(类似于grunt-usemin?)
我想使用assemble,yeoman和angularJS 创建一个站点.计划是汇编将处理内容,AngularJS将通过REST API处理动态内容.这两个兼容,这是一个很好的架构选择吗?我关注的是模板引擎Assemble使用(HandleBars)以及它是否与AngularJS兼容,因为它们似乎都使用{{}}.我只是开始调查,但我很难找到使用类似架构的人的例子.我如何与Yeoman搭建?
我正在使用装配了车把1.3.0的装配 0.4.17.
我正在尝试添加一个自定义手柄助手,如此处所述.
所以我把它添加到我的Gruntfile(在文件的底部,在...之外module.exports = function(grunt) {)
Gruntfile.js
module.exports.asdf = function (str) { return 'asdf here!'; };
Run Code Online (Sandbox Code Playgroud)
并将其添加到
index.hbs中
{{#asdf}}
bobo
{{/asdf}}
Run Code Online (Sandbox Code Playgroud)
我建议asdf here!将在生成的html中显示,但它不会,而是只打印一个空白行.我也试过这个module.exports.register = function (Handlebars, options)方法,但是这个方法也不行.我是否需要添加其他东西才能添加此车把助手?
我是Assemble和grunt and handlebar的新手,所以我可能只是错过了那个显而易见的东西
我一直在使用带有hogan.js任务的grunt.js来为我们的内部文档构建静态HTML.我正在学习JavaScript,但是我已经完成了布局和页面工作的任务,但它确实有助于我们的工作流程让hogan任务渲染胡须部分到HTML,如本例中的示例:https://gist.github.com/4132781
我们所有的胡子部分都在一个名为"partials"的文件夹中.理想情况下,当运行grunt构建时,hogan任务将从partials文件夹中获取任何部分,并将它们插入HTML中的任何位置(也在gist中显示).
我不想在任务或任务配置中定义每个部分.这不起作用,我们有~200个部分并且在增长,所以我们需要让任务扫描一个文件夹并根据文件名或其他东西获取部分内容.我也不想使用其他语言或构建工具.我们使用过Jade,一些基于markdown的文档构建器,以及其他一些.如果我们可以按照描述进行部分渲染,那么我们将处于良好的状态!
有可能做到这一点吗?提前感谢您的任何反馈
我正在使用Grunt和Assemble在我的网站上创建预编译模板,但我需要根据存储在客户端存储中的信息动态创建一些部分.有没有办法从预编译中免除模板的各个部分?
我用Twitter Bootstrap 2.0创建了一个自定义网格,我试图弄清楚如何更新网格以允许我使用1/3和1/2列.
它看起来像1.0你可以使用:
<div class="span-one-third"></div>
Run Code Online (Sandbox Code Playgroud)
有没有人能够想办法用2.0做类似的事情,还是我忽略了什么?
谢谢
使用Grunt.js 0.4和Assemble 0.3.78
如何从循环内部访问"page.filename"全局变量?
(调试)
<ul>
{{#mysite.menu}}
<li>{{page.filename}}</li>
{{/mysite.menu}}
</ul>
Run Code Online (Sandbox Code Playgroud)
(实际上)建立一个菜单,试试这个:
{{#mysite.menu}}
<li {{#is page.filename url}} class="on" {{/is}}>{{name}}</li>
{{/mysite.menu}}
Run Code Online (Sandbox Code Playgroud)
其中url和name各自的属性mysite.menu
使用汇编我实际上坚持一个我无法自我解决的问题.
我widgets在YAML前端部分定义了一堆,并包括一部分{{> aside}}.直到这里一切都按预期工作!
我现在要做的是获取列表小部件并在旁边模板中呈现我的部分内容.但无论如何它不能按预期工作.
SRC /模板/布局/布局default.hbs
---
layout: src/templates/layouts/layout-default.hbs
widgets:
- widget_link-list
- widget_welcome-message
---
<section role="main">
<h1>Template TwoCol</h1>
{{> body }}
</section>
<aside role="complementary">
{{> aside}}
</aside>
Run Code Online (Sandbox Code Playgroud)
SRC /模板/谐音/ aside.hbs
{{#each widgets}}
{{.}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
使用{{.}}打印我上面定义的列表作为字符串.但如果我尝试这样做{{> .}},控制台会丢弃以下警告:
警告:部分.无法找到使用--force继续.