在页面中渲染源码

7 篇文章 0 订阅
5 篇文章 0 订阅

在页面中渲染源码

在实际开发中有个需求,就是要吧写的代码在网页中展示,就像element、iview官网一样,能让别人看到自己的代码,这个需求一时间让我头疼,经过研究发现一个好用的文本编辑器插件markdown(在vue中用的还不错)

找了许多自认为这个比较好,不多说上教程

依赖下载

cnpm install marked --save
cnpm install --sava highlight.js
cnpm install text-loader --save

修改build文件下的webpack.dase.conf.js文件module.exports下的module对象中的rules数组(添加一个对象)

{
   test: /.md$/,
   loader: 'text-loader'
},

封装插件并注册(注册的一步就不写了)

<template>
  <div v-html="compiledMarkdown"></div>
</template>

<script>
  let marked = require('marked');
  let hljs = require('highlight.js');
  import 'highlight.js/styles/default.css';


  marked.setOptions({
    renderer: new marked.Renderer(),
    gfm: true,
    tables: true,
    breaks: false,
    pedantic: false,
    sanitize: false,
    smartLists: false,
    smartypants: false,
    highlight: function (code, lang) {
      if (lang && hljs.getLanguage(lang)) {
        return hljs.highlight(lang, code, true).value;
      } else {
        return hljs.highlightAuto(code).value;
      }
    }
  });
  export default{
    name: 'markdown',
    data() {
      return {
        // markdown:markdown
      }
    },
    props:['markdown'],
    created() {
      console.log(this.markdown)
    },
    computed: {
      compiledMarkdown() {
        let detail = this.markdown;
        return marked(detail || '', {
          sanitize: true
        });
      }
    }
  }
</script>
<style>//在页面中到class自行配制颜色
  .hljs-tag {
    color:#3e76f6;
  }
  .hljs-attr{
    color: #e96900;
  }
  .hljs-string {
    color:#42b983
  }
  .hljs-name {
    font-weight: inherit;
  }
</style>

使用时

<template>
  <div>
    <markdown :markdown="markdowns"></markdown>
  </div>

</template>

<script>
import README from '@/assets/README.md'//md文件所在的目录
  export default{
    name: 'test',
    data() {
      return {
        markdowns:README
      }
    },
    created() {
      console.log(README)
    }
  }
</script>
<style>

</style>

支持高亮,可自己配值颜色

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值