圆月山庄资源网 Design By www.vgjia.com
对会读书的人来说,读一本书要做的第一件事,就是仔细阅读这本书的目录。阅读目录可以对整体内容有所了解,并清楚地知道感兴趣的部分在哪里,提高阅读质量。
博文也是同样的,好的目录对博主和读者都很有帮助。更进一步的是,还可以在目录中设置锚点,点击标题就立即前往该处,非常的方便。
文中的目录
之前我们已经为博文支持了Markdown语法,现在继续增强其功能。
有折腾代码高亮的痛苦经历之后,设置Markdown的目录扩展就显得特别轻松了。
修改文章详情视图:
article/views.py ... # 文章详情 def article_detail(request, id): ... article.body = markdown.markdown(article.body, extensions=[ 'markdown.extensions.extra', 'markdown.extensions.codehilite', # 目录扩展 'markdown.extensions.TOC', ] ) ...
仅仅是将将markdown.extensions.TOC
扩展添加了进去。
TOC: Table of Contents,即目录的意思
代码增加这一行就足够了。为了方便测试,往之前的文章中添加几个一级标题、二级标题等。
还记得Markdown语法如何写标题吗?一级标题:# title1
,二级标题:## title2
然后你可以在文中的任何地方插入[TOC]
字符串,目录就自动生成好了:
点击标题,页面就立即前往相应的标题处(即“锚点”的概念)。
任意位置的目录
上面的方法只能将目录插入到文章当中。如果我想把目录插入到页面的任何一个位置呢?
也简单,这次需要修改Markdown的渲染方法:
article/views.py ... def article_detail(request, id): ... # 修改 Markdown 语法渲染 md = markdown.Markdown( extensions=[ 'markdown.extensions.extra', 'markdown.extensions.codehilite', 'markdown.extensions.toc', ] ) article.body = md.convert(article.body) # 新增了md.toc对象 context = { 'article': article, 'toc': md.toc } return render(request, 'article/detail.html', context)
为了能将toc
单独提取出来,我们先将Markdown类赋值给一个临时变量md
,然后用convert()
方法将正文渲染为html页面。通过md.toc
将目录传递给模板。
注意markdown.markdown()和markdown.Markdown()的区别更详细的解释见:官方文档
为了将新的目录渲染到页面中,需要修改文章详情模板:
templates/article/detail.html ... <div class="container"> <div class="row"> <!-- 将原有内容嵌套进新的div中 --> <div class="col-9"> <h1 class="mt-4 mb-4">{{ article.title }}</h1> <div class="alert alert-success"> ... </div> </div> <!-- 新增的目录 --> <div class="col-3 mt-4"> <h4><strong>目录</strong></h4> <hr> <div> {{ toc|safe }} </div> </div> </div> </div> ...
- 重新布局,将原有内容装进
col-9
的容器中,将右侧col-3
的空间留给目录 toc
需要|safe
标签才能正确渲染
重新打开页面:
总结
完成了文章的目录功能,至此文章详情页面也比较完善了。
项目完整代码:Django_blog_tutorial
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月06日
2024年11月06日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]