เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบตเป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบต, เป‚เบญเบเบฒเบ”เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบกเบตเบงเบฑเบ™เบญเบญเบ. เปƒเบ™เบซเป‰เบญเบ‡เบเบฒเบ™, เป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบตเบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เป€เบˆเบปเป‰เบฒเบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเบ”เบฝเบงเบเบฑเบ™. เป€เบญเบเบฐเบชเบฒเบ™เบเบฑเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ›เบฐเบŠเบฒเบŠเบปเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ„เบ‡เบเบฒเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบญเบญเบเบˆเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”. เบ‚เปเป‰เปเบ™เบฐเบ™เบณเบเบฒเบ™เบ”เบณเบฅเบปเบ‡เบŠเบตเบงเบดเบ”เบˆเบฐเบŠเปˆเบงเบเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบง, Markdown เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบเบฑเบš HTML. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡ syntax Markdown เปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ HTML เบžเบฒเบเปƒเบ™เบกเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบ—เบตเปˆเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบงเบฑเบšเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ”เป‰เบ‡เปˆเบฒเบ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ React (เบซเบผเบทเบเบญเบš JSX เบญเบทเปˆเบ™เป†เป€เบŠเบฑเปˆเบ™ Preact เบซเบผเบท Vue), เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ MDX.

เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เป€เบ›เบฑเบ™เบžเบฒเบšเบฅเบงเบกเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป€เบญเบเบฐเบชเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบšเปเปˆเปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปƒเบŠเป‰ MDX, เปเบ•เปˆเบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบญเบเบฐเบชเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

MDX เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เป€เบญเบเบฐเบชเบฒเบ™ .mdx เบกเบต syntax เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Markdown, เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบญเบปเบ‡เบ›เบฐเบเบญเบš JSX เปเบšเบšเป‚เบ•เป‰เบ•เบญเบšเปเบฅเบฐเบเบฑเบ‡เบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบฎเบญเบ‡เบฎเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš Vue เบขเบนเปˆเปƒเบ™เบญเบฑเบ™เบŸเบฒ. เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš MDX, เบžเบฝเบ‡เปเบ•เปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡ "Create React App". เบกเบต plugins เบชเปเบฒเบฅเบฑเบš Next.js เปเบฅเบฐ Gatsby. เบชเบฐเบšเบฑเบšเบ•เปเปˆเป„เบ›เบ‚เบญเบ‡ Docusaurus (เบฎเบธเปˆเบ™ 2) เบเบฑเบ‡เบˆเบฐเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡.

เบเบฒเบ™เบ‚เบฝเบ™เป€เบญเบเบฐเบชเบฒเบ™เบเบฑเบš Docusaurus

Docusaurus เบ‚เบฝเบ™เปƒเบ™ Facebook. เบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เบ—เบธเบเป†เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบเบปเบเป€เบงเบฑเป‰เบ™ React. เบžเบฒเบเบ™เบญเบเบšเปเบฅเบดเบชเบฑเบ”เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ Redux, Prettier, Gulp เปเบฅเบฐ Babel.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰ Docusaurus.

Docusaurus เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ‚เบฝเบ™ เบ—เบธเบเป† เป€เบญเบเบฐเบชเบฒเบ™, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ—เบดเบšเบฒเบ frontend. เบกเบฑเบ™เบกเบต React เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ›เบดเบ”, เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบกเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบกเบฑเบ™. เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเป„เบŸเบฅเปŒ Markdown เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, pinch เบ‚เบญเบ‡ magic เปเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ”เบต, เบฎเบนเบšเปเบšเบšเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบญเบญเบเปเบšเบšเบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†
เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒ Redux เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เปเบกเปˆเปเบšเบš Docusaurus เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ Docusaurus เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฐเบเบญเบšเบกเบต blog เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Markdown. Prism.js เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ™เบ—เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ syntax. เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ Docusaurus เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡ 2018 เปƒเบ™ StackShare.

เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบญเบทเปˆเบ™เป†

