elm-pages-v3-beta/examples/docs/src/Site.elm

92 lines
2.0 KiB
Elm
Raw Normal View History

2021-04-06 00:25:37 +03:00
module Site exposing (config)
2020-05-24 01:31:56 +03:00
import Cloudinary
import DataSource exposing (DataSource)
2021-04-05 20:02:27 +03:00
import Head
import MimeType
2020-05-24 03:03:28 +03:00
import Pages.Manifest as Manifest
import Pages.Url
import Route
2021-04-14 04:43:31 +03:00
import SiteConfig exposing (SiteConfig)
2020-05-24 03:03:28 +03:00
2020-05-24 01:31:56 +03:00
2021-04-24 02:22:23 +03:00
config : SiteConfig Data
2021-04-13 23:05:33 +03:00
config =
2021-04-14 04:43:31 +03:00
\routes ->
2021-04-24 02:22:23 +03:00
{ data = data
, canonicalUrl = canonicalUrl
2021-04-14 04:43:31 +03:00
, manifest = manifest
, head = head
}
2021-04-13 23:05:33 +03:00
2021-04-24 02:22:23 +03:00
type alias Data =
2021-05-29 21:42:43 +03:00
()
2020-09-13 17:19:09 +03:00
2021-04-24 02:22:23 +03:00
data : DataSource.DataSource Data
data =
2021-05-29 21:42:43 +03:00
DataSource.succeed ()
2021-04-05 20:02:27 +03:00
2021-04-24 02:22:23 +03:00
head : Data -> List Head.Tag
2021-04-05 20:02:27 +03:00
head static =
[ Head.icon [ ( 32, 32 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 32)
, Head.icon [ ( 16, 16 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 16)
, Head.appleTouchIcon (Just 180) (cloudinaryIcon MimeType.Png 180)
, Head.appleTouchIcon (Just 192) (cloudinaryIcon MimeType.Png 192)
2021-05-22 21:53:14 +03:00
, Head.rssLink "/blog/feed.xml"
2021-04-14 05:20:10 +03:00
, Head.sitemapLink "/sitemap.xml"
2021-04-05 20:02:27 +03:00
]
2021-04-14 05:20:10 +03:00
canonicalUrl : String
canonicalUrl =
2020-05-24 01:31:56 +03:00
"https://elm-pages.com"
2020-05-24 03:03:28 +03:00
2021-04-24 02:22:23 +03:00
manifest : Data -> Manifest.Config
2021-04-05 20:02:27 +03:00
manifest static =
Manifest.init
2021-05-29 21:42:43 +03:00
{ name = "elm-pages"
, description = "elm-pages - " ++ tagline
, startUrl = Route.Index |> Route.toPath
, icons =
[ icon webp 192
, icon webp 512
, icon MimeType.Png 192
, icon MimeType.Png 512
]
}
|> Manifest.withShortName "elm-pages"
2020-05-24 18:36:40 +03:00
tagline : String
tagline =
2021-05-29 21:42:43 +03:00
"pull in typed elm data to your pages"
webp : MimeType.MimeImage
webp =
MimeType.OtherImage "webp"
icon :
MimeType.MimeImage
-> Int
2021-04-10 23:51:39 +03:00
-> Manifest.Icon
icon format width =
{ src = cloudinaryIcon format width
, sizes = [ ( width, width ) ]
, mimeType = format |> Just
, purposes = [ Manifest.IconPurposeAny, Manifest.IconPurposeMaskable ]
}
cloudinaryIcon :
MimeType.MimeImage
-> Int
-> Pages.Url.Url
cloudinaryIcon mimeType width =
Cloudinary.urlSquare "v1603234028/elm-pages/elm-pages-icon" (Just mimeType) width