mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-29 10:17:55 +02:00
fix: v3 admonitions should support v2 title syntax for nested admonitions (#9535)
Fix admonition title mdx v1 compat option when admonition is nested
This commit is contained in:
parent
01030044e0
commit
1700a293c4
3 changed files with 82 additions and 9 deletions
|
@ -1288,17 +1288,23 @@ describe('admonitionTitleToDirectiveLabel', () => {
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not transform left-padded directives', () => {
|
it('transforms space indented directives', () => {
|
||||||
expect(
|
expect(
|
||||||
admonitionTitleToDirectiveLabel(
|
admonitionTitleToDirectiveLabel(
|
||||||
dedent`
|
dedent`
|
||||||
before
|
before
|
||||||
|
|
||||||
:::note Title
|
:::note 1 space
|
||||||
|
|
||||||
content
|
content
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
:::note 2 spaces
|
||||||
|
|
||||||
|
content
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
after
|
after
|
||||||
`,
|
`,
|
||||||
|
@ -1307,16 +1313,63 @@ describe('admonitionTitleToDirectiveLabel', () => {
|
||||||
).toEqual(dedent`
|
).toEqual(dedent`
|
||||||
before
|
before
|
||||||
|
|
||||||
:::note Title
|
:::note[1 space]
|
||||||
|
|
||||||
content
|
content
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
:::note[2 spaces]
|
||||||
|
|
||||||
|
content
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
after
|
after
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('transforms tab indented directives', () => {
|
||||||
|
expect(
|
||||||
|
admonitionTitleToDirectiveLabel(
|
||||||
|
`
|
||||||
|
before
|
||||||
|
|
||||||
|
\t:::note 1 tab
|
||||||
|
|
||||||
|
\tcontent
|
||||||
|
|
||||||
|
\t:::
|
||||||
|
|
||||||
|
\t\t:::note 2 tabs
|
||||||
|
|
||||||
|
\t\tcontent
|
||||||
|
|
||||||
|
\t\t:::
|
||||||
|
|
||||||
|
after
|
||||||
|
`,
|
||||||
|
directives,
|
||||||
|
),
|
||||||
|
).toBe(`
|
||||||
|
before
|
||||||
|
|
||||||
|
\t:::note[1 tab]
|
||||||
|
|
||||||
|
\tcontent
|
||||||
|
|
||||||
|
\t:::
|
||||||
|
|
||||||
|
\t\t:::note[2 tabs]
|
||||||
|
|
||||||
|
\t\tcontent
|
||||||
|
|
||||||
|
\t\t:::
|
||||||
|
|
||||||
|
after
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
it('does not transform admonition without title', () => {
|
it('does not transform admonition without title', () => {
|
||||||
expect(
|
expect(
|
||||||
admonitionTitleToDirectiveLabel(
|
admonitionTitleToDirectiveLabel(
|
||||||
|
|
|
@ -97,14 +97,14 @@ export function admonitionTitleToDirectiveLabel(
|
||||||
|
|
||||||
const directiveNameGroup = `(${admonitionContainerDirectives.join('|')})`;
|
const directiveNameGroup = `(${admonitionContainerDirectives.join('|')})`;
|
||||||
const regexp = new RegExp(
|
const regexp = new RegExp(
|
||||||
`^(?<directive>:{3,}${directiveNameGroup}) +(?<title>.*)$`,
|
`^(?<indentation>( +|\t+))?(?<directive>:{3,}${directiveNameGroup}) +(?<title>.*)$`,
|
||||||
'gm',
|
'gm',
|
||||||
);
|
);
|
||||||
|
|
||||||
return content.replaceAll(regexp, (substring, ...args: any[]) => {
|
return content.replaceAll(regexp, (substring, ...args: any[]) => {
|
||||||
const groups = args.at(-1);
|
const groups = args.at(-1);
|
||||||
|
|
||||||
return `${groups.directive}[${groups.title}]`;
|
return `${groups.indentation ?? ''}${groups.directive}[${groups.title}]`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,26 @@ import InfoIcon from "@theme/Admonition/Icon/Info"
|
||||||
</Admonition>
|
</Admonition>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Indented admonitions
|
||||||
|
|
||||||
|
See admonition title v2 compat syntax bug: https://github.com/facebook/docusaurus/issues/9507
|
||||||
|
|
||||||
|
1. Item 1
|
||||||
|
|
||||||
|
:::info Important Considerations
|
||||||
|
|
||||||
|
For better experience, try to keep the upgrade experience smooth.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
- **Scale-up cluster**
|
||||||
|
|
||||||
|
:::caution Warning
|
||||||
|
|
||||||
|
Scaling up a cluster may cause several minutes of downtime. Please exercise caution.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
## Official admonitions
|
## Official admonitions
|
||||||
|
|
||||||
Admonitions that are [officially documented](/docs/markdown-features/admonitions)
|
Admonitions that are [officially documented](/docs/markdown-features/admonitions)
|
||||||
|
|
Loading…
Add table
Reference in a new issue