【django】ブログのチュートリアルを構築する(3)——markdownおよびhighlight
一.作業環境
ubuntu14.04
python2.7 + django1.8
二.markdown君の文章
1.markdown 2のインストール
2.markdown 2の適用
a.アプリケーションのディレクトリに入り、次の操作を行います.
b.custom_を修正するmarkdown.py:
c.テンプレートにmarkdownを追加する:
これで、markdownの文法を使うことができます~
しかし、コードのハイライト機能はまだありません.自分で追加する必要があります.ここではhighlightを使用します.js:
3.コードハイライトを追加
私たちにはhtmlのヘッダ追加:
ここでcdnを直接使うのは便利です.もちろん、自分で公式サイトに行ってローカルにダウンロードすることもできます.
三.バックグラウンドにmarkdown機能とプレビューを追加
1.pagedownのインストール
2.setting.の修正py、アプリケーションの追加
3.formを設定する.py
エディタが必要なformで設定します.データベーステーブルArticleを例にとると、我々のBlogのaapではmodelsでArticleテーブルが定義されています.
formsを作成する.py、次のように追加します.
4.adminを設定する.py
修正pyは次のとおりです.
これで、楽屋に行くとmarkdownのプレビューが见えます~~
ubuntu14.04
python2.7 + django1.8
二.markdown君の文章
1.markdown 2のインストール
# markdown2
pip install markdown2
2.markdown 2の適用
a.アプリケーションのディレクトリに入り、次の操作を行います.
$ mkdir templatetags
$ touch __init__.py
$ touch custom_markdown.py
b.custom_を修正するmarkdown.py:
import markdown2
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter(is_safe=True)
@stringfilter
def custom_markdown(value):
return mark_safe(markdown2.markdown(force_text(value), extras=["fenced-code-blocks", "cuddled-lists", "metadata", "tables", "spoiler"]))
c.テンプレートにmarkdownを追加する:
{% extends "base.html" %} {% load custom_markdown %} {% block content %} …… <p> {{ post.content|custom_markdown }} </p> …… {% endblock %}
これで、markdownの文法を使うことができます~
しかし、コードのハイライト機能はまだありません.自分で追加する必要があります.ここではhighlightを使用します.js:
3.コードハイライトを追加
私たちにはhtmlのヘッダ追加:
<link rel="stylesheet" href="http://cdn.bootcss.com/highlight.js/8.0/styles/monokai_sublime.min.css">
<script src="http://cdn.bootcss.com/highlight.js/8.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
ここでcdnを直接使うのは便利です.もちろん、自分で公式サイトに行ってローカルにダウンロードすることもできます.
三.バックグラウンドにmarkdown機能とプレビューを追加
1.pagedownのインストール
pip install django-pagedown
2.setting.の修正py、アプリケーションの追加
INSTALLED_APPS = (
...
'pagedown',
...
)
3.formを設定する.py
エディタが必要なformで設定します.データベーステーブルArticleを例にとると、我々のBlogのaapではmodelsでArticleテーブルが定義されています.
formsを作成する.py、次のように追加します.
from models import Article
from pagedown.widgets import AdminPagedownWidget
from django import forms
class ArticleForm(forms.ModelForm):
content = forms.CharField(widget=AdminPagedownWidget())
class Meta:
model = Article
4.adminを設定する.py
修正pyは次のとおりです.
from django.contrib import admin
from blog.models import Article
from forms import ArticleForm
class ArticleAdmin(admin.ModelAdmin): form = ArticleForm admin.site.register(Article, ArticleAdmin)
これで、楽屋に行くとmarkdownのプレビューが见えます~~