jinglei
jinglei

Reputation: 3363

python-markdown doesn't recognize code block?

I'm working on a script to transfer Markdown to HTML, I've tried both markdown and markdown2. As I use MathJax to make it able to show math formulas in LaTex, I found markdown is better for me than markdown2. However, both of them don't recognize code blocks in ```. My code is written in Python.

My Markdown code is:

计算香农熵的函数:

```

from math import log

def calcShannonEnt(dataSet):
   numEntries = len(dataSet) #类别个数
   labelCount = {}
   for featVec in dataSet: #对每一条数据
       currentLabel = featVec[-1] #currentLabel为当前数据的类别
       if currentLabel not in labelCount.keys(): #计数
           labelCount[currentLabel] = 0
       labelCount[currentLabel] += 1
   shannonEnt = 0.0
   for key in labelCount.keys():
       prob = float(labelCount[key]) / float(numEntries)
       shannonEnt -= prob * float(log(prob,2))#计算香农熵
   return shannonEnt

```


使用要求:

- 调用的数据必须储存在列表中,且所有列表元素有相同长度
- 列表元素的最后一列为类别

[sorted函数及operator.itemgetter函数的用法详解](http://blog.csdn.net/alvine008/article/details/37757753

I hope those Chinese characters don't bother you. The HTML code is :

<p>计算香农熵的函数:</p>
<pre><code>```

from math import log

def calcShannonEnt(dataSet):
   numEntries = len(dataSet) #类别个数
   labelCount = {}
   for featVec in dataSet: #对每一条数据
       currentLabel = featVec[-1] #currentLabel为当前数据的类别
       if currentLabel not in labelCount.keys(): #计数
           labelCount[currentLabel] = 0
       labelCount[currentLabel] += 1
   shannonEnt = 0.0
   for key in labelCount.keys():
       prob = float(labelCount[key]) / float(numEntries)
       shannonEnt -= prob * float(log(prob,2))#计算香农熵
   return shannonEnt

```


使用要求:

- 调用的数据必须储存在列表中,且所有列表元素有相同长度
- 列表元素的最后一列为类别

[sorted函数及operator.itemgetter函数的用法详解](http://blog.csdn.net/alvine008/article/details/37757753
</code></pre>

What's the problem?

Upvotes: 8

Views: 1880

Answers (1)

jinglei
jinglei

Reputation: 3363

With the help of @Waylan the problem has been solved perfectly. It is because I didn't enable the extensions. See extensions

Now it is right:

html_txt = markdown.markdown(post.body_markdown, extensions=['fenced_code'])

Upvotes: 11

Related Questions