Hexo
主题系列之一:关于如何从零在主题里修建一个标签和分类页面。
首先根据前文所述,在source
里新建一个tags
的文件夹,并在里面放一个名为index
的markdown
文件。
这个index
的Layout
指向为它被渲染的ejs
文件,由于在博客里我把分类和标签放在了同一个页面「T&C」,所以我只用新增一个文件夹,并将其指向名为tags.ejs
的文件。
同时不要忘记了,在主题的menu
中新增相关的页面导航,并将地址定义为/tags
,这个地址对应的就是source
下面的名字。
至于tags
和categories
如何根据特定标签和分类属性生成相关文档归档,我们可以通过辅助函数list_categories
和list_tags
生成所有的tags
和categories
的列表,而这些列出的值都是可以点击的,可以指向归档archive
页面。
具体的T&C的ejs
文件如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <hr> <% if (((site.tags && site.tags.length) || (site.categories && site.categories.length))){ %> <div class="TandCALL"> <% if (site.categories && site.categories.length){ %> <b>分类:</b> <%- list_categories(site.categories, { show_count: true, class: 'TandC', style: 'none' }) %> <% } %> <% if ((site.tags && site.tags.length) && (site.categories && site.categories.length)){ %> <br/><hr> <% } %> <% if (site.tags && site.tags.length){ %> <b>标签:</b> <%- list_tags(site.tags, { show_count: true, class: 'TandC', style: 'none' }) %> <% } %> </div> <% } %> <% if (index && theme.intensedebate.enable && theme.intensedebate.acct){ %> <footer class="article-footer"> <a href="<%- url_for(post.path) %>#idc-container">Comments</a> </footer> <% } %> </div>
<% if (page.total > 1){ %> <nav id="page-nav" class="page-nav"> <% var prev_text = "« " + __('prev');var next_text = __('next') + " »"%> <%- paginator({ prev_text: prev_text, next_text: next_text }) %> </nav> <% } %>
|