Mezzanine PageDown をインストールした後に、codehilite の設定をしました。
その際の手順を備忘として残します。
参考サイト
前提
1. Mezzanine PageDown がインストール済 であること
Docs / Mezzanine / A Mezzanine Tutorial, Take 2 | Rod's Tech の記載内容でインストールを実行しました。
2. 環境情報
-
OS
- CentOS release 6.7 (Final)
-
Python 周辺
- Django (1.8.8)
- Mezzanine (4.0.1)
- mezzanine-pagedown (0.9)
- Pygments (2.0.2)
- Python 2.7.8
設定の手順
1. Pygments をインストールする
sudo pip install Pygments
おそらく、Mezzanine PageDown のインストール時に芋づるでインストールされるかと思います。
2. settings.py に 以下の設定を追加する
Mezzanine PageDown の設定として以下を追加します。
#####################
# PAGEDOWN SETTINGS #
#####################
RICHTEXT_WIDGET_CLASS = 'mezzanine_pagedown.widgets.PageDownWidget'
RICHTEXT_FILTER = 'mezzanine_pagedown.filters.custom'
RICHTEXT_FILTERS = (RICHTEXT_FILTER,)
PAGEDOWN_MARKDOWN_EXTENSIONS = ('extra','codehilite','toc')
RICHTEXT_FILTER_LEVEL = 3
PAGEDOWN_SERVER_SIDE_PREVIEW = True
- 設定値の説明
NO | キー値 | 値 | 説明 |
---|---|---|---|
1 | RICHTEXT_WIDGET_CLASS | ‘mezzanine_pagedown.widgets.PageDownWidget’ | PageDown 用の Live 編集可能な Editor |
2 | RICHTEXT_FILTER | ‘mezzanine_pagedown.filters.custom’ | PageDown 用のカスタム filter を設定 |
3 | RICHTEXT_FILTERS | (‘RICHTEXT_FILTERS’,) | 2と同じ(複数指定可能) |
4 | PAGEDOWN_MARKDOWN_EXTENSIONS | (‘extra’,’codehilite’,’toc’) | PageDown で使用する markdown 拡張プラグインの設定 |
5 | RICHTEXT_FILTER_LEVEL | 3 | filterのレベル(フィルターなし) |
6 | PAGEDOWN_SERVER_SIDE_PREVIEW | True | サーバー側 Preview を使用する。 |
- 補足
4
には、以下の記事記載の拡張が使えます。
Markdown の Extention に対する詳細な説明が記載されています。
PythonでMarkdownをGFM的に使う方法
3. url.py に pagedown preview の URL 定義を追加する。
管理画面で投稿時に、preview 表示するための URL 設定になります。
編集時に、非同期で HTTP リクエストが送信されますが、その的になります。
urlpatterns += patterns('',
("^pagedown/", include(mezzanine_pagedown.urls)),
- 補足
の直下に追記しないと効かないので注意です。 理由は忘れてしまいましたが、
urlpatterns += patterns('',
include(mezzanine_pagedown.urls)
の前に記載はしておいたほうがいいのかと思います。
4. codehilite.css を生成する。
4.1. mezzanine の<INSTALL_APPS>
ディレクトリに移動
cd <INSTALL_APPS>
4.2. pygments_styles コマンドを実行
python manage.py pygments_styles
以下の内容が標準出力されます。
Usage: ./manage.py pygments_styles <scheme_name>
Available color schemes:
manni
igor
xcode
vim
autumn
vs
rrt
native
perldoc
borland
tango
emacs
friendly
monokai
paraiso-dark
colorful
murphy
bw
pastie
paraiso-light
trac
default
fruity
全部試していないですが、23種類使えるようです。
4.3. css を出力
python manage.py pygments_styles monokai > static/css/codehilite.css
- 補足
collectstatic、 collecttemplates コマンドを実行、未実行かで配置先は異なるかと思います。
5. スタイルシートへのリンクを base.html に追記
<link rel="stylesheet" href="{% static "css/codehilite.css" %}">
これで、codehilite の設定は完了です。
以上です。
コメント