这篇文章将为大家详细讲解有关使用Django怎么渲染减价文章目录,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强>文中的目录强>
之前我们已经为博文支持了减价语法,现在继续增强其功能。
有折腾代码高亮的痛苦经历之后,设置减价的目录扩展就显得特别轻松了。
修改文章详情视图:
文章/views.py … #,文章详情 def article_detail(请求,,id): ,……=,,article.body  markdown.markdown (article.body, 扩展才能=[ & # 39;才能markdown.extensions.extra& # 39; & # 39;才能markdown.extensions.codehilite& # 39; ,, #,才能目录扩展 & # 39;才能markdown.extensions.TOC& # 39; ,,) ,) 以前,…>仅仅是将将<代码> markdown.extensions。TOC 代码>扩展添加了进去。
目录:目录,即目录的意思引用>代码增加这一行就足够了。为了方便测试,往之前的文章中添加几个一级标题,二级标题等。
还记得减价语法如何写标题吗?一级标题:<代码> # title1> 代码,二级标题:<代码> # # title2 代码> 引用>然后你可以在文中的任何地方插入<代码> (TOC)> 代码字符串,目录就自动生成好了:
![]()
点击标题,页面就立即前往相应的标题处(即“锚点”的概念)。
<强>任意位置的目录强>
上面的方法只能将目录插入到文章当中。如果我想把目录插入到页面的任何一个位置呢?
也简单,这次需要修改减价的渲染方法:
文章/views.py … def article_detail(请求,,id): ,…… ,#修改,Markdown 语法渲染=,,md  markdown.Markdown ( 扩展才能=[ & # 39;才能markdown.extensions.extra& # 39; & # 39;才能markdown.extensions.codehilite& # 39; & # 39;才能markdown.extensions.toc& # 39; ,,) ,)=,,article.body  md.convert (article.body) ,#新增了md.toc对象 ,context =,{, & # 39;文章# 39;:,,,& # 39;toc # 39;:, md.toc } ,return 渲染(请求,,& # 39;文章/detail.html& # 39;,,上下文)为了能将<代码> toc 代码>单独提取出来,我们先将减价类赋值给一个临时变量<代码>医学> 代码,然后用<代码>转换()代码>方法将正文渲染为html页面。通过<代码> md.toc> 代码将目录传递给模板。
注意markdown.markdown()和markdown.markdown()的区别更详细的解释见:官方文档
引用>为了将新的目录渲染到页面中,需要修改文章详情模板:
模板/文章/detail.html … & lt; div 类=癱ontainer"祝辞 ,& lt; div 类=皉ow"比; & lt; !——,才能将原有内容嵌套进新的div中,——比; & lt;才能div 类=癱ol-9"比; ,,& lt; h2 类=癿t-4 mb-4"在{{,article.title }} & lt;/h2> ,,& lt; div 类=癮lert alert-success"比; ,,,… ,,& lt;/div> & lt;才能/div> & lt;才能!——,新增的目录,——比; & lt;才能div 类=癱ol-3 mt-4"比; ,,& lt; h5> & lt; strong>目录& lt;/strong> & lt;/h5> ,,& lt; hr> ,,& lt; div> ,,,{{,toc | safe }} ,,& lt;/div> & lt;才能/div> ,& lt;/div> & lt;/div> …<李>
重新布的局,将原有内容装进<代码> col-9> 代码的容器中,将右侧<代码> col-3> 代码的空间留给目录
李> <李><代码> toc> 代码需要<代码> | 代码>安全标签才能正确渲染
李>重新打开页面:
![]()
关于使用Django怎么渲染减价文章目录就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
使用Django怎么渲染减价文章目录