Skip to content

Define default categories for Stratic posts

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

straticjs/stratic-default-categories

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

stratic-default-categories

Gulp plugin to add default categories for Stratic posts

Installation

npm install stratic-default-categories

Usage

The module exports a single function which will return a through stream. The function takes one argument, an array of strings representing categories to be added to all posts (unless specified otherwise).

You can omit defaults by putting them in the noncategories.

Examples

Minimal gulpfile.js for this module to work:

var gulp = require('gulp');
var frontMatter = require('gulp-gray-matter');
var straticDateInPath = require('stratic-date-in-path');
var addsrc = require('gulp-add-src');
var straticPostsToIndex = require('stratic-posts-to-index');
var straticDefaultCategories = require('stratic-default-categories');

gulp.task('post-index', function() {
    gulp.src('*.md')
        .pipe(frontMatter())
        .pipe(straticDateInPath())
        .pipe(addsrc('src/blog/index.jade'))
        .pipe(straticPostsToIndex('index.jade'))
        .pipe(straticDefaultCategories(['category-name']));
});

Complete example gulpfile.js:

var gulp = require('gulp');
var frontMatter = require('gulp-gray-matter');
var remark = require('gulp-remark');
var remarkHtml = require('remark-html');
var straticDateInPath = require('stratic-date-in-path');
var addsrc = require('gulp-add-src');
var straticPostsToIndex = require('stratic-posts-to-index');
var straticDefaultCategories = require('stratic-default-categories');
var jade = require('gulp-jade');
var rename = require('gulp-rename');

// Separate variable because in reality you'll probably want to pass this to multiple tasks
var categoryDefaults = ['category-name'];

gulp.task('post-index', function() {
    gulp.src('*.md')
        .pipe(frontMatter())
        .pipe(remark().use(remarkHtml))
        .pipe(straticDateInPath())
        .pipe(addsrc('src/blog/index.jade'))
        .pipe(straticPostsToIndex('index.jade'))
        .pipe(straticDefaultCategories(categoryDefaults))
        .pipe(jade({pretty: true, basedir: __dirname}))
        .pipe(rename({ extname: '.html' }))
        .pipe(gulp.dest('dist/blog'));
});

Example blog post (with YAML frontmatter) that omits the category-name category:

---
title: "Post title"
time:
  epoch: 1000000000
  utcoffset: "UTC-0"
author: "AJ Jordan"
noncategories:
  - category-name
---

Here is a blog post!

License

LGPL 3.0+

Author

AJ Jordan [email protected]

About

Define default categories for Stratic posts

Topics

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Code of conduct

Stars

Watchers

Forks

Packages

No packages published