A Grunt plugin for generating sitemaps
This plugin requires Grunt ~0.4.5
.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-sitemap --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-sitemap');
sitemap
is a multitask, so you can use it similarly to lint
, watch
etc...
grunt.initConfig({
sitemap: {
dist: {
pattern: ['**/*.html', '!**/google*.html'], // this will exclude 'google*.html'
siteRoot: 'public/'
}
}
});
- Type:
string
- Default:
./
Site (public root) directory relative to your Gruntfile.js file. This is where indexing will begin and your sitemap be saved to.
- Type:
string
- Default:
/**/*.html
Pattern to match website files. Excludes 404.html
by default and converts index.html
to directory path /
.
See minimatch for more on pattern matching.
- Type:
string
- Default:
read from package.json
Site URL including protocol: e.g. http://www.example.com
If the homepage
field is specified in your package.json, it will be used from there.
- Type:
string
- Default:
daily
Set this to override <changefreq>
in sitemap.
- Type:
string
- Default:
0.5
Set this to override <priority>
in sitemap.
- Type:
object
- Default:
{ required: true }
E.g.
extension: {
required: false
}
If you need a trailing slash just set the attribute trailingSlash: true
. E.g.
extension: {
required: false,
trailingSlash: true
}
By default the <loc>
tag is generated for paths that contains file extensions.
E.g.: .html
or .htm
. If you don't want URLs with file extensions to be included
in your sitemap, just add the attribute extension: { required: false }
.
This will output URLs without file extensions.
We accept pull requests! A special thanks to XhmikosR for keeping things rolling.