import Hlt from 'highlight.js'

export default {
    install(Vue) {
        /**
         * el下应该只有一组pre code标签 否则数据会被绑定至所有符合条件的标签
         */
        Vue.directive('highlight', (el, { value }) => {
            let preNodes = el.querySelectorAll('pre')
            if (el.tagName.toLowerCase() === 'pre') { preNodes = [el] }
            preNodes.forEach(pre => {
                const code = pre.querySelector('code')
                if (!code) return;
                pre.className = ''
                code.innerText = value
                Hlt.highlightBlock(pre)
            })
        })
    }
}
