在AnQiCMS中管理网站内容,文档详情页无疑是用户获取信息的核心界面。如何让这个页面既美观又信息丰富,是许多网站运营者关心的问题。今天,我们就来聊聊如何在AnQiCMS的文档详情页,优雅地展示文章的标题、所属分类、发布时间等关键信息。
AnQiCMS采用了类似Django模板引擎的简洁语法,这使得我们在自定义模板时,可以非常直观地调用各种数据。对于文档详情页,系统通常会默认提供一个名为 archive 的全局变量,其中包含了当前文档的所有详细数据。这意味着,我们可以直接通过 archive.字段名 的方式,轻松地获取并显示所需信息。
获取和展示文档标题
首先,文档的标题是页面的灵魂。在你的文档详情模板文件(通常是 detail.html 或根据内容模型自定义的模板)中,可以直接使用 {{archive.Title}} 来显示标题。通常,我们会把它放在 <h1> 标签中,以突出其重要性,并对搜索引擎友好:
<h1>{{archive.Title}}</h1>
如果你的文档设置了SEO标题,并且希望在页面 <title> 标签中使用它,可以使用 tdk 标签来自动获取:
<title>{% tdk with name="Title" siteName=true %}</title>
这里 siteName=true 表示会在标题末尾自动添加网站名称,sep 属性(默认为 -)可以用来定义分隔符。
展示文档所属分类
文章的分类能帮助读者快速理解文章的归属,并方便他们浏览同类内容。通过 archive 变量,我们同样可以轻松获取分类信息:
<a href="{{archive.Category.Link}}">{{archive.Category.Title}}</a>
这里,archive.Category 是一个对象,包含了当前文档所属分类的详细信息,比如分类的链接 Link 和分类名称 Title。点击分类名称,读者就能跳转到该分类的列表页。
显示文档发布与更新时间
时间信息对于新闻、技术文章等内容尤为重要,它能让读者了解信息的时效性。AnQiCMS提供了 CreatedTime(发布时间)和 UpdatedTime(更新时间)两个字段。这些字段存储的是时间戳,我们需要使用 stampToDate 函数将其格式化为可读的日期和时间。
例如,显示发布时间:
<span>发布时间:{{stampToDate(archive.CreatedTime, "2006-01-02 15:04")}}</span>
这里的 "2006-01-02 15:04" 是Go语言的时间格式化标准,它分别代表了具体的年、月、日、时、分。你可以根据需要调整这个格式,比如只显示日期 ("2006-01-02") 或更详细的时间 ("2006-01-02 15:04:05")。如果文章有更新,你也可以类似地显示更新时间 {{stampToDate(archive.UpdatedTime, "2006-01-02")}}。
丰富页面信息:浏览量与标签
为了让详情页内容更丰富,还可以展示浏览量和相关标签。
浏览量:
{{archive.Views}} 就能直接显示文章的阅读次数,增加文章的吸引力。
文档标签:
标签能帮助读者快速了解文章的主题关键词,并发现更多相关内容。AnQiCMS通过 tagList 标签来获取文章关联的标签列表,并需要结合 for 循环来遍历显示:
{% tagList tags with itemId=archive.Id limit="10" %}
{% for item in tags %}
<a href="{{item.Link}}">{{item.Title}}</a>
{% endfor %}
{% endtagList %}
这里 itemId=archive.Id 确保获取的是当前文档的标签,limit="10" 则限制了最多显示10个标签。
整合代码示例
将上述内容结合起来,你的文档详情页模板可能看起来像这样(为了简洁,此处省略了CSS样式):
{% extends 'base.html' %} {# 继承基础模板,通常包含头部、底部等公共部分 #}
{% block content %}
<article>
{# 文档标题 #}
<h1>{{archive.Title}}</h1>
<div class="meta-info">
{# 分类信息 #}
<span class="category">
所属分类:<a href="{{archive.Category.Link}}">{{archive.Category.Title}}</a>
</span>
{# 发布时间 #}
<span class="publish-time">
发布日期:{{stampToDate(archive.CreatedTime, "2006年01月02日")}}
</span>
{# 更新时间(如果需要显示) #}
{% if archive.UpdatedTime > archive.CreatedTime %} {# 仅在更新时间晚于发布时间时显示 #}
<span class="update-time">
更新日期:{{stampToDate(archive.UpdatedTime, "2006年01月02日")}}
</span>
{% endif %}
{# 浏览量 #}
<span class="views">
阅读量:{{archive.Views}}
</span>
</div>
{# 文档标签 #}
<div class="tags">
标签:
{% tagList tags with itemId=archive.Id limit="10" %}
{% for item in tags %}
<a href="{{item.Link}}">{{item.Title}}</a>
{% endfor %}
{% endtagList %}
</div>
{# 文档内容 #}
<div class="article-content">
{{archive.Content|safe}}
</div>
</article>
{% endblock %}
请注意,{{archive.Content|safe}} 中的 |safe 是一个非常重要的过滤器,它告诉AnQiCMS将HTML内容(如富文本编辑器输出的内容)作为安全的HTML直接渲染,而不是进行转义。如果你的文章内容包含图片、链接等HTML标签,务必加上 |safe,否则这些标签可能会被当作纯文本显示。
实践建议与小贴士
- 模板位置: 文档详情页的模板文件通常位于你的模板目录下的
{模型table}/detail.html。例如,如果是文章模型,可能就是article/detail.html。 - 自定义字段: 如果你在后台为内容模型添加了自定义字段(比如“作者”、“来源”),同样可以通过
{{archive.你的自定义字段名}}来显示。如果想循环显示所有自定义参数,可以使用archiveParams标签。 - SEO优化: 除了在页面内容中展示标题、关键词,别忘了使用
tdk标签在<head>中正确设置页面的<title>、<meta name="keywords">和<meta name="description">,这将对搜索引擎收录和排名产生积极影响。 - 调试变量: 如果你在模板开发过程中不确定
archive变量里到底有什么数据,可以使用{{archive|dump}}过滤器将其所有结构和值打印出来,这对于调试非常有帮助。
通过这些简单而强大的标签和技巧,你可以轻松地在AnQiCMS的文档详情页展示所有核心信息,为你的读者提供清晰、完整的阅读体验。
常见问题 (FAQ)
1. 如何调整标题、分类、时间等信息的显示顺序和样式?
这些信息的显示顺序完全取决于你在模板HTML代码中的编写顺序。你可以根据设计需求自由调整它们的位置。至于样式,AnQiCMS的前端模板本质上是HTML和CSS,你只需在模板文件中给这些信息添加相应的HTML标签(如 <h1>、<span>、<a>),然后通过CSS文件来控制它们的字体大小、颜色、间距等外观样式即可。
2. 除了文章标题、分类、时间和浏览量,我还能显示哪些其他信息?
archive 变量包含了文档的许多内置字段,比如 Description(简介)、Logo(封面首图)、Thumb(缩略图)、Images(组图)等。此外,如果你在后台为内容模型自定义了额外的字段