self.addEventListener('install', function(e) {

 e.waitUntil(
   caches.open('{{ site.project.domain }}').then(function(cache) {
     cache.addAll([

       // pages
       {% for html_page in site.html_pages %}{% if html_page.url != '/' %}'{{ html_page.url }}',
       {% endif %}{% endfor %}

       // images
       {% for file in site.static_files %}{% if file.extname == '.png' or file.extname == '.svg' or file.extname == '.ico' %}'{{ file.path }}',
       {% endif %}{% endfor %}

       // configs
       {% for file in site.static_files %}{% if file.extname == '.xml' %}'{{ file.path }}',
       {% endif %}{% endfor %}

       // anything else
       '/site.webmanifest',
       '/assets/css/sitemap.css',
       '/robots.txt',
       '/humans.txt'
     ]);
     return cache.addAll([
       // initial loading
       '/',
       '/index.html',
       '/favicon.ico',
       '/assets/css/page.css',
       '/service-worker.js'
     ]);
   })
 );
});
self.addEventListener('fetch', function(event) {
 event.respondWith(
   fetch(event.request).catch(function() {
     return caches.match(event.request);
   })
 );

});