こちらを読んでも使い方がよくわからないなぁってなっていましたが
https://package.elm-lang.org/packages/dillonkearns/elm-pages/latest/ApiRoute
こちらのサンプルの85行目から102行目をコピペでいけました
https://github.com/dillonkearns/elm-pages/blob/master/examples/docs/src/Api.elm
elm-sitemapのインストール
$ elm install dillonkearns/elm-sitemap
Api.elmの編集
module Api exposing (routes)
import ApiRoute
import DataSource exposing (DataSource)
import Element exposing (..)
import Html exposing (Html)
import Route exposing (Route)
import Sitemap
routes :
DataSource (List Route)
-> (Html Never -> String)
-> List (ApiRoute.ApiRoute ApiRoute.Response)
routes getStaticRoutes htmlToString =
[ ApiRoute.succeed
(getStaticRoutes
|> DataSource.map
(\allRoutes ->
{ body =
allRoutes
|> List.map
(\route ->
{ path = Route.routeToPath route |> String.join "/"
, lastMod = Nothing
}
)
|> Sitemap.build { siteUrl = "任意のアドレス" }
}
)
)
|> ApiRoute.literal "sitemap.xml"
|> ApiRoute.single
]
http://localhost:1234/sitemap.xml
で確認
こんな感じのが生成されていたらOKです
参考
https://package.elm-lang.org/packages/dillonkearns/elm-pages/latest/ApiRoute
https://github.com/dillonkearns/elm-pages/blob/master/examples/docs/src/Api.elm
https://package.elm-lang.org/packages/dillonkearns/elm-sitemap/latest/about