fix: Move content into to frontend directory

Doing this BEFORE the merge prevents a lot of merge conflicts.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2022-11-11 11:16:18 +01:00
parent 4e18ce38f3
commit 762a0a850e
No known key found for this signature in database
GPG key ID: B97799103358209B
1051 changed files with 0 additions and 35 deletions

View file

@ -0,0 +1,35 @@
/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { useMemo } from 'react'
import MarkdownIt from 'markdown-it/lib'
import type { MarkdownRendererExtension } from '../extensions/base/markdown-renderer-extension'
/**
* Creates a new {@link MarkdownIt markdown-it instance} and configures it using the given {@link MarkdownRendererExtension markdown renderer extensions}.
*
* @param extensions The extensions that configure the new markdown-it instance
* @param allowHtml Defines if html in markdown is allowed
* @param newlinesAreBreaks Defines if new lines should be treated as line breaks or paragraphs
* @return the created markdown-it instance
*/
export const useConfiguredMarkdownIt = (
extensions: MarkdownRendererExtension[],
allowHtml: boolean,
newlinesAreBreaks: boolean
): MarkdownIt => {
return useMemo(() => {
const newMarkdownIt = new MarkdownIt('default', {
html: allowHtml,
breaks: newlinesAreBreaks,
langPrefix: '',
typographer: true
})
extensions.forEach((extension) => newMarkdownIt.use((markdownIt) => extension.configureMarkdownIt(markdownIt)))
extensions.forEach((extension) => newMarkdownIt.use((markdownIt) => extension.configureMarkdownItPost(markdownIt)))
return newMarkdownIt
}, [allowHtml, extensions, newlinesAreBreaks])
}