mirror of
https://github.com/Redocly/redoc.git
synced 2025-08-04 12:20:19 +03:00
fix: markdown parent name
This commit is contained in:
parent
7ca10daf12
commit
a9a1b4e3bf
|
@ -79,7 +79,11 @@ export class SectionItem extends React.Component<ContentItemProps> {
|
||||||
</Header>
|
</Header>
|
||||||
</MiddlePanel>
|
</MiddlePanel>
|
||||||
</Row>
|
</Row>
|
||||||
<AdvancedMarkdown source={description || ''} htmlWrap={middlePanelWrap} />
|
<AdvancedMarkdown
|
||||||
|
parentId={this.props.item.id}
|
||||||
|
source={description || ''}
|
||||||
|
htmlWrap={middlePanelWrap}
|
||||||
|
/>
|
||||||
{externalDocs && (
|
{externalDocs && (
|
||||||
<Row>
|
<Row>
|
||||||
<MiddlePanel>
|
<MiddlePanel>
|
||||||
|
|
|
@ -9,6 +9,7 @@ import { StoreConsumer } from '../StoreBuilder';
|
||||||
|
|
||||||
export interface AdvancedMarkdownProps extends BaseMarkdownProps {
|
export interface AdvancedMarkdownProps extends BaseMarkdownProps {
|
||||||
htmlWrap?: (part: JSX.Element) => JSX.Element;
|
htmlWrap?: (part: JSX.Element) => JSX.Element;
|
||||||
|
parentId?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class AdvancedMarkdown extends React.Component<AdvancedMarkdownProps> {
|
export class AdvancedMarkdown extends React.Component<AdvancedMarkdownProps> {
|
||||||
|
@ -28,7 +29,7 @@ export class AdvancedMarkdown extends React.Component<AdvancedMarkdownProps> {
|
||||||
throw new Error('When using components in markdown, store prop must be provided');
|
throw new Error('When using components in markdown, store prop must be provided');
|
||||||
}
|
}
|
||||||
|
|
||||||
const renderer = new MarkdownRenderer(options);
|
const renderer = new MarkdownRenderer(options, this.props.parentId);
|
||||||
const parts = renderer.renderMdWithComponents(source);
|
const parts = renderer.renderMdWithComponents(source);
|
||||||
|
|
||||||
if (!parts.length) {
|
if (!parts.length) {
|
||||||
|
|
|
@ -61,7 +61,8 @@ export class MarkdownRenderer {
|
||||||
private headingEnhanceRenderer: marked.Renderer;
|
private headingEnhanceRenderer: marked.Renderer;
|
||||||
private originalHeadingRule: typeof marked.Renderer.prototype.heading;
|
private originalHeadingRule: typeof marked.Renderer.prototype.heading;
|
||||||
|
|
||||||
constructor(public options?: RedocNormalizedOptions) {
|
constructor(public options?: RedocNormalizedOptions, public parentId?: string) {
|
||||||
|
this.parentId = parentId;
|
||||||
this.parser = new marked.Parser();
|
this.parser = new marked.Parser();
|
||||||
this.headingEnhanceRenderer = new marked.Renderer();
|
this.headingEnhanceRenderer = new marked.Renderer();
|
||||||
this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(
|
this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(
|
||||||
|
@ -78,7 +79,9 @@ export class MarkdownRenderer {
|
||||||
): MarkdownHeading {
|
): MarkdownHeading {
|
||||||
name = unescapeHTMLChars(name);
|
name = unescapeHTMLChars(name);
|
||||||
const item = {
|
const item = {
|
||||||
id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,
|
id: parentId
|
||||||
|
? `${parentId}/${safeSlugify(name)}`
|
||||||
|
: `${this.parentId || 'section'}/${safeSlugify(name)}`,
|
||||||
name,
|
name,
|
||||||
level,
|
level,
|
||||||
items: [],
|
items: [],
|
||||||
|
|
|
@ -70,7 +70,7 @@ export class MenuBuilder {
|
||||||
initialDepth: number,
|
initialDepth: number,
|
||||||
options: RedocNormalizedOptions,
|
options: RedocNormalizedOptions,
|
||||||
): ContentItemModel[] {
|
): ContentItemModel[] {
|
||||||
const renderer = new MarkdownRenderer(options);
|
const renderer = new MarkdownRenderer(options, parent?.id);
|
||||||
const headings = renderer.extractHeadings(description || '');
|
const headings = renderer.extractHeadings(description || '');
|
||||||
|
|
||||||
if (headings.length && parent && parent.description) {
|
if (headings.length && parent && parent.description) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user