import slug from 'remark-slug';
import 'sonar-ui-common/components/ui/Alert.css'; // eslint-disable-line import/extension
import { scrollToElement } from 'sonar-ui-common/helpers/scrolling';
-import { filterContent, separateFrontMatter } from '../../helpers/markdown';
import DocCollapsibleBlock from './DocCollapsibleBlock';
import DocImg from './DocImg';
import DocLink from './DocLink';
interface Props {
childProps?: T.Dict<string>;
className?: string;
- content: string | undefined;
- displayH1?: boolean;
+ content: string;
isTooltip?: boolean;
stickyToc?: boolean;
+ title?: string;
}
export default class DocMarkdownBlock extends React.PureComponent<Props> {
};
render() {
- const { childProps, content, className, displayH1, stickyToc, isTooltip } = this.props;
- const parsed = separateFrontMatter(content || '');
- const filteredContent = filterContent(parsed.content);
+ const { childProps, content, className, title, stickyToc, isTooltip } = this.props;
const md = remark();
className={classNames('markdown', className, { 'has-toc': stickyToc })}
ref={ref => (this.node = ref)}>
<div className="markdown-content">
- {displayH1 && <h1 className="documentation-title">{parsed.frontmatter.title}</h1>}
- {md.processSync(filteredContent).contents}
+ {title !== undefined && <h1 className="documentation-title">{title}</h1>}
+ {md.processSync(content).contents}
</div>
- {stickyToc && <DocToc content={filteredContent} onAnchorClick={this.handleAnchorClick} />}
+ {stickyToc && <DocToc content={content} onAnchorClick={this.handleAnchorClick} />}
</div>
);
}
import * as React from 'react';
import HelpTooltip from 'sonar-ui-common/components/controls/HelpTooltip';
import { lazyLoad } from 'sonar-ui-common/components/lazyLoad';
+import { filterContent } from '../../helpers/markdown';
const DocMarkdownBlock = lazyLoad(() => import('./DocMarkdownBlock'));
<DocMarkdownBlock
childProps={this.props.overlayProps}
className="cut-margins"
- content={this.state.content}
+ content={filterContent(this.state.content)}
isTooltip={true}
/>
</div>