Skip to content

bcomnes/generate-feed

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Generate a json + atom feed from a simple, scalable and standard blog index format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published