LoginSignup
12
11

More than 5 years have passed since last update.

django テンプレートで markdown から html へ変換する

Last updated at Posted at 2014-05-18

始まり

Djangoで、Qiitaの記事を表示するWebアプリケーションを作っていた。

QiitaのAPIでは、jsonで記事を取得すると、
HTMLかMarkdownかどちらかで文章をとってこれる。

それをDjangoでのテンプレートで表示したかった。

しかし、Djangoのセキュリティがきつく、htmlを埋め込めない。

そこで、markupをhtmlに変換して埋め込む作戦に出た。

調べると、
INSTALL_APPにdjango.contrib.markupを追加して、
{% contents | markdown %}
のように、markdown文字列に、markdownフィルタをかけることで、htmlに変換してくれることが分かった。

が、実行してみると、
django.contrib.markup
がモジュールに存在しないというエラー

バージョン1.6のDjangoには、markupが入っていないみたいだった。

ということで、別の方法をしらべると、django-markdown-deuxというモジュールで、同じことができることが分かった。
セキュリティ上、どうなのかわからないが、とりあえず、動かしたいので、やってみることにした。

以下手順

django-markdown-deuxのインストール

pipを使ってインストールした

pip install django-markdown-deux

INSTALL_APPにdjango-markdown-deuxを設定

settings.py
   INSTALL_APP = (
   ...
   'markdown_deux',
   ...
   )

テンプレートファイルで、フィルタをかける

   {% load markdown_deux_tags %}
   ...
   {{ contents | markdown }}
   ...

これで、変換することができた。

以上

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11