https://github.com/straticjs/stratic-default-categories
Define default categories for Stratic posts
https://github.com/straticjs/stratic-default-categories
gulp gulp-plugin hacktoberfest javascript vinyl
Last synced: 2 months ago
JSON representation
Define default categories for Stratic posts
- Host: GitHub
- URL: https://github.com/straticjs/stratic-default-categories
- Owner: straticjs
- License: lgpl-3.0
- Created: 2017-10-19T23:41:42.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-12-17T05:50:28.000Z (over 7 years ago)
- Last Synced: 2025-08-14T17:21:30.155Z (11 months ago)
- Topics: gulp, gulp-plugin, hacktoberfest, javascript, vinyl
- Language: JavaScript
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# `stratic-default-categories`
[Gulp][1] plugin to add default categories for [Stratic][2] 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:
```js
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`:
```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:
```yaml
---
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
[1]: http://gulpjs.com/
[2]: https://github.com/straticjs/generator-stratic