ngx-markdown 是 Angular2+ 的一个第三方库,它的主要功能是将md文件转换为HTML格式,并且支持语法高亮。

GITHUB地址:https://github.com/jfcere/ngx-markdown

安装

1. 安装 ngx-markdown

使用 npm 进行安装,在 `angular`项目目录中执行:

npm install ngx-markdown --save

在应用中引入 marked 的支持.引入:

"scripts" : [
"../node_modules/marked/lib/marked.js" //增加此句
]

2. 安装语法高亮

npm install prismjs --save

为了使 prism.js 语法高亮可以正常执行,需要引入以下文件 :

  • prism.js 的关键库文件, node_modules/prismjs/prism.js
  • 一个高亮主题, node_modules/prismjs/themes
  • 代码语言描述文件, node_modules/prismjs/components 文件

如果你使用的是 Angular Cli 构建工具,可以将下列语句添加到.angular-cli.json文件中:

"styles": [
"styles.css",
+ "../node_modules/prismjs/themes/prism-okaidia.css"
],
"scripts": [
+ "../node_modules/prismjs/prism.js",
+ "../node_modules/prismjs/components/prism-csharp.min.js", # c-sharp language syntax
+ "../node_modules/prismjs/components/prism-css.min.js" # css language syntax
]

组件

有三种方式来将markdown文件渲染为HTML。

分别是:

<!-- static markdown -->
<markdown>
# Markdown
</markdown> <!-- loaded from remote url -->
<markdown [src]="'path/to/file.md'" (error)="onError($event)"></markdown> <!-- variable binding -->
<markdown [data]="markdown"></markdown>

第三种, 是使用的Angular中的数据绑定。

指令组件(Directive)

<!-- static markdown -->
<div markdown>
# Markdown
</div> <!-- loaded from remote url -->
<div markdown [src]="'path/to/file.md'" (error)="onError($event)"></div> <!-- variable binding -->
<div markdown [data]="markdown"></div> 

管道(Pipe)

<!-- chain `language` pipe with `markdown` pipe to convert typescriptMarkdown variable content -->
<div [innerHTML]="typescriptMarkdown | language : 'typescript' | markdown"></div>

服务(Service)

import { Component, OnInit } from '@angular/core';
import { MarkdownService } from 'ngx-markdown'; @Component({ ... })
export class ExampleComponent implements OnInit() {
constructor(private markdownService: MarkdownService) { } ngOnInit() {
// outputs: <p>I am using <strong>markdown</strong>.</p>
console.log(this.markdownService.compile('I am using __markdown__.'));
}
}

最新文章

  1. css实现小三角(原理)
  2. 获取 view所在的VC
  3. Intellij idea 乱码问题(英文操作系统)
  4. php查询IP地址归属等信息
  5. topsort
  6. 火狐和IE的window.event对象详解(转载)
  7. data pump(数据泵)
  8. HEVC与VP9编码效率对比
  9. MicroPython+北斗+GPS+GPRS:TPYBoardv702短信功能使用说明
  10. android 选项卡TabHost
  11. keil4编译Error: User Command terminated, Exit-Code = 1解决
  12. windows下编译Grafana前端
  13. 解决VS2017不连接visual studio emulator for android
  14. linux三剑客之grep
  15. ESB简介及选型(转) http://www.cnblogs.com/skyme/archive/2012/08/06/2623414.html
  16. 图解JAVA参数传递
  17. 在IntelliJ IDEA中使用VIM
  18. Java 学习笔记提高篇
  19. (原)MobileNetV1
  20. 利用Python的collections包下Counter的类统计每个数据出现的个数

热门文章

  1. 【Linux】解决Linux服务器内存不足问题
  2. Django学习笔记3
  3. 洛谷P1170 兔八哥与猎人 欧拉函数的应用
  4. 傻傻分不清之 Cookie、Session、Token、JWT
  5. CF399B Red and Blue Balls
  6. Java-重载和重写区别剖析
  7. MS yc
  8. MySql 中关键字 case when then else end 的用法
  9. 网页前端导出CSV,Excel格式文件
  10. leetcode 198 House Robber I