惟我獨尊 發表於 2019-7-29 17:15:00

angular 中引入 markdown

<p>ngx-markdown 是&nbsp;<code>Angular2+</code>&nbsp;的一个第三方库,它的主要功能是将md文件转换为HTML格式,并且支持语法高亮。</p>
<p>GITHUB地址:https://github.com/jfcere/ngx-markdown</p>
<h2>安装</h2>
<h3>1. 安装&nbsp;<code>ngx-markdown</code></h3>
<p>使用 <code>npm</code> 进行安装,在 `angular`项目目录中执行:</p>
<div class="cnblogs_code">
<pre>npm install ngx-markdown --save</pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;在应用中引入&nbsp;marked&nbsp;的支持.引入:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">scripts" : [</span>
    <span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">../node_modules/marked/lib/marked.js"//增加此句</span>
]</pre>
</div>
<p>&nbsp;</p>
<h3>&nbsp;2.&nbsp;安装语法高亮</h3>
<div class="cnblogs_code">
<pre>npm install prismjs --save</pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;为了使 <code>prism.js</code> 语法高亮可以正常执行,需要引入以下文件 :</p>
<div>
<div>
<ul>
<li>prism.js 的关键库文件, <code>node_modules/prismjs/prism.js</code></li>
<li>一个高亮主题, <code>node_modules/prismjs/themes</code></li>
<li>代码语言描述文件, <code>node_modules/prismjs/components</code> 文件</li>
</ul>
</div>
如果你使用的是&nbsp;<code>Angular Cli</code>&nbsp;构建工具,可以将下列语句添加到<code>.angular-cli.json</code>文件中:</div>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">styles": [</span>
<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">styles.css",</span>
+ <span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">../node_modules/prismjs/themes/prism-okaidia.css"</span>
<span style="color: rgba(0, 0, 0, 1)">],
</span><span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">scripts": [</span>
+ <span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">../node_modules/prismjs/prism.js",</span>
+ <span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">../node_modules/prismjs/components/prism-csharp.min.js", # c-sharp language syntax</span>
+ <span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">../node_modules/prismjs/components/prism-css.min.js" # css language syntax</span>
]</pre>
</div>
<h2>&nbsp;组件</h2>
</div>
<h3>&nbsp;有三种方式来将markdown文件渲染为HTML。</h3>
<p>分别是:</p>
<div class="cnblogs_code">
<pre>&lt;!-- static markdown --&gt;
&lt;markdown&gt;<span style="color: rgba(0, 0, 0, 1)">
# Markdown
</span>&lt;/markdown&gt;

&lt;!-- loaded from remote url --&gt;
&lt;markdown =<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">'path/to/file.md'" (error)="onError($event)"&gt;&lt;/markdown&gt;</span>

&lt;!-- variable binding --&gt;
&lt;markdown =<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">markdown"&gt;&lt;/markdown&gt;</span></pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;第三种, 是使用的Angular中的数据绑定。</p>
<h3>指令组件(Directive)</h3>
<div class="cnblogs_code">
<pre>&lt;!-- static markdown --&gt;
&lt;div markdown&gt;<span style="color: rgba(0, 0, 0, 1)">
# Markdown
</span>&lt;/div&gt;

&lt;!-- loaded from remote url --&gt;
&lt;div markdown =<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">'path/to/file.md'" (error)="onError($event)"&gt;&lt;/div&gt;</span>

&lt;!-- variable binding --&gt;
&lt;div markdown =<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">markdown"&gt;&lt;/div&gt;</span>&nbsp;</pre>
</div>
<h3>管道(Pipe)</h3>
<div class="cnblogs_code">
<pre>&lt;!-- chain `language` pipe with `markdown` pipe to convert typescriptMarkdown variable content --&gt;
&lt;div =<span style="color: rgba(128, 128, 128, 1)">"</span><span style="color: rgba(128, 128, 128, 1)">typescriptMarkdown | language : 'typescript' | markdown"&gt;&lt;/div&gt;</span></pre>
</div>
<h3>服务(Service)</h3>
<div class="cnblogs_code">
<pre>import { Component, OnInit } from <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 128, 0, 1)">@angular/core</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
import { MarkdownService } from </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 128, 0, 1)">ngx-markdown</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;

@Component({ ... })
export </span><span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> ExampleComponent implements OnInit() {
constructor(private markdownService: MarkdownService) { }

ngOnInit() {
    </span>// outputs: &lt;p&gt;I am using &lt;strong&gt;markdown&lt;/strong&gt;.&lt;/p&gt;<span style="color: rgba(0, 0, 0, 1)">
    console.log(this.markdownService.compile(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 128, 0, 1)">I am using __markdown__.</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">));
}
}</span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!<br>
【重要说明】本博文为个人学习记录,观点仅为个人见解,不代表技术领域的最终结论。撰写目的主要在于自我总结与经验分享,欢迎批评指正,本人将虚心改进。内容仅供参考,非专业建议,请理性判断。<br>
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014<br>
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/<br>
【Gitee地址】叫我+V :https://gitee.com/wjw1014<br><br><br>
来源:https://www.cnblogs.com/wjw1014/p/11265129.html
頁: [1]
查看完整版本: angular 中引入 markdown