Skip to content

Vue Showdown Default Classes

I want to achieve the following say i the MD as

md:'#H1'

I want to render it as

<h1>H1</h1>

I was able to achieve this using VueShowdown

but I want add default class to every h1 tag like

<h1 class="custom">H1</h1>

I got something similar to this here.

But I don’t know how to use this in Vue.

Is it even possible in VueShowdown?

Is there any better library which has this functionality?

Answer

You can create a simple directive:

Vue.directive('default-classes', (parentElement) {
  const els = parentElement.querySelectorAll('h1')

  els.forEach((el) => {
    el.classList.add('custom')
  })
  
})

Then apply that directive to the VueShowdown component:

<VueShowdown v-default-classes :markdown="markdownBinding" />