9

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?

2
  • 3
    Did you enable the extension? It is not enabled by default as fenced code blocks are not a standard Markdown feature. Perhaps some code showing how you called Python-Markdown would provide us with something we can help you with. Commented Feb 10, 2016 at 19:59
  • Yeah. It is because of the extension. I've solved the problem. Thanks a lot! Commented Feb 11, 2016 at 8:42

1 Answer 1

12

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'])
Sign up to request clarification or add additional context in comments.

1 Comment

If you are interested in command line: these lines worked: ___ python3 -m markdown -x fenced_code psql.md > psql.html ___ and ___ markdown_py -x fenced_code psql.md > psql.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.