【elm-pages】sitemap.xmlの生成
⚠️ アーカイブされた記事です(過去の内容を保存用に残しています)
2021年11月08日(月)

こちらを読んでも使い方がよくわからないなぁってなっていましたが
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

©2021 yowanai.com