我想使用Django的urlize函數連同django-markwhat的CommonMark過濾器。使用Django的URL與CommonMark
我想象這樣的事情:
{{ "http://example.com"|urlize|commonmark }}
其輸出<p><a href="http://example.com">http://example.com</a></p>
。這裏的問題在於已經標記爲共同標記的網址(例如<http://example.com>
)將在其周圍使用斜角括號進行渲染。
如果我申請urlize
commonmark
後,像這樣:
{{ "http://example.com"|commonmark|urlize }}
的urlize
功能不檢測URL中<p>http://example.com</p>
(和它在urlize
文檔提到,如預期的HTML,它不會工作輸入)。
我還沒有拿出一個解決方案,所以讓我知道你是否有任何想法。
我很困惑。 CommonMark不會將[自動鏈接](http://spec.commonmark.org/0.18/#autolinks)(帶有尖括號的鏈接)轉換爲正確的鏈接?他們不需要urlize過濾器。在我看來,像你的第一個例子應該工作得很好。它給出了什麼輸出? – Waylan
CommonMark的自動鏈接版本工作正常,這是正確的。在我的應用程序中,我甚至希望鏈接不被'<' and '>'包圍,轉換爲''標籤。我意識到這不是在CommonMark規範中,但網站通常會自動標記已識別的鏈接,一個示例實現是https://github.com/jch/html-pipeline – nnyby
我的第一個示例適用於未標記的鏈接, up鏈接,例如'http:// example.com'。它會打斷降價自動鏈接,比如'',在鏈接周圍加上多餘的括號,比如'<
http://example.com
>' – nnyby