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キー値説明
1RICHTEXT_WIDGET_CLASS‘mezzanine_pagedown.widgets.PageDownWidget’PageDown 用の Live 編集可能な Editor
2RICHTEXT_FILTER‘mezzanine_pagedown.filters.custom’PageDown 用のカスタム filter を設定
3RICHTEXT_FILTERS(‘RICHTEXT_FILTERS’,)2と同じ(複数指定可能)
4PAGEDOWN_MARKDOWN_EXTENSIONS(‘extra’,’codehilite’,’toc’)PageDown で使用する markdown 拡張プラグインの設定
5RICHTEXT_FILTER_LEVEL3filterのレベル(フィルターなし)
6PAGEDOWN_SERVER_SIDE_PREVIEWTrueサーバー側 Preview を使用する。

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 の設定は完了です。
以上です。

コメント