# metalsmith-extract-dates

> A Metalsmith plugin to extract date information from filenames

Latest version **1.1.0** (published 2019-06-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install metalsmith-extract-dates
pnpm add metalsmith-extract-dates
yarn add metalsmith-extract-dates
bun add metalsmith-extract-dates
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2019-06-11 |
| First published | 2019-06-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 8.6 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Ryan Quattlebaum |
| Maintainers | ryanq |

## Links

- npm: https://www.npmjs.com/package/metalsmith-extract-dates
- Repository: https://github.com/ryanq/metalsmith-extract-dates
- npm.io page: https://npm.io/package/metalsmith-extract-dates

## Dependencies (4)

- [chalk](https://npm.io/package/chalk.md) ^2.4.2
- [debug](https://npm.io/package/debug.md) ^4.1.1
- [date-fns](https://npm.io/package/date-fns.md) ^2.0.0-alpha.31
- [minimatch](https://npm.io/package/minimatch.md) ^3.0.4

## Recent versions

- 1.1.0 (latest) — 2019-06-11
- 1.0.0 — 2019-06-10

## README

# metalsmith-extract-dates :alarm_clock:

[![Build Status](https://travis-ci.org/ryanq/metalsmith-extract-dates.svg?branch=master)](https://travis-ci.org/ryanq/metalsmith-extract-dates)

A Metalsmith plugin to extract date information from filenames. Like Jekyll did.

This plugin will extract date information, like `2019-06-10-...`, remove it from
the filename (if you want) and add it as the `date` key on the file's metadata.

Why would you want this? Now your source files are sorted by date. :boom:

## Installation

From NPM:

```
$ npm install --save-dev metalsmith-extract-dates
$ yarn add --dev metalsmith-extract-dates
```

From GitHub:

```
$ npm install --save-dev https://github.com/ryanq/metalsmith-extract-dates
$ yarn add --dev https://github.com/ryanq/metalsmith-extract-dates
```

## Options

Options for configuring `metalsmith-extract-dates` can be passed as an argument
to the plugin function for the JavaScript API or as the value of the
`metalsmith-extract-dates` key for the CLI. The options are:

 - `pattern`: Only process files that match the pattern. The default is `'**'`.
 - `rename`: Re-key the file metadata by the filename with the date information
   removed. The default is `true`.

### `pattern`

This is the standard Metalsmith `pattern` option. Only files that match the
pattern will be processed. Skipped files are logged. The default is `'**'`,
which will process all files.

### `rename`

If `rename` is true, change the key for each file that is processed and matches
the format to the same file path, but with the date information removed. If `posts/2019-06-10-extracting-dates-with-metalsmith.md` is processed with
`rename` set, the key would be replaced with
`posts/extracting-dates-with-metalsmith.md`. This option is `true` by default.

## Debugging

`metalsmith-extract-dates` uses the `debug` package for logging during the
build. Enable logging by setting DEBUG to include `extract-dates`:

```
$ DEBUG=extract-dates yarn build
yarn run v1.13.0
$ node build/index.js
  extract-dates skipping file pages/about.md: doesn't match options.pattern +0ms
  extract-dates processing file: posts/2018-09-12-post1.md +0ms
  extract-dates set date: 2018-09-12 +2ms
  extract-dates replaced posts/2018-09-12-post-1.md with posts/post-1.md +0ms
  extract-dates processing file: posts/2019-01-31-post-2.md +0ms
  extract-dates set date: 2019-01-31 +0ms
  extract-dates replaced posts/2019-01-31-post-2.md with posts/post-2.md +0ms
✨  Done in 0.78s.
```

## To-Dos

 - [ ] Allow passing an array of patterns
 - [ ] Allow custom formats for date information in filenames

---
_Source: https://npm.io/package/metalsmith-extract-dates · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
