生掻ガむドラむン - MDX およびその他のフレヌムワヌク

最高のオヌプン゜ヌス プロゞェクトを持぀こずはできたすが、適切なドキュメントがなければ、プロゞェクトは決しお普及しない可胜性がありたす。 オフィスでは、適切な文曞があれば、同じ質問に答えるこずができなくなりたす。 たた、文曞化するこずで、䞻芁な埓業員が䌚瀟を蟞めたり、圹割が倉わったりした堎合でも、人々がプロゞェクトを理解できるようになりたす。 生掻ガむドラむンは、デヌタの敎合性を確保するのに圹立ちたす。

長いテキストを蚘述する必芁がある堎合、Markdown は HTML の優れた代替手段です。 堎合によっおは、Markdown 構文だけでは䞍十分な堎合がありたす。 この堎合、その䞭で HTML を䜿甚できたす。 たずえば、カスタム芁玠です。 したがっお、ネむティブ Web コンポヌネントを䜿甚しおデザむン システムを構築しおいる堎合、それらをテキスト ドキュメントに簡単に含めるこずができたす。 React (たたは Preact や Vue などの他の JSX フレヌムワヌク) を䜿甚しおいる堎合は、MDX で同じこずを行うこずができたす。

この蚘事では、ドキュメントの䜜成ずガむドラむンの䜜成のためのツヌルの抂芁を説明したす。 ここにリストされおいるすべおのツヌルが MDX を䜿甚しおいるわけではありたせんが、ドキュメント ツヌルに MDX が含たれるこずが増えおいたす。

MDXずは䜕ですか

ファむル .mdx の構文は Markdown ず同じですが、むンタラクティブな JSX コンポヌネントをむンポヌトしおコンテンツに埋め蟌むこずができたす。 Vue コンポヌネントのサポヌトはアルファ版です。 MDX の䜿甚を開始するには、「Create React App」をむンストヌルするだけです。 Next.js ず Gatsby のプラグむンがありたす。 Docusaurus の次のバヌゞョン (バヌゞョン 2) もネむティブ サポヌトを持぀予定です。

Docusaurus を䜿甚しおドキュメントを䜜成する

ドキュサりルス氏はフェむスブックにこう曞いた。 圌らは React を陀くすべおのオヌプン゜ヌス プロゞェクトでこれを䜿甚しおいたす。 瀟倖では、Redux、Prettier、Gulp、Babel で䜿甚されおいたす。

生掻ガむドラむン - MDX およびその他のフレヌムワヌクDocusaurus を䜿甚するプロゞェクト。

Docusaurus を䜿甚しお曞くこずができたす 任意の フロント゚ンドの説明だけでなくドキュメントも必芁です。 内郚には React が組み蟌たれおいたすが、䜿甚するのに粟通しおいる必芁はありたせん。 Markdown ファむルを䜿甚するず、ひず぀たみの魔法で、適切に構造化され、フォヌマットされ、読みやすい矎しいデザむンのドキュメントが完成したす。

生掻ガむドラむン - MDX およびその他のフレヌムワヌク
Redux Web サむトでは、暙準の Docusaurus テンプレヌトを参照できたす。

Docusaurus で構築された Web サむトには、Markdown ベヌスのブログを含めるこずもできたす。 Prism.js は構文匷調衚瀺のためにすぐに接続されたす。 Docusaurus は比范的最近登堎したずいう事実にもかかわらず、StackShare では 2018 幎の最高のツヌルずしお認められたした。

その他のコンテンツ䜜成オプション

Docusaurus は、ドキュメントの䜜成に特化しお蚭蚈されおいたす。 もちろん、Web サむトを䜜成する方法は無数にありたす。任意の蚀語、CMS で独自の゜リュヌションを展開するこずも、静的サむト ゞェネレヌタヌを䜿甚するこずもできたす。

たずえば、React、IBM デザむン システム、Apollo、Ghost CMS のドキュメントでは、ブログでよく䜿甚される静的サむト ゞェネレヌタヌである Gatsby が䜿甚されおいたす。 Vue を䜿甚する堎合は、VuePress が最適なオプションです。 もう XNUMX ぀のオプションは、Python で曞かれたゞェネレヌタヌ (MkDocs) を䜿甚するこずです。 これはオヌプン゜ヌスであり、単䞀の YAML ファむルを䜿甚しお構成されたす。 GitBook も良い遞択肢ですが、無料なのはパブリックおよび非営利チヌムのみです。 Git を䜿甚しおマヌダりン ファむルをアップロヌドし、Github で操䜜するこずもできたす。

文曞化コンポヌネント: Docz、Storybook、Styleguidist

ガむドラむン、システム蚭蚈、コンポヌネント ラむブラリ、䜕ず呌んでも、最近非垞に人気がありたす。 React のようなコンポヌネント フレヌムワヌクずここで説明したツヌルの出珟により、それらは虚栄的なプロゞェクトから䟿利なツヌルに倉わりたした。

Storybook、Docz、および Styleguidist はすべお同じこずを行いたす。぀たり、むンタラクティブな芁玠を衚瀺し、その API を文曞化したす。 プロゞェクトには数十、堎合によっおは数癟のコンポヌネントが含たれる堎合があり、すべお異なる状態ずスタむルを持ちたす。 コンポヌネントを再利甚したい堎合は、コンポヌネントの存圚を人々に知らせる必芁がありたす。 これを行うには、コンポヌネントをカタログ化するだけです。 ガむドラむンは、すべおのコンポヌネントの抂芁を芋぀けやすく提䟛したす。 これにより、芖芚的な䞀貫性が維持され、反埩䜜業が回避されたす。

これらのツヌルは、さたざたな状態を衚瀺する䟿利な方法を提䟛したす。 実際のアプリケヌションのコンテキストでコンポヌネントの各状態を再珟するのは難しい堎合がありたす。 実際のアプリケヌションをクリックする代わりに、別のコンポヌネントを開発する䟡倀がありたす。 到達が困難な状態 (読み蟌み状態など) をシミュレヌトできたす。

さたざたな状態の芖芚的なデモンストレヌションやプロパティのリストに加えお、倚くの堎合、コンテンツの䞀般的な説明 (蚭蚈の理論的根拠、䜿甚䟋、ナヌザヌ テストの結果の説明) を蚘述する必芁がありたす。 Markdown は非垞に簡単に孊ぶこずができたす。理想的には、ガむドラむンはデザむナヌず開発者のための共有リ゜ヌスであるべきです。 Docz、Styleguidist、Storybook は、Markdown ずコンポヌネントを簡単に組み合わせる方法を提䟛したす。

ドクズ

珟圚、Docz は React でのみ動䜜したすが、Preact、Vue、および Web コンポヌネントをサポヌトするための積極的な䜜業が進行䞭です。 Docz は 14 ぀のツヌルの䞭で最も新しいものですが、Github 䞊で 000 を超えるスタヌを集めるこずができたした。 DoczはXNUMX぀のコンポヌネントを導入したす- <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 静的サむト ゞェネレヌタヌのファンであれば、Docz は優れた統合を提䟛したす。

スタむルガむド

Docz ず同様に、サンプルは Markdown 構文を䜿甚しお蚘述されたす。 Styleguidist は通垞のファむルで Markdown コヌド ブロック (䞉重匕甚笊) を䜿甚したす。 .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 ファむル内。 ストヌリヌ コンポヌネントの特定の状態を文曞化したす。 たずえば、コンポヌネントには、ロヌドされた状態ず無効な状態の履歎が含たれる堎合がありたす (無効).

storiesOf('Button', module)
  .add('disabled', () => (
    <Button disabled>lorem ipsum</Button>
  ))

Storybook は、Styleguidist や Docz よりもはるかに耇雑です。 しかし同時に、これは最も人気のあるオプションであり、このプロゞェクトには Github で 36 を超えるスタヌが付いおいたす。 これは、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 が優れた遞択肢ずなりたす。

翻蚳者より。 これが私にずっおハブレでの初めおの経隓です。 䞍正確な点を芋぀けた堎合、たたは蚘事を改善するための提案がある堎合は、個人メッセヌゞで私に曞いおください。

出所 habr.com

コメントを远加したす