代码高亮插件syntaxhighlighter在angualr中的使用

首先官网下载syntaxhighlighter对应的文件,下载之后放到项目中。

第二:在index.html中引入需要的文件

  <link rel="stylesheet" href="assets/syntaxhighlighter-3.0.83/styles/shCore.css">
  <link rel="stylesheet" href="assets/syntaxhighlighter-3.0.83/styles/shThemeDefault.css">
  <script src="assets/syntaxhighlighter-3.0.83/scripts/XRegExp.js"></script>
  <script src="assets/syntaxhighlighter-3.0.83/scripts/shCore.js"></script>
  <script src="assets/syntaxhighlighter-3.0.83/scripts/shBrushJava.js"></script>

第三:在angualr.json中引入(不确定打包后是否还需要引入)

 "styles": [
      "src/styles.scss",
      "node_modules/ng-zorro-antd/ng-zorro-antd.min.css",
      "src/assets/syntaxhighlighter-3.0.83/styles/shCore.css",
      "src/assets/syntaxhighlighter-3.0.83/styles/shThemeDefault.css"
 ],
 "scripts": [
      "src/assets/syntaxhighlighter-3.0.83/scripts/shCore.js",
      "src/assets/syntaxhighlighter-3.0.83/scripts/shBrushJava.js"
 ]

在使用的组件的ts中声明SyntaxHighlighter,最外层与import同级

declare var SyntaxHighlighter: any;

在执行的地方使用以下方法

SyntaxHighlighter.defaults.toolbar = false;
SyntaxHighlighter.defaults['quick-code'] = false;
// SyntaxHighlighter.all();
SyntaxHighlighter.highlight();//异步情况下

虽然highlight()方法是针对异步的问题渲染,但仍存在有时不渲染问题,所以建议在请求到数据后用setTimeOut方法给其一个异步延时,时间设置为0即可。

最后在使用的html中加入以下代码即可

<pre class="brush: java;">{{sdk.code}}</pre>

如有问题,望留言指正,期待与您的技术交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值