在我正在玩的博客项目中,我有"帖子".这是我的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.io自动化我的前端开发,并希望使用YAML前端内容来创建一个简单的导航菜单.
我想要实现的HTML是这样的:
<li><a href="#link1">Link1</a></li>
<li><a href="#link2">Link2</a></li>
Run Code Online (Sandbox Code Playgroud)
我认为正确的把手标记是这样的:
{{#each sublinks}}
<li><a href="#{{section}}">{{section}}</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
但是什么是正确的YFM?我已经开始使用它,但知道语法不正确:
---
sublinks:
- section: link1, link2
---
Run Code Online (Sandbox Code Playgroud) 我正在使用grunt-processhtml在生产之前替换一些东西.诀窍是,我有一个可变数量的文件,通过汇编吐出来,我真的想保持我的数据与我的gruntfile分开.我似乎必须做一些事情来声明每个需要操作的文件:
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/one_file.html': ['/one_file.html'],
'/two_file.html': ['/two_file.html'],
'/red_file.html': ['/red_file.html'],
'/blue_file.html': ['/blue_file.html']
}
}
}
Run Code Online (Sandbox Code Playgroud)
你可以想象,这可能会非常麻烦.
我知道,对于大多数grunt特定的节点模块,你可以使用一些通配技术,所以我修改了它.
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/**.html': ['/**.html']
}
}
},
Run Code Online (Sandbox Code Playgroud)
但这似乎也不起作用......有什么建议吗?
我的开发环境有几个主要目标.
所以,现在我将告诉你我设计的系统.我的项目中有三个顶级目录,其中有三个不同的阶段
src:这是我的所有汇编文件都存在的地方.在这里,我有大量的hbs文件和部分,因此保持我的标记干燥,我的最小数据在YAML(我喜欢,因为我可以让同事填写它).
dev:一旦文件被"汇编",它们就会在这个目录中结束.这里它们是未压缩的,带有livereload的连接服务器从这里运行.
部署:此时,我有一个名为'preflight'的繁琐任务,它压缩了我的所有文件,并摆脱了任何残余,留下了一个超级时尚的流线型文件夹准备好另一个rsync任务将其发送到生产.
无论如何,如果你有不同的方法来实现这一目标.我很想听听:)
谢谢!
我正在使用装配了车把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的新手,所以我可能只是错过了那个显而易见的东西
我正在使用Grunt和Assemble在我的网站上创建预编译模板,但我需要根据存储在客户端存储中的信息动态创建一些部分.有没有办法从预编译中免除模板的各个部分?
哈文一直在玩这个玩几个小时
的package.json
{
"name": "compile-tests",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"grunt": "^0.4.5",
"assemble": "^0.7.3"
}
}
Run Code Online (Sandbox Code Playgroud)
Gruntfile.js
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
assemble: {
options: {
flatten: true,
layout: "../templates/1.hbs"
},
pages: {
files: {
'../dist' : ['../pages/*.hbs']
}
}
}
});
grunt.loadNpmTasks('assemble');
grunt.registerTask('default', ['assemble']);
};
Run Code Online (Sandbox Code Playgroud)
尝试删除并重新安装所有模块几次.并尝试了不同的版本,有趣的是本文中提到的版本http://blog.parkji.co.uk/2013/07/06/building-a-static-site-using-grunt-and-assemble.html 似乎工作,但后来我得到其他问题,因为那些版本已经过时了.
错误
$ Grunt
>> Local Npm module …Run Code Online (Sandbox Code Playgroud) 我希望有人能给我一个提示。我想将一个文件中的内容导入到我的车把文件中。是否可以?就我而言,它是一个 css/scss 文件(例如 reset.css),我想将其样式导入到我的车把文件(styleReset.hbs)中。
“styleReset.hbs”应该看起来像这样:
<style type="text/css">
<!-- import of reset.css content -->
</style>
Run Code Online (Sandbox Code Playgroud)
PS 我不想使用 -tag
使用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继续.
我只是想用汇编来运行一个快速的例子.我按照说明操作安装程序,输出就在这里
npm install assemble --save-dev
npm WARN package.json ocscommerce-frontend@0.1.0 No description
npm WARN package.json ocscommerce-frontend@0.1.0 No repository field.
npm WARN package.json ocscommerce-frontend@0.1.0 No README data
npm WARN package.json ocscommerce-frontend@0.1.0 No license field.
npm WARN engine get-stdin@5.0.1: wanted: {"node":">=0.12.0"} (current: {"node":"0.10.32","npm":"2.14.2"})
|
> fsevents@1.0.6 install /Users/Documents/Projects/OCSCommerce/prototype/web/themes/default/build/node_modules/assemble/node_modules/assemble-core/node_modules/base-tasks/node_modules/composer/node_modules/chokidar/node_modules/fsevents
> node-pre-gyp install --fallback-to-build
[fsevents] Success: "/Users/Documents/Projects/OCSCommerce/prototype/web/themes/default/build/node_modules/assemble/node_modules/assemble-core/node_modules/base-tasks/node_modules/composer/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v11-darwin-x64/fse.node" is installed via remote
assemble@0.7.0 node_modules/assemble
??? success-symbol@0.1.0
??? try-open@0.1.0
??? time-stamp@0.1.3
??? word-wrap@1.1.0
??? lazy-cache@1.0.3
??? base-cli@0.4.0
??? minimist@1.2.0
??? isobject@2.0.0 (isarray@0.0.1)
??? opn@3.0.3 (object-assign@4.0.1)
??? common-middleware@0.2.2 …Run Code Online (Sandbox Code Playgroud) 你好,我正在编写一个react-native,其中assembleDebug可以工作,但assembleRealease则不行。我不知道为什么会发生这种情况&我在互联网上的解决方案不起作用
我能做些什么?
> Task :app:copyReactNativeVectorIconFonts FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Some problems were found with the configuration of task ':app:copyReactNativeVectorIconFonts' (type 'Copy').
- Gradle detected a problem with the following location: 'D:\Cosas\UTN\APPMOVIL\HayEquipo\hayEquipo\android\app\build\intermediates\ReactNativeVectorIcons\fonts'.
Reason: Task ':app:lintVitalReportRelease' uses this output of task ':app:copyReactNativeVectorIconFonts' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':app:copyReactNativeVectorIconFonts' as an input of …Run Code Online (Sandbox Code Playgroud) assemble ×12
gruntjs ×7
android ×1
apk ×1
css ×1
gradle ×1
javascript ×1
react-native ×1
templates ×1
yaml ×1