zoukankan      html  css  js  c++  java
  • Django+Markdown+Pygments 支持Markdown 实现代码高亮

    Markdown部分

    1. 安装markdown pip install markdown
    2. view.py中导入包 from markdown import markdown
    3. 使用markdown()将需要用markdown格式解析的内容(字符串)封装起来。 注:models里面有一个Article类,Article里面有一项是content存储博客内容。

      def detail(request, id):
          try:
              post = Article.objects.get(id=str(id))
              #for markdown test
              post.content = markdown(post.content) 
          except Article.DoesNotExist:
              raise Http404
          return render(request, 'post.html', {'post' : post}) 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    4. 在后台编辑博文 
      > ## This is a test. 

      > 1. This is the first list item. 
      > 2. This is the second list item.

    5. 前台显示 {{ post.content | safe}},注意使用了safe过滤器,防止内容在输出前被解析。 
      ps:和这个问题是一个原因,django数据库里Html代码,如何在前台让浏览器正确解析?

    Pygments部分

      1. 官网下载最新的版本的Pygments
      2. 使用pip安装下载的包Pygments-2.0.2.tar.gz,敲命令pip install Pygments-2.0.2.tar
      3. 运行如下命令pygmentize -S default -f html -a .codehilite > code.css,在文件夹下会发现生成了code.css文件,将这个css文件加入到你的static文件夹下style里面(随便你放哪里找得到就好)。
      4. 在需要高亮的html文件里面导入刚刚生成的css文件,例如我的是<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}styles/code.css"/>
      5. 还记得刚刚代码里面的post.content = markdown(post.content) 
        吧,在后面加上['codehilite'],即为post.content = markdown(post.content,['codehilite'])
      6. 刷新前台,显示代码已经高亮。
    人生当自勉,学习需坚持。从这一刻开始,我依旧是我,只是心境再不同。不论今后的路如何,我都会在心底默默鼓励自己,坚持不懈,等待那一场破茧的美丽。
  • 相关阅读:
    hdu 4002 Find the maximum
    hdu 2837 坑题。
    hdu 3123
    zoj Treasure Hunt IV
    hdu 2053 Switch Game 水题一枚,鉴定完毕
    poj 1430 Binary Stirling Numbers
    hdu 3037 Saving Beans
    hdu 3944 dp?
    南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。
    fzu 2171 防守阵地 II
  • 原文地址:https://www.cnblogs.com/jiangqiuju/p/8304202.html
Copyright © 2011-2022 走看看