Jekyll x Liquid: 文章置顶功能的实现

今天突然闲的蛋疼想把一些文章置顶, 于是就研究了一下如何实现, 还顺便把功能塞到了前段时间发布的- Jekyll主题里面

两个方案:

  • Server端实现
  • Client端实现

Server端实现

其实很简单, 一开始以为无法对Post进行操作, 后来发现可以从post的header里面进行参数设置

layout: post
title: 《10101》EP0:我太受欢迎了该怎么办
category : Comic
tags : [Comic, 10101]
stickie: true

然后liquid进行判断

{* for post in site.posts *}
    {* if post.stickie != true *}
        {* continue *}
    {* endif *}
    <div>置顶文章细节</div>
{* endfor *}

{* for post in site.posts *}
    {* if post.stickie == true *}
        {* continue *}
    {* endif *}
    <div>普通文章细节</div>
{* endfor *}

当然这个可以进行多种扩展, 比如只输出特定类别的文章等等,这里就是个只输出带有comic这个tag的post

{% for post in site.posts %}

    {% assign isComic = 0 %}

    {% for tag in post.tags %}
        {% if tag == comic %}
           {% assign isComic = 1 %}
        {% endif %}
    {% endfor %}

    {% if isComic == 0 %}
      {% continue %}
    {% endif %}

{% endfor %}

Client端实现

我太懒了没去研究 o( ̄▽ ̄)o

用JQuery.sort()给DOM排序再渲染一下即可

这个排序还要额外对时间进行比较//果然懒一点是没错的 o( ̄▽ ̄)o

演示页面

szhshp的第三边境研究所

参考

时间: 2024-10-11 18:04:42

Jekyll x Liquid: 文章置顶功能的实现的相关文章

PHPCMS实现文章置顶功能的方法

我个人喜欢把PHPCMS当作博客来用,而作为一个博客,怎能少了文章置顶功能呢?其中用PHPCMS实现置顶功能非常简单,无非是修改下推荐位的名称为置顶,然后在文章列表中推送需要置顶的文章罢了. 不过博客系统中置顶文章可不会与文章列表中的文章重复,要解决这个问题其实也不难,看代码: 复制代码代码如下:{pc:content action="lists" catid="1" num="20" where="posids!=1" or

Hexo 博客文章置顶设置方法

设置文章置顶 1. 修改仓库,使其支持置顶功能 可以直接运行以下命令进行安装: $ npm uninstall hexo-generator-index --save $ npm install hexo-generator-index-pin-top --save 2. 在文章中添加置顶信息 在需要置顶的文章Front-matter中加上top: true或top: 10即可. title: Hello World! date: 2018-06-26 10:37:59 tags: 随笔 top

Android自定义ScrollView实现一键置顶功能

效果图如下: (ps:动态图有太大了,上传不了,就给大家口述一下要实现的功能吧) 要实现的功能:当ScrollView向上滑动超过一定距离后,就渐变的出现一个置顶的按钮,当滑动距离小于我们指定的距离时,按钮又消失. 实现原理:就是监听View的onScrollChanged()方法(回调方法),获取到ScrolView滑动的距离,如果大于我们的距离,则出现置顶按钮,否则,直接隐藏,且当按钮出现点击事件,让整个ScrollView滑动到(0,0)位置即可,不废话,直接上代码 自定义的ScrollV

Mysql数据库实现的简单置顶

Mysql数据库实现的简单置顶 1. 问题背景:小编要做一个文章管理的简单网页,用的是Mysql数据库.其中需要文章置顶功能,如图: 2. 最初的思路:机智的小编立刻大脑飞速运转,很快想到为存储文章的"article"表设定一个(int)型的"isTop"属性,0表示不置顶,大于0表示置顶且数字越大,优先级越高.显示的时候只需按照"isTop"降序显示.当用户需要将"id"为"001"的文章置顶时,后台只需

织梦文档置顶并显示置顶文字或图标

织梦默认自带置顶功能,我们只需要在后台文档[文章排序]里对文档进行置顶操作就行了 模板标签中dede:arclist 和 dede:list 默认是按置顶排序优先排在前面,所以不需要特别的设置标签 显示[置顶]文字,这样调用 [field:sortrank runphp=yes]@me = time() < @me ? "[置顶]" : "";[/field:sortrank]复制 1 显示[置顶]图标,这样调用 [field:sortrank runphp=

js之滚动置顶效果

0.js获取高度 ? 1 2 3 4 5 6 document.all   // 只有ie认识 document.body.clientHeight              // 文档的高,屏幕的文档区域的高 documemt.documentElement.clientHeight   // 有效的高,屏幕可视的高 document.documentElement.scrollHeight   // 屏幕的总高度 document.documentElement.scrollTop     

jquery实现标签上移、下移、置顶

eg:如在后台的标签列表中,实现上移.下移.置顶功能 思路: 1.先用到的克隆方法.clone(true): 即把当前要移动的项先保存好,备于后用. 2.找到当前标签所对应的相关元素及其相关方法: 如:.prev()当前元素上面的标签 .next()当前元素下面的标签 .after()xxx之后添加方法 .before()xxx之前添加方法 .prepend添加方法 3.实现 具体代码如: var productsLabel = {     //设置置顶     setHot: function

WordPress 一键置顶文章(推荐用SM Sticky Clicky Star)

在 WordPress入门 之 发布新文章和管理文章 中,倡萌已经简单提到可以在文章编辑界面或者快速编辑界面设置置顶文章,但是如果你想在后台文章列表中添加一键置顶文章的功能,不妨试试 Quick Sticky 或 SM Sticky Clicky Star 插件. Quick Sticky 和 SM Sticky Clicky Star 都是用来给后台文章列表添加一键置顶文章功能的,一个较大的不同是,SM Sticky Clicky Star 支持 Ajax 无刷新设置,而 Quick Stic

wordpress文章页获取指定分类的置顶文章

<dl> <dt><span>置顶</span>推荐</dt> <?php              query_posts('cat=28&posts_per_page=1'); while (have_posts()) : the_post();       if (is_sticky()): //输出置顶文章 ?> <dd> <p class="rList_title"><