1

I am trying to use a HighlightJS directive on <pre> blocks rendered by a Markdown directive.

Here is an plunker recreating the problem:
http://plnkr.co/edit/qZlMkjNZglV453caNphy?p=preview

In this example:

<btf-markdown>
#Markdown directive
<pre hljs>

    angular.forEach($scope.items,function(item){
      console.log(item);
    });
</pre>
</btf-markdown>

I would expect the <pre> block to get parsed by hljs but does not.

Do I have to manually invoke the compilation of the inner directive?

4

2 回答 2

1

btford.markdownelement.html(html);的内部覆盖hljs

所以而不是:

var html = converter.makeHtml(element.text());
element.html(html);

我想你更喜欢:

var html = converter.makeHtml(element.html());
element.html(html);

切换element.text()_element.html()

因此,您正在转换整个 html 元素(包括您的hljs- 不在 中element.text())。

这是更新的 plunker:http ://plnkr.co/edit/cURJ1QRfJRheOxTvYc1p?p=preview

于 2013-11-13T16:48:07.530 回答
0

我想指出基于 btford 工作的Angular Marked 。

  • 您可以将其用作服务,这意味着您可以解析控制器、指令中的字符串,以进行后续处理,
  • 它支持一些Github Flavored Markdown,可以轻松创建表,请参见此处
于 2014-05-21T13:50:15.967 回答