サイトマップは各アプリにかなり固有のものであるため、プラグインに引き出すのに十分な共通コードがあるかどうかはわかりません.
http://www.shareyourlove.comのサイトマップを生成する方法を次に示します。ご覧のとおり、Groovy/Grails の優れた XML 構文により、かなり最小限で DRY になっています。
class SitemapController{
def sitemap = {
render(contentType: 'text/xml', encoding: 'UTF-8') {
mkp.yieldUnescaped '<?xml version="1.0" encoding="UTF-8"?>'
urlset(xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9",
'xmlns:xsi': "http://www.w3.org/2001/XMLSchema-instance",
'xsi:schemaLocation': "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd") {
url {
loc(g.createLink(absolute: true, controller: 'home', action: 'view'))
changefreq('hourly')
priority(1.0)
}
//more static pages here
...
//add some dynamic entries
SomeDomain.list().each {domain->
url {
loc(g.createLink(absolute: true, controller: 'some', action: 'view', id: domain.id))
changefreq('hourly')
priority(0.8)
}
}
}
}
URL マッピング
class UrlMappings {
static mappings = {
"/sitemap"{
controller = 'sitemap'
action = 'sitemap'
}
}
}