Construit sur la base et les modèles, assemble-core est utilisé dans assemble pour fournir les fonctionnalités de base et l'API nécessaires au rendu des modèles, à l'utilisation du système de fichiers et à l'exécution de tâches.
Les développeurs et les pirates peuvent utiliser assemble-core pour créer des outils de construction riches et puissants, des systèmes d'échafaudage de projet, des générateurs de documentation ou même vos générateurs de sites statiques entièrement personnalisés.
(TOC générée par le verbe en utilisant markdown-toc)
Créez le vôtre :
MNP
Installer avec npm :
$ npm install --save assemble-core
fil
Installer avec du fil :
$ yarn add assemble-core && yarn upgrade
var assemble = require ( 'assemble-core' ) ;
var app = assemble ( ) ;
voir les collections
Créez une collection de vues personnalisée :
var app = assemble ( ) ;
app . create ( 'pages' ) ;
Vous pouvez maintenant ajouter des pages avec app.page()
ou app.pages()
:
app . page ( 'home.hbs' , { content : 'this is the home page!' } ) ;
rendre
Rendre une vue :
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'
} ) ;
Rendre une vue à partir d'une collection :
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'
} ) ;
Créez une application assemble
. C'est la fonction principale exportée par le module assemble.
Paramètres
options
{Object} : transmettez éventuellement les options par défaut à utiliser.Exemple
var assemble = require ( 'assemble' ) ;
var app = assemble ( ) ;
Assemble propose les méthodes suivantes pour travailler avec le système de fichiers :
Assemble v0.6.0 prend entièrement en charge vinyl-fs, donc tout plugin gulp devrait fonctionner avec assemble.
Utilisez un ou plusieurs modèles globaux ou chemins de fichiers pour spécifier les fichiers source.
Paramètres
glob
{String|Array} : modèles Glob ou chemins de fichiers vers les fichiers sources.options
{Object} : Options ou locales à fusionner dans le contexte et/ou passer aux plugins src
Exemple
app . src ( 'src/*.hbs' , { layout : 'default' } ) ;
Spécifiez la destination à utiliser pour les fichiers traités.
Paramètres
dest
{String|Function} : Chemin du fichier ou fonction de renommage personnalisée.options
{Object} : Options et locales à transmettre aux plugins dest
Exemple
app . dest ( 'dist/' ) ;
Copiez les fichiers de A vers B, où A
est n'importe quel modèle qui serait valide dans app.src et B
est le répertoire de destination.
Paramètres
patterns
{String|Array} : Un ou plusieurs chemins de fichiers ou modèles globaux pour les fichiers sources à copier.dest
{String|Function} : Répertoire de destination.returns
{Stream} : Le flux est renvoyé, vous pouvez donc continuer le traitement des fichiers si nécessaire.Exemple
app . copy ( 'assets/**' , 'dist/' ) ;
Modèles Glob ou chemins pour les liens symboliques.
Paramètres
glob
{Chaîne | Tableau}Exemple
app . symlink ( 'src/**' ) ;
Assemble dispose des méthodes suivantes pour exécuter des tâches et contrôler les flux de travail :
Définir une tâche. Les tâches sont des fonctions stockées sur un objet tasks
, permettant de les appeler ultérieurement par la méthode build. (la CLI appelle build pour exécuter des tâches)
Paramètres
name
{String} : Nom de la tâchefn
{Fonction} : fonction appelée lors de l'exécution de la tâche.Exemple
app . task ( 'default' , function ( ) {
return app . src ( 'templates/*.hbs' )
. pipe ( app . dest ( 'dist/' ) ) ;
} ) ;
Exécutez une ou plusieurs tâches.
Paramètres
tasks
{Array|String} : Nom de la tâche ou tableau de noms de tâches.cb
{Function} : fonction de rappel qui expose err
Exemple
app . build ( [ 'foo' , 'bar' ] , function ( err ) {
if ( err ) console . error ( 'ERROR:' , err ) ;
} ) ;
Surveillez les fichiers, exécutez une ou plusieurs tâches lorsqu'un fichier surveillé change.
Paramètres
glob
{String|Array} : chemins de fichiers ou modèles globaux.tasks
{Array} : Tâche(s) à surveiller.Exemple
app . task ( 'watch' , function ( ) {
app . watch ( 'docs/*.md' , [ 'docs' ] ) ;
} ) ;
En quoi l'assemblage-noyau diffère-t-il de l'assemblage ?
fonctionnalité | assembler-noyau | assembler | remarques |
---|---|---|---|
analyse préliminaire | Non | Oui | utilisez assemble ou utilisez parser-front-matter comme middleware .onLoad . |
CLI | Non | Oui | Créez votre propre expérience CLI ou utilisez assemble |
Collections de modèles intégrées | Non | Oui | Utilisez .create() pour ajouter des collections |
Moteur de modèles intégré | Non | Oui | assembler des navires avec des guidons de moteur. Utilisez .engine() pour enregistrer n’importe quel moteur de modèle compatible avec la consolidation. |
assemble-core est une application autonome créée à l'aide d'applications et de plugins de la suite Toolkit :
Blocs de construction
Plugins
Assemble est construit sur la base de ces grands projets :
Exécuter et réviser des tests unitaires est un excellent moyen de se familiariser avec une bibliothèque et son API. Vous pouvez installer des dépendances et exécuter des tests avec la commande suivante :
$ npm install && npm test
Les demandes de tirage et les étoiles sont toujours les bienvenues. Pour les bogues et les demandes de fonctionnalités, veuillez créer un problème.
Veuillez lire le guide de contribution pour obtenir des conseils sur l'ouverture des problèmes, les demandes d'extraction et les normes de codage.
Si Assemble ne fait pas ce dont vous avez besoin, veuillez nous le faire savoir.
Les entrées du journal des modifications sont classées à l'aide des étiquettes suivantes de keep-a-changelog :
added
: pour les nouvelles fonctionnalitéschanged
: pour les modifications des fonctionnalités existantesdeprecated
: pour les fonctionnalités une fois stables supprimées dans les versions à venirremoved
: pour les fonctionnalités obsolètes supprimées dans cette versionfixed
: pour toute correction de bugÉtiquettes personnalisées utilisées dans ce journal des modifications :
dependencies
: bumps dépendanceshousekeeping
: réorganisation du code, modifications mineures ou autres modifications qui ne rentrent dans aucune des autres catégories.Attention !
Veuillez nous faire savoir si l'un des liens de rubrique suivants est rompu. Merci!
dépendances
view
est décorée avec .toStream()
lorsqu'elle est créée par l'application (au lieu d'une collection). Il s'agit sans doute d'une correction de bug, mais cela pourrait casser le code de quelqu'un. dépendances
dépendances
.dest()
. dépendances
list
dépendances
dépendances
handle.once
modifié
dépendances
supprimé
templates
supprime l'option renameKey
de la méthode .data
. Utilisez plutôt l’option namespace
. fixé
dépendances
.find
et getView
. Aucune modification de l'API n'a été apportée. Veuillez nous faire savoir si des régressions se produisent.fixé
List
qui faisait exploser les aides à la collectemodifié
app.getView()
et app.find()
dépendances
supprimé
queue
a été supprimée sur les collections. Voir les modèles pour plus de détails. dépendances
modifié
dépendances
ménage
dépendances
renameKey
n'était pas toujours utilisé lorsqu'il était défini dans les options du chargeur de collection.dépendances
dépendances
dépendances
dépendances
obsolète
.handleView
est désormais obsolète, utilisez plutôt .handleOnce
modifié
.mergePartialsSync
a été rétabli en .mergePartials
pour être cohérent avec les autres mises à jour dans .render
et .compile
.ajouté
.log
, .verbose
, etc.).mergePartials
pour qu'elle soit asynchrone. Si vous utilisez actuellement .mergePartials
, vous pouvez continuer à le faire de manière synchrone à l'aide de la méthode .mergePartialsSync
. .watch
au profit de l'utilisation du plugin base-watch. isType
pour vérifier un type de collection, ainsi qu'un certain nombre d'améliorations dans la manière dont les collections et les vues sont instanciées et nommées. onStream
et preWrite
.(Journal des modifications généré par helper-changelog)
Jon Schlinkert
Brian Woodward
Copyright © 2017, Jon Schlinkert. MIT
Ce fichier a été généré par verb-generate-readme, v0.4.2, le 11 février 2017.