Django MarkdownX with MathJax

Feb. 15, 2018, 9:52 a.m. edited Sept. 15, 2018, 4:51 p.m.

#Python  #Django 

$$ \def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}} $$

Django MarkdownX

この前ついに Django MarkdownX が Django 2.0 に対応しました!!!すごい!!!!

基本的な使い方としては,ただ

としてやって,それから context['object']Article オブジェクトを渡しているような状態で,

とするだけで,きれいに表示されます.

ああ,Admin としては

のようにしてやれば,Markdown の表示結果を見ながら編集できます.すごい!!!

Admin で MathJax を使う

さて,ブログを書いていると \(\LaTeX\) は欠かせないですが,これを Web で実現してくれるのが MathJax です.これは普通に HTML 内で読み込んでやれば良いのですが,Admin の場合は面倒です.このためだけに Admin のテンプレートをオーバーライドしたくない(したい人はその方がきれいなので,その方向で).

そこで,モデルのプロパティのようにして無理やり MathJax のコードを管理画面に入れて表示してしまおうという話です.先程の Admin のコードを以下のように書き換えます.

これで Article を管理画面で編集中に 10 秒に 1 回は処理が走って \(\LaTeX\) にしてくれます.

注意

行内では バックスラッシュバックスラッシュカッコ\LaTeXバックスラッシュバックスラッシュカッコ (-> \(\LaTeX\)),行では,
ドルドル\LaTeXドルドル
->
$$\LaTeX$$
としないと認識されないので注意です.