vue中使用marked和highlight.js代码能高亮但是没有背景

clipboard.png

如图
以下是代码。

import Loading from '~/components/Loading.vue';
import marked from "marked";
import hljs from "highlight.js";
// import 'highlight.js/styles/googlecode.css';
import 'highlight.js/styles/atom-one-dark.css';
marked.setOptions({
  renderer: new marked.Renderer(),
  highlight: function(code) {
    return hljs.highlightAuto(code).value;
  },
  pedantic: false,
  gfm: true,
  tables: true,
  breaks: false,
  sanitize: false,
  smartLists: true,
  smartypants: false,
  xhtml: false
  }
);
article.content = marked(article.content);
<div v-html="article.content" ></div>
阅读 6.6k
1 个回答

具体原因是pre标签没有hljs这个class,加上就可以(代码高亮样式都是给hljsclass加上的背景色),这算是一种解决方法,但是不优雅

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题