使用markdown及highlight
一、markdown
安装markdown2
pip install markdown2
应用markdown2
进入blog APP,创建templatetags文件夹,在文件夹内创建__init__.py,custom_markdown.py
修改custom_markdown.py
import markdown2
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_unicode
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_unicode(value),
extras=['code-friendly',
'fenced-code-blocks']
))
在模板中添加markdown:
{% extends "base.html" %}
{% load custom_markdown %} {% block main%}
<p>
{{ post.content|custom_markdown }}
</p>
{% endblock %}
现在我们可以使用markdown的语法了,如果需要代码高亮,我们需要使用highlight.js
二、代码高亮
下载highlight.js
官网地址https://highlightjs.org/,选择你需要的语言,下载即可。
使用highlight.js
<link rel="stylesheet" href="/static/highlight/styles/monokai.css">
<script src="/static/highlight/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
现在浏览,代码可以高亮显示了。
三、后台添加markdown功能,可以用pagedown
安装pagedown
pip install django-pagedown
修改setting.py,添加应用
INSTALLED_APPS = (
...
'pagedown',
)
设置form.py
from django import forms
from pagedown.widgets import AdminPagedownWidget
from models import Article class ArticleForm(forms.ModelForm):
content = forms.CharField(widget=AdminPagedownWidget(), required=False,
label='') class Meta:
model = Article
fields = '__all__'
设置admin.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了
使用markdown及highlight的更多相关文章
- github page+jekyll搭博客初体验
div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 10px; padding ...
- [转]The Best Plugins for Sublime Text
Source: http://ipestov.com/the-best-plugins-for-sublime-text/ Good day, everyone! I tried to collect ...
- (转)rvm安装与常用命令
rvm是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换. https://rvm.io/ 如果你打算学习ruby/rails, rvm是必不可少的工具之一. 这里所有的命令都是再用户 ...
- 最好的Sublime Text插件集合
阅读目录 WebInspector Emmet Git GitGutter & Modific Sublimall AllAutocomplete SublimeREPL DocBlockr ...
- React项目(一):markdown编辑器
在之前的React官网教程中,提到了用Remarkable为插件的markdown评论框.现在就来正儿八经地用另外一个插件marked.js做一个markdown编辑器吧! 准备工作 或许在做之前,应 ...
- 【四】搭建Markdown的编辑器
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- [译文]选择使用正确的 Markdown Parser
以下客座文章由Ray Villalobos提供.在这篇文章中Ray将要去探索很多种不同的Markdown语法.所有的这些MarkDown变种均提供了不同的特性,都超越传统的Markdown语法,却又相 ...
- markdown命令语法
markDown作为一款很好用的文档编写工具,具体的用法如下: # Markdown syntax---**粗体***斜体****粗体加斜体*** > 引用>> 二级引用 # 一级标 ...
随机推荐
- linux 命令 之chomd
chmod用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. 1. 文字设定法 语法:chmo ...
- 窥探JVM内存分配和回收的过程
一.环境 JDK 垃圾收集器 是否启用TLAB 通用JVM参数(堆内存分配见下图) 1.6.0_65 Serial + Serial Old 否 -Xms20m -Xmx20m -Xmn10m -XX ...
- 北京Uber优步司机奖励政策(3月5日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 惊艳的随机化方法 -World Search (homework-04)
homeword04-word search 0. 摘要 本次作业,要求完成一个word search的程序,具体要求是: 输入:一个包含20-60个单词的文件,各单词不大于20个字母,无空格. 输出 ...
- Python 发送邮件包含附件报表示例
之前需要用Python发送报表邮件,在网上找了下资料,基本上符合要求了. 相关的示例如下,懂python的人应该都知道. from email.mime.text import MIMEText fr ...
- HDU4570----Multi-bit Trie----简单的DP
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4570 题目意思: 给你N个数 要你分成多段,每段长度不能超过20 是的sum(ai*(2^bi))最小 ...
- ural 1303 Minimal Coverage(贪心)
链接: http://acm.timus.ru/problem.aspx?space=1&num=1303 按照贪心的思想,每次找到覆盖要求区间左端点时,右端点最大的线段,然后把要求覆盖的区间 ...
- [转]javascript对联广告、漂浮广告封装类,多浏览器兼容
封装的JS方法: function $$(element){ if(arguments.length>1){ for(var i=0,elements=[],length=arguments.l ...
- Centos7安装Docker Engine
一.先决条件 首选需要一个64位操作系统和3.10或者更版本的内核. 查看当前内核版本: $ uname -r -.el7.x86_64 二.yum安装Docker Engine 安装Docker E ...
- linux常用命令-搜索
1.find $ find . -name nginx* $ find . -name nginx* -ls $ find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更 ...