mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-21 10:45:20 -04:00
28 lines
1 KiB
TypeScript
28 lines
1 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import { MarkdownExtension } from './markdown-extension'
|
|
import type MarkdownIt from 'markdown-it'
|
|
import markdownItContainer from 'markdown-it-container'
|
|
import type Token from 'markdown-it/lib/token'
|
|
import type Renderer from 'markdown-it/lib/renderer'
|
|
|
|
export const alertLevels = ['success', 'danger', 'info', 'warning']
|
|
|
|
export class AlertMarkdownExtension extends MarkdownExtension {
|
|
public configureMarkdownIt(markdownIt: MarkdownIt): void {
|
|
alertLevels.forEach((level) => {
|
|
markdownItContainer(markdownIt, level, {
|
|
render: (tokens: Token[], index: number, options: MarkdownIt.Options, env: unknown, self: Renderer) => {
|
|
tokens[index].attrJoin('role', 'alert')
|
|
tokens[index].attrJoin('class', 'alert')
|
|
tokens[index].attrJoin('class', `alert-${level}`)
|
|
return self.renderToken(tokens, index, options)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|