Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

assemble-core

Package Overview
Dependencies
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

assemble-core

The core assemble application with no presets or defaults. All configuration is left to the implementor.

  • 0.1.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
29K
decreased by-4.01%
Maintainers
1
Weekly downloads
 
Created
Source

assemble-core NPM version

The core assemble application with no presets or defaults. All configuration is left to the implementor.

This library, assemble-core, was designed to give implementors and hackers the baseline features and API for creating rich and powerful node.js applications. Learn more about what you can do with assemble-core.

Install

Install with npm

$ npm i assemble-core --save

Usage

var assemble = require('assemble-core');
var app = assemble();

Examples

view collections

Create a custom view collection:

var app = assemble();
app.create('pages');

Now you can add pages with app.page() or app.pages():

app.page('home.hbs', {content: 'this is the home page!'});

render

Render a view:

var app = assemble();
app.create('pages');

app.page('foo', {content: 'Hi, my name is <%= name %>'})
  .use(function (view) {
    if (!view.contents) {
      view.contents = fs.readFileSync(view.path);
    }
  })
  .set('data.name', 'Brian')
  .render(function (err, res) {
    console.log(res.content);
    //=> 'Hi, my name is Brian'
  });

API

Assemble

Create an assemble application. This is the main function exported by the assemble module.

Params

  • options {Object}: Optionally pass default options to use.

Example

var assemble = require('assemble');
var app = assemble();

Templates API

Assemble has an extensive API for working with templates and template collections. In fact, the entire API from the templates library is available on Assemble.

While we work on getting the assemble docs updated with these methods you can visit the templates library to learn more about the full range of features and options.


File System API

Assemble has the following methods for working with the file system:

Assemble v0.6.0 has full vinyl-fs support, so any gulp plugin should work with assemble.

.src

Use one or more glob patterns or filepaths to specify source files.

Params

  • glob {String|Array}: Glob patterns or file paths to source files.
  • options {Object}: Options or locals to merge into the context and/or pass to src plugins

Example

app.src('src/*.hbs', {layout: 'default'});
.dest

Specify the destination to use for processed files.

Params

  • dest {String|Function}: File path or custom renaming function.
  • options {Object}: Options and locals to pass to dest plugins

Example

app.dest('dist/');
.copy

Copy files from A to B, where A is any pattern that would be valid in app.src and B is the destination directory.

Params

  • patterns {String|Array}: One or more file paths or glob patterns for the source files to copy.
  • dest {String|Function}: Desination directory.
  • returns {Stream}: The stream is returned, so you can continue processing files if necessary.

Example

app.copy('assets/**', 'dist/');

Glob patterns or paths for symlinks.

Params

  • glob {String|Array}

Example

app.symlink('src/**');

Task API

Assemble has the following methods for running tasks and controlling workflows:

.task

Define a task. Tasks are functions that are stored on a tasks object, allowing them to be called later by the build method. (the CLI calls build to run tasks)

Params

  • name {String}: Task name
  • fn {Function}: function that is called when the task is run.

Example

app.task('default', function() {
  return app.src('templates/*.hbs')
    .pipe(app.dest('dist/'));
});
.build

Run one or more tasks.

Params

  • tasks {Array|String}: Task name or array of task names.
  • cb {Function}: callback function that exposes err

Example

app.build(['foo', 'bar'], function(err) {
  if (err) console.error('ERROR:', err);
});
.watch

Watch files, run one or more tasks when a watched file changes.

Params

  • glob {String|Array}: Filepaths or glob patterns.
  • tasks {Array}: Task(s) to watch.

Example

app.task('watch', function() {
  app.watch('docs/*.md', ['docs']);
});

About

What can I do with it?

You can use assemble-core to create your own custom:

  • blog engine
  • project generator / scaffolder
  • e-book development framework
  • build system
  • landing page generator
  • documentation generator
  • front-end UI framework
  • rapid prototyping application
  • static site generator
  • web application

Assemble is built on top of these great projects:

  • boilerplate: Tools and conventions for authoring and publishing boilerplates that can be generated by any build… more | homepage
  • composer: API-first task runner with three methods: task, run and watch. | homepage
  • generate: Project generator, for node.js. | homepage
  • scaffold: Conventions and API for creating scaffolds that can by used by any build system or… more | homepage
  • templates: System for creating and managing template collections, and rendering templates with any node.js template engine.… more | homepage
  • verb: Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… more | homepage

Tests

Running tests

Install dev dependencies:

$ npm i -d && npm test

Test coverage

As of October 21, 2015:

Statements : 100% (38/38)
Branches   : 100% (8/8)
Functions  : 100% (10/10)
Lines      : 100% (38/38)

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

If Assemble doesn't do what you need, [please let us know][issue].

Author

Jon Schlinkert

License

Copyright © 2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb-cli on October 21, 2015.

Keywords

FAQs

Package last updated on 21 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc