1 projet
Plusieurs feature teams (React
)
Une même UX
🤝
Des composants React
communs maintenus par tout le monde
binout / ❤️ Asciidoctor (🐜)
🤓 : Il faut mettre en place le process de documentation dès le 1er commit !
😤 : On en a réellement besoin ? La doc ne sera jamais à jour …
La documentation :
doit être simple (et fun) à écrire
doit être facilement accessible et utile
doit être toujours à jour
✅ simple à écrire
✅ facilement accessible et utile
❌ toujours à jour
Mieux que Markdown
(selon moi 😝)
Inclusion de code source dans la documentation
// tag::props[]
interface ProgressFooProps {
/** value of progress (min=0, max=100, default is 50) */
now?: number
}
// end::props[]
const ProgressFoo = ({ now = 50 }: ProgressFooProps) => ....
✴️ simple à écrire
✅ facilement accessible et utile
✅ toujours à jour
Basé sur l’écriture de fichiers MDX
Génère un site statique
MDX = Markdown
+ JSX
🤯
# Hello, *world*!
Below is an example of JSX embedded in Markdown.
<div style={{ padding: '20px', backgroundColor: 'tomato' }}>
<h3>This is JSX</h3>
</div>
npm install docz
Required |
export default {
typescript: true
};
"scripts": {
"docz:dev": "docz dev",
"docz:build": "docz build",
"docz:serve": "docz build && docz serve"
}
Génère un site statique basé sur https://www.gatsbyjs.com/
<Props
>Documentation for components props
Supports flow
, prop-types
and Typescript
import { Props } from 'docz'
import ProgressFoo from './ProgressFoo.tsx'
<Props of={ProgressFoo} />
<Props
>interface ProgressFooProps {
/** value of progress (min=0, max=100, default is 50) */
now?: number,
/** variant which defines color (default is info) */
variant?: 'success' | 'info' | 'warning' | 'danger',
/** set to true to display a label next to progress bar (default is false) */
label?: boolean
}
const ProgressFoo = ({ now = 50, variant = 'info', label = false }: ProgressFooProps) => {
...
}
<Props
><Playground
>Editable rendering
import { Playground } from 'docz'
import ProgressFoo from './ProgressFoo.tsx'
<Playground>
<ProgressFoo now={66} variant="success" />
</Playground>
<Playground
>✅ simple à écrire
✅ facilement accessible et utile
✅ toujours à jour
💡 Docz = environnement de développement et d’intégration
😅 Permet d’éviter |
🚀 Mise en place et prise en main
🎭 Facile à customizer
📚 Permet de construire un site de documentation
🧐 Support Typescript à améliorer
🐘 Un peu lourd
😤 Des problèmes de cache (🗑 .docz
)
Même principe que Docz
# Usage
```jsx
<ProgressFoo now={66} variant="success" />
```
Documentation automatique des props
👍 Plus léger
🤓 Intégration avec third-party librairies
😅 Moins customizable
😅 Ecriture de stories (code) pour générer un storybook
👍 Supporte les autres frameworks (Vue, Angular, WebComponents)
😎 Large écosystème de plug-in
🥳 Support du MDX depuis 6.0
(août 2020)
📚 Plus adapté pour une gallerie de composants
✅ Aide au développement et à la testabilité
👨🎨 Plus orienté doc UX que doc technique
🤗 Eco-système riche … mais en constante évolution
😛 Fun d’écrire de la documentation