簡體   English   中英

markdown沒有正確轉換為html

[英]markdown is not being converted properly to html

我在數據庫(sqlite)的某個表列中存儲了一些markdown文本,並試圖將其轉換為markdown。 這是我運行這兩個命令( .mode lineSELECT content FROM post LIMIT 1SELECT content FROM post LIMIT 1得到的一個表格單元格全部內容之一的示例。

content = **Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Etiam a arcu eget tortor venenatis laoreet. In hac habitasse platea dictumst. Nunc nec ipsum eu massa pharetra scelerisque. Maecenas accumsan ex nisl, ac condimentum lorem porttitor a. Nullam posuere ligula ac mauris cursus mattis.

Proin ut hendrerit lorem. Donec imperdiet risus in dui vulputate, vitae volutpat arcu ultricies. Quisque et pellentesque lectus, eutempus nisi. Sed vel felis nibh. Duis eu lorem non odio blandit ornare. Mauris facilisis, urna nec condimentum sodales, nulla nisi aliquam ante, eget pulvinar nibh sem ut ipsum.

Pellentesque vel justo ut felis eleifend tincidunt. Pellentesque vel porttitor nisl. Fusce eu ligula id arcu volutpat elementum quis quis arcu.

```python
@main.route('/<slug>')
def show_post(slug):
    entities = (Post.title, Post.created_at, Post.cover_image,
                Post.content)
    post = Post.query.with_entities(*entities) \
        filter(Post.published == 1). \
        filter(Post.slug == slug).first()
    if not post:
        abort(404)
```

當我獲取該內容時,通過嘗試以下代碼通過我的python shell進行嘗試

from markdown import markdown
s = '''**Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Etiam a arcu eget tortor venenatis laoreet. In hac habitasse platea dictumst. Nunc nec ipsum eu massa pharetra scelerisque. Maecenas accumsan ex nisl, ac condimentum lorem porttitor a. Nullam posuere ligula ac mauris cursus mattis.

Proin ut hendrerit lorem. Donec imperdiet risus in dui vulputate, vitae volutpat arcu ultricies. Quisque et pellentesque lectus, eutempus nisi. Sed vel felis nibh. Duis eu lorem non odio blandit ornare. Mauris facilisis, urna nec condimentum sodales, nulla nisi aliquam ante, eget pulvinar nibh sem ut ipsum.

Pellentesque vel justo ut felis eleifend tincidunt. Pellentesque vel porttitor nisl. Fusce eu ligula id arcu volutpat elementum quis quis arcu.

```python
@main.route('/<slug>')
def show_post(slug):
    entities = (Post.title, Post.created_at, Post.cover_image,
                Post.content)
    post = Post.query.with_entities(*entities) \
        filter(Post.published == 1). \
        filter(Post.slug == slug).first()
    if not post:
        abort(404)
```
'''
markdown(s)

我得到以下輸出

<p><strong>Lorem ipsum</strong> dolor sit amet, consectetur adipiscing elit. Etiam a arcu eget tortor venenatis laoreet. In hac hab
itasse platea dictumst. Nunc nec ipsum eu massa pharetra scelerisque. Maecenas accumsan ex nisl, ac condimentum lorem porttitor a. N
ullam posuere ligula ac mauris cursus mattis.</p>\n<p>Proin ut hendrerit lorem. Donec imperdiet risus in dui vulputate, vitae volutp
at arcu ultricies. Quisque et pellentesque lectus, eutempus nisi. Sed vel felis nibh. Duis eu lorem non odio blandit ornare. Mauris
facilisis, urna nec condimentum sodales, nulla nisi aliquam ante, eget pulvinar nibh sem ut ipsum.</p>\n<p>Pellentesque vel justo ut
 felis eleifend tincidunt. Pellentesque vel porttitor nisl. Fusce eu ligula id arcu volutpat elementum quis quis arcu.</p>\n<p><code
>python\n@main.route('/&lt;slug&gt;')\ndef show_post(slug):\n    entities = (Post.title, Post.created_at, Post.cover_image,\n
         Post.content)\n    post = Post.query.with_entities(*entities)         filter(Post.published == 1).         filter(Post.slug
 == slug).first()\n    if not post:\n        abort(404)</code></p>

一切似乎都很好,直到最后一部分,我期望像<pre><code class="lang-python">...</code></pre> ,如此處解釋的那樣其中帶有...代表python代碼在標簽之間, 但是卻得到了<p><code>...</code></p>

可能是什么原因造成的,是markdown庫還是其他東西?

柵欄代碼塊不是標准的Markdown 因此,您需要啟用 擴展以使其能夠正確解析:

markdown(s, extensions=['fenced_code'])

呈現以下輸出:

<p><strong>Lorem ipsum</strong> dolor sit amet, consectetur adipiscing elit. Etiam a arcu eget tortor venenatis laoreet. In hac habitasse platea dictumst. Nunc nec ipsum eu massa pharetra scelerisque. Maecenas accumsan ex nisl, ac condimentum lorem porttitor a. Nullam posuere ligula ac mauris cursus mattis.</p>
<p>Proin ut hendrerit lorem. Donec imperdiet risus in dui vulputate, vitae volutpat arcu ultricies. Quisque et pellentesque lectus, eutempus nisi. Sed vel felis nibh. Duis eu lorem non odio blandit ornare. Mauris facilisis, urna nec condimentum sodales, nulla nisi aliquam ante, eget pulvinar nibh sem ut ipsum.</p>
<p>Pellentesque vel justo ut felis eleifend tincidunt. Pellentesque vel porttitor nisl. Fusce eu ligula id arcu volutpat elementum quis quis arcu.</p>
<pre><code class="python">@main.route('/&lt;slug&gt;')
def show_post(slug):
    entities = (Post.title, Post.created_at, Post.cover_image,
                Post.content)
    post = Post.query.with_entities(*entities) \
        filter(Post.published == 1). \
        filter(Post.slug == slug).first()
    if not post:
        abort(404)
</code></pre>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM