Crossbow is a lightning fast Static Site Generator & Blog Engine
It gives you insane speed, unique features and the best development workflow on the planet!
So, if you want Jekyll-style thing, minus the all the Ruby and the slowness, then you've come to correct place! Checkout this 2 min screencast for a preview. Also, there's a gif below.
-
Speed - In comparison to Jekyll, the most popular static site generator, our benchmark tests of
1000
markdown files with syntax highlighting, partials & layouts show Crossbow to be approx 8 - 13 times faster. Seriously. -
Development Workflow First - Crossbow has incredible HTML injecting technology that allows you write in markdown, compile into html (with highlighting) and inject into all connected browsers - all this in less than 20ms. This has to be seen to be believed.
-
Incremental builds - When in 'writing mode' only the file you are editing will be recompiled making the already blazing-fast process even quicker. It's really smart too, if you change a partial (that could affect many files) or change the front-matter (that could affect lists of post/pages etc) then the entire site will be rebuilt. This could take a upto a whopping 100ms... :p
-
Pretty Markup - We forked Handlebars to create a incredible feature where we perfectly preserve your indentation even when using partials. This is especially helpful when debuggin markup.
We'll have more info and more docs coming soon, but just to keep you interested, why not try out the beta?
Crossbow is a brand new project, as such we're light on documentation right now as we're still in beta. It's completely stable though and if you want to see what it's like to run a Crossbow static site/blog you can check out the Crossbow Starter Blog
npm install crossbow --save-dev
var gulp = require("gulp");
var crossbow = require("crossbow");
gulp.task("crossbow", function () {
return gulp.src(["app/*.html"])
.pipe(crossbow.stream({
config: {
base: "app"
}
}))
.pipe(gulp.dest("_site"));
});
var site = crossbow.builder();
var page = site.add({type: "page", key: "index.html", content: "<p>Hey I'm an index file</p>"});
site.compile({
item: page,
cb: function (err, out) {
if (err) {
throw err
}
console.log(out.get("compiled"));
}
});
- Logo design by @chrisbailey
- Allow options for https://github.com/chjj/marked#overriding-renderer-methods
- Categories for posts
- Tags for posts
- Permalinks in front-matter
- Pagination