metalsmith-express

Metalsmith middleware to serve files with express

Usage no npm install needed!

<script type="module">
  import metalsmithExpress from 'https://cdn.skypack.dev/metalsmith-express';
</script>

README

metalsmith-express

express based middleware for metalsmith for local development and testing.

By default, this will use express.static to serve your metalsmith built files. It also uses connect-livereload which works well in conjunction with metalsmith-watch for development purposes.

To disable connect-livereload see options below.

Usage

var metalsmith        = require('metalsmith');
var watch             = require('metalsmith-watch');
var metalsmithExpress = require('metalsmith-express');

metalsmith(__dirname)
  .use(metalsmithExpress())
  .use (
    watch({
      paths: {
        '${source}/**/*': true
      },
      livereload: true
    })
  )
  .build(function(err) {
    if (err) throw err;
  });

Options

{
  "liveReload": true,
  "liveReloadPort": 35729,
  "middleware": []
}

You may use express middleware by pushing it onto the middleware option array. Currently only the use(function(req,res,next)) convention is supported.

var middleware = [];

middleware.push(function(req, res, next) {
  console.log('Time:', Date.now());
  next();  
});

var metalsmithExpress = require('metalsmith-express')
({
  middleware: middleware
});

Todo

  • Allow for any valid middleware pattern

License

MIT