assemble-core 构建于基础和模板之上,用于 assemble 提供渲染模板、使用文件系统和运行任务所需的基线功能和 API。
实施者和黑客可以使用 assemble-core 来创建丰富而强大的构建工具、项目脚手架系统、文档生成器,甚至是完全自定义的静态站点生成器。
(由动词使用 markdown-toc 生成的 TOC)
创建您自己的:
国家公共管理
使用 npm 安装:
$ npm install --save assemble-core纱
用纱线安装:
$ yarn add assemble-core && yarn upgrade var assemble = require ( 'assemble-core' ) ;
var app = assemble ( ) ; 查看收藏
创建自定义视图集合:
var app = assemble ( ) ;
app . create ( 'pages' ) ;现在您可以使用app.page()或app.pages()添加页面:
app . page ( 'home.hbs' , { content : 'this is the home page!' } ) ;使成为
渲染视图:
var app = assemble ( ) ;
var view = app . view ( 'foo' , { content : 'Hi, my name is <%= name %>' } ) ;
app . render ( view , { name : 'Brian' } , function ( err , res ) {
console . log ( res . content ) ;
//=> 'Hi, my name is Brian'
} ) ;从集合中渲染视图:
var app = assemble ( ) ;
app . create ( 'pages' ) ;
app . page ( 'foo' , { content : 'Hi, my name is <%= name %>' } )
. set ( 'data.name' , 'Brian' )
. render ( function ( err , res ) {
console . log ( res . content ) ;
//=> 'Hi, my name is Brian'
} ) ; 创建一个assemble应用程序。这是 assemble 模块导出的主要函数。
参数
options {Object} :可以选择传递要使用的默认选项。例子
var assemble = require ( 'assemble' ) ;
var app = assemble ( ) ;Assemble 有以下使用文件系统的方法:
Assemble v0.6.0 具有完整的 Vinyl-fs 支持,因此任何 gulp 插件都应该与 assemble 一起使用。
使用一个或多个 glob 模式或文件路径来指定源文件。
参数
glob {String|Array} :全局模式或源文件的文件路径。options {Object} :要合并到上下文中和/或传递给src插件的选项或本地变量例子
app . src ( 'src/*.hbs' , { layout : 'default' } ) ; 指定用于处理的文件的目标。
参数
dest {String|Function} :文件路径或自定义重命名函数。options {Object} :传递给dest插件的选项和本地变量例子
app . dest ( 'dist/' ) ; 将文件从 A 复制到 B,其中A是在 app.src 中有效的任何模式, B是目标目录。
参数
patterns {String|Array} :要复制的源文件的一个或多个文件路径或全局模式。dest {String|Function} :目标目录。returns {Stream} :返回流,因此您可以在必要时继续处理文件。例子
app . copy ( 'assets/**' , 'dist/' ) ; 符号链接的全局模式或路径。
参数
glob {字符串|数组}例子
app . symlink ( 'src/**' ) ;Assemble 有以下用于运行任务和控制工作流程的方法:
定义一个任务。任务是存储在tasks对象上的函数,允许稍后由 build 方法调用它们。 (CLI调用build来运行任务)
参数
name {String} :任务名称fn {Function} :任务运行时调用的函数。例子
app . task ( 'default' , function ( ) {
return app . src ( 'templates/*.hbs' )
. pipe ( app . dest ( 'dist/' ) ) ;
} ) ; 运行一项或多项任务。
参数
tasks {Array|String} :任务名称或任务名称数组。cb {Function} :暴露err的回调函数例子
app . build ( [ 'foo' , 'bar' ] , function ( err ) {
if ( err ) console . error ( 'ERROR:' , err ) ;
} ) ; 监视文件,当监视的文件发生更改时运行一项或多项任务。
参数
glob {String|Array} :文件路径或 glob 模式。tasks {Array} :要观看的任务。例子
app . task ( 'watch' , function ( ) {
app . watch ( 'docs/*.md' , [ 'docs' ] ) ;
} ) ; assemble-core 与 assemble 有何不同?
| 特征 | 组装核心 | 集合 | 笔记 |
|---|---|---|---|
| 前题句法分析 | 不 | 是的 | 使用 assemble 或使用 parser-front-matter 作为.onLoad中间件。 |
| 命令行界面 | 不 | 是的 | 创建您自己的 CLI 体验,或使用 assemble |
| 内置模板集合 | 不 | 是的 | 使用.create()添加集合 |
| 内置模板引擎 | 不 | 是的 | 组装带有发动机把手的船只。使用.engine()注册任何与合并兼容的模板引擎。 |
assemble-core 是一个独立的应用程序,是使用工具包套件中的应用程序和插件创建的:
积木
插件
Assemble 建立在这些伟大的项目之上:
运行和审查单元测试是熟悉库及其 API 的好方法。您可以使用以下命令安装依赖项并运行测试:
$ npm install && npm test拉取请求和星星总是受欢迎的。对于错误和功能请求,请创建问题。
请阅读贡献指南,获取有关开放问题、拉取请求和编码标准的建议。
如果 Assemble 不能满足您的需要,请告诉我们。
变更日志条目使用 keep-a-changelog 中的以下标签进行分类:
added :用于新功能changed :用于现有功能的更改deprecated :在即将发布的版本中删除了曾经稳定的功能removed :针对此版本中删除的已弃用功能fixed :修复任何错误此变更日志中使用的自定义标签:
dependencies :碰撞依赖性housekeeping :代码重新组织、较小的编辑或不属于其他类别之一的其他更改。小心!
如果以下任何标题链接已损坏,请告知我们。谢谢!
依赖关系
view在由应用程序(而不是集合)创建时用.toStream()装饰。这可以说是一个错误修复,但它可能会破坏某人的代码。 依赖关系
依赖关系
.dest()处理的改进。 依赖关系
list上可用的新方法依赖关系
依赖关系
handle.once改变了
依赖关系
已删除
templates中的凸起从.data方法中删除了renameKey选项。请改用namespace选项。 固定的
依赖关系
.find和getView 。未进行任何 API 更改。如果出现回归,请告知我们。固定的
List错误改变了
app.getView()和app.find() 依赖关系
已删除
queue属性的支持。请参阅模板了解更多详细信息。 依赖关系
改变了
依赖关系
家政
依赖关系
renameKey的错误。依赖关系
依赖关系
依赖关系
依赖关系
已弃用
.handleView方法现已弃用,请改用.handleOnce改变了
.mergePartialsSync重命名已恢复为.mergePartials以便与.render和.compile中的其他更新保持一致。额外
.log 、 .verbose等).mergePartials方法更改为异步方法。如果您当前正在使用.mergePartials ,则可以使用.mergePartialsSync方法继续同步执行此操作。 .watch方法,转而使用base-watch插件。 isType方法来检查集合类型,并对集合和视图的实例化和命名方式进行了许多改进。 onStream和preWrite中间件处理程序。(由 helper-changelog 生成的变更日志)
乔恩·施林克特
布赖恩·伍德沃德
版权所有 © 2017,乔恩·施林克特。麻省理工学院
该文件由 verb-generate-readme v0.4.2 于 2017 年 2 月 11 日生成。