adds option to render markdown headings with anchor links

This commit is contained in:
Sebastian Sdorra
2019-05-07 10:11:26 +02:00
parent 7fe61a28be
commit 6d325f56e1
3 changed files with 68 additions and 1 deletions

View File

@@ -3,17 +3,27 @@ import React from "react";
import SyntaxHighlighter from "./SyntaxHighlighter";
import Markdown from "react-markdown/with-html";
import {binder} from "@scm-manager/ui-extensions";
import MarkdownHeadingRenderer from "./MarkdownHeadingRenderer";
type Props = {
content: string,
renderContext?: Object,
renderers?: Object,
enableAnchorHeadings: boolean
};
class MarkdownView extends React.Component<Props> {
static defaultProps = {
enableAnchorHeadings: false
};
constructor(props: Props) {
super(props);
}
render() {
const {content, renderers, renderContext} = this.props;
const {content, renderers, renderContext, enableAnchorHeadings} = this.props;
const rendererFactory = binder.getExtension("markdown-renderer-factory");
let rendererList = renderers;
@@ -26,6 +36,10 @@ class MarkdownView extends React.Component<Props> {
rendererList = {};
}
if (enableAnchorHeadings) {
rendererList.heading = MarkdownHeadingRenderer;
}
if (!rendererList.code){
rendererList.code = SyntaxHighlighter;
}