pub struct SitemapGenerator;Expand description
Renders sitemaps and sitemap indexes.
Implementations§
Source§impl SitemapGenerator
impl SitemapGenerator
Sourcepub fn generate(urls: &[SitemapUrl]) -> String
pub fn generate(urls: &[SitemapUrl]) -> String
Renders a <urlset> sitemap.
An empty list still produces a well-formed, empty <urlset>. An entry whose loc
is not an absolute http:// or https:// URL is left out: the protocol requires
a full URL, and a crawler or tool that lists the entries would otherwise be handed
javascript:….
This does not enforce the protocol’s limit of MAX_URLS URLs and MAX_BYTES
bytes per file; split a larger site with SitemapGenerator::chunks and list the
parts in a generate_index.
Sourcepub fn chunks(urls: &[SitemapUrl]) -> impl Iterator<Item = &[SitemapUrl]>
pub fn chunks(urls: &[SitemapUrl]) -> impl Iterator<Item = &[SitemapUrl]>
Splits urls into slices that each fit in one sitemap file (at most MAX_URLS).
The byte limit depends on how long the URLs are, so check
generate(chunk).len() <= MAX_BYTES and split further if a chunk is over.
§Examples
use molt::sitemap::{SitemapGenerator, SitemapUrl, MAX_URLS};
let urls: Vec<SitemapUrl> = (0..=MAX_URLS)
.map(|i| SitemapUrl::new(format!("https://example.com/{i}")))
.collect();
assert_eq!(SitemapGenerator::chunks(&urls).count(), 2);Trait Implementations§
Source§impl Clone for SitemapGenerator
impl Clone for SitemapGenerator
impl Copy for SitemapGenerator
Auto Trait Implementations§
impl Freeze for SitemapGenerator
impl RefUnwindSafe for SitemapGenerator
impl Send for SitemapGenerator
impl Sync for SitemapGenerator
impl Unpin for SitemapGenerator
impl UnsafeUnpin for SitemapGenerator
impl UnwindSafe for SitemapGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more