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