vue.jsmarkdownvuetify.jshighlightjs

How to disable Vuetify's style?


I want to parse markdown to html and use syntax highlighting.

My SFC is as follows:

<template>
    <div v-html="html"></div>
</template>
<script>
import marked from 'marked'
import hljs from 'highlightjs';

export default {
    name:"Article",
    props:['md'],
    computed:{
        html(){
            return marked(this.md)
        }
    },
    created: function () {
        marked.setOptions({
            langPrefix: '',
            highlight: function(code, lang) {
            return hljs.highlightAuto(code, [lang]).value
            }
        })
    },
}
</script>
<style src='highlightjs/styles/github-gist.css'></style>

The resulting code blocks are look like this:

code block

This is Vuetify's style.

https://vuetifyjs.com/en/styles/content/#code

I want to disable or override it.

The following code does not work for code blocks:

<style scoped>
.v-application code {
    background-color: unset !important;
    color: unset !important;
    box-shadow: unset !important;
}
.myclass {
     color:red !important;
}
</style>

Result:

enter image description here


Solution

  • Vuetify has the following CSS specified for the code tags:

    .v-application code {
        background-color: #f5f5f5;
        color: #bd4147;
        box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 
                    0 1px 1px 0 rgba(0,0,0,.14),
                    0 1px 3px 0 rgba(0,0,0,.12); 
    }
    

    You can see this if you open developer tools and inspect a code tag on their website.

    Either override those values to your own, or just set them all to unset or unset !important. For example:

    .v-application code {
        all: unset;
        color: #eee
    }
    
    /* Or with increased specificity */
    .v-application code.code--custom {
      all: unset;
      color: #eee
    }