Jekyll Plugin: Sitemap.xml Generator
Sitemap.xml Generator is a Jekyll plugin that generates a sitemap.xml file by traversing all of the available posts and pages.
How To Use:
- Copy the sitemap_generator.rb file into your _plugins folder within your Jekyll project.
- Ensure url is set in your config file (for example
- In your config file, change
sitemap: file:if you want your sitemap to be called something other than sitemap.xml.
- Change the
sitemap: exclude:list to exclude any pages that you don't want in the sitemap.
- Change the
sitemap: include_posts:list to include any pages that are looping through your posts (e.g. "/index.html", "/notebook/index.md", etc.). This will ensure that right after you make a new post, the last modified date will be updated to reflect the new post.
- Run Jekyll:
jekyllto re-generate your site.
sitemap.xmlshould be included in your _site folder.
sitemap: file: "/sitemap.xml" exclude: - "/atom.xml" - "/feed.xml" - "/feed/index.xml" include_posts: - "/index.html" change_frequency_name: "change_frequency" priority_name: "priority"
If you want to include the optional changefreq and priority attributes, simply include custom variables in the YAML Front Matter of those files. The names of these custom variables are defined in the config file as
sitemap: change_frequency_name: and
Last Modified and Generators:
Page and Post subclasses can implement their own last_modified methods to provide an intelligent value to this generator. Rather than changing and coupling the other generators to this generator, we can add the last_modified method with meta programming. Two examples are provided:
generate_categories_last_modified.rbadds a last_modified method to the CategoryIndex page generated by the Jekyll category page generator (http://recursive-design.com/projects/jekyll-plugins/) that is calculated by the latest last_modified date of all posts in the category.
temporal_archive_generator_last_modified.rbadds a last_modified method to the MonthlyIndexPage pages and YearlyIndexPages generated by the Yearly and Monthly Archive Generator for Jekyll (https://github.com/edelabar/jekyll-temporal-archive-generator) that is calculated by the latest last_modified date of all posts in the given time frame.
This generator runs at
:lowest priority in Jekyll, as long as all other generators are higher than that their results will be included in the sitemap.
- The last modified date is determined by the latest date of the following: system modified date of the page or post, system modified date of included layout, system modified date of included layout within that layout, ...
Distributed Under A Creative Commons License