Skip to content

A Rust library for writing sitemap.xml

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

bouzuya/sitemap-xml-writer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sitemap-xml-writer

A Rust library for writing sitemap.xml.

ci crates.io docs.rs license

Feature flags

  • "chrono" ... chrono::NaiveDate and chrono::DateTime support
  • "time" ... time::Date and time::OffsetDateTime support
  • "url" ... url::Url support

Usage

Writing sitemap file

use sitemap_xml_writer::{SitemapWriter, Url};
use std::io::Cursor;

let mut writer = SitemapWriter::start(Cursor::new(Vec::new()))?;
writer.write(
    Url::loc("http://www.example.com/")?
        .lastmod("2005-01-01")?
        .changefreq("monthly")?
        .priority("0.8")?,
)?;
writer.end()?;

let actual = String::from_utf8(writer.into_inner().into_inner())?;
let expected = concat!(
    r#"<?xml version="1.0" encoding="UTF-8"?>"#,
    r#"<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">"#,
    r#"<url>"#,
    r#"<loc>http://www.example.com/</loc>"#,
    r#"<lastmod>2005-01-01</lastmod>"#,
    r#"<changefreq>monthly</changefreq>"#,
    r#"<priority>0.8</priority>"#,
    r#"</url>"#,
    r#"</urlset>"#
);
assert_eq!(actual, expected);

Writing sitemap index file

use sitemap_xml_writer::{SitemapIndexWriter};
use std::io::Cursor;

let mut writer = SitemapIndexWriter::start(Cursor::new(Vec::new()))?;
writer.write(
    Sitemap::loc("http://www.example.com/sitemap1.xml.gz")?
        .lastmod("2004-10-01T18:23:17+00:00")?,
)?;
writer.end()?;

let actual = String::from_utf8(writer.into_inner().into_inner())?;
let expected = concat!(
    r#"<?xml version="1.0" encoding="UTF-8"?>"#,
    r#"<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">"#,
    r#"<sitemap>"#,
    r#"<loc>http://www.example.com/sitemap1.xml.gz</loc>"#,
    r#"<lastmod>2004-10-01T18:23:17+00:00</lastmod>"#,
    r#"</sitemap>"#,
    r#"</sitemapindex>"#
);
assert_eq!(actual, expected);

License

Licensed under either of

at your option.

About

A Rust library for writing sitemap.xml

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages