提取目录
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
content.content = html_output
content.toc = toc
return render(request, 'content.html', {'content': content})
前端渲染
<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>
{{content.content | safe}}
</div>
</div>
代码高亮
<link rel="stylesheet" href="{% static './prism/prism.css' %}">
<link rel="stylesheet" href="{% static './prism/prism-toolbar.css' %}">
<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: {
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,
area: ['340px', '540px'],
maxmin: true,
offset: 'r',
content: `{{content.toc | safe}}`
});
}
}
});
});
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)