# Les plugins

Bon alors la, j'en ai deja un peu plus chier! Entre Yarn, NPM mais SURTOUT des syntax qui sont sensiblement jamais les mêmes d'un plugin a l'autre pour modifier le fichier config.js autant dire que ce fut pénible à explorer.

Apprentissage par l'exemple, je vais décrire les plugins que j'ai installé et leur configuration

La documentation https://vuepress.vuejs.org/plugin/

https://www.npmjs.com/package/vuepress-bar

la doc est clair, je ne m'etend pas

# PlantUML

https://www.npmjs.com/package/markdown-it-plantuml

WARNING

La conf ici utilise le serveur du site de plantuml. C'est pratique pour les petits schéma ou pour le test, mais si vous avez beaucoup de schéma ou des schéma tres gros, cela va bloquer. J'éttofferais plus tard.

WARNING

J'oubliais, si les images n'appairaissent pas, coupez votre bloqueur de pub. Je vous raconte pas le temps que j'ai mis a comprendre que c'était ublock qui faisait merder le bousin!

Dans le fichier config.js

a l'intérieur de

module.exports = {
},

Pour le coup, moi, je l'ai calé entre head :{}, et themeConfig :{},. Voilà c'est une info inutile mais bon...

module.exports = {
  markdown: {
    extendMarkdown: md => {
      md.use(require('markdown-it-plantuml'), options)
    }
  },
},

Notez la présence du parametre "options" au dessus. Cela fait refecence a la constante suivant qui est a positionner tout en haut de config.js

Il y a plusieurs options possible décrite dans la documentation. Celle que j'ai spécifié me permet d'avoir la même syntax pour vuepress que pour mes previews en markdown dans vsCode. Oui, j'utilise vsCode.

const options = {
  openMarker: '```plantuml',
  closeMarker: '```'
}

Pour l'intégrer dans une page:

@startuml
Bob -> Alice : hello
@enduml

uml diagram

# Back-to-Top

plugin tout simple qui ajoute un bouton en bas de page pour revenir tout en haut

yarn add -D @vuepress/plugin-back-to-top

Dans le fichier config.js

module.exports = {
  plugins: ['@vuepress/back-to-top']
}

# Medium Zoom

@vuepress/plugin-medium-zoom

yarn add -D @vuepress/plugin-medium-zoom

Dans le fichier config.js

module.exports = {
  plugins: ['@vuepress/medium-zoom']
}