# sitemapy

> Simple utility to generate sitemaps in xml, with zero dependencies

Latest version **2.5.0** (published 2022-05-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install sitemapy
pnpm add sitemapy
yarn add sitemapy
bun add sitemapy
```

## 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 | 2.5.0 |
| Published | 2022-05-09 |
| First published | 2022-04-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 8.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | postiess |
| Maintainers | postiess |
| Keywords | sitemap, generate, xml |

## Links

- npm: https://www.npmjs.com/package/sitemapy
- Repository: https://github.com/postiess/sitemapy
- Homepage: https://github.com/postiess/sitemapy#readme
- Issues: https://github.com/postiess/sitemapy/issues
- npm.io page: https://npm.io/package/sitemapy

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 2.5.0 (latest) — 2022-05-09
- 2.4.0 — 2022-05-09
- 1.4.0 — 2022-04-12
- 1.3.0 — 2022-04-10
- 1.2.0 — 2022-04-10
- 1.1.0 — 2022-04-10
- 1.0.0 — 2022-04-10

## README

# Sitemapy

[![tests](https://github.com/postiess/sitemapy/actions/workflows/test.yml/badge.svg)](https://github.com/postiess/sitemapy/actions/workflows/test.yml)

Simple utility to generate sitemaps

## 👀 How to use ?

```sh
npm i sitemapy
```

```js

import {createSitemap} from "sitemapy"

const siteRoot = "https://github.com"

let pages = [
    {
        url: "/about", //all optional except url
        priority: 1,
        changefreq: "daily",
        lastmod: "10-04-22"
    }
]

const sitemap = createSitemap({pages, siteRoot}) //returns string of sitemap XML

```

## Typescript

```js

import {createSitemap} from "sitemapy"
import type {SitemapElement, SitemapConfig} from "sitemapy"

const siteRoot = "https://github.com"

let pages: Array<SitemapElement> = [
    {
        url: "/about", //all optional except url
        priority: 1,
        changefreq: "daily",
        lastmod: "10-04-22"
    }
]

const config: SitemapConfig = {pages, siteRoot}

const sitemap = createSitemap(config) //returns string of sitemap XML

```

## Examples

With express

```js

import axios from "axios"
import {createSitemap} from "sitemapy"

app.get("/sitemap.xml", async (req, res) => {
    const siteRoot = "https://github.com"
    const {data} = await axios.get("/api/sitemapData")

    const sitemap = createSitemap({pages: data, siteRoot})

    res.setHeader('Content-Type', 'application/xml')
    res.send(sitemap)
})

```

## Breaking changes on sitemapy versions >=2.4.0

In versions prior to 2.4.0, urls would already have the starting slash prefixed.
Now that is left for the user to define themselves, it makes more sense.



Prior to 2.4.0

```js
const url = "about";
 ```

Would result in "https://example.com/about"

After and including version 2.4.0

```js
const url = "/about";
 ```
Would result in "https://example.com/about"

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