美文网首页
搭建博客笔记:py_kouga (五) 后台使用 markdow

搭建博客笔记:py_kouga (五) 后台使用 markdow

作者: 智勇双全的小六 | 来源:发表于2018-10-18 22:55 被阅读0次

参考教程

https://neutronx.github.io/django-markdownx/

  1. Django博客教程
  2. 自强学堂

笔记

安装

# 把 markdown 语法解析成 html 标签
pip install markdown

原理就是每次再返回文章内容之前,使用 markdown 再做一次处理。

blog/views.py

import markdown
from django.shortcuts import render, get_object_or_404
from .models import Post

def detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    # 记得在顶部引入 markdown 模块
    post.body = markdown.markdown(post.body,
                                  extensions=[
                                     'markdown.extensions.extra',
                                     'markdown.extensions.codehilite',
                                     'markdown.extensions.toc',
                                  ])
    return render(request, 'blog/detail.html', context={'post': post})

safe 标签

Django 出于安全方面的考虑,任何的 HTML 代码在 Django 的模板中都会被转义(即显示原始的 HTML 代码,而不是经浏览器渲染后的格式)。为了解除转义,只需在模板标签使用 safe 过滤器即可,告诉 Django,这段文本是安全的,你什么也不用做。在模板中找到展示博客文章主体的 {{ post.body }} 部分,为其加上 safe 过滤器,{{ post.body|safe }}

代码高亮

安装一个第三方库,这个库应该会被 python-markdown 这个库调用,给代码加上 html 标签用的。这个工作的代码量应该挺大的,所以就没集成到 python-markdown 里面去。

# 代码高亮
pip install Pygments

添加一个样式文件。在项目的 blog\static\blog\css\highlights\ 目录下应该能看到很多 .css 样式文件,这些文件是用来提供代码高亮样式的。选择一个你喜欢的样式文件,在 base.html 引入即可(别忘了使用 static 模板标签)。比如我比较喜欢 github.css 的样式,那么引入这个文件:

templates/base.html
...
<link rel="stylesheet" href="{% static 'blog/css/pace.css' %}">
<link rel="stylesheet" href="{% static 'blog/css/custom.css' %}">
...
+ <link rel="stylesheet" href="{% static 'blog/css/highlights/github.css' %}">

这部分主要踩的坑是,代码好像没有高亮:

  1. 点击 css 的链接,看页面是否 404,404 说明配置的地址有问题;
  2. 确认地址没问题,还是没效果的化,可以多写点代码试试,可能是缺少关键字;
  3. 清除浏览器的缓存文件、重启服务器再次尝试。

相关文章

网友评论

      本文标题:搭建博客笔记:py_kouga (五) 后台使用 markdow

      本文链接:https://www.haomeiwen.com/subject/kldezftx.html