Una | 尤娜

一个基于Spring Boot 2.0构建的Java博客系统

内容标签

在尤娜v1.2.2版本中,共提供了18个内容标签,通过使用这些标签,可以灵活的定制主题模板内容。你可以在com.ramostear.unaboot.freemarker.directive包中查看尤娜内容标签的源代码。下表是尤娜内容标签的简要信息:

标签名 参数 说明
u_archives 获取博客的归档信息
u_archive_detail name:归档名称 根据归档名称获取文章
u_associated id:文章ID,size:数量 根据当前文章ID和指定数量获取与之相关联的文章
u_category_detail category:栏目ID 根据栏目ID获取栏目下的所有文章
u_category_page_detail id:栏目ID,offset:页码,size:分页大小 根据栏目ID对栏目下的文章进行分页
u_child_category root:父栏目ID 获取父栏目下的所有子栏目
u_latest size:数量 根据指定数量获取最新发布的文章
u_links 获取友链列表
u_navigation 获得导航列表
u_popular size:数量 根据指定数量获取阅读量最多的文章
u_post_page_detail type:文章类型,offset:页码,size:分页大小 根据文章类型获取分页数据
u_post_tags id:文章ID 根据文章ID获取所有的Tag
u_pre_or_next current:文章ID,category:栏目ID,type:类型,style:文章类型 获取上一篇或下一篇文章信息
u_recommends size:文章数量 获取被推荐的文章数据
u_sticks size:文章数量 获取被置顶的文章数据
u_tag_page_detial id:Tag编号,offset:页码,size:分页大小 获取Tag中文章的分页数据
u_tag_posts id:Tag编号 获取Tag中的所有文章数据
u_tags 获取所有的Tag数据

u_archives

u_archives标签可以获取博客中所有的归档信息,使用该标签,可以获得一个归档列表,列表名为results。下面是一个使用示例:

<@u_archives>
    <#if results?? && results?size gt 0>
        <#list results as archive>
            <a href="${una}/archive/${archive.name}">${archive.name}---${archive.count}</a>    
        </#list>
    </#if>
</@u_archives>

返回值

results:[
    {
        name:'archiveName',
        count:'postCounts'
    },
    ...
]

u_archive_detail

u_archive_detail标签可以获取归档下的文章数据列表,该标签通常和u_archive标签嵌套使用,你可以可以直接指定归档名。该标签会返回列表名为results的文章数组。使用方式如下:

<@u_archive_detail name="archiveName">
    <#list results as blog>
        ${blog.title}    
    </#list>    
</@u_archive_detail>
<@u_archives>
    <#if results?? && results?size gt 0>
        <#list results as archive>
            <div class="listing-title">${archive.name}</div>
            <ul class="listing" style="padding-left:25px;">
                <@u_archive_detail name=archive.name>
                    <#if results?? && results?size gt 0>
                        <#list results as post>
                            <div class="listing-item">
                                <div class="listing-post">
                                    <a href="${una}/blog/${post.slug}" >${post.title}</a>
                                    <div class="post-time">
                                        <span class="date">${post.createTime?string("yyyy-MM-dd")}</span>
                                    </div>
                                </div>
                            </div>
                        </#list>
                    </#if>
                </@u_archive_detail>
            </ul>
        </#list>
    </#if>
</@u_archives>

返回的文章数据包含以下字段:

Post:{
    id:Integer,
    slug:String,
    title:String,
    status:Integer,
    summary:String,
    thumb:String,
    visits:Long,
    likes:Long,
    theme:String,
    stick:boolean,
    recommend:boolean,
    comment:boolean,
    style:Integer,
    author:String,
    source:String,
    original:String,
    keywords:String,
    markdown:String,
    html:String,
    projectUrl:String,
    tags:[{
        id:Integer,
        name:String
    },
     ...     
    ],
   category:{
          id:Integer,
          name:String,
          slug:String,
          pid:Integer,
          sortId:Integer,
          keywords:String,
          describe:String,
          theme:String,
          thumb:String,
          show:Integer
          }       
}

u_associated

u_associated标签通常用于文章详情页码,可以获取跟当前文章相关联的其他文章数据。使用方式:

<@u_associated id="5" size="4">
    <#list results as blog>
        ${blog.title}    
    </#list>
</@u_associated>

该标签需要提供一个文章ID和获取的文章数量,默认情况下,size=4。返回的results列表中的数据项格式如下:

{
    "id":Integer,
    "title":String,
    "slug":String,
    "status":Integer,
    "createTime":Date,
    "updateTime":Date,
    "visits":Long,
    "thumb":String,
    "style":Integer
}

u_category_detail

u_category_detail标签用于获取某个栏目下的所有文章数据。使用方式:

<@u_category_detail category="10">
    <#list results as blog>
        ${blog.title}
    </#list>    
</@u_category_detail>

