Create a sitemap from a simple json file containing routes.
The idea behind this plugin was to help us at Oddly to easily generate a full sitemap of our Angular apps without really having to write XML.
This plugin requires Grunt >=0.4.0
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-json-sitemap --save
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks("grunt-json-sitemap");
Run this task with the grunt json_sitemap
command.
json_sitemap: {
dev: {
// You can use "sitemap" property in your package.json
// instead of adding "map" property here
dest: ".tmp/sitemap.xml"
},
dist: {
map: "app/sitemap.json",
dest: "dist/sitemap.xml"
}
}
{
"siteroot": "http://www.google.fr/:locale",
"locales": ["fr","en","es"],
"changefreq": "yearly",
"lastmod": "2016-01-12",
"routes": {
"/route/1": {
"priority": 0.8
},
"/route/2": {}
}
}
- Type :
String
- Required :
true
First part of all urls loc
elements
- Type :
Array|Object
- Required :
true
Basically your site pages. Can either be an array or strings or an object with key/value pairs (as provided in the default map file above)
- Type :
Array
- Default :
["en"]
If your site has multiple locales, you can add them here, and use the :locale
tag in your siteroot
url
- Type :
String
- Default :
"monthly"
Frequency at which you update your site pages. See sitemap.xml schema for more informations on this property.
You can also add this property as a route-specific property.
- Type :
String
- Default :
"YYYY-MM-DD"
(today's date)
Last time you updated your site pages. See sitemap.xml schema for more informations on this property.
You can also add this property as a route-specific property.
- Type :
float
- Default :
0.5
Your site's pages priority. See sitemap.xml schema for more informations on this property.
You can also add this property as a route-specific property.
- Fork the repository :)
- Create your feature branch:
git checkout -b feature/awesome-feature
- Run:
npm i
to install dependencies - Run:
grunt build
to build the project - Do changes
- ADD TESTS ! and launch them with
grunt test
- Commit your changes:
git commit -m 'Adds awesome feature'
- Push your commits:
git push origin feature/awesome-feature
- Submit a pull request !
Your build/test has to pass travis builds. You also have to respect the coding styles I used in this project, otherwise your pull request might be rejected.
See CHANGELOG.md