Построенный на основе базы и шаблонов, assemble-core используется в сборке для предоставления базовых функций и API, необходимых для рендеринга шаблонов, работы с файловой системой и выполнения задач.
Разработчики и хакеры могут использовать assemble-core для создания богатых и мощных инструментов сборки, систем формирования проектов, генераторов документации или даже полностью настраиваемых генераторов статических сайтов.
(TOC генерируется глаголом с использованием markdown-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
. Это основная функция, экспортируемая модулем сборки.
Параметры
options
{Object} : опционально передать параметры по умолчанию для использования.Пример
var assemble = require ( 'assemble' ) ;
var app = assemble ( ) ;
В Assemble имеются следующие методы работы с файловой системой:
Assemble v0.6.0 имеет полную поддержку виниловых файлов, поэтому любой плагин gulp должен работать с assemble.
Используйте один или несколько шаблонов glob или путей к файлам, чтобы указать исходные файлы.
Параметры
glob
{String|Array} : шаблоны Glob или пути к исходным файлам.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 или пути для символических ссылок.
Параметры
glob
{Строка | Массив}Пример
app . symlink ( 'src/**' ) ;
В Assemble имеются следующие методы для запуска задач и управления рабочими процессами:
Определите задачу. Задачи — это функции, которые хранятся в объекте tasks
, что позволяет вызывать их позже методом сборки. (CLI вызывает сборку для запуска задач)
Параметры
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?
особенность | сборка ядра | собрать | примечания |
---|---|---|---|
синтаксический анализ вступительной части | Нет | Да | используйте сборку или используйте parser-front-matter в качестве промежуточного программного обеспечения .onLoad . |
интерфейс командной строки | Нет | Да | Создайте свой собственный интерфейс командной строки или используйте сборку. |
Встроенные коллекции шаблонов | Нет | Да | Используйте .create() для добавления коллекций |
Встроенный шаблонизатор | Нет | Да | собирать корабли с мотор-рулями. Используйте .engine() для регистрации любого механизма шаблонов, совместимого с консолидацией. |
assemble-core — это автономное приложение, созданное с использованием приложений и плагинов из набора инструментов:
Строительные блоки
Плагины
Assemble построен на основе этих замечательных проектов:
Запуск и просмотр модульных тестов — отличный способ ознакомиться с библиотекой и ее API. Вы можете установить зависимости и запустить тесты с помощью следующей команды:
$ npm install && npm test
Запросы на вытягивание и звезды всегда приветствуются. Для ошибок и запросов функций, пожалуйста, создайте проблему.
Пожалуйста, прочитайте руководство для участников, чтобы получить советы по открытию проблем, запросам на включение и стандартам кодирования.
Если Assemble не делает то, что вам нужно, сообщите нам об этом.
Записи журнала изменений классифицируются с использованием следующих меток из журнала изменений:
added
: для новых функцийchanged
: для изменений в существующей функциональностиdeprecated
: для некогда стабильных функций, удаленных в будущих выпусках.removed
: для устаревших функций, удаленных в этом выпуске.fixed
: для любых исправлений ошибокПользовательские метки, используемые в этом журнале изменений:
dependencies
: увеличивает зависимостиhousekeeping
: реорганизация кода, незначительные правки или другие изменения, которые не вписываются ни в одну из других категорий.Берегись!
Пожалуйста, сообщите нам, если какая-либо из следующих ссылок на заголовки не работает. Спасибо!
зависимости
view
будет украшено .toStream()
при создании приложением (а не коллекцией). Возможно, это исправление ошибки, но оно может сломать чей-то код. зависимости
зависимости
.dest()
. зависимости
list
. зависимости
зависимости
handle.once
измененный
зависимости
удаленный
templates
удаляет параметр renameKey
из метода .data
. Вместо этого используйте опцию 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, 11 февраля 2017 г.