django学习笔记
继续之前的django学习,记录学习过程中遇到的痛点
1.安装markdown
使用pip install markdown
安装markdown,这样可以将markdown格式的文章内容转换成html格式
import markdown
# 博客详情页
def article_detail(request, id):
# 根据id取出博客
article = ArticlePost.objects.get(id=id)
# 将markdown语法渲染成html格式
article.body = markdown.markdown(
article.body,
extensions=[
# 包含 缩写、表格等常用扩展
'markdown.extensions.extra',
# 语法高亮扩展
'markdown.extensions.codehilite',
]
)
context = {'article': article}
return render(request, 'article/detail.html', context=context)
2. 在详情页中修改
在article/detail.html中修改详情页内容,需要加上一个safe过滤器
<p>{{ article.body|safe }}</p>
3.安装pygments
这个用于代码高亮,首先需要pip install pygments
安装,Pygments是一种通用语法高亮显示器,可以帮助我们自动生成美化代码块的样式文件。在my_blog文件目录的static文件夹下新建md_css文件夹,在cmd中cd到md_css文件夹,然后使用pygments安装需要的css文件:
>pygmentize -S monokai -f html -a .codehilite > monokai.css
需要注意的是,生成命令中的 -a 参数需要与真实页面中的 CSS Selector 相对应,即.codehilite
这个字段在有些版本中应写为.highlight
。(具体可以查看源代码中代码块对应div的class)如果后面的代码高亮无效,很可能是这里出了问题。
4.引入monokai.css文件
最后还需要在templates/base.html中引入monokai,方法跟引入bootstrap.css相同。
最后出来的效果如下所示:
发表评论