generate method

String generate()

Generate the sitemap index XML

Implementation

String generate() {
  final buffer = StringBuffer();
  buffer.writeln('<?xml version="1.0" encoding="UTF-8"?>');
  buffer.writeln(
    '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
  );

  final cleanBase = baseUrl.endsWith('/')
      ? baseUrl.substring(0, baseUrl.length - 1)
      : baseUrl;

  for (final sitemap in sitemaps) {
    final cleanPath = sitemap.path.startsWith('/')
        ? sitemap.path
        : '/${sitemap.path}';

    buffer.writeln('  <sitemap>');
    buffer.writeln('    <loc>$cleanBase$cleanPath</loc>');

    if (sitemap.lastModified != null) {
      buffer.writeln(
        '    <lastmod>${_formatDate(sitemap.lastModified!)}</lastmod>',
      );
    }

    buffer.writeln('  </sitemap>');
  }

  buffer.writeln('</sitemapindex>');
  return buffer.toString();
}