首页 > 其他分享 >Django markdown前端页面渲染

Django markdown前端页面渲染

时间:2024-05-19 16:08:18浏览次数:15  
标签:markdown Django content html toc type id 页面

提取目录(方式一)

import markdown
from markdown.extensions.toc import TocExtension

def content(request, content_id):
    content_id = int(content_id)
    content = Content.objects.get(id=content_id)
    md = markdown.Markdown(extensions=['markdown.extensions.extra','markdown_checklist.extension', TocExtension()])
    html_output = md.convert(content.content)
    toc = md.toc
    return render(request, 'content.html', {'content': content, 'html_output': html_output, 'toc': toc})

前端渲染

 <style>
        img{
           max-width: 100%;
        }
        h2 ,h4 ,h5 {
            font-weight: 600;
            margin: 10px 0 10px 0;
            padding: 0 10px;
            border-left: 5px solid #20c997;
            background-color: #f7f7f7;
            line-height: 2em;
        }
        p {
            font-size: 16px;
        }

        .toc {
            padding: 20px;
        }
        .toc li {
            padding: 10px;
        }
    </style>

    <div class="layui-container">
        <div class="layui-row">
            <h1>{{content.title}}</h1>
            {{html_output | safe}}
        </div>
    </div>

代码高亮

<link rel="stylesheet" href="{% static './prism/prism.css' %}"> <!-- css样式 -->
<!-- <link href="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/prism-themes/1.9.0/prism-xonokai.min.css" type="text/css" rel="stylesheet" /> --> <!-- 不同主题样式 -->
<!-- <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism-okaidia.min.css"> --> <!-- 不同主题样式 -->
<link rel="stylesheet" href="{% static './prism/prism-toolbar.css' %}"> <!-- 复制及代码语言按钮 -->
<!-- <link rel="stylesheet" href="{% static './prism/blackmac.css' %}"> --> <!-- Mac主题样式 -->
<script src="{% static './prism/prism-tb.js' %}"></script>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/clipboard.js/2.0.10/clipboard.js" type="application/javascript"></script>
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/prism/9000.0.1/components/prism-python.js" type="application/javascript"></script>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/prism/9000.0.1/components/prism-php.js" type="application/javascript"></script>

layui固定条打开目录列表

<script>
    layui.use(function () {
        var util = layui.util;
        // 自定义固定条
        util.fixbar({
            bars: [
                {
                    type: '打开目录',
                    content: '目录',
                    style: 'font-size: 21px;',
                    bgcolor: 'red',

                }],

            on: { // 任意事件 --  v2.8.0 新增
                mouseenter: function (type) {
                    layer.tips(type, this, {
                        tips: 4,
                        fixed: true
                    });
                },
                mouseleave: function (type) {
                    layer.closeAll('tips');
                }
            },
            // 点击事件
            click: function (type) {
                //打开目录
                if (type == '打开目录') {
                    layer.open({
                        type: 0,
                        title: '目录',
                        shadeClose: false, // 禁止点击遮罩关闭弹层,因为我们不显示遮罩
                        shade: 0, // 设置遮罩透明度为0,即不显示遮罩
                        area: ['340px', '540px'], // 宽高
                        //只能打开一次
                        maxmin: true,
                        offset: 'r',
                        content: `{{toc | safe}}`
                    });
                }
            
            }
        });
    });
</script>

标签:markdown,Django,content,html,toc,type,id,页面
From: https://www.cnblogs.com/shenbojun/p/18200416

相关文章

  • 鸿蒙HarmonyOS实战-Stage模型(开发卡片页面)
    ......
  • Django测试与持续集成:从入门到精通
    title:Django测试与持续集成:从入门到精通date:2024/5/1816:38:41updated:2024/5/1816:38:41categories:后端开发tags:Django测试CI/CD优化部署监控迭代第1章:Django测试基础1.1Django测试框架概述Django测试框架是Djangoweb框架的一部分,提供了一个强......
  • Django markdown 实现
    一、安装markdown插件pipinstalldjango-mdeditorpipinstallmarkdown二、在settings配置文件INSTALLED_APPS中添加mdeditor:INSTALLED_APPS=[...'mdeditor',]三、插入图片没有地址,针对django3.0+修改frame配置,settings.py设置如下:......
  • django中使用celery
    通用方案将自定义的celery的包拉到django项目根目录在celery.py文件内导入django的环境变量这样才能正常启动worker或者beatfromceleryimportCeleryimporttimeimportos#必须要将django的环境变量加进去(在manage.py中复制)os.environ.setdefault('DJANGO_SETTINGS_M......
  • 使用django_celery_beat在admin后台配置计划任务
    使用步骤安装包pipinstalldjango-celery-beatapp注册app注册INSTALLED_APPS=[....'django_celery_beat',]配置文件:屏蔽原来的调度器CELERY_BEAT_SCHEDULER='django_celery_beat.schedulers.DatabaseScheduler'设置时区LANGUAGE_CODE='z......
  • Django自定义模板标签与过滤器
    title:Django自定义模板标签与过滤器date:2024/5/1718:00:02updated:2024/5/1718:00:02categories:后端开发tags:Django模版自定义标签过滤器开发模板语法Python后端前端集成Web组件Django模板系统基础1.Django模板语言概述Django模板语言(DTL)是一种用......
  • markdown常用语法
    标题Markdown支持两种标题的语法,Setext和atx形式。Setext形式是用底线的形式,利用=(最高阶标题)和-(第二阶标题),例如:ThisisanH1ThisisanH2任何数量的=和-都可以有效果。Atx形式则是在行首插入1到6个#,各对应到标题1到6阶,例如:ThisisanH1ThisisanH2ThisisanH6你......
  • Django 自定义管理命令:从入门到高级
    title:Django自定义管理命令:从入门到高级date:2024/5/1618:34:29updated:2024/5/1618:34:29categories:后端开发tags:Django自定义命令入门教程高级技巧命令创建命令使用自定义管理第1章简介1.1 Django管理命令简介Django是一个流行的Python......
  • django接口缓存
    接口缓存以轮播图接口为例APIResponse见https://www.cnblogs.com/unrealqcc/p/18194581封装Response普通缓存common_mixin.pyfromrest_framework.mixinsimportListModelMixinfrom.common_loggerimportloggerfromutils.common_responseimportAPIResponsefro......
  • 模拟浏览器登录页面中记录账号弹出选择框
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>PopupDivExample</title><s......