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"