# Блок Markdown

## Введение

Блок Markdown не требует привязки к источнику данных. Он позволяет определять текстовое содержимое с помощью синтаксиса Markdown и использовать его для отображения форматированного текста.

## Добавление блока

Вы можете добавить блок Markdown на страницу или во всплывающее окно.

![20251026230916](https://static-docs.nocobase.com/20251026230916.png)

Также можно добавить встроенный (inline-block) блок Markdown внутри блоков формы и деталей.

![20251026231002](https://static-docs.nocobase.com/20251026231002.png)

## Шаблонный движок

Используется **[шаблонный движок Liquid](https://liquidjs.com/tags/overview.html)**, который предоставляет мощные и гибкие возможности рендеринга шаблонов, позволяя динамически генерировать и настраивать отображение контента. С помощью шаблонного движка вы можете:

- **Динамическая интерполяция**: Используйте заполнители в шаблоне для ссылки на переменные, например, `{{ ctx.user.userName }}` автоматически заменяется соответствующим именем пользователя.
- **Условный рендеринг**: Поддерживаются условные операторы (`{% if %}...{% else %}`), позволяющие отображать разное содержимое в зависимости от состояния данных.
- **Итерация (циклы)**: Используйте `{% for item in list %}...{% endfor %}` для перебора массивов или коллекций, чтобы генерировать списки, таблицы или повторяющиеся модули.
- **Встроенные фильтры**: Предоставляется богатый набор фильтров (таких как `upcase`, `downcase`, `date`, `truncate` и т.д.) для форматирования и обработки данных.
- **Расширяемость**: Поддерживаются пользовательские переменные и функции, что делает логику шаблонов многократно используемой и легко поддерживаемой.
- **Безопасность и изоляция**: Рендеринг шаблонов выполняется в изолированной (песочнице) среде, что предотвращает прямое выполнение опасного кода и повышает безопасность.

Благодаря шаблонному движку Liquid разработчики и создатели контента могут **легко реализовать динамическое отображение контента, персонализированную генерацию документов и рендеринг шаблонов для сложных структур данных**, значительно повышая эффективность и гибкость.

## Использование переменных

Markdown на странице поддерживает общие системные переменные (например, текущего пользователя, текущую роль и т.д.).

![20251029203252](https://static-docs.nocobase.com/20251029203252.png)

А Markdown во всплывающих окнах действий с блоками (или на подстраницах) поддерживает больше контекстных переменных данных (например, текущую запись, запись текущего всплывающего окна и т.д.).

![20251029203400](https://static-docs.nocobase.com/20251029203400.png)

## QR-код

В Markdown поддерживается настройка QR-кодов.

![20251026230019](https://static-docs.nocobase.com/20251026230019.png)

```html
<qr-code value="https://www.nocobase.com/" type="svg"></qr-code>
```