npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

assetgraph-plugin-sitemap

v1.0.0

Published

An Assetgraph plugin that adds support for robots.txt and sitemaps

Downloads

2,984

Readme

assetgraph-plugin-sitemap

A plugin of assets and relations relating to sitemaps.

This plugin is especially useful if you intend to crawl your entire website, which might contain landing pages that are not linked to in your site navigation structure.

With this plugin, you can initialize an Assetgraph from an XML sitemap or robots.txt (with Sitemap:-directives).

Supported sitemap types:

  • XML Sitemap
  • Text Sitemap
  • Atom feed
  • RSS feed

Installation and usage

assetgraph-plugin-sitemap har a peer dependency on assetgraph

npm install --save-dev assetgraph-plugin-sitemap assetgraph

Then use the plugin by adding the sitemap extensions to an existing Assetgraph instance:

const AssetGraph = require('assetgraph');
const extendWithSitemaps = require('assetgraph-plugin-sitemap');

const graph = new AssetGraph({ root: 'https://example.com' });

extendWithSitemaps(graph);

async function main() {
  await graph.loadAssets('robots.txt', 'sitemap.xml');
  await graph.populate({
    followRelations: {
      crossorigin: false
    }
  });

  // You now have a fully populated graph based on your
  // robots.txt Sitemap:-directives and your sitemap.xml
}

main();

Additions to Assetgraph

New Assets

  • Robots - See robots.txt
  • XmlSitemap - See https://en.wikipedia.org/wiki/Sitemaps#File_format
  • TextSitemap - See https://en.wikipedia.org/wiki/Sitemaps#Text_file

New Relations

  • RobotsSitemap - A relation to any sitemap format, starting from the Sitemap: directive in robots.txt
  • XmlSitemapUrl - A relation to a page, starting from the XML sitemap <url> element
  • TextSitemapUrl - A relation to a page, starting from a URL line in TextSitemap

New behavior

robots.txt is automatically upgraded from a Text asset to a Robots asset, which also discovers the Sitemap:-directives in robots.txt and adds RobotsSitemap relations to the graph.

XML sitemaps are automatically upgraded from an Xml asset to a XmlSitemap asset based on the <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> content. <url> elements in the Xml sitemap automatically add XmlSitemapUrl relations to the graph.

While TextSitemap assets now exist, they cannot be automatically inferred based on their contents alone. This means that a Text asset can only be automatically upgraded to a TextSitemap asset based on an incoming RobotsSitemap relation. It is recommended to always add a Sitemap:-directive to your robots.txt and initialize your assetgraph from there in order to have TextSitemap work correctly. When a TextSitemap is inferred, TextSitemapUrl relations are added to the graph for each URL line in the text file.

License

BSD 3-clause