results中的数据项属性如下:

{
    id:Integer,
    slug:String,
    title:String,
    status:Integer,
    summary:String,
    thumb:String,
    visits:Long,
    likes:Long,
    theme:String,
    stick:boolean,
    recommend:boolean,
    comment:boolean,
    style:Integer,
    author:String,
    source:String,
    original:String,
    keywords:String,
    markdown:String,
    html:String,
    projectUrl:String
}

注意:

在对results进行迭代前,需要做非空判断。

u_child_category

u_child_category标签用于获取某个栏目下的所有子栏目。例如,可以和u_navigation标签搭配使用:

<@u_navigation>
    <#list results as nav>
        <li>
            ${nav.name}
            <ul>
                <@u_child_category root=nav.id>
                    <#list results as child>
                        <li>${child.name}</li>
                     </#list>
                </@u_child_category>
            </ul>
        </li>    
    </#list>    
</@u_navigation>

u_latest

u_latest用于获取最新发布的文章,接收一个参数:size-列表大小(默认5条数据)。使用方式:

<@u_latest size=10>
    <#list results as blog>
        ${blog.title}    
    </#list>
</@u_latest>

u_links

u_links标签用于获取所有的友情链接信息,该标签无参数。使用方式:

<@u_links>
    <#list results as link>
        <a href="${link.domain}">${link.name}</a>    
    </#list>    
</@u_links>

友情链接的属性如下:

{
    "id":Integer,
    "name":String,
    "domain":String,
    "sortId":Integer
}

补充:

你可以根据id或者sortId使用sort_by()方法对列表进行排序

u_navigation

u_navigation用于获取网站的导航栏目。该标签没有参数,使用方式如下:

<@u_navigation>
    <ul>
        <#list results as nav>
            <li><a href="${una}/category/${nav.slug}">${nav.name}</a></li>    
        </#list>
    </ul>    
</@u_navigation>

返回值的数据项属性如下:

{
    "id":Integer,
    "name":String,
    "slug":String,
    "pid":String,
    "sortId":Integer,
    "keywords":String,
    "describe":String,
    "theme":String,
    "thumb":String,
    "show":Integer
}

u_popular

u_popular标签用于获取系统中访问量最高的文章,并根据访问量进行降序排列。该标签接收一个参数:size-获取数量,默认值为5。使用方式如下:

<@u_popular size=10>
    <#list results as blog>
        ${blog.title}    
    </#list>    
</@u_popular>

u_post_tags

u_post_tags标签用于获取某篇文章的所有Tag。该标签接收一个参数:id-文章ID,使用方式如下:

<@u_post_tags id=5>
    <#list results as tag>
        <a href="${una}/tag/${tag.name}">${tag.name}</a>    
    </#list>    
</@u_post_tags>

u_pre_or_next

u_pre_or_next标签用于获得当前文章的上一篇或下一篇文章的信息。该标签接收4个参数:current-当前文章ID,category-栏目ID,type-上一篇或下一篇,style-文章类型,默认为0。使用方式如下:

<@u_pre_or_next current=15 category=3 type="previous" style=0>
    上一篇:<a href="${una}/blog/${result.slug}">${result.title}</a>    
</@u_pre_or_next>
<@u_pre_or_next current=15 category=3 type="next" style=0>
    下一篇:<a href="${una}/blog/${result.slug}">${result.title}</a>    
</@u_pre_or_next>

result的属性如下:

{
    "id":Integer,
    "title":String,
    "slug":String,
    "status":Integer,
    "createTime":Date,
    "updateTime":Date,
    "visits":Long,
    "thumb":String,
    "style":Integer
}

u_recommends

u_recommends标签用于获取被推荐的文章,接收一个参数:size-文章数量。使用方式如下:

<@u_recommends size= 20>
    <#list results as blog>
        <a href="${una}/blog/${blog.slug}">${blog.title}</a>    
    </#list>    
</@u_recommends>

u_sticks

u_sticks标签用于获取被置顶的文章,接收一个参数:size-文章数量。使用方式如下:

<@u_sticks size= 20>
    <#list results as blog>
        <a href="${una}/blog/${blog.slug}">${blog.title}</a>    
    </#list>    
</@u_sticks>

u_tag_posts

u_tag_posts标签用于获取Tag下的所有文章,不进行分页处理。该标签接收一个参数:id:Tag编号,使用方式如下:

<@u_tag_posts id=tag.id>
    <#list results as blog>
        ${blog.title}    
    </#list>    
</@u_tag_posts>

u_tags

u_tags用于获取系统中的所有Tag信息,该标签没有任何参数。使用方式如下:

<@u_tags>
    <#list results as tag>
        ${tag.name}    
    </#list>    
</@u_tags>

提示:

在使用上述标签的过程中,对results进行迭代前,请尽量做好空值的处理。