title | description | wrapperClassName |
---|---|---|
Markdown Page tests title |
Markdown Page tests description |
docusaurus-markdown-example |
This is a page generated from Markdown to illustrate the Markdown page feature and test some edge cases.
:::info
Useful information.
:::
function Button() {
return (
<button type="button" onClick={() => alert('hey')}>
Click me!
</button>
);
}
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs defaultValue="apple" values={[ {label: 'Apple', value: 'apple'}, {label: 'Orange', value: 'orange'}, {label: 'Banana', value: 'banana'} ]}>This is an apple 🍎This is an orange 🍊This is a banana 🍌
MDX comments can be used with
<!--
My comment
-->
See, nothing is displayed:
import MyComponent from "@site/src/pages/examples/_myComponent"
import BrowserWindow from '@site/src/components/BrowserWindow';
Let's say you have a React component.
You can import and use it in MDX:
import MyComponent from './myComponent';
<MyComponent />;
But you can also display its source code directly in MDX, thanks to Webpack raw-loader
import CodeBlock from '@theme/CodeBlock';
import MyComponentSource from '!!raw-loader!./myComponent';
<CodeBlock className="language-jsx">{MyComponentSource}</CodeBlock>;
import CodeBlock from "@theme/CodeBlock"
import MyComponentSource from '!!raw-loader!@site/src/pages/examples/_myComponent';
{MyComponentSource}
function Demo() {
useEffect(() => console.log('mount'), []);
return null;
}
function Clock(props) {
const [date, setDate] = useState(new Date());
useEffect(() => {
var timerID = setInterval(() => tick(), 1000);
return function cleanup() {
clearInterval(timerID);
};
});
function tick() {
setDate(new Date());
}
return (
<div>
<h2>It is {date.toLocaleTimeString()}.</h2>
// highlight-start
{/* prettier-ignore */}
long long long long long long long long long long long long line
{/* prettier-ignore */}
// highlight-end
</div>
);
}
function Clock(props) {
const [date, setDate] = useState(new Date());
useEffect(() => {
var timerID = setInterval(() => tick(), 1000);
return function cleanup() {
clearInterval(timerID);
};
});
function tick() {
setDate(new Date());
}
return (
<div>
<h2>It is {date.toLocaleTimeString()}.</h2>
</div>
);
}
Code tag + double pipe: ||
Code tag + double pipe: ||
Details without a summary
This is a fragment:
<>Hello</>
It should work :)
A list:
- Simple
- Tasks
- Has simple
- Styles
Another list:
- Nested
- Tasks
- Should be well-formatted
- No matter
- How weird
Can be arbitrarily nested:
- Level
- Task
- Task
- Another level
- Task
- Task
- Deeper
- Task
- Task
- Task
- Task
- Task
:::caution Interpolated title
with a <button style={{color: "red"}} onClick={() => alert("it works")}>button
Admonition body
:::