generate-feed
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/generate-feed package

2.0.0 • Public • Published

generate-feed stability

npm version build status coverage downloads js-standard-style

Generate rss/atom/json feeds from a simple, scalable and standard blog index format.

Usage

$ tree log-folder/

log-folder/
├── 2016.json
├── 2017.json
├── 2018.json
└── config.json

$ generate-feed log-folder --dest build-folder # generates a json and atom feed file from the

$ tree build-folder/

build-folder/
├── 2016.json
├── 2016.xml
├── 2017.json
├── 2017.xml
├── feed.json
└── feed.xml

CLI

$ generate-feed --help
Usage: generate-feed [source] [options]

    Example: generate-feed source/ -b build/

    source                path to source directory (default: log)
    --dest, -b            path to build directory (default: "build")
    --version, -v         show version information
    --help, -h            show help

Config

The log folder is required to have a config.json file.

Required + recommended options:

{
    "title": "Feeds need a title!",
    "url": "https://thesiteurl.com",
    "description": "Explain what this feed is for",
    "author": "Your Name <your@email.com> (https://yourPersonalWebsite.com)"
}

Additional configuration properties:

{
    "user_comment": "A comment viewers of the raw feed should see",
    "icon": "https://examaple.com/pic512x512.png",
    "favicon": "https://examaple.com/pic64x64.png",
    "expired": false
}

Log types

All log entries must have a type field, to specify how it is processed. Any fields missing a log field are processed as a Log entry.

Log files should be alphanumerical so they sort from oldest to latest.

$ tree log-folder

log-folder/
├── 2016.json
├── 2017.json
├── 2018.json
└── config.json

The log json should be a single array with typed objects ascending (oldest at the top, newest at the bottom).

[
    {
        date: "2018-04-07T15:06:43-07:00"
    },
    {
        date: "2018-04-08T15:06:43-07:00"
    },
    {
        date: "2018-04-09T15:06:43-07:00"
    }
]

Log

All fields are optional. These are recommended:

{
    "date": "2018-04-07T15:06:43-07:00",
    "content": "Plain text or HTML",
    "title": "Optional title",
    "url": "/some/url"
}

Additional properties:

{
    "modified": "2018-04-07T13:48:02-07:00",
    "link": "https://example.com/some/external/link",
    "image": "/some/optional/image/url",
    "banner_image": "/some/optional/image/url",
    "author": "Some Author <email@gmail.com> (https://example.com/some/external/link)",
    "summary": "you can include a summary",
    "tags": [ "any", "tags" ],
    "attachments": [
        {
            "url": "https://example.com",
            "mime_type": "audio/mpeg",
            "title": "foo a title",
            "size_in_bytes": 123,
            "duration_in_seconds": 123
        }
    ]
}

Markdown

Example markdown log example

{
    "content": "Websockets",
    "type": "md",
    "date": "2019-10-29T18:50:05.140Z",
    "path": "../projects/websockets/README.md",
    "url": "https://bret.io/projects/websockets/"
}

References

License

MIT

Package Sidebar

Install

npm i generate-feed

Weekly Downloads

13

Version

2.0.0

License

MIT

Unpacked Size

63.4 kB

Total Files

38

Last publish

Collaborators

  • bret