0.3.0 • Published 5 years ago

gatsby-post-manager v0.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

Gatsby Post Manager

npm badge travis badge

Gatsby Post Manager (gpm) is a command line tool that:

  • helps keep track of Gatsby posts, and easily see which ones are published, pending, or unpublished
  • create new posts from a template

Installation

$ npm install -g gatsby-post-manager

Usage

gpm is opinionated - it assumes your posts:

  • use the .md or .mdx file extensions
  • have a required published boolean flag in their frontmatter
  • have an optional date attribute (format: YYYY-MM-DD) in their frontmatter

gpm will recursively search the provided content path (the --dir option) for posts.

Below is my example directory structure. All gpm commands are invoked from the site root.

site/
├── content/
│   ├── posts/
│   |   ├── my-first-post/
│   |   |   └── index.md
│   |   ├── my-second-post/
│   |   |   └── index.mdx
│   |   └── my-third-post.md

List all posts, including their status:

$ gpm -d content posts
# or
$ gpm -d content p

gpm-all-posts

List posts whose status is one of: published, pending, or unpublished

# status flags: --published, --pending, --unpublished
$ gpm -d content posts --pending
# or
$ gpm -d content p --pending

gpm-pending-posts

How does gpm determine post status?

  • A post's status is published if its published attribute is true, and its date attribute occurs before or is equal to today's date (if the post has a date attribute)
  • A post's status is pending if its published attribute is true, and its date attribute occurs after today's date (if the post has a date attribute)
  • A post's status is published if its published attribute is true, and it does not have a date attribute
  • A post's status is unpublished if its published attribute is not true, or doesn't have a published attribute at all

Display post stats:

$ gpm -d content post-stats
# or
$ gpm -d content ps

gpm-all-posts

Create a post:

$ gpm posts new path/to/posts "hello world"

will create a new path/to/posts/hello-world.md file whose frontmatter looks like:

---
title: Hello World
slug: "hello-world"
tags: []
published: false
date: "2019-09-23"
---
Add your content here
0.3.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago