/* eslint-disable import/no-absolute-path */ import { Meteor } from 'meteor/meteor'; import { WebApp } from 'meteor/webapp'; /* * /sitemap.xml — own implementation replacing gadicohen:sitemaps (pre-0.9 * package API, dead on Meteor 3). Static pages only: the per-fire section of * the old handler was behind `firesMapEnabled = false` (dead code) and was * dropped; see git history if it's ever wanted back. */ const PAGES = [ '/fires', '/login', '/signup', '/recover-password', '/credits', '/terms', '/license', '/privacy', '/about' ]; function xmlEscape(s) { return s.replace(/&/g, '&').replace(//g, '>'); } WebApp.connectHandlers.use('/sitemap.xml', (req, res) => { const lastmod = new Date().toISOString().slice(0, 10); const urls = PAGES.map((page) => { const loc = xmlEscape(Meteor.absoluteUrl(page.replace(/^\//, ''))); return ` \n ${loc}\n ${lastmod}\n `; }).join('\n'); const body = `\n\n${urls}\n\n`; res.writeHead(200, { 'Content-Type': 'application/xml; charset=utf-8' }); res.end(body); });