Sitemap is a support library that aids Alien-Factory in the development of other libraries, frameworks and applications. Though you are welcome to use it, you may find features are missing and the documentation incomplete.
Sitemap is a library that creates XML sitemaps for your Bed Apps.
Install Sitemap with the Fantom Pod Manager ( FPM ):
C:\> fpm install afSitemap
Or install Sitemap with fanr:
C:\> fanr install -r http://eggbox.fantomfactory.org/fanr/ afSitemap
To use in a Fantom project, add a dependency to build.fan:
depends = ["sys 1.0", ..., "afSitemap 1.1"]
Full API & fandocs are available on the Eggbox - the Fantom Pod Repository.
The SitemapUrl object contains the data needed to render an individual URL object. These are gathered by Sitemap in serveral ways:
URLs from Pillow pages are added automatically. The page location is generated using BedSheet's host config value - so ensure this has been set!
Pillow pages are ignored if they contain an @InitRender method or @PageContext fields. Such pages take additional URL parameters of which, obviously, Sitemap can not determine valid values for. These pages should implement SitemapSource and return a list of valid SitemapUrls.
If you don't wish a Pillow page to be scanned or included, let it implement SitemapExempt.
Or you can disable all Pillow Pages by removing the SitemapPage contribution:
@Contribute { serviceType=SitemapPage# }
Void contributeSitemapPage(Configuration config) {
config.remove("afSitemap.fromPillowPages")
}
The IoC service registry is scanned for services that implement SitemapSource. Any service that does is called upon to generate SitemapUrls.
Disable all service scanning by removing the SitemapPage contribution:
@Contribute { serviceType=SitemapPage# }
Void contributeSitemapPage(Configuration config) {
config.remove("afSitemap.fromServices")
}
You may also manually contribute SitemapSource objects to the SitemapPage service:
@Contribute { serviceType=SitemapPage# }
Void contributeSitemapPage(Configuration config) {
url := SitemapUrl(`/wotever`) { ... }
config.add(SitemapSourceImpl(url))
}