Rename StaticData -> Data.

This commit is contained in:
Dillon Kearns 2021-04-23 16:22:23 -07:00
parent 559c4b6337
commit 521c3c0cc7
28 changed files with 303 additions and 304 deletions

View File

@ -1,4 +1,4 @@
module Page.Blog exposing (Model, Msg, StaticData, page)
module Page.Blog exposing (Data, Model, Msg, page)
import Article
import DataSource
@ -18,35 +18,32 @@ type Msg
= Msg
page : PageWithState RouteParams StaticData Model Msg
page : PageWithState RouteParams Data Model Msg
page =
Page.withStaticData
Page.withData
{ head = head
, staticData = \_ -> staticData
, data = \_ -> data
, staticRoutes = DataSource.succeed []
}
|> Page.buildWithLocalState
{ view = view
, init = init
, update = update
--\_ _ _ model -> ( model, Cmd.none )
, subscriptions = \_ _ _ -> Sub.none
}
staticData : DataSource.DataSource StaticData
staticData =
--StaticFile.glob "content/blog/*.md"
data : DataSource.DataSource Data
data =
Article.allMetadata
type alias StaticData =
type alias Data =
List ( PagePath, Article.ArticleMetadata )
init :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> ( Model, Cmd Msg )
init _ =
( Model, Cmd.none )
@ -58,7 +55,7 @@ type alias RouteParams =
update :
DynamicContext Shared.Model
-> StaticPayload StaticData RouteParams
-> StaticPayload Data RouteParams
-> Msg
-> Model
-> ( Model, Cmd Msg )
@ -73,7 +70,7 @@ type alias Model =
view :
Model
-> Shared.Model
-> StaticPayload StaticData {}
-> StaticPayload Data {}
-> Document Msg
view thing model staticPayload =
{ title = "elm-pages blog"
@ -92,7 +89,7 @@ view thing model staticPayload =
}
head : StaticPayload StaticData {} -> List Head.Tag
head : StaticPayload Data {} -> List Head.Tag
head staticPayload =
Seo.summary
{ canonicalUrlOverride = Nothing

View File

@ -1,4 +1,4 @@
module Page.Blog.Slug_ exposing (Model, Msg, StaticData, articlesRequest, page, routes, toRssItem)
module Page.Blog.Slug_ exposing (Data, Model, Msg, articlesRequest, page, routes, toRssItem)
import Article
import Cloudinary
@ -46,10 +46,10 @@ type alias BlogPost =
}
page : Page RouteParams StaticData
page : Page RouteParams Data
page =
Page.withStaticData
{ staticData = staticData
Page.withData
{ data = data
, head = head
, staticRoutes = routes
}
@ -68,7 +68,7 @@ routes =
view :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> Document msg
view { static } =
{ title = static.frontmatter.title
@ -111,7 +111,7 @@ view { static } =
head :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> List Head.Tag
head { path, static } =
let
@ -175,17 +175,17 @@ articleImageView articleImage =
}
type alias StaticData =
type alias Data =
{ body : List (Element Msg)
, frontmatter : ArticleMetadata
}
staticData : RouteParams -> DataSource.DataSource StaticData
staticData route =
data : RouteParams -> DataSource.DataSource Data
data route =
StaticFile.request
("content/blog/" ++ route.slug ++ ".md")
(OptimizedDecoder.map2 StaticData
(OptimizedDecoder.map2 Data
(StaticFile.body
|> OptimizedDecoder.andThen
(\rawBody ->

View File

@ -1,4 +1,4 @@
module Page.Docs exposing (Model, Msg, StaticData, page)
module Page.Docs exposing (Data, Model, Msg, page)
import Css.Global
import DataSource exposing (DataSource)
@ -35,19 +35,18 @@ type alias RouteParams =
{}
page : Page RouteParams StaticData
page : Page RouteParams Data
page =
Page.withStaticData
Page.withData
{ head = head
, staticRoutes = DataSource.succeed [ {} ]
, staticData =
\_ -> data
, data = \_ -> data
}
|> Page.buildNoState { view = view }
head :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> List Head.Tag
head static =
Seo.summary
@ -66,12 +65,12 @@ head static =
|> Seo.website
type alias StaticData =
type alias Data =
List Markdown.Block.Block
view :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> Document Msg
view static =
{ title = "TODO title"

View File

@ -1,4 +1,4 @@
module Page.Hello.Name_ exposing (Model, Msg, StaticData, page)
module Page.Hello.Name_ exposing (Data, Model, Msg, page)
import DataSource
import Document exposing (Document)
@ -25,7 +25,7 @@ type alias Route =
page : Page Route ()
page =
Page.noStaticData
Page.noData
{ head = head
, staticRoutes = DataSource.succeed [ { name = "world" } ]
}
@ -52,12 +52,12 @@ head static =
|> Seo.website
type alias StaticData =
type alias Data =
()
view :
StaticPayload StaticData Route
StaticPayload Data Route
-> Document msg
view static =
{ title = "TODO title"

View File

@ -1,4 +1,4 @@
module Page.Index exposing (Model, Msg, StaticData, page)
module Page.Index exposing (Data, Model, Msg, page)
import DataSource
import DataSource.File as StaticFile
@ -27,22 +27,22 @@ type alias Route =
{}
type alias StaticData =
type alias Data =
List (Element.Element Msg)
page : Page Route StaticData
page : Page Route Data
page =
Page.withStaticData
Page.withData
{ head = head
, staticRoutes = DataSource.succeed []
, staticData = staticData
, data = data
}
|> Page.buildNoState { view = view }
head :
StaticPayload StaticData Route
StaticPayload Data Route
-> List Head.Tag
head static =
Seo.summary
@ -62,7 +62,7 @@ head static =
view :
StaticPayload StaticData Route
StaticPayload Data Route
-> Document Msg
view static =
{ title = "elm-pages - a statically typed site generator" -- metadata.title -- TODO
@ -82,8 +82,8 @@ view static =
}
staticData : Route -> DataSource.DataSource (List (Element.Element msg))
staticData route =
data : Route -> DataSource.DataSource (List (Element.Element msg))
data route =
StaticFile.request
"content/index.md"
(StaticFile.body

View File

@ -1,4 +1,4 @@
module Page.Showcase exposing (Model, Msg, StaticData, page)
module Page.Showcase exposing (Data, Model, Msg, page)
import DataSource
import Document exposing (Document)
@ -19,18 +19,18 @@ type alias Msg =
Never
page : PageWithState {} StaticData () Msg
page : PageWithState {} Data () Msg
page =
Page.withStaticData
Page.withData
{ head = head
, staticRoutes = DataSource.succeed []
, staticData = \_ -> staticData
, data = \_ -> data
}
|> Page.buildNoState { view = view }
staticData : DataSource.DataSource StaticData
staticData =
data : DataSource.DataSource Data
data =
Showcase.staticRequest
@ -45,12 +45,12 @@ type alias DataFromFile =
{ body : List (Element Msg), title : String }
type alias StaticData =
type alias Data =
List Showcase.Entry
view :
StaticPayload StaticData {}
StaticPayload Data {}
-> Document Msg
view static =
{ title = "elm-pages blog"
@ -67,7 +67,7 @@ view static =
}
head : StaticPayload StaticData {} -> List Head.Tag
head : StaticPayload Data {} -> List Head.Tag
head staticPayload =
Seo.summary
{ canonicalUrlOverride = Nothing

View File

@ -1,4 +1,4 @@
module Page.Time exposing (Model, Msg, StaticData, page)
module Page.Time exposing (Data, Model, Msg, page)
import DataSource
import Document exposing (Document)
@ -18,21 +18,26 @@ type alias Msg =
Never
type alias StaticData =
type alias Data =
String
page : Page {} StaticData
type alias RouteParams =
{}
page : Page RouteParams Data
page =
Page.withStaticData
Page.withData
{ head = head
, staticRoutes = DataSource.succeed []
, staticData = staticData
, data = data
}
|> Page.buildNoState { view = view }
staticData routeParams =
data : RouteParams -> DataSource.DataSource String
data routeParams =
DataSource.succeed "TIME RESPONSE"
@ -42,7 +47,7 @@ staticData routeParams =
head :
StaticPayload StaticData {}
StaticPayload Data {}
-> List Head.Tag
head static =
Seo.summary
@ -62,7 +67,7 @@ head static =
view :
StaticPayload StaticData {}
StaticPayload Data {}
-> Document msg
view static =
{ title = "TODO title"

View File

@ -1,4 +1,4 @@
module Shared exposing (Model, Msg(..), SharedMsg(..), StaticData, template)
module Shared exposing (Data, Model, Msg(..), SharedMsg(..), template)
import Browser.Navigation
import DataSource
@ -22,12 +22,12 @@ import Secrets
import SharedTemplate exposing (SharedTemplate)
template : SharedTemplate Msg Model StaticData msg
template : SharedTemplate Msg Model Data msg
template =
{ init = init
, update = update
, view = view
, staticData = staticData
, data = data
, subscriptions = subscriptions
, onPageChange = Just OnPageChange
}
@ -44,7 +44,7 @@ type Msg
| SharedMsg SharedMsg
type alias StaticData =
type alias Data =
Int
@ -103,14 +103,14 @@ subscriptions _ _ =
Sub.none
staticData : DataSource.DataSource StaticData
staticData =
data : DataSource.DataSource Data
data =
DataSource.Http.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages")
(D.field "stargazers_count" D.int)
view :
StaticData
Data
->
{ path : PagePath
, frontmatter : route

View File

@ -8,7 +8,7 @@ import Pages.PagePath exposing (PagePath)
import Route exposing (Route)
type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
type alias SharedTemplate sharedMsg sharedModel sharedData mappedMsg =
{ init :
Maybe Browser.Navigation.Key
->
@ -23,7 +23,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
-> ( sharedModel, Cmd sharedMsg )
, update : sharedMsg -> sharedModel -> ( sharedModel, Cmd sharedMsg )
, view :
sharedStaticData
sharedData
->
{ path : PagePath
, frontmatter : Maybe Route
@ -32,7 +32,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
-> (sharedMsg -> mappedMsg)
-> Document mappedMsg
-> { body : Html mappedMsg, title : String }
, staticData : DataSource.DataSource sharedStaticData
, data : DataSource.DataSource sharedData
, subscriptions : PagePath -> sharedModel -> Sub sharedMsg
, onPageChange :
Maybe

View File

@ -15,10 +15,10 @@ import SiteConfig exposing (SiteConfig)
import Sitemap
config : SiteConfig StaticData
config : SiteConfig Data
config =
\routes ->
{ staticData = staticData
{ data = data
, canonicalUrl = canonicalUrl
, manifest = manifest
, head = head
@ -44,19 +44,19 @@ generateFiles allRoutes =
]
type alias StaticData =
type alias Data =
{ siteName : String
}
staticData : DataSource.DataSource StaticData
staticData =
DataSource.map StaticData
data : DataSource.DataSource Data
data =
DataSource.map Data
--(StaticFile.request "site-name.txt" StaticFile.body)
(DataSource.succeed "site-name")
head : StaticData -> List Head.Tag
head : Data -> List Head.Tag
head static =
[ Head.icon [ ( 32, 32 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 32)
, Head.icon [ ( 16, 16 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 16)
@ -71,7 +71,7 @@ canonicalUrl =
"https://elm-pages.com"
manifest : StaticData -> Manifest.Config
manifest : Data -> Manifest.Config
manifest static =
Manifest.init
{ name = static.siteName

View File

@ -4,5 +4,5 @@ import Pages.SiteConfig
import Route exposing (Route)
type alias SiteConfig staticData =
Pages.SiteConfig.SiteConfig (Maybe Route) staticData
type alias SiteConfig data =
Pages.SiteConfig.SiteConfig (Maybe Route) data

View File

@ -1,4 +1,4 @@
module Page.Slide exposing (Model, Msg, StaticData, page)
module Page.Slide exposing (Data, Model, Msg, page)
import DataSource
import Document exposing (Document)
@ -22,9 +22,9 @@ type alias RouteParams =
{}
page : Page RouteParams StaticData
page : Page RouteParams Data
page =
Page.noStaticData
Page.noData
{ head = head
, staticRoutes = DataSource.succeed [ {} ]
}
@ -32,7 +32,7 @@ page =
head :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> List Head.Tag
head static =
Seo.summary
@ -51,12 +51,12 @@ head static =
|> Seo.website
type alias StaticData =
type alias Data =
()
view :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> Document Msg
view static =
{ title = "TODO title"

View File

@ -1,4 +1,4 @@
module Page.Slide.Number_ exposing (Model, Msg, StaticData, page)
module Page.Slide.Number_ exposing (Data, Model, Msg, page)
import Browser.Events
import Browser.Navigation
@ -33,9 +33,9 @@ type alias RouteParams =
{ number : String }
page : Page.PageWithState RouteParams StaticData Model Msg
page : Page.PageWithState RouteParams Data Model Msg
page =
Page.withStaticData
Page.withData
{ head = head
, staticRoutes =
slideCount
@ -45,7 +45,7 @@ page =
|> List.map String.fromInt
|> List.map RouteParams
)
, staticData = staticData
, data = data
}
|> Page.buildWithLocalState
{ view = view
@ -114,9 +114,9 @@ toDirection string =
Nothing
staticData : RouteParams -> DataSource.DataSource StaticData
staticData routeParams =
DataSource.map2 StaticData
data : RouteParams -> DataSource.DataSource Data
data routeParams =
DataSource.map2 Data
(slideBody routeParams)
slideCount
@ -208,7 +208,7 @@ markdownIndexedByHeading index markdownBlocks =
head :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> List Head.Tag
head static =
Seo.summary
@ -227,7 +227,7 @@ head static =
|> Seo.website
type alias StaticData =
type alias Data =
{ body : List (Html.Html Msg)
, totalCount : Int
}
@ -236,7 +236,7 @@ type alias StaticData =
view :
Model
-> Shared.Model
-> StaticPayload StaticData RouteParams
-> StaticPayload Data RouteParams
-> Document Msg
view model sharedModel static =
{ title = "TODO title"

View File

@ -1,4 +1,4 @@
module Shared exposing (Model, Msg(..), SharedMsg(..), StaticData, template)
module Shared exposing (Data, Model, Msg(..), SharedMsg(..), template)
import Browser.Navigation
import Css.Global
@ -14,12 +14,12 @@ import SharedTemplate exposing (SharedTemplate)
import Tailwind.Utilities
template : SharedTemplate Msg Model StaticData msg
template : SharedTemplate Msg Model Data msg
template =
{ init = init
, update = update
, view = view
, staticData = staticData
, data = data
, subscriptions = subscriptions
, onPageChange = Just OnPageChange
}
@ -34,7 +34,7 @@ type Msg
| SharedMsg SharedMsg
type alias StaticData =
type alias Data =
Int
@ -80,14 +80,14 @@ subscriptions _ _ =
Sub.none
staticData : DataSource.DataSource StaticData
staticData =
data : DataSource.DataSource Data
data =
DataSource.Http.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages")
(D.field "stargazers_count" D.int)
view :
StaticData
Data
->
{ path : PagePath
, frontmatter : route

View File

@ -8,7 +8,7 @@ import Pages.PagePath exposing (PagePath)
import Route exposing (Route)
type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
type alias SharedTemplate sharedMsg sharedModel sharedData mappedMsg =
{ init :
Maybe Browser.Navigation.Key
->
@ -23,7 +23,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
-> ( sharedModel, Cmd sharedMsg )
, update : sharedMsg -> sharedModel -> ( sharedModel, Cmd sharedMsg )
, view :
sharedStaticData
sharedData
->
{ path : PagePath
, frontmatter : Maybe Route
@ -32,7 +32,7 @@ type alias SharedTemplate sharedMsg sharedModel sharedStaticData mappedMsg =
-> (sharedMsg -> mappedMsg)
-> Document mappedMsg
-> { body : Html mappedMsg, title : String }
, staticData : DataSource.DataSource sharedStaticData
, data : DataSource.DataSource sharedData
, subscriptions : PagePath -> sharedModel -> Sub sharedMsg
, onPageChange :
Maybe

View File

@ -14,10 +14,10 @@ import SiteConfig exposing (SiteConfig)
import Sitemap
config : SiteConfig StaticData
config : SiteConfig Data
config =
\routes ->
{ staticData = staticData
{ data = data
, canonicalUrl = canonicalUrl
, manifest = manifest
, head = head
@ -43,19 +43,19 @@ generateFiles allRoutes =
]
type alias StaticData =
type alias Data =
{ siteName : String
}
staticData : DataSource.DataSource StaticData
staticData =
DataSource.map StaticData
data : DataSource.DataSource Data
data =
DataSource.map Data
--(StaticFile.request "site-name.txt" StaticFile.body)
(DataSource.succeed "site-name")
head : StaticData -> List Head.Tag
head : Data -> List Head.Tag
head static =
[ Head.icon [ ( 32, 32 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 32)
, Head.icon [ ( 16, 16 ) ] MimeType.Png (cloudinaryIcon MimeType.Png 16)
@ -70,7 +70,7 @@ canonicalUrl =
"https://elm-pages.com"
manifest : StaticData -> Manifest.Config
manifest : Data -> Manifest.Config
manifest static =
Manifest.init
{ name = static.siteName

View File

@ -4,5 +4,5 @@ import Pages.SiteConfig
import Route exposing (Route)
type alias SiteConfig staticData =
Pages.SiteConfig.SiteConfig (Maybe Route) staticData
type alias SiteConfig data =
Pages.SiteConfig.SiteConfig (Maybe Route) data

View File

@ -1,7 +1,7 @@
module Page exposing
( Builder(..)
, StaticPayload
, withStaticData, noStaticData
, withData, noData
, Page, buildNoState
, PageWithState, buildWithLocalState, buildWithSharedState
, DynamicContext
@ -29,9 +29,9 @@ But before the user even requests the page, we have the following data:
- `path` - these paths are static. In other words, we know every single path when we build an elm-pages site.
- `metadata` - we have a decoded Elm value for the page's metadata.
- `sharedStatic` - we can access any shared data between pages. For example, you may have fetched the name of a blog ("Jane's Blog") from the API for a Content Management System (CMS).
- `static` - this is the static data for this specific page. If you use `noStaticData`, then this will be `()`, meaning there is no page-specific static data.
- `static` - this is the static data for this specific page. If you use `noData`, then this will be `()`, meaning there is no page-specific static data.
@docs withStaticData, noStaticData
@docs withData, noData
## Stateless Page Modules
@ -54,44 +54,44 @@ import Shared
{-| -}
type alias PageWithState routeParams templateStaticData templateModel templateMsg =
{ staticData : routeParams -> DataSource templateStaticData
type alias PageWithState routeParams templateData templateModel templateMsg =
{ data : routeParams -> DataSource templateData
, staticRoutes : DataSource (List routeParams)
, view :
templateModel
-> Shared.Model
-> StaticPayload templateStaticData routeParams
-> StaticPayload templateData routeParams
-> Document templateMsg
, head :
StaticPayload templateStaticData routeParams
StaticPayload templateData routeParams
-> List Head.Tag
, init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg )
, update : StaticPayload templateStaticData routeParams -> Maybe Browser.Navigation.Key -> templateMsg -> templateModel -> Shared.Model -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg )
, init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg )
, update : StaticPayload templateData routeParams -> Maybe Browser.Navigation.Key -> templateMsg -> templateModel -> Shared.Model -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg )
, subscriptions : routeParams -> PagePath -> templateModel -> Shared.Model -> Sub templateMsg
}
{-| -}
type alias Page routeParams staticData =
PageWithState routeParams staticData () Never
type alias Page routeParams data =
PageWithState routeParams data () Never
{-| -}
type alias StaticPayload staticData routeParams =
{ static : staticData -- local
, sharedStatic : Shared.StaticData -- share
type alias StaticPayload data routeParams =
{ static : data -- local
, sharedStatic : Shared.Data -- share
, routeParams : routeParams
, path : PagePath
}
{-| -}
type Builder routeParams templateStaticData
= WithStaticData
{ staticData : routeParams -> DataSource templateStaticData
type Builder routeParams templateData
= WithData
{ data : routeParams -> DataSource templateData
, staticRoutes : DataSource (List routeParams)
, head :
StaticPayload templateStaticData routeParams
StaticPayload templateData routeParams
-> List Head.Tag
}
@ -99,17 +99,17 @@ type Builder routeParams templateStaticData
{-| -}
buildNoState :
{ view :
StaticPayload templateStaticData routeParams
StaticPayload templateData routeParams
-> Document Never
}
-> Builder routeParams templateStaticData
-> PageWithState routeParams templateStaticData () Never
-> Builder routeParams templateData
-> PageWithState routeParams templateData () Never
buildNoState { view } builderState =
case builderState of
WithStaticData record ->
WithData record ->
{ view = \() _ -> view
, head = record.head
, staticData = record.staticData
, data = record.data
, staticRoutes = record.staticRoutes
, init = \_ -> ( (), Cmd.none )
, update = \_ _ _ _ _ -> ( (), Cmd.none, Nothing )
@ -122,22 +122,22 @@ buildWithLocalState :
{ view :
templateModel
-> Shared.Model
-> StaticPayload templateStaticData routeParams
-> StaticPayload templateData routeParams
-> Document templateMsg
, init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg )
, update : DynamicContext Shared.Model -> StaticPayload templateStaticData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg )
, init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg )
, update : DynamicContext Shared.Model -> StaticPayload templateData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg )
, subscriptions : routeParams -> PagePath -> templateModel -> Sub templateMsg
}
-> Builder routeParams templateStaticData
-> PageWithState routeParams templateStaticData templateModel templateMsg
-> Builder routeParams templateData
-> PageWithState routeParams templateData templateModel templateMsg
buildWithLocalState config builderState =
case builderState of
WithStaticData record ->
WithData record ->
{ view =
\model sharedModel staticPayload ->
config.view model sharedModel staticPayload
, head = record.head
, staticData = record.staticData
, data = record.data
, staticRoutes = record.staticRoutes
, init = config.init
, update =
@ -171,20 +171,20 @@ buildWithSharedState :
{ view :
templateModel
-> Shared.Model
-> StaticPayload templateStaticData routeParams
-> StaticPayload templateData routeParams
-> Document templateMsg
, init : StaticPayload templateStaticData routeParams -> ( templateModel, Cmd templateMsg )
, update : DynamicContext Shared.Model -> StaticPayload templateStaticData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg )
, init : StaticPayload templateData routeParams -> ( templateModel, Cmd templateMsg )
, update : DynamicContext Shared.Model -> StaticPayload templateData routeParams -> templateMsg -> templateModel -> ( templateModel, Cmd templateMsg, Maybe Shared.SharedMsg )
, subscriptions : routeParams -> PagePath -> templateModel -> Shared.Model -> Sub templateMsg
}
-> Builder routeParams templateStaticData
-> PageWithState routeParams templateStaticData templateModel templateMsg
-> Builder routeParams templateData
-> PageWithState routeParams templateData templateModel templateMsg
buildWithSharedState config builderState =
case builderState of
WithStaticData record ->
WithData record ->
{ view = config.view
, head = record.head
, staticData = record.staticData
, data = record.data
, staticRoutes = record.staticRoutes
, init = config.init
, update =
@ -201,29 +201,29 @@ buildWithSharedState config builderState =
{-| -}
withStaticData :
{ staticData : routeParams -> DataSource templateStaticData
withData :
{ data : routeParams -> DataSource templateData
, staticRoutes : DataSource (List routeParams)
, head : StaticPayload templateStaticData routeParams -> List Head.Tag
, head : StaticPayload templateData routeParams -> List Head.Tag
}
-> Builder routeParams templateStaticData
withStaticData { staticData, head, staticRoutes } =
WithStaticData
{ staticData = staticData
-> Builder routeParams templateData
withData { data, head, staticRoutes } =
WithData
{ data = data
, staticRoutes = staticRoutes
, head = head
}
{-| -}
noStaticData :
noData :
{ head : StaticPayload () routeParams -> List Head.Tag
, staticRoutes : DataSource (List routeParams)
}
-> Builder routeParams ()
noStaticData { head, staticRoutes } =
WithStaticData
{ staticData = \_ -> DataSource.succeed ()
noData { head, staticRoutes } =
WithData
{ data = \_ -> DataSource.succeed ()
, staticRoutes = staticRoutes
, head = head
}

View File

@ -20,7 +20,7 @@ async function run({ moduleName }) {
* @param {string} pageModuleName
*/
function fileContent(pageModuleName) {
return `module Page.${pageModuleName} exposing (Model, Msg, StaticData, page)
return `module Page.${pageModuleName} exposing (Model, Msg, Data, page)
import Element exposing (Element)
import Document exposing (Document)
@ -42,9 +42,9 @@ type alias Msg =
type alias RouteParams =
${routeHelpers.paramsRecord(pageModuleName.split("."))}
page : Page RouteParams StaticData
page : Page RouteParams Data
page =
Page.noStaticData
Page.noData
{ head = head
, staticRoutes = DataSource.succeed [{}]
}
@ -53,7 +53,7 @@ page =
head :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> List Head.Tag
head static =
Seo.summary
@ -72,12 +72,12 @@ head static =
|> Seo.website
type alias StaticData =
type alias Data =
()
view :
StaticPayload StaticData RouteParams
StaticPayload Data RouteParams
-> Document Msg
view static =
{ title = "TODO title"

View File

@ -103,14 +103,12 @@ type Msg
.join(" | ")}
type PageStaticData
type PageData
= Data404NotFoundPage____
| ${templates
.map(
(name) =>
`Data${pathNormalizedName(name)} Page.${moduleName(
name
)}.StaticData\n`
`Data${pathNormalizedName(name)} Page.${moduleName(name)}.Data\n`
)
.join(" | ")}
@ -120,14 +118,14 @@ view :
{ path : PagePath
, frontmatter : Maybe Route
}
-> Shared.StaticData
-> PageStaticData
-> Shared.Data
-> PageData
->
{ view : Model -> { title : String, body : Html Msg }
, head : List Head.Tag
}
view page globalData staticData =
case ( page.frontmatter, staticData ) of
view page globalData pageData =
case ( page.frontmatter, pageData ) of
${templates
.map(
(name) =>
@ -188,8 +186,8 @@ view page globalData staticData =
init :
Maybe Shared.Model
-> Shared.StaticData
-> PageStaticData
-> Shared.Data
-> PageData
-> Maybe Browser.Navigation.Key
->
Maybe
@ -201,13 +199,13 @@ init :
, metadata : Maybe Route
}
-> ( Model, Cmd Msg )
init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePagePath =
init currentGlobalModel sharedData pageData navigationKey maybePagePath =
let
( sharedModel, globalCmd ) =
currentGlobalModel |> Maybe.map (\\m -> ( m, Cmd.none )) |> Maybe.withDefault (Shared.template.init navigationKey maybePagePath)
( templateModel, templateCmd ) =
case ( ( Maybe.map2 Tuple.pair (maybePagePath |> Maybe.andThen .metadata) (maybePagePath |> Maybe.map .path) ), pageStaticData ) of
case ( ( Maybe.map2 Tuple.pair (maybePagePath |> Maybe.andThen .metadata) (maybePagePath |> Maybe.map .path) ), pageData ) of
${templates
.map(
(name) => `( Just ( (Route.${routeHelpers.routeVariant(
@ -217,7 +215,7 @@ init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePageP
)} thisPageData ) ->
Page.${moduleName(name)}.page.init
{ static = thisPageData
, sharedStatic = sharedStaticData
, sharedStatic = sharedData
, routeParams = routeParams
, path = justPath.path
}
@ -242,8 +240,8 @@ init currentGlobalModel sharedStaticData pageStaticData navigationKey maybePageP
update : Shared.StaticData -> PageStaticData -> Maybe Browser.Navigation.Key -> Msg -> Model -> ( Model, Cmd Msg )
update sharedStaticData pageStaticData navigationKey msg model =
update : Shared.Data -> PageData -> Maybe Browser.Navigation.Key -> Msg -> Model -> ( Model, Cmd Msg )
update sharedData pageData navigationKey msg model =
case msg of
MsgGlobal msg_ ->
let
@ -255,7 +253,7 @@ update sharedStaticData pageStaticData navigationKey msg model =
)
OnPageChange record ->
(init (Just model.global) sharedStaticData pageStaticData navigationKey <|
(init (Just model.global) sharedData pageData navigationKey <|
Just
{ path =
{ path = record.path
@ -296,7 +294,7 @@ update sharedStaticData pageStaticData navigationKey msg model =
Msg${pathNormalizedName(name)} msg_ ->
let
( updatedPageModel, pageCmd, ( newGlobalModel, newGlobalCmd ) ) =
case ( model.page, pageStaticData, Maybe.map2 Tuple.pair (model.current |> Maybe.andThen .metadata) (model.current |> Maybe.map .path) ) of
case ( model.page, pageData, Maybe.map2 Tuple.pair (model.current |> Maybe.andThen .metadata) (model.current |> Maybe.map .path) ) of
( Model${pathNormalizedName(
name
)} pageModel, Data${pathNormalizedName(
@ -306,7 +304,7 @@ update sharedStaticData pageStaticData navigationKey msg model =
)} routeParams), justPage ) ) ->
Page.${moduleName(name)}.page.update
{ static = thisPageData
, sharedStatic = sharedStaticData
, sharedStatic = sharedData
, routeParams = routeParams
, path = justPage.path
}
@ -370,7 +368,7 @@ templateSubscriptions route path model =
main : ${
phase === "browser"
? "Pages.Internal.Platform.Program Model Msg PageStaticData Shared.StaticData"
? "Pages.Internal.Platform.Program Model Msg PageData Shared.Data"
: "Pages.Internal.Platform.Cli.Program (Maybe Route)"
}
main =
@ -396,8 +394,8 @@ main =
, onPageChange = OnPageChange
, toJsPort = toJsPort
, fromJsPort = fromJsPort identity
, staticData = staticDataForRoute
, sharedStaticData = Shared.template.staticData
, data = dataForRoute
, sharedData = Shared.template.data
, generateFiles =
getStaticRoutes
|> DataSource.andThen
@ -413,8 +411,8 @@ main =
)
}
staticDataForRoute : Maybe Route -> DataSource PageStaticData
staticDataForRoute route =
dataForRoute : Maybe Route -> DataSource PageData
dataForRoute route =
case route of
Nothing ->
DataSource.succeed Data404NotFoundPage____
@ -425,7 +423,7 @@ staticDataForRoute route =
name
)} routeParams) ->\n Page.${name.join(
"."
)}.page.staticData routeParams |> DataSource.map Data${routeHelpers.routeVariant(
)}.page.data routeParams |> DataSource.map Data${routeHelpers.routeVariant(
name
)}`
)
@ -474,7 +472,7 @@ getStaticRoutes =
manifestGenerator : List ( Maybe Route ) -> DataSource (Result anyError { path : List String, content : String })
manifestGenerator resolvedRoutes =
Site.config resolvedRoutes
|> .staticData
|> .data
|> DataSource.map
(\\data ->
(Site.config resolvedRoutes |> .manifest) data

View File

@ -32,9 +32,9 @@ type alias Msg =
Never
template : TemplateDocument BlogPost StaticData Model Msg
template : TemplateDocument BlogPost Data Model Msg
template =
Template.withStaticData staticData head
Template.withData staticData head
|> Template.buildNoState { view = view }
@ -88,17 +88,17 @@ findMatchingImage imageAssetPath =
staticData : a -> StaticHttp.Request StaticData
staticData : a -> StaticHttp.Request Data
staticData siteMetadata =
StaticHttp.get (Secrets.succeed "https://api.github.com/repos/dillonkearns/elm-pages")
(D.field "stargazers_count" D.int)
type alias StaticData =
type alias Data =
Int
view : List ( PagePath, TemplateType.Metadata ) -> StaticData -> Model -> BlogPost -> ( a, List (Element msg) ) -> { title : String, body : Element msg }
view : List ( PagePath, TemplateType.Metadata ) -> Data -> Model -> BlogPost -> ( a, List (Element msg) ) -> { title : String, body : Element msg }
view allMetadata static model blogPost rendered =
{ title = blogPost.title
, body =
@ -131,7 +131,7 @@ view allMetadata static model blogPost rendered =
}
head : StaticData -> PagePath.PagePath -> BlogPost -> List (Head.Tag Pages.PathKey)
head : Data -> PagePath.PagePath -> BlogPost -> List (Head.Tag Pages.PathKey)
head static currentPath meta =
Head.structuredData
(StructuredData.article

View File

@ -19,13 +19,13 @@ import Task
import Url exposing (Url)
type alias Program userModel userMsg pageStaticData sharedStaticData =
Platform.Program Flags (Model userModel pageStaticData sharedStaticData) (Msg userMsg)
type alias Program userModel userMsg pageData sharedData =
Platform.Program Flags (Model userModel pageData sharedData) (Msg userMsg)
mainView :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> Model userModel pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Model userModel pageData sharedData
-> { title : String, body : Html userMsg }
mainView config model =
let
@ -47,8 +47,8 @@ mainView config model =
{ path = ContentCache.pathForUrl urls |> PagePath.build
, frontmatter = config.urlToRoute model.url
}
pageData.sharedStaticData
pageData.pageStaticData
pageData.sharedData
pageData.pageData
|> .view
)
pageData.userModel
@ -85,8 +85,8 @@ urlsToPagePath urls =
view :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> Model userModel pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Model userModel pageData sharedData
-> Browser.Document (Msg userMsg)
view config model =
let
@ -132,11 +132,11 @@ contentJsonDecoder =
init :
ProgramConfig userMsg userModel route staticData pageStaticData sharedStaticData
ProgramConfig userMsg userModel route staticData pageData sharedData
-> Flags
-> Url
-> Browser.Navigation.Key
-> ( Model userModel pageStaticData sharedStaticData, Cmd (Msg userMsg) )
-> ( Model userModel pageData sharedData, Cmd (Msg userMsg) )
init config flags url key =
let
contentCache =
@ -172,25 +172,25 @@ init config flags url key =
case contentJson |> Maybe.map .staticData of
Just justContentJson ->
let
pageStaticDataResult : Result BuildError pageStaticData
pageStaticDataResult =
pageDataResult : Result BuildError pageData
pageDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
(config.staticData (config.urlToRoute url))
(config.data (config.urlToRoute url))
justContentJson
|> Result.mapError (StaticHttpRequest.toBuildError url.path)
sharedStaticDataResult : Result BuildError sharedStaticData
sharedStaticDataResult =
sharedDataResult : Result BuildError sharedData
sharedDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
config.sharedStaticData
config.sharedData
justContentJson
|> Result.mapError (StaticHttpRequest.toBuildError url.path)
pagePath =
urlsToPagePath urls
in
case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of
Ok ( sharedStaticData, pageStaticData ) ->
case Result.map2 Tuple.pair sharedDataResult pageDataResult of
Ok ( sharedData, pageData ) ->
let
( userModel, userCmd ) =
Just
@ -201,7 +201,7 @@ init config flags url key =
}
, metadata = config.urlToRoute url
}
|> config.init sharedStaticData pageStaticData (Just key)
|> config.init sharedData pageData (Just key)
cmd =
[ userCmd
@ -221,8 +221,8 @@ init config flags url key =
, contentCache = contentCache
, pageData =
Ok
{ pageStaticData = pageStaticData
, sharedStaticData = sharedStaticData
{ pageData = pageData
, sharedData = sharedData
, userModel = userModel
}
}
@ -261,7 +261,7 @@ type Msg userMsg
| NoOp
type alias Model userModel pageStaticData sharedStaticData =
type alias Model userModel pageData sharedData =
{ key : Browser.Navigation.Key
, url : Url
, baseUrl : Url
@ -270,17 +270,17 @@ type alias Model userModel pageStaticData sharedStaticData =
Result
String
{ userModel : userModel
, pageStaticData : pageStaticData
, sharedStaticData : sharedStaticData
, pageData : pageData
, sharedData : sharedData
}
}
update :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Msg userMsg
-> Model userModel pageStaticData sharedStaticData
-> ( Model userModel pageStaticData sharedStaticData, Cmd (Msg userMsg) )
-> Model userModel pageData sharedData
-> ( Model userModel pageData sharedData, Cmd (Msg userMsg) )
update config appMsg model =
case appMsg of
LinkClicked urlRequest ->
@ -331,7 +331,7 @@ update config appMsg model =
Ok pageData ->
let
( userModel, userCmd ) =
config.update pageData.sharedStaticData pageData.pageStaticData (Just model.key) userMsg pageData.userModel
config.update pageData.sharedData pageData.pageData (Just model.key) userMsg pageData.userModel
updatedPageData =
Ok { pageData | userModel = userModel }
@ -367,21 +367,21 @@ update config appMsg model =
|> Result.map
(\pageStaticData ->
{ userModel = userModel
, sharedStaticData = pageData.sharedStaticData
, pageStaticData = pageStaticData
, sharedData = pageData.sharedData
, pageData = pageStaticData
}
)
updatedPageStaticData =
StaticHttpRequest.resolve ApplicationType.Browser
(config.staticData (config.urlToRoute url))
(config.data (config.urlToRoute url))
contentJson.staticData
|> Result.mapError (\_ -> "Http error")
( userModel, userCmd ) =
config.update
pageData.sharedStaticData
(updatedPageStaticData |> Result.withDefault pageData.pageStaticData)
pageData.sharedData
(updatedPageStaticData |> Result.withDefault pageData.pageData)
(Just model.key)
(config.onPageChange
{ path = urlToPagePath url model.baseUrl
@ -415,17 +415,17 @@ update config appMsg model =
urls =
{ currentUrl = model.url, baseUrl = model.baseUrl }
pageStaticDataResult : Result BuildError pageStaticData
pageStaticDataResult =
pageDataResult : Result BuildError pageData
pageDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
(config.staticData (config.urlToRoute model.url))
(config.data (config.urlToRoute model.url))
contentJson.staticData
|> Result.mapError (StaticHttpRequest.toBuildError model.url.path)
sharedStaticDataResult : Result BuildError sharedStaticData
sharedStaticDataResult =
sharedDataResult : Result BuildError sharedData
sharedDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
config.sharedStaticData
config.sharedData
contentJson.staticData
|> Result.mapError (StaticHttpRequest.toBuildError model.url.path)
@ -436,16 +436,16 @@ update config appMsg model =
was404 =
ContentCache.is404 model.contentCache urls
in
case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of
Ok ( sharedStaticData, pageStaticData ) ->
case Result.map2 Tuple.pair sharedDataResult pageDataResult of
Ok ( sharedData, pageData ) ->
let
updateResult =
if from404ToNon404 then
case model.pageData of
Ok pageData ->
Ok pageData_ ->
config.update
sharedStaticData
pageStaticData
sharedData
pageData
(Just model.key)
(config.onPageChange
{ path = urlToPagePath model.url model.baseUrl
@ -454,7 +454,7 @@ update config appMsg model =
, metadata = config.urlToRoute model.url
}
)
pageData.userModel
pageData_.userModel
|> Just
Err error ->
@ -469,8 +469,8 @@ update config appMsg model =
| contentCache = ContentCache.init (Just ( urls, contentJson ))
, pageData =
Ok
{ pageStaticData = pageStaticData
, sharedStaticData = sharedStaticData
{ pageData = pageData
, sharedData = sharedData
, userModel = userModel
}
}
@ -487,8 +487,8 @@ update config appMsg model =
model.pageData
|> Result.map
(\previousPageData ->
{ pageStaticData = pageStaticData
, sharedStaticData = sharedStaticData
{ pageData = pageData
, sharedData = sharedData
, userModel = previousPageData.userModel
}
)
@ -509,8 +509,8 @@ update config appMsg model =
application :
ProgramConfig userMsg userModel route staticData pageStaticData sharedStaticData
-> Platform.Program Flags (Model userModel pageStaticData sharedStaticData) (Msg userMsg)
ProgramConfig userMsg userModel route staticData pageData sharedData
-> Platform.Program Flags (Model userModel pageData sharedData) (Msg userMsg)
application config =
Browser.application
{ init =

View File

@ -69,7 +69,7 @@ type alias Program route =
cliApplication :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Program route
cliApplication config =
let
@ -184,12 +184,12 @@ asJsonView x =
--perform : RenderRequest route -> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData -> (Json.Encode.Value -> Cmd Msg) -> Effect -> Cmd Msg
--perform : RenderRequest route -> ProgramConfig userMsg userModel route siteData pageData sharedData -> (Json.Encode.Value -> Cmd Msg) -> Effect -> Cmd Msg
perform :
RenderRequest route
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> (Codec.Value -> Cmd Never)
-> Effect
-> Cmd Msg
@ -347,7 +347,7 @@ flagsDecoder =
init :
RenderRequest route
-> ContentCache
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Decode.Value
-> ( Model route, Effect )
init renderRequest contentCache config flags =
@ -381,7 +381,7 @@ initLegacy :
RenderRequest route
-> { a | secrets : SecretsDict, mode : Mode, staticHttpCache : Dict String (Maybe String) }
-> ContentCache
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Decode.Value
-> ( Model route, Effect )
initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config flags =
@ -393,8 +393,8 @@ initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config
StaticResponses.renderSingleRoute config
serverRequestPayload
(DataSource.map2 (\_ _ -> ())
(config.staticData serverRequestPayload.frontmatter)
config.sharedStaticData
(config.data serverRequestPayload.frontmatter)
config.sharedData
)
(config.handleRoute serverRequestPayload.frontmatter)
@ -437,7 +437,7 @@ initLegacy renderRequest { secrets, mode, staticHttpCache } contentCache config
updateAndSendPortIfDone :
ContentCache
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Model route
-> ( Model route, Effect )
updateAndSendPortIfDone contentCache config model =
@ -450,7 +450,7 @@ updateAndSendPortIfDone contentCache config model =
update :
ContentCache
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Msg
-> Model route
-> ( Model route, Effect )
@ -620,7 +620,7 @@ update contentCache config msg model =
nextStepToEffect :
ContentCache
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Model route
-> ( StaticResponses, StaticResponses.NextStep route )
-> ( Model route, Effect )
@ -745,7 +745,7 @@ nextStepToEffect contentCache config model ( updatedStaticResponsesModel, nextSt
sendSinglePageProgress :
ToJsSuccessPayload
-> ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
-> ProgramConfig userMsg userModel route siteData pageData sharedData
-> Model route
-> ( PagePath, route )
-> Effect
@ -786,17 +786,17 @@ sendSinglePageProgress toJsPayload config model =
currentPage =
{ path = page, frontmatter = config.urlToRoute currentUrl }
pageStaticDataResult : Result BuildError pageStaticData
pageStaticDataResult =
pageDataResult : Result BuildError pageData
pageDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
(config.staticData (config.urlToRoute currentUrl))
(config.data (config.urlToRoute currentUrl))
(staticData |> Dict.map (\_ v -> Just v))
|> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
sharedStaticDataResult : Result BuildError sharedStaticData
sharedStaticDataResult =
sharedDataResult : Result BuildError sharedData
sharedDataResult =
StaticHttpRequest.resolve ApplicationType.Browser
config.sharedStaticData
config.sharedData
(staticData |> Dict.map (\_ v -> Just v))
|> Result.mapError (StaticHttpRequest.toBuildError currentUrl.path)
@ -813,14 +813,14 @@ sendSinglePageProgress toJsPayload config model =
, fragment = Nothing
}
in
case Result.map2 Tuple.pair sharedStaticDataResult pageStaticDataResult of
Ok ( sharedStaticData, pageStaticData ) ->
case Result.map2 Tuple.pair sharedDataResult pageDataResult of
Ok ( sharedData, pageData ) ->
let
pageModel : userModel
pageModel =
config.init
sharedStaticData
pageStaticData
sharedData
pageData
Nothing
(Just
{ path =
@ -835,11 +835,11 @@ sendSinglePageProgress toJsPayload config model =
viewValue : { title : String, body : Html userMsg }
viewValue =
(config.view currentPage sharedStaticData pageStaticData |> .view) pageModel
(config.view currentPage sharedData pageData |> .view) pageModel
headTags : List Head.Tag
headTags =
config.view currentPage sharedStaticData pageStaticData |> .head
config.view currentPage sharedData pageData |> .head
in
{ route = page |> PagePath.toString
, contentJson =

View File

@ -36,9 +36,9 @@ error =
init :
{ config
| getStaticRoutes : DataSource.DataSource (List route)
, site : SiteConfig route siteStaticData
, staticData : route -> DataSource.DataSource pageStaticData
, sharedStaticData : DataSource.DataSource sharedStaticData
, site : SiteConfig route siteData
, data : route -> DataSource.DataSource pageData
, sharedData : DataSource.DataSource sharedData
, generateFiles :
DataSource.DataSource
(List
@ -57,11 +57,11 @@ init config =
(config.getStaticRoutes
|> DataSource.andThen
(\resolvedRoutes ->
config.site resolvedRoutes |> .staticData
config.site resolvedRoutes |> .data
)
)
config.generateFiles
config.sharedStaticData
config.sharedData
)
Dict.empty
|> GettingInitialData
@ -157,9 +157,9 @@ nextStep :
{ config
| getStaticRoutes : DataSource.DataSource (List route)
, routeToPath : route -> List String
, staticData : route -> DataSource.DataSource pageStaticData
, sharedStaticData : DataSource.DataSource sharedStaticData
, site : SiteConfig route siteStaticData
, data : route -> DataSource.DataSource pageData
, sharedData : DataSource.DataSource sharedData
, site : SiteConfig route siteData
, generateFiles :
DataSource.DataSource
(List
@ -393,7 +393,7 @@ nextStep config ({ mode, secrets, allRawResponses, errors } as model) maybeRoute
)
config.getStaticRoutes
config.generateFiles
config.sharedStaticData
config.sharedData
)
(allRawResponses |> Dict.Extra.filterMap (\_ value -> Just value))
in
@ -408,8 +408,8 @@ nextStep config ({ mode, secrets, allRawResponses, errors } as model) maybeRoute
entry =
NotFetched
(DataSource.map2 (\_ _ -> ())
config.sharedStaticData
(config.staticData route)
config.sharedData
(config.data route)
)
Dict.empty
in

View File

@ -11,10 +11,10 @@ import Pages.SiteConfig exposing (SiteConfig)
import Url exposing (Url)
type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData =
type alias ProgramConfig userMsg userModel route siteData pageData sharedData =
{ init :
sharedStaticData
-> pageStaticData
sharedData
-> pageData
-> Maybe Browser.Navigation.Key
->
Maybe
@ -26,16 +26,16 @@ type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData s
, metadata : route
}
-> ( userModel, Cmd userMsg )
, update : sharedStaticData -> pageStaticData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, Cmd userMsg )
, update : sharedData -> pageData -> Maybe Browser.Navigation.Key -> userMsg -> userModel -> ( userModel, Cmd userMsg )
, subscriptions : route -> PagePath -> userModel -> Sub userMsg
, sharedStaticData : DataSource.DataSource sharedStaticData
, staticData : route -> DataSource.DataSource pageStaticData
, sharedData : DataSource.DataSource sharedData
, data : route -> DataSource.DataSource pageData
, view :
{ path : PagePath
, frontmatter : route
}
-> sharedStaticData
-> pageStaticData
-> sharedData
-> pageData
->
{ view : userModel -> { title : String, body : Html userMsg }
, head : List Head.Tag
@ -44,7 +44,7 @@ type alias ProgramConfig userMsg userModel route siteStaticData pageStaticData s
, getStaticRoutes : DataSource.DataSource (List route)
, urlToRoute : Url -> route
, routeToPath : route -> List String
, site : SiteConfig route siteStaticData
, site : SiteConfig route siteData
, toJsPort : Json.Encode.Value -> Cmd Never
, fromJsPort : Sub Decode.Value
, generateFiles :

View File

@ -5,14 +5,14 @@ import Head
import Pages.Manifest
type alias SiteConfig route staticData =
type alias SiteConfig route data =
List route
->
{ staticData : DataSource.DataSource staticData
{ data : DataSource.DataSource data
, canonicalUrl : String
, manifest : staticData -> Pages.Manifest.Config
, manifest : data -> Pages.Manifest.Config
, head :
staticData
data
-> List Head.Tag
, generateFiles :
DataSource.DataSource

View File

@ -41,7 +41,7 @@ type ServerOrBuild
decoder :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Decode.Decoder (RenderRequest route)
decoder config =
optionalField "request"
@ -91,7 +91,7 @@ decoder config =
requestPayloadDecoder :
ProgramConfig userMsg userModel route siteStaticData pageStaticData sharedStaticData
ProgramConfig userMsg userModel route siteData pageData sharedData
-> Decode.Decoder (RequestPayload route)
requestPayloadDecoder config =
(Decode.string

View File

@ -879,7 +879,7 @@ startLowLevel generateFiles documentBodyResult staticHttpCache pages =
Debug.todo <| "Couldn't find page: " ++ Debug.toString page ++ "\npages: " ++ Debug.toString pages
, subscriptions = \_ _ _ -> Sub.none
, routeToPath = \(Route route) -> route |> String.split "/"
, sharedStaticData = DataSource.succeed ()
, sharedData = DataSource.succeed ()
, onPageChange = \_ -> Continue
}