Docusaurus เบ–เบทเบเบญเบญเบเปเบšเบšเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบญเบเบฐเบชเบฒเบ™. เปเบ™เปˆเบ™เบญเบ™, เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบฅเป‰เบฒเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒ - เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เปƒเบ™เบžเบฒเบชเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบก, CMS, เบซเบผเบทเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบชเป‰เบฒเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš React, เบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบญเบเปเบšเบš IBM, Apollo เปเบฅเบฐ Ghost CMS เปƒเบŠเป‰ Gatsby - เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเป‰เบฒเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบกเบฑเบเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš blogs. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Vue, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ VuePress เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เป„เบŸเบŸเป‰เบฒเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ Python - MkDocs. เบกเบฑเบ™เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เปเบฅเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป‚เบ”เบเปƒเบŠเป‰เป„เบŸเบฅเปŒ YAML เบ”เบฝเบง. GitBook เบเบฑเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบต, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ„เป‰เบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบญเบฑเบšเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒ mardown เป‚เบ”เบเปƒเบŠเป‰ Git เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบžเบงเบเบกเบฑเบ™เปƒเบ™ Github.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™: Docz, Storybook เปเบฅเบฐ Styleguidist

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบเบฒเบ™เบญเบญเบเปเบšเบšเบฅเบฐเบšเบปเบš, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบš - เบชเบดเปˆเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เป‚เบ—เบซเบฒเบžเบงเบเป€เบ‚เบปเบฒ, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเปƒเบ™เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰. เบเบฒเบ™เบกเบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เบเบญเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบŠเบฑเปˆเบ™ React เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ™เบตเป‰เป„เบ”เป‰เบ›เปˆเบฝเบ™เบžเบงเบเบกเบฑเบ™เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ vanity เป„เบ›เบชเบนเปˆเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

Storybook, Docz เปเบฅเบฐ Styleguidist เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™: เบชเบฐเปเบ”เบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบ API เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบกเบตโ€‹เบซเบผเบฒเบโ€‹เบชเบดเบšโ€‹เบซเบผเบทโ€‹เปเบกเปˆเบ™โ€‹เปเบ•เปˆโ€‹เบซเบผเบฒเบโ€‹เบฎเป‰เบญเบโ€‹เบ„เบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบš - เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบฅเบฑเบ”โ€‹เปเบฅเบฐโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ–เบทเบเบ™เปเบฒเบกเบฒเปƒเบŠเป‰เปƒเบซเบกเปˆ, เบ›เบฐเบŠเบฒเบŠเบปเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เบกเบตเบขเบนเปˆ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบˆเบฑเบ”เบฅเบฒเบเบเบฒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš. เบ‚เปเป‰เปเบ™เบฐเบ™เบณเปƒเบซเป‰เบžเบฒเบšเบฅเบงเบกเบ—เบตเปˆเบŠเบญเบเบซเบฒเป„เบ”เป‰เบ‡เปˆเบฒเบเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบ™เบตเป‰เบŠเปˆเบงเบเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเบเบ•เบฒเปเบฅเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบŠเป‰เปเบฒเบŠเป‰เบญเบ™.

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบ—เบตเปˆเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบฅเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเปเบœเปˆเบžเบฑเบ™เปเบ•เปˆเบฅเบฐเบฅเบฑเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ„เบฅเบดเบเปƒเบชเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบˆเบดเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ (เป€เบŠเบฑเปˆเบ™: เบชเบฐเบ–เบฒเบ™เบฐเป‚เบซเบผเบ”) เบชเบฒเบกเบฒเบ”เบˆเปเบฒเบฅเบญเบ‡เป„เบ”เป‰.

เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบžเบฒเบšเบ‚เบญเบ‡เบฅเบฑเบ”เบ•เปˆเบฒเบ‡เป†เปเบฅเบฐเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบกเบฑเบ™เบกเบฑเบเบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒ - design rationales, use case, or descriptions of user testing results . Markdown เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰ - เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบฎเปˆเบงเบกเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบญเบญเบเปเบšเบšเปเบฅเบฐเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ. Docz, Styleguidist, เปเบฅเบฐ Storybook เบชเบฐเป€เปœเบตเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบ›เบฐเบชเบปเบก Markdown เบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ.

Docz

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ 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>เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡ CodePen เบซเบผเบท CodeSandbox เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ•เบปเบง - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเป€เบซเบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบกเบฑเบ™เป„เบ”เป‰.

<Playground>
  <Button>click</Button>
</Playground>

<Props> เบˆเบฐเบชเบฐเปเบ”เบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš React, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบทเบšเปเปˆ.

<Props of={Button} />

เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ MDX เบ™เบตเป‰เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบฅเบฐเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบš.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เปเบŸเบ™เบ‚เบญเบ‡ Gatsby site static generator, Docz เบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเบ”เบต.

เบ„เบนเปˆเบกเบทเปเบšเบš

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Docz, เบ•เบปเบงเบขเปˆเบฒเบ‡เบ–เบทเบเบ‚เบฝเบ™เป‚เบ”เบเปƒเบŠเป‰ syntax Markdown. Styleguidist เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ” Markdown blocks (triple quotes) เปƒเบ™เป„เบŸเบฅเปŒเบ›เบปเบเบเบฐเบ•เบด .md เป„เบŸเบฅเปŒ, เบšเปเปˆเปเบกเปˆเบ™ MDX.

```js
<Button onClick={() => console.log('clicked')>Push Me</Button>

เบšเบฅเบฑเบญเบเบฅเบฐเบซเบฑเบ”เปƒเบ™ Markdown เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเปเบ”เบ‡เบฅเบฐเบซเบฑเบ”. เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Styleguidist, เบฅเบฐเบซเบฑเบ”เปƒเบ”เป†เบเปเบ•เบฒเบกเบ—เบตเปˆเบกเบตเปเบ—เบฑเบเบžเบฒเบชเบฒ js, jsx เบซเบผเบท javascript เบˆเบฐเบชเบฐเปเบ”เบ‡เป€เบ›เบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš React. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Docz, เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰ - เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบฑเบ™เบ—เบต.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†

Styleguidist เบˆเบฐเบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบฑเบšเบชเบดเบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ” PropTypes, Flow เบซเบผเบท Typescript.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบปเบ” - MDX เปเบฅเบฐเบเบญเบšเบญเบทเปˆเบ™เป†

Styleguidist เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ React เปเบฅเบฐ Vue.

เบ›เบทเป‰เบกเบ™เบดเบ—เบฒเบ™

Storybook เบ•เบฑเป‰เบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™ "เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบญเบปเบ‡เบ›เบฐเบเบญเบš UI." เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบžเบฒเบเปƒเบ™เป„เบŸเบฅเปŒ Markdown เบซเบผเบท MDX, เบ—เปˆเบฒเบ™เบ‚เบฝเบ™ เป€เบฅเบทเปˆเบญเบ‡ เบžเบฒเบเปƒเบ™เป„เบŸเบฅเปŒ Javascript. เป€เบฅเบทเปˆเบญเบ‡ เบšเบฑเบ™เบ—เบถเบเบชเบฐเบ–เบฒเบ™เบฐเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เปœเบถเปˆเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เปœเบถเปˆเบ‡เบญเบฒเบ”เบกเบตเบ›เบฐเบซเบงเบฑเบ”เบชเบณเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเป‚เบซเบผเบ”เปเบฅเป‰เบง เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ (disabled).

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 เบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเป€เบ—เบทเปˆเบญเบฅเบฐเบเป‰เบฒเบงเปƒเบ™เบชเบญเบ‡เบชเบฒเบกเป€เบ”เบทเบญเบ™เบ‚เป‰เบฒเบ‡เปœเป‰เบฒ เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบšเบฒเบ”เบเป‰เบฒเบงเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเบนเบšเปเบšเบšเปเบกเปˆเบ™ extolled เปƒเบ™เบฅเป‰เบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡. เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบต, เบžเบงเบเป€เบ‚เบปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบฅเบฐเบฎเบฑเบเบชเบฒเบ•เบปเบงเบ•เบปเบ™. เปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบขเปˆเบฒเบ‡เบกเบฐเบซเบฑเบ”เบชเบฐเบˆเบฑเบ™. เบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบญเบญเบเปเบšเบšเบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เปเบฅเบฐ CSS. เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบกเบฒเป€เบ–เบดเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”, Docz, Storybook เปเบฅเบฐ Styleguidist เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบต.

เบˆเบฒเบเบ™เบฑเบเปเบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš Habre. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบ—เปˆเบฒเบ™โ€‹เบžเบปเบšโ€‹เป€เบซเบฑเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹, เบซเบผเบทโ€‹เบกเบตโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹, เบ‚เบฝเบ™โ€‹เปƒเบซเป‰โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปƒเบ™โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบชเปˆเบงเบ™โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™