Перейти к основному содержимому

Шаблонизаторы

Lunatic предоставляет возможности для интеграции шаблонизаторов. По сути, может быть использован любой шаблонизатор: некоторые, такие как Pug поддерживаются "из коробки", для некоторых нужно дополнительно написать адаптер.

Пример использования шаблонизатора Pug:

import { LunaticServer } from '@shelepuginivan/lunatic'
import { render } from 'pug'

app.renderer(render)

app.renderer

app.renderer() это метод класса LunaticServer, который принимает параметр RenderFunction - функцию-рендерер, со следующей сигнатурой:

export type RenderFunction = (
source: string,
options?: Record<string, any>,
) => string

Где:

  • source: string - исходный контент шаблона
  • options: Record<string, any> - опции шаблона, т.е. переменные, которые в нём используются

Обратите внимание, что вы можете написать адаптер - функцию типа RenderFunction для метода вашего шаблрнизатора, и затем использовать его в app.renderer(). Также, вы можете написать свою функцию-рендерер.

Рендер шаблонов

Чтобы отправить шаблон в качестве ответа, вы можете использовать методы Response.render() и Response.renderFile().

import { LunaticServer } from '@shelepuginivan/lunatic'
import { render } from 'pug'

app.renderer(render)
app.get('/', (_req, res) =>
res.renderFile(join(__dirname, '..', 'views', 'index.pug')),
)