static site generator, an alternative to Jekyll for gh-pages and more! Gulp- and grunt-friendly. http://assemble.io/
Looking for the grunt plugin? Please visit grunt-assemble.
(Note that the current website assemble.io, is for grunt-assemble. Thanks for your patience while we work on updating the site with documentation for the latest assemble).
Overview
(Click the following sections to expand them)
Table of contents
What is Assemble?
Who uses assemble?
Why should I use assemble?
What can I do with Assemble?
Rapid development toolkit
Features
Quickstart
Installing assemble
Add assemble your project's
devDependencies
using npm:$ npm install -D assemble
You should now be able to run assemble directly (using
node assemblefile.js
etc) or using npm
scripts. For example, add the following to package.json:{
"scripts": {
"build": "assemble"
}
}
Then run
$ npm run build
Installing assemble's CLI
You can also assemble's CLI globally, which adds the
assemble
command to your system path, allowing it to be run from any directory.$ npm install --global assemble
Note that even if assemble is installed globally, it's good practice to install it locally in every project to ensure that your projects are protected against any potentially breaking changes that might occur in assemble between development cycles.
assemblefile.js
To use assemble's CLI, you'll need to add an
assemblefile.js
to your project. The fastest way to do this is to run the following command:$ assemble
If no
assemblefile.js
exists in the current project, assemble will ask if you want to add one. If you answer yes, assemble will then generate a basic assembfile.js
for you.CLI
Run assemble from the command line.
$ assemble <tasks> [options]
Running tasks
Specify one or more space-separated tasks to run.
Examples
Run task
foo
$ assemble foo
Run tasks
foo
and bar
$ assemble foo bar
Specifying options
Non-task options are prefixed with
--
.
Examples
Set the
--cwd
to run an assemblefile.js in a different directory:$ assemble --cwd=docs
Emit views as they're loaded and log them to
stderr
:$ assemble --emit=view
See more [command line options](#command line options)
Object expansion
Object-paths may be specified using dot-notation for either the key or value in a command line argument.
Additionally, assemble uses expand-object (and some custom parsing) to make it easier to pass non-trivial options and commands via command line. So all of the following formats are possible.
Examples
Boolean values:
$ assemble --foo
# { foo: true }
Key-value pairs:
$ assemble --foo=bar
# { foo: 'bar' }
Nested booleans:
$ assemble --option=foo
# {options: { foo: true }}
Nested key-value pairs:
$ assemble --option=foo:bar
# {options: { foo: 'bar' }}
Deeply nested key-value pairs:
$ assemble --option=foo.bar.baz:qux
# {options: foo: { bar: { baz: 'qux' }}}}
Or on the left-side of the
=
:$ assemble --option.foo.bar.baz=qux
# {options: foo: { bar: { baz: 'qux' }}}}
Command line options
cwd
Change the
cwd
for the assemblefile.js
to run, optionally specifying any tasks to run:$ assemble <tasks> --cwd [directory]
Example
To run the
scaffolds
example in the examples/
directory, you would enter:$ assemble --cwd examples/scaffolds
If successful, in the command line, you should see something like this:
file
Specify the name of the config file for assemble's CLI to run, the default is
assemblefile.js
.
Example
$ assemble --file assemblefile.dev.js
frm https://github.com/assemble/assemble