Notoriously Pedantic Magistrate

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

    1.1.14 • 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

    Install

    npm i generate-feed

    DownloadsWeekly Downloads

    15

    Version

    1.1.14

    License

    MIT

    Unpacked Size

    53.3 kB

    Total Files

    38

    Last publish

    Collaborators

    • bret