{"id":18434727,"url":"https://github.com/assemble/assemble-middleware-rss","last_synced_at":"2025-09-19T22:52:01.606Z","repository":{"id":11176984,"uuid":"13553425","full_name":"assemble/assemble-middleware-rss","owner":"assemble","description":"Assemble middleware for creating RSS feeds with Assemble.","archived":false,"fork":false,"pushed_at":"2015-08-26T20:38:29.000Z","size":325,"stargazers_count":7,"open_issues_count":5,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-08-09T01:42:26.359Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/assemble.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-14T05:42:34.000Z","updated_at":"2019-08-22T15:12:25.000Z","dependencies_parsed_at":"2022-08-30T21:00:24.736Z","dependency_job_id":null,"html_url":"https://github.com/assemble/assemble-middleware-rss","commit_stats":null,"previous_names":["assemble/assemble-contrib-rss"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/assemble/assemble-middleware-rss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemble%2Fassemble-middleware-rss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemble%2Fassemble-middleware-rss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemble%2Fassemble-middleware-rss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemble%2Fassemble-middleware-rss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/assemble","download_url":"https://codeload.github.com/assemble/assemble-middleware-rss/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assemble%2Fassemble-middleware-rss/sbom","scorecard":{"id":213017,"data":{"date":"2025-08-11","repo":{"name":"github.com/assemble/assemble-middleware-rss","commit":"323a5c362d0a8440cf377c6bebdbfd134bd55e7a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/16 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T01:06:08.362Z","repository_id":11176984,"created_at":"2025-08-17T01:06:08.362Z","updated_at":"2025-08-17T01:06:08.362Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276012351,"owners_count":25569843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:05:06.809Z","updated_at":"2025-09-19T22:52:01.564Z","avatar_url":"https://github.com/assemble.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# assemble-middleware-rss [![NPM version](https://badge.fury.io/js/assemble-middleware-rss.svg)](http://badge.fury.io/js/assemble-middleware-rss)  [![Build Status](https://travis-ci.org/assemble/assemble-middleware-rss.svg)](https://travis-ci.org/assemble/assemble-middleware-rss)\n\n\u003e RSS generator plugin for Assemble.\n\n## Quickstart\nFrom the same directory as your project's [gruntfile][Getting Started] and [package.json][], install this plugin:\n\n```bash\nnpm install assemble-middleware-rss --save-dev\n```\n\nNext add `assemble-middleware-rss`, the name of this module, to the `plugins` option in the Assemble task:\n\n```js\noptions: {\n  plugins: ['assemble-middleware-rss'],\n  rss: {\n    title: 'RSS Feed Title',\n    description: 'RSS feed description.'\n  }\n}\n```\n\n*Note*: Author is also required, but it is pulled from `package.json` by default. As long as you have a `package.json` file in the root directory, you don't need to include author in the options.\n\nSee the [options](#options) for further configuration.\n\n\n## Options\n#### Plugin Options\n| Option    | Type    | Description                              | Default Value |  \n|:----------|:-------:|------------------------------------------|---------------|\n| `format`  | boolean | Format output XML file using js-prettify | `false`       |\n| `dest`    | string  | Destination and filename of the generated RSS feed    |`'feed.xml'`   |\n\n#### RSS Feed Data\n\u003e Data for the RSS `\u003cchannel\u003e` element.\n\nThis data is defined under the plugin configuration.\n\n```js\nassemble: {\n  options: {\n    rss: {\n      title: 'foo',\n      description: 'bar'\n    }\n  }\n}\n```\n\n| Required     | Type   | Desciption                           | Default Value   |     \n|:-------------|:------:|--------------------------------------|----------------:|\n| `title`      | string | Defines the title of the channel     | pkg.name        |\n| `description`| string | Describes the channel                | pkg.description |\n| `link`       | string | Defines the hyperlink to the channel | pkg.homepage    |\n\n| Optional        | Type   | Description | Default Value |\n|:----------------|:------:|-------------|--------------:|\n| `categories`    | array  | Defines one or more categories for the feed |\n| `cloud`         | string | Register processes to be notified immediately of updates of the feed | |\n| `copyright`     | string | Notifies about copyrighted material |\n| `docs`          | string | Specifies an URL to the documentation of the format used in the feed |\n| `generator`     | string | Specifies the program used to generate the feed |\n| `image`         | string | Allows an image to be displayed when aggregators present a feed |\n| `language`      | string | Specifies the language the feed is written in | 'en'\n| `lastBuildDate` | string | Defines the last-modified date of the content of the feed |\n| `managingEditor`| string | Defines the e-mail address to the editor of the content of the feed |\n| `pubDate`       | string | Defines the last publication date for the content of the feed |\n| `rating`        | string | The PICS rating of the feed |\n| `skipDays`      | string | Specifies the days where aggregators should skip updating the feed |\n| `skipHours`     | string | Specifies the hours where aggregators should skip updating the feed | \n| `textInput`     | string | pecifies a text input field that should be displayed with the feed |\n| `ttl`           | string | Specifies the number of minutes the feed can stay cached | '60' |\n| `webmaster`     | string | Defines the email address to the webmaster of the feed |\n| `geoRSS`        | boolean| Enable or disable GeoRSS | false\n\n#### RSS Item Data\n\u003e Data for the RSS `\u003citem\u003e`element(s).\n\nThe data for feed items is generally grabbed from the YAML Front Matter.\n```\ntitle: Foo\ndesciption: This is foo.\n```\n\nThree values are required for the RSS feed to generate:\n\n| Value         | Type   | Description                                       |      \n|:--------------|:------:|---------------------------------------------------|\n| `title`       | string | Defines the title of the item                     |\n| `description` | string | Describes the item                                |\n\nAll other values are optional:\n\n| Value         | Type   | Desciption                                             |      \n|:--------------|:------:|--------------------------------------------------------|\n| `author`      | string | Specifies the e-mail address to the author of the item |\n| `date`        | string | Defines the last-publication date for the item         |\n| `link`        | string | Defines the hyperlink to the item                      |\n| `categories`  | string | Defines one or more categories the item belongs to     |\n| `comments`    | string | Allows an item to link to comments about that item     |\n| `guid`        | string | Defines a unique identifier for the item               |\n| `source`      | string | Specifies a third-party source for the item            | \n| `lat`         | number | The latitude coordinate of the item                    |\n| `long`        | number | The longitude coordinate of the item                   |\n\n#### Excluding content\nBoth `published: false` and `rss: false` will exclude an item from the feed. However, note that `published: false` will entirely prevent a page from being assembled.\n\n\n## Usage Examples\nGenerate feed using only required options.\n```js\noptions: {\n  rss: {\n    title: 'RSS feed description.',\n    description: 'RSS feed description.'\n  }\n}\n```\n\n\n## RSS Specifications\n#### RSS Feed\n\nThe RSS feed is generated using the [RSS module](http://npmjs.org/rss), a fast and simple RSS generator/builder for Node projects by Dylan Greene. Some of the options this module has are not fully documented here, but are availabe; the information you might need should be with in Greene's documentation.\n\nThe content for the RSS feed is pulled from several sources.\n\nAs much of the content for the feed as possible is pulled from `package.json`, e.g. the author name and email; the site name and url. This functionality can be overidden by specifying the feed data in the plugin configuartion. See the [options documentaion](#rss-feed-data).\n\n#### RSS Feed Items\n\nThe data for each item is pulled from YAML Front Matter (YFM).\n```\ntitle: foo\ndesciption: bar\n```\n\nIf you do not want to include a page in the RSS feed, you don't have to.\n```\nrss: false\n```\n\nThe item data you can define in the YFM is listed under [the options](#rss-item-options)\n\n\n***\nBuilt with care by [Patrick Burtchaell](http://twitter.com/pburtchaell) in New Orleans.\n\nCopyright (c) 2014 Patrick Burtchaell, Jon Schlinkert, contributors. Released under the MIT license.\n\n[grunt]: http://gruntjs.com/\n[Getting Started]: https://github.com/gruntjs/grunt/blob/devel/docs/getting_started.md\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemble%2Fassemble-middleware-rss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassemble%2Fassemble-middleware-rss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassemble%2Fassemble-middleware-rss/lists"}