Super feature: Pinned posts.

This commit is contained in:
Cotes Chung 2020-06-06 12:45:33 +08:00
parent d1963af964
commit 34d54f9349
7 changed files with 75 additions and 9 deletions

View file

@ -22,8 +22,9 @@ A minimal, sidebar, responsive web design Jekyll theme, focusing on text present
## Features ## Features
* Pinned Posts
* Configurable theme mode * Configurable theme mode
* Two-level Categories * Double-level Categories
* Last modified date for posts * Last modified date for posts
* Table of Contents * Table of Contents
* Automatically recommend related posts * Automatically recommend related posts

View file

@ -7,12 +7,59 @@ layout: page
# MIT Licensed # MIT Licensed
--- ---
{% assign pinned = site.posts | where_exp: "item", "item.pin == true" %}
{% assign default = site.posts | where_exp: "item", "item.pin == nil " %}
{% assign posts = "" | split: "" %}
<!-- Get pinned posts -->
{% assign offset = paginator.page | minus: 1 | times: paginator.per_page %}
{% assign pinned_num = pinned.size | minus: offset %}
{% if pinned_num > 0 %}
{% for i in (offset..pinned.size) limit: pinned_num %}
{% assign posts = posts | push: pinned[i] %}
{% endfor %}
{% else %}
{% assign pinned_num = 0 %}
{% endif %}
<!-- Get defualt posts -->
{% assign default_beg = offset | minus: pinned.size %}
{% if default_beg < 0 %}
{% assign default_beg = 0 %}
{% endif %}
{% assign default_num = paginator.posts | size | minus: pinned_num %}
{% assign default_end = default_beg | plus: default_num | minus: 1 %}
{% if default_num > 0 %}
{% for i in (default_beg..default_end) %}
{% assign posts = posts | push: default[i] %}
{% endfor %}
{% endif %}
<div id="post-list"> <div id="post-list">
{% for post in paginator.posts %}
{% for post in posts %}
<div class="post-preview"> <div class="post-preview">
<h1> <div class="d-flex justify-content-between align-items-center pr-2">
<a href="{{ post.url | relative_url }}">{{ post.title }}</a> <h1><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h1>
</h1> {% if post.pin %}
<i class="fas fa-thumbtack fa-fw fa-sm text-muted pinned" data-toggle="tooltip" data-placement="top"
title="Pinned"></i>
{% endif %}
</div>
<div class="post-content"> <div class="post-content">
<p> <p>
{% assign _content = post.content %} {% assign _content = post.content %}
@ -38,7 +85,9 @@ layout: page
{% endif %} {% endif %}
</div> </div>
</div> <!-- .post-review --> </div> <!-- .post-review -->
{% endfor %} {% endfor %}
</div> <!-- #post-list --> </div> <!-- #post-list -->
{% if paginator.total_pages > 0 %} {% if paginator.total_pages > 0 %}

View file

@ -124,6 +124,17 @@ math: true
``` ```
## Pinned Posts
You can pin one or more posts to the top of the home page, and the fixed posts are sorted in reverse order according to their release date. Enable by:
```yaml
---
pin: true
---
```
## Code Block ## Code Block
Markdown symbols <code class="highlighter-rouge">```</code> can easily create a code block as following examples. Markdown symbols <code class="highlighter-rouge">```</code> can easily create a code block as following examples.

View file

@ -4,6 +4,7 @@ author: Cotes Chung
date: 2019-08-09 20:55:00 +0800 date: 2019-08-09 20:55:00 +0800
categories: [Blogging, Tutorial] categories: [Blogging, Tutorial]
tags: [getting started] tags: [getting started]
pin: true
--- ---
## Prerequisites ## Prerequisites

View file

@ -29,7 +29,7 @@
padding-top: 1.5rem; padding-top: 1.5rem;
padding-bottom: 1rem; padding-bottom: 1rem;
border-bottom: 1px solid var(--main-border-color); border-bottom: 1px solid var(--main-border-color);
>h1 { h1 {
font-size: 1.4rem; font-size: 1.4rem;
margin: 0; margin: 0;
} }
@ -49,6 +49,9 @@
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
} }
.pinned {
transform: rotate(45deg);
}
} }
.page-item { .page-item {

View file

@ -69,7 +69,7 @@ function displayPageviews(data) {
if ($("#post-list").length > 0) { /* the Home page */ if ($("#post-list").length > 0) { /* the Home page */
$(".post-preview").each(function() { $(".post-preview").each(function() {
var path = $(this).children("h1").children("a").attr("href"); var path = $(this).children("div").children("h1").children("a").attr("href");
tacklePV(rows, path, $(this).find('.pageviews'), hasInit); tacklePV(rows, path, $(this).find('.pageviews'), hasInit);
}); });

View file

@ -24,7 +24,8 @@
## 功能预览 ## 功能预览
* 自动暗夜模式 * 文章置顶
* 可配置的全局主题颜色
* 文章最后修改日期 * 文章最后修改日期
* 文章目录 * 文章目录
* 自动推荐相关文章 * 自动推荐相关文章