Jamster
A simple command line tool for generating markdown files with front matter for JAMstack sites. Inspired by Hugo's hugo new
, but for the JavaScript ecosystem.
About
- ⚡️Generates markdown files with front-matter like the ones typically used to manage content with static site generators like Eleventy, Jekyll, etc.
- ✌️Written entirely in Node.js so it's cross-platform
- 🔧Specify front-matter content per file by passing specific config files via the
--config
flag.
Getting started
The easiest way to use Jamster is to install in globally.
npm install -g jamster # Test to make sure it was installed. jamster --version# Should see a version number 0.1.0
Once once installed you can run it in your terminal from anywhere.
jamster relative/path/to/new/file.md
Installing locally
If you don't want to or can't install Jamster globally you can also install it locally in your project and then run it using npx
(Requires npm 5.2.0+).
npx jamster path/to/my/new/file.md
Default generated front matter
Without passing any arguments Jamster will create a new markdown file at the path you specify with the following default front-matter added.
---title: ''description: ''date: (Current date)---
Customizing generated front-matter
If you want to use different values in your generated front matter there are a couple of ways to do it.
.config
file
Using a central If you want to use the same front-matter values for all generated markdown files you can place a file called jamster.config.js
that exports a JavaScript Object with your desired values at the root of your project.
Here's and example of how a jamster.config.js
file might look.
// ./jamster.config.js moduleexports = title: 'My default title' description: 'Default description' date: // You can use regular old Javascript in here! tags: 'post' 'development' layout: 'layouts/post.njk'
With the this configuration file in place, you can then run
jamster path/to/your/new/file.md
and the resulting front markdown file would contain the following front-matter:
---title: 'My default title'description: 'Default description'date: (Today's date)tags: - post - developmentlayout: 'layouts/post.njk'---
--config
flag
Specify a configuration using the If you want to use multiple different configuration files for different post type in you site, you can specify a different config file after entering the path to you new markdown file.
Example
jamster path/to/my/new/file.md --config path/to/config/myconfig.js