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 日生成。