α’αααα’αΆα ααΆααααααααααααααΎαα αα ααααα’αααα»α ααα»ααααααααα·αααΎααΆαα·αααΆαα―αααΆαααα’αα α±ααΆααααααΆααΉααα·αα’αΆα αα·αααΆαααα αα αααα»αααΆαα·ααΆααα α―αααΆαααα’ααΉαααΆααΆααα’αααααΈααΆαααααΎααααα½ααααααα α―αααΆαααααΆααΆααΆααα»αααα’αΆα αααααΈαααααα ααααα·αααΎαα»ααααα·αααααΆαααα αΆαα ααααΈαααα»αα αα»α α¬αα½ααΆααΈααααΆααααααΌαα αααααΆαααααααΆαααααΆαααααα ααΉααα½αααΆααΆααΆαααΌαααΆαααααΉαααααΌααααα·ααααααα
ααααα·αααΎα’αααααααΌαααΆααααααα’αααααααα Markdown ααΊααΆαααααΎαααααα’αααααΆαα HTML α αααααααααΆααααααααααα Markdown αα·ααααααααααΆααααα αααα»αααααΈαααααΎαα’αΆα ααααΎ HTML αα αααα»αααΆα α§ααΆα αααααΆαα»ααααΆαααααα½αα ααΌα ααααα αΎα ααααα·αααΎα’ααααααα»ααααααΎααααααααααα ααΆαααααΆαααΆαα»ααααααααα αααααααΎα αα½αααΆα’αΆα ααααΌαααΆααααα αΌααααΆαααΆααααα½ααααα»αα―αααΆαα’αααααα ααααα·αααΎα’ααααααα»αααααΎ React (α¬ααααααααα JSX ααααααααααΌα ααΆ Preact α¬ Vue) α’αααα’αΆα ααααΎααΌα ααααΆααΆαα½α MDX α
α’ααααααααααΊααΆαα·αααααΆαααΌαα ααα§ααααααααααΆαααααααα―αααΆα αα·ααααααΎααααααΆαααααααΆαα αα·ααααα§αααααααΆααα’αααααααΆαααΆααααααΈαα ααΈαααααααΎ MDX αα ααα»ααααααΆααααΌαααΆααα½ααααα αΌαααΆααααααααΆααα‘αΎααα αααα»αα§αααααα―αααΆαα
ααΎ MDX ααΆα’αααΈ?
α―αααΆα .mdx
ααΆαααΆαααααααααααααΌα
ααααΆααΉα Markdown ααα»ααααα’αα»ααααΆαα±ααα’αααααΆαα
αΌααααΆαααΆαα» JSX α’αααααααα αα·ααααααααα½αααΆαα
αααα»αααΆαα·ααΆααααα’αααα ααΆαααΆαααααααααΆαααααΆαααΆαα» Vue ααΊαα
αααα»αα’αΆααα αααΆα ααΎααααΈα
αΆααααααΎαααααΎααΆαααΆαα½α MDX ααααΆααααααα‘αΎα "Create React App" α ααΆααααααα·ααΈαααα½ααααααΆαα Next.js αα·α Gatsby α αααααααααΆαααα Docusaurus (αααα 2) ααααΉαααΆαααΆαααΆααααααΈααααΎααααααα
ααΆααααααα―αααΆαααΆαα½α Docusaurus
Docusaurus ααΆαααααααα ααΎ Facebook α αα½αααααααΎααΆαα ααααααααααααααααααΎαα αα ααΎαααααα React α αα ααΆααααα αααα»αα αα»αααΆααααΌαααΆαααααΎααααΆααααα Redux, Prettier, Gulp αα·α Babel α
αααααααααααααΎ Docusaurus α
Docusaurus α’αΆα ααααΌαααΆαααααΎααΎααααΈααααα Π»ΡΠ±ΠΎΠΉ α―αααΆααα·αααααΉααααααααΆαααααααΆααα»αααα»αααααααα ααΆααΆα React αα ααααααααααΆαα ααα»ααααα’ααααα·αα αΆαααΆα ααααΆαααΆαα½αααΆααΎααααΈααααΎααΆα ααΆααααΌαααΆαα―αααΆα Markdown ααααα’ααα α―αααΆαααααααα αα·ααα ααΆααααααααααα’ αααααα αα·αα’αΆα α’αΆαααΆαααΆαα½αααΉαααΆααα ααΆαααααααααα’αΆαααΊαα½α ααΆααα
αα
ααΎααα ααααα Redux α’αααα’αΆα
ααΎαααααΌ Docusaurus αααααααΆα
ααα αααααααααααααΎαα‘αΎαααα Docusaurus ααα’αΆα αα½ααααα αΌααααα»ααααααΆαααΌαααααΆαααΎ Markdown αααααα Prism.js ααααΌαααΆαααααΆααααααΆαααααααΆααααΆαααααα·α ααΆαααααααααααα αααααΈααΆααΆααα·αααα Docusaurus ααΆααααα αΆααααα½αααΆαααααααΈααααααααα ααΆααααΌαααΆαααα½αααααΆααααΆααΆα§αααααααααα’αααα»ααααα αΆαααααΆα 2018 αα ααΎ StackShareα
αααααΎααααααΎαααΆαα·ααΆααααααααα
Docusaurus ααααΌαααΆααα ααΆα‘αΎαααΆαα·ααααααααΆαααααααΎαα―αααΆαα ααΆααΆααα·αααΆαα ααΆααα·ααΈαα½αααΆα αα·ααα½αααΎααααΈαααααΎαααα ααααααα½α - α’αααα’αΆα ααααΎααααΆαααααααααααΆαααααΆαααααα½αααααα’αααααΆααΆααΆααΆαα½α CMS α¬ααααΎαααΆαααΈααααααΎαααα ααααααα·αα·ααααα
α§ααΆα ααα α―αααΆααααααΆαα React, IBM design system, Apollo αα·α Ghost CMS ααααΎ Gatsby - αααΆαααΈααααααΎαααα ααααααα·αα·αααααααααΆααΏααααααΌαααΆαααααΎαααααΆαααααα»αα ααααα·αααΎα’αααααααΎααΆαααΆαα½α Vue ααα VuePress ααΊααΆαααααΎαααααα’αααααΆααα’αααα αααααΎααα½ααααααΊααααΎαααΆαααΈαααααΎααααααααααααα»α Python - MkDocs α ααΆααΆαααααααΎαα αα αα·αααααααα ααΆαααααααααααααααΎα―αααΆα YAML αααα½αα GitBook ααααΆαααααΎαααααα’ααααα ααα»ααααααΆα₯ααα·ααααααααααΆαααααααα»αααΆααΆααα αα·ααα·ααααααΆαα·αααααααααα»αααααα α’αααααα’αΆα αααα»αα―αααΆα mardown αααααααΎ Git αα·αααααΎααΆαααΆαα½ααα½αααΆαα αααα»α Github αααααα
αααΆαααΆαα»ααα―αααΆαα Docz, Storybook αα·α Styleguidist
αααααΆαααααααΆα ααΆααα ααΆαααααααα αααααΆααααααΆαααΆαα» - α’αααΈααααααααα’αααα α αα½αααΆ ααΆααΆαααααΆαααΆααΆαααααα·αααααΆαααααΆααααΆαααααααΈααααα ααΆααααααααααααααααααααΆαααΆαααΌα ααΆ React αα·αα§ααααααααααΆααααααΆαααα ααΈαααααΆαααααΆααααααΌααα½αααΆααΈααααααα₯ααααααααααα ααΆα§αααααααΆαααααααααα
Storybook, Docz αα·α Styleguidist αα»αααααααααΎααΌα ααααΆα αααα αΆαααΆαα»α’αααααααα αα·αα αααααα―αααΆα API αααααα½αααα αααααααα½αα’αΆα ααΆααααΆαααΆαα»ααΆαααα·α α¬ααΆαααα - ααΆααα’ααααΆααααΆα αα·ααα ααΆααααααα»ααααααΆα ααααα·αααΎα’αααα ααα±αααααΆαααΆαα»ααααΌαααΆαααααΎααααΆααα‘αΎααα·α ααα»αααααααΌαααΉαααΆααΆααΆαα ααΎααααΈααααΎααΌα αααααααΆααααααααΎααΆααΆα‘α»ααααΆαααΆαα»α αααααΆαααααααΆααααααααΌααα·αααααΆαααΌαα ααΆααααα½αααααααααααααΆαααΆαα»ααΆααα’ααααααα’αααα ααααα½ααααααΆααΆαααΆααααΆαααααααΎαααΎα αα·ααααααΆαααΆαααΆααααααα
α§αααααααΆααααααααααααΌααααααααΆαααΆααααα½αααΎααααΈααΎαααααΆαααΆαααααααα ααΆα’αΆα ααΆααΆαααααΆααααα»αααΆααααααΎαα‘αΎααα·αααΌαααααΆαααΆαααΈαα½αααααααΆαααΆαα»αα αααα»αααα·αααααααααα·ααΈαα·αα αααα½αα±ααααΆαα α»α ααΎαααααα·ααΈαα·αααααΆαα ααΆααΆαααααααααααΎααααΆαααΆαααΆα ααααα‘ααα ααααΆαααΆααα·ααΆααα ααα (ααΌα ααΆααααΆαααΆααααα»α) α’αΆα ααααΌαααΆααααααααααΎα
αα½αααΆαα½αααΉαααΆααααα αΆαααΌαααΆααααααααααααα αα·ααααααΈαααααααααααααα· ααΆααΏααα αΆαααΆα αααααΌααααααααΆααα·αααααΆααΌαα ααααααΉαααΆα - α ααα»ααααααΆααα ααΆ ααααΈααααΎααααΆαα α¬ααΆααα·αααααΆα’αααΈαααααααααααααααα’αααααααΎααααΆααα Markdown ααΊααΆααααα½ααααααΆαα - ααΆαα§ααααααα· αααααΆαααααααΆααα½αααααΆααααΆαα ααααααααααααΆααα’ααααα ααΆ αα·αα’αααα’αα·ααααααα Docz, Styleguidist, αα·α Storybook αααααααΌααα·ααΈααΆααααα½ααααα»αααΆαααΆα Markdown ααΆαα½ααααΆαααΆαα»α
α―αααΆα
αα
αα
α»αααααα Docz ααααΎαααΆαααααΆαα½α React ααα»ααααα ααα»ααααααΆαααΆαααααααααα»αααααΎαααΆαααΎααααΈααΆαααα Preact, Vue αα·ααααΆαααΆαα»ααα αααααα Docz ααΊααΆα§αααααααααΈαααα»ααααα»αα
ααααα§αααααααΆααααΈ ααα»ααααααΆααΆααααααααααααΎααααΈαααααΌαααααΆαααΆα 14 αα
ααΎ Github α Docz ααααΆααααΆαααΆαα»ααΈα β <Playground>
ΠΈ < Props >
. αα½αααΆααααΌαααΆαααΆαα
αΌα αα·αααααΎααααΆαααααα»αα―αααΆα .mdx
.
import { Playground, Props } from "docz";
import Button from "../src/Button";
## You can _write_ **markdown**
### You can import and use components
<Button>click</Button>
α’αααα’αΆα
αα»ααααΆαααΆαα» React ααααΆαααααα½αααααα’αααααΆαα½α <Playground>
ααΎααααΈαααααΎα analogue αα CodePen α¬ CodeSandbox αααααΆαααααΆαα - αααααΊα’αααααΎααααΆαααΆαααααα’ααα α αΎαα’αΆα
ααααααα½αααΆααΆαα
<Playground>
<Button>click</Button>
</Playground>
<Props>
ααΉααααα αΆααααααααααααααα·αααααΆαααΆααα’αααααααΆαααααΆαααΆαα» React αααααΆααααααα±αα αααααααααΆαααΎα αα·αααΆααΎαααααααααααααα·ααααΌαααΆαααΆαααΆαα
<Props of={Button} />
αααααααΆαα αααα»ααααααΎαααΆαα·ααΈααΆαααααααα’ααααΎ MDX αααααΆααααα½αααααααα»α αα·αααΆααααα½ααααα»ααααα»αααΆαααααΎααΆαααΆαα½αα
ααααα·αααΎα’αααααΆα’αααααΆαααααααΆαααΈααααααΎαααα ααααααα·αα·αααα Gatsby Docz αααααααΌαααΆααα½ααααα αΌαααα’ααα αΆααααα½αα
ααΆαααααΆαα’αααΈαα ααΆααααα
ααΌα
Docz α§ααΆα αααααααΌαααΆαααααααααααααΎααΆααααααααααα Markdown α Styleguidist ααααΎαααα»αααΌα Markdown (ααααααααΈαα) αα
αααα»αα―αααΆαααααααΆα .md
α―αααΆααα·αααα MDX ααα
```js
<Button onClick={() => console.log('clicked')>Push Me</Button>
αααα»αααΌααα
αααα»α Markdown ααΆααααααΆααααΆαααααααα αΆαααΌαααα»αααααα αα
αααααααΎ Styleguidist αααα»αααΌαααΆαα½ααααααΆαααααΆαααΆααΆ js
, jsx
α¬ javascript
ααΉααααα αΆαααΆαααΆαααΆαα»ααααα·ααααα ααΌα
Docz ααΌαα’αΆα
ααααααα½αααΆα - α’αααα’αΆα
ααααΆααααααΌαααααααααααααα· α αΎαααΎαααααααααααΆααα
Styleguidist ααΉααααααΎαααΆααΆααααααααααααααα·αααααααααααααααα·ααΈααΆααααααΆα PropTypes, Flow α¬ Typescriptα
Styleguidist αα αα α»ααααααααΆαααα React αα·α Vue α
ααααα ααΏα
Storybook ααΆαααααα½αααΆααΆααΆ "ααα·ααααΆαα’αα·αααααααααΆαααΆα UI" α αααα½αα±ααααΆαααααααααΆαααΆαα»α§ααΆα ααααα αααα»αα―αααΆα Markdown α¬ MDX α’αααααααα αααααααα·ααΆααααα αα ααΆααααα»αα―αααΆα Javascript α ΠΡΡΠΎΡΠΈΡ αααααααΆααααΆαααΆαααΆααααΆαααααααΆαααΆαα»αα½αα α§ααΆα ααα αααΆαααΆαα»αα½αα’αΆα ααΆααααααααα·αααααΆααααααΆαααΆααααα»α αα·αααααΆαααΆααα·α (ααΆααα·α).
storiesOf('Button', module)
.add('disabled', () => (
<Button disabled>lorem ipsum</Button>
))
Storybook ααΊαααα»αααααΆαααΆα Styleguidist αα·α Doczα ααα»αααααα αααααΆαα½αααααΆαααααΊααΆαααααΎαααααααα·αααααα»α; αααααααααααΆαααααΆαααΆα 36 αα ααΎ Github α ααΆααΆαααααααααααααΎαα αα αααααΆαα’ααααα½αα αααα 000 ααΆαα αα·ααα»ααααα·ααααααααα ααΆααααΌαααΆαααααΎααα Airbnb, Algolia, Atlassian, Lyft αα·α Salesforce α Storybook ααΆαααααααααααααα αααΎαααΆαααααΌααααα½ααααααα - React, React Native, Vue, Angular, Mithril, Ember, Riot, Svelte αα·α HTML ααααααΆα
αα αααα»αααΆαα ααααααΆαααΆαααα’ααΆααααΉαααΆααααααααα·αααααΈ Docz α αΎα MDX ααΉαααααΌαααΆαααααΆαα
# Button
Some _notes_ about your button written with **markdown syntax**.
<Story name="disabled">
<Button disabled>lorem ipsum</Button>
</Story>
αα»αααΆαααααΈαααα Storybook ααΉαα ααααΆαααααΎαααααα»αααααααααα»ααααΆαααααΆααα»α α αΎαααΆααΎααα ααΌα ααΆααΆααΉαααΆααα αΆααααααα½αααααααα αα»αα
αααααα
α’ααααααααααααααααααΆαααααααΌααααΌαααΆαααΎααααααΎααα αααα»αα’αααααααΆααααΆααα ααΎ Medium α αα ααααααααααΎααΆαααα’ αα½αααααααΎα±ααααΆααΆααααααΆααααα½ααααα»αααΆααααααΎαααα·ααααααααΆααααααα αα·ααααααΆα’ααααααααΆαα ααΆααΆααα·αααΆαα ααααΆαα§αααααααΆαααααααΉααααααΎααααααααααα ααΆααααααααααααα ααΆααΆαααΆαααΆααα ααΆαααΆααααα»ααααααααα αα·α CSS α ααα»αααααα ααααααααΆααααααααΎααααΈααααΎα±αααααααααααα ααΆα’αΆα α αΌαααααΎαααΆαααΆααααααΆαααααα»αα αα»αααΆααααΌα Docz, Storybook αα·α Styleguidist ααΊααΆαααααΎαααααα’α
ααΈα’αααααααααα αααααΆαααα·αααααααααΌααααααααα»ααα ααΎ Habre α ααααα·αααΎα’αααααααΎαααΆααα·αααααΉαααααΌα α¬ααΆαααΆαααααΆααααααΆαααααααα’α’ααααα ααΌαααααααααααα»ααααα»αααΆαααααΆαααααα½αα
ααααα: www.habr.com