django 簡易博客開發 5 markdown支持、代碼高亮、gravatar頭像服務


上一篇博客介紹了comments庫使用及ajax支持,現在blog已經具備了基本的功能,但是只能發表文字,不支持富文本編輯。今天我們利用markdown添加富文本支持。

markdown語法說明: 

推薦第三個,可以直接在線編輯markdown文檔。

django添加markdown支持

首先需要安裝markdown  安裝說明 : http://daringfireball.net/projects/markdown/

然后添加 django.contrib.markup 到 你的  INSTALLED_APPS 

現在在template添加  {% load markup %}

然后在你需要使用markdwon解析的地方更改為

{{ blog.content|markdown }}

下次添加博客的時候使用markdown語法書寫,再次查看就能看到效果了

django 博客代碼高亮

代碼高亮工具有好多種 最常用的有syntaxhighlighter、Pygments,今天我們就來用Pygments實現代碼高亮

首先安裝pygments軟件,使用如下代碼:

sudo apt-get install python-pygments # ubuntu 

sudo yum install python-pygments # fedora 

然后運行如下命令

pygmentize -S default -f html -a .codehilite > code.css

現在你會在在你的目錄下找到code.css文件 放入css文件夾 在html中引入

 

{{ blog.content|markdown }}

 

改為

{{ blog.content|markdown:'codehilite' }}

添加博客的時候這樣書寫代碼

    :::python
    print "hello world!"

注意:markdown的語法要求 代碼前空四個空格 :::python聲明是python代碼 

 

gravatar頭像服務

Gravatar(Globally Recognized Avatar的縮寫) 是一項用於提供在全球范圍內使用的頭像服務。只要你在Gravatar的服務器上上傳了你自己的頭像,你便可以在其他任何支持Gravatar的博客、論壇等地方使用它。

我們將在評論種添加頭像顯示,讓我們的評論更豐富一些

使用方法: 首先在sblog目錄下新建目錄 templatetags

然后新建文件gravatar.py  

# -*- coding: utf-8 -*-
### gravatar.py ###############
### place inside a 'templatetags' directory inside the top level of a Django app (not project, must be inside an app)
### at the top of your page template include this:
### {% load gravatar %}
### and to use the url do this:
### <img src="{% gravatar_url 'someone@somewhere.com' %}">
### or
### <img src="{% gravatar_url sometemplatevariable %}">
### just make sure to update the "default" image path below

from django import template
import urllib
import hashlib

register = template.Library()


class GravatarUrlNode(template.Node):
    def __init__(self, email):
        self.email = template.Variable(email)

    def render(self, context):
        try:
            email = self.email.resolve(context)
        except template.VariableDoesNotExist:
            return ''

        default = "http://127.0.0.1:8000/static/img/defaultavatar.png"
        size = 40

        gravatar_url = "http://www.gravatar.com/avatar/" + hashlib.md5(email.lower()).hexdigest() + "?"
        gravatar_url += urllib.urlencode({'d': default, 's': str(size)})

        return gravatar_url


@register.tag
def gravatar_url(parser, token):
    try:
        tag_name, email = token.split_contents()

    except ValueError:
        raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]

    return GravatarUrlNode(email)

其中

default = "http://127.0.0.1:8000/static/img/defaultavatar.png"

是我設置的默認頭像鏈接,可以自行替換成你自己的

在template種引入

{% load gravatar %}

在需要顯示頭像的地方加入

<img src="{% gravatar_url 'someone@somewhere.com' %}">

例如

<img class="gravatar" src="{% gravatar_url comment.user_email %}">

現在就完成了。

最后源代碼可以在  https://github.com/goodspeedcheng/sblog 可以看一下 希望大家把錯誤的地方提出糾正一下。

                                                                                                                                                       謝謝

擴展閱讀: https://docs.djangoproject.com/en/1.4/

推薦 Django 最佳實踐 - 中文版  https://github.com/brantyoung/zh-django-best-practices/blob/master/readme.rst/

ps: 大四學生求實習 郵箱: cacique1103#gmail.com

django建議博客開發系列到這就算是結束了,剩下的大家自由發揮吧。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM