
Product
Rust Support in Socket Is Now Generally Available
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.
assemble-plugin-wrapper
Advanced tools
Makes it easy for plugin authors to generalize assemble plugins. Assemble has three types of plugins: app, collection and view. This makes it easy to specify one or more of those types to use for your plugin.
Makes it easy for plugin authors to generalize assemble plugins. Assemble has three types of plugins: app, collection and view. This makes it easy to specify one or more of those types to use for your plugin.
Install with npm
$ npm i assemble-plugin-wrapper --save
var wrap = require('assemble-plugin-wrapper');
Before
Let's say you want to create a permalinks plugin. To generate a permalink, you need to modify the destination path of a view, which means you would need to actually modify each view before it's rendered.
Here is what a view plugin looks like (without this library):
var app = assemble();
// create a plugin
function permalinks(options) {
return function (view) {
// do stuff to generate permalink...
};
}
// then use it on a view (this works well when you
// loop over views to render then)
app.page('a/b/c.hbs', {content: 'some contents'})
.use(permalink(':dest/:name.html'))
.render(function(err, view) {
// rendered view
});
After
Here is how a view plugin can be registered after it's wrapped:
// create a `view` plugin
function permalinks(options) {
return plugin('view', function (view) {
// do stuff to generate permalink...
});
}
// pass it to `app` intead of each `view`.
// consider this the "default" config for the plugin
var app = assemble()
.use(permalink(':dest/:name.html'))
// if you want you can still use the plugin on each view
// if you need to override the settings passed to `app`
app.page('a/b/c.hbs', {content: 'some contents'})
.render(function(err, view) {
// rendered view
});
If you don't specify a plugin type, it defaults to all, which means the plugin will be registered with app, every collection and every view.
// this will be used on app, collection and view instances
var app = assemble();
.use(wrap(function() {
}));
To control where the plugin is registered, you can specify one of the following:
app:collectionviewExamples
// this will be used on view instances
var app = assemble();
.use('view', wrap(function(view) {
// "this" is view
}));
// this will be used on collection instances
var app = assemble();
.use('collection', wrap(function(collection) {
// "this" is collection
}));
// this will be used on app instances
var app = assemble();
.use('app', wrap(function(app) {
// "this" is app
}));
Install dev dependencies:
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Brian Woodward
Copyright © 2015 Brian Woodward Released under the MIT license.
This file was generated by verb-cli on September 13, 2015.
FAQs
Makes it easy for plugin authors to generalize assemble plugins. Assemble has three types of plugins: app, collection and view. This makes it easy to specify one or more of those types to use for your plugin.
We found that assemble-plugin-wrapper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

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.

Product
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.

Security News
Chrome 144 introduces the Temporal API, a modern approach to date and time handling designed to fix long-standing issues with JavaScript’s Date object.

Research
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.