This package exports:
- cortinaMiddleware - Express middleware to fectch cortina blocks and store them in res.locals.blocks (optional resis cache)
- cortina - function that fetches cortina blocks (optional redis cache). Used by cortinaMiddleware.
- prepare - function for formatting fetched cortina blocks, e.g. site name and locale link text. Used by cortinaMiddleware
npm install @kth/cortina-block
import { cortinaMiddleware } from '@kth/cortina-block'
apply middleware
server.use(
'',
cortinaMiddleware({
blockApiUrl,
siteName,
localeText,
resourceUrl,
blocksConfig,
redisConfig,
})
)
Default blocks that will be fetched can be found in config.ts. If you want to fetch other blocks or override the id of the default blocks, provide the optional blocksConfig:
const blocksConfig = {
anotherBlock: 'id',
}
-
blockApiUrl
is required. Should point to the Cortina block API endpoint. -
headers
is optional, pass headers used when fetching Cortina blocks. -
blocks
is optional. It's a plain object containing Cortina block IDs. The following IDs are default and can be overridden.-
title
defaults to1.260060
. -
megaMenu
defaults to1.855134
. -
secondaryMenu
defaults to1.865038
. -
image
defaults to1.77257
. -
footer
defaults to1.202278
. -
search
defaults to1.77262
. -
language
optional object with language block IDs.-
en
defaults to1.77273
. -
sv
defaults to1.272446
.
-
-
klaroConfig
defaults to1.1137647
. -
matomoAnalytics
defaults to1.714097
.
-
-
redisConfig
is optional. An object parsed fromkth-node-configuration
, containinghost
andport
. If provided, blocks will be cached in redis.
title: "\n\n\n <h1 class=\"bloc…logy</a>\n </h1>\n\n\n",
megaMenu: "\n\n\n\n <nav class=\"b…\n </nav>\n\n \n\n",
secondaryMenu: "\n\n\n <div class=\"blo… </ul>\n </div>\n\n\n",
image: "\n\n\n <figure class=\"… \n </figure>\n\n\n",
footer: "\n\n\n <div class=\"blo… </div>\n </div>\n\n\n",
search: "\n\n\n <div class=\"blo…aded=!0);</script>\n\n\n",
language: "\n\n\n <a class=\"block…KTH på svenska</a>\n\n\n",
analytics: "\n\n\n \n <!-- conte…r\n};</script>\n \n\n\n",
gtmAnalytics: "\n\n\n <!-- Begin JavaS…entId-1_714097 -->\n\n\n",
gtmNoscript: "\n\n\n <!-- Begin HTML …entId-1_714099 -->\n\n\n"