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
