Django個人サイトにMarkdown編集機能を追加
Django個人サイトにMarkdown編集機能を追加
Markdownは本当にいいものですね.
Markdownはテキスト言語で、それを使って書いたもので、簡単ではっきりしたスタイルを持っています.textをhtmlまたはxhtmlに変換できます.htmlに比べて文法が簡単で、基本的に簡単なドキュメントを書けば手に入ることができます.
markdownのインストール
これはmarkdownをhtmlに変換するツールと見なすことができる.markdownテキストをhtml形式でページに表示するには、次のdjango-markdown-deuxが必要です.
タイトルの変換に成功したのは確かだが、表のサポートはよくないようだ.とりあえずやってみます.
テスト
簡単なページでArticleクラスの結果を返します.
ページ:
バックグラウンド:
django-markdown-deuxの使用
記事を見つけて
ページにモジュールを読み込む
はい、これでいいです.
テスト:ファイルをWebページに表示します.
表を描きます.
table
column
python
2.7.x
django
1.9.x
次のコードを通じて、私はこの文章を書きました.mdファイルをページにロードします.表示はほぼ正常ですが、表に問題があります.
先にここに着いて、後でゆっくり最適化します.
リファレンス
django-markdownインストールソースおよびサンプルdjango-markdown document
Djangoでmarkdownを使用する
Markdownは本当にいいものですね.
Markdownはテキスト言語で、それを使って書いたもので、簡単ではっきりしたスタイルを持っています.textをhtmlまたはxhtmlに変換できます.htmlに比べて文法が簡単で、基本的に簡単なドキュメントを書けば手に入ることができます.
markdownのインストール
これはmarkdownをhtmlに変換するツールと見なすことができる.markdownテキストをhtml形式でページに表示するには、次のdjango-markdown-deuxが必要です.
sudo sudo pip install markdown
を実行します.Markdown言語をhtmlに変換するライブラリです.テスト:cslzy (deploy *) lazy $ python
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from markdown import markdown
>>> test = '''
... #This is a test header
... ##The second line
... table|column
... ----|----
... python|2.7.x
... django|1.9.x
... ##Is this work?
... '''
>>> test
'
#This is a test header
##The second line
table|column
----|----
python|2.7.x
django|1.9.x
##Is this work?
'
>>> markdownText = markdown(test)
>>> markdownText
u'This is a test header
The second line
table|column
----|----
python|2.7.x
django|1.9.x
Is this work?
'
>>>
タイトルの変換に成功したのは確かだが、表のサポートはよくないようだ.とりあえずやってみます.
テスト
簡単なページでArticleクラスの結果を返します.
ページ:
<! --show my articles -->
<html>
<head>
<title>Show Articlestitle>
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'article/css/main.css' %}" type="text/css">
head>
<body>
<h1 align="center">Title: <strong>{{ title }}strong>h1>
<h5>Category: <strong>{{ category }}strong>h5>
<h5>Date&Time: <strong>{{ date }}strong>h5>
<br/>
<h2>Contenth2>
<strong>{{ content }}strong>
body>
html>
バックグラウンド:
def detail(request, args):
try:
article_id = int(args)
except:
return HttpResponse("Invalid Article Number...")
article_list = Article.objects.all()
if article_id not in range(1, len(article_list)+1):
return HttpResponse("Invalid Article Number...")
atc = Article.objects.get(id=article_id)
template = loader.get_template('show_atc.html')
#return_dict = {'title': atc.title, 'category': atc.category, 'date': atc.date_time, 'content': atc.content}
return_dict = {'title': atc.title, 'category': atc.category, 'date': atc.date_time, 'content': markdown(atc.content)} # html
#return HttpResponse(template.render(return_dict, request)) #
return HttpResponse(markdown(atc.content))
{{ content }}
を使用すると、変換されたhtml文がページに直接出力されます.django-markdown-deuxの使用
記事を見つけて
django-markdown-deux
をインストールして、pip install django-markdown-deux
settings.pyで追加INSTALLED_APPS = [
...
'markdown_deux',
...
]
ページにモジュールを読み込む
{% load markdown_deux_tags %}
...
{{ entry.body|markdown }}
はい、これでいいです.
テスト:ファイルをWebページに表示します.
表を描きます.
table
column
python
2.7.x
django
1.9.x
次のコードを通じて、私はこの文章を書きました.mdファイルをページにロードします.表示はほぼ正常ですが、表に問題があります.
def detail(request, args):
# detect if args is well-format
try:
article_id = int(args)
except:
return HttpResponse("Invalid Article Number...")
article_list = Article.objects.all()
if article_id not in range(1, len(article_list)+1):
return HttpResponse("Invalid Article Number...")
atc = Article.objects.get(id=article_id)
template = loader.get_template('show_atc.html')
# show markdown text
mfile = open('./../../django-markdown-deux.md', 'r').read()
atc.content = mfile
return_dict = {'title': atc.title, 'category': atc.category, 'date': atc.date_time, 'content': atc.content}
return HttpResponse(template.render(return_dict, request))
先にここに着いて、後でゆっくり最適化します.
リファレンス
django-markdownインストールソースおよびサンプルdjango-markdown document
Djangoでmarkdownを使用する