jekyll-theme-morph 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +189 -0
- data/_includes/bread-bar.html +9 -0
- data/_includes/catalogue.html +26 -0
- data/_includes/footer.html +7 -0
- data/_includes/head.html +37 -0
- data/_includes/header.html +45 -0
- data/_includes/paginator.html +27 -0
- data/_includes/post-info.html +31 -0
- data/_includes/simple-post-info.html +14 -0
- data/_includes/trending-article-item.html +25 -0
- data/_layouts/classify.html +55 -0
- data/_layouts/default.html +16 -0
- data/_layouts/home.html +82 -0
- data/_layouts/page.html +8 -0
- data/_layouts/post.html +84 -0
- data/_layouts/search.html +36 -0
- data/_sass/classify.scss +58 -0
- data/_sass/home.scss +67 -0
- data/_sass/morph.scss +7 -0
- data/_sass/morph/_base.scss +62 -0
- data/_sass/morph/_colors.scss +42 -0
- data/_sass/morph/_functions.scss +57 -0
- data/_sass/morph/_utilities.scss +196 -0
- data/_sass/morph/_variables.scss +50 -0
- data/_sass/morph/components/_catalogue.scss +68 -0
- data/_sass/morph/components/_footer.sass +9 -0
- data/_sass/morph/components/_header.scss +80 -0
- data/_sass/morph/components/_highlight.scss +66 -0
- data/_sass/morph/components/_nano-compo.scss +23 -0
- data/_sass/morph/components/_paginator.scss +19 -0
- data/_sass/morph/components/_post-info.scss +30 -0
- data/_sass/morph/themes/obsidian.scss +86 -0
- data/_sass/morph/themes/silver.scss +79 -0
- data/_sass/post.scss +194 -0
- data/_sass/search.scss +68 -0
- data/assets/javascript/post.js +52 -0
- data/assets/javascript/search.js +51 -0
- data/assets/style/classify.scss +4 -0
- data/assets/style/home.scss +4 -0
- data/assets/style/main.scss +4 -0
- data/assets/style/post.scss +5 -0
- data/assets/style/search.scss +4 -0
- metadata +156 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 824f1bfbd6e6a88dc64144e411aa9aa0fb711e097be9edb9f472e70f1f97afc6
|
4
|
+
data.tar.gz: a716a2a636568725f4b46d0587eff6e4d208a6c2f4926392f73944baaa6f7cf8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bf19731c4c0dee3c529087158014d15a75028f3a76c14b5373fac2729d2709e37a9d5b8c401dbea14bca99d0d4823b5fa68d4926870da0f5d29bb7ebfb6345d6
|
7
|
+
data.tar.gz: 1610002e66d44a6f3d8f101ab52825a3e866f16743cd7d4fab43b0335ae328bc07d477481018a2e4be03ea0d1c6bbd37c94382e8eae2a1a3aef11cfc33a85346
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2021 Alex
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
# Morph
|
2
|
+
|
3
|
+
Morph is a simple Jekyll theme for writers.
|
4
|
+
|
5
|
+
[Demo](http://alex-1900.github.io/jekyll-theme-morph/)
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
Install with github page:
|
9
|
+
|
10
|
+
### GitHub Pages
|
11
|
+
1. Add these 2 lines in to your `Gemfile`:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem "jekyll-remote-theme"
|
15
|
+
gem "jekyll-paginate"
|
16
|
+
```
|
17
|
+
|
18
|
+
2. Install the newly added gems:
|
19
|
+
|
20
|
+
```bash
|
21
|
+
$ bundle
|
22
|
+
```
|
23
|
+
|
24
|
+
3. In `_config.yml` add these lines:
|
25
|
+
|
26
|
+
```yaml
|
27
|
+
remote_theme: alex-1900/jekyll-theme-morph
|
28
|
+
|
29
|
+
permalink: /:year/:month/:day/:title.markdown
|
30
|
+
paginate: 5
|
31
|
+
|
32
|
+
plugins:
|
33
|
+
- jekyll-paginate
|
34
|
+
- jekyll-remote-theme
|
35
|
+
```
|
36
|
+
|
37
|
+
Remove any other `theme:` or `remote_theme:` lines.
|
38
|
+
|
39
|
+
4. Rename `index.md` to `index.html`. Without this, the `jekyll-paginate` gem will not work.
|
40
|
+
|
41
|
+
## Layouts
|
42
|
+
|
43
|
+
### Pinned articles
|
44
|
+
Add the `sticky` and `sticky_subtitle`(optional) field to post file, and you can find the article at pinned area.
|
45
|
+
```yml
|
46
|
+
---
|
47
|
+
sticky: true
|
48
|
+
sticky_subtitle: some words
|
49
|
+
---
|
50
|
+
```
|
51
|
+
|
52
|
+
### Add tags and categories page
|
53
|
+
1. create new pages `tags.html` and `categories.html` and add these lines to heads:
|
54
|
+
```html
|
55
|
+
---
|
56
|
+
layout: classify
|
57
|
+
source: tags
|
58
|
+
---
|
59
|
+
```
|
60
|
+
|
61
|
+
```text
|
62
|
+
---
|
63
|
+
layout: classify
|
64
|
+
source: categories
|
65
|
+
---
|
66
|
+
```
|
67
|
+
|
68
|
+
2. add these lines to your `_config.yml`:
|
69
|
+
```yml
|
70
|
+
morph:
|
71
|
+
pages:
|
72
|
+
- name: tags
|
73
|
+
path: /tags
|
74
|
+
- name: categories
|
75
|
+
path: /categories
|
76
|
+
```
|
77
|
+
|
78
|
+
and can see the `tags` and `categories` buttons now.
|
79
|
+
|
80
|
+
### Enable tags and categories sidebar
|
81
|
+
add these lines to your `_config.yml` in `morph` field:
|
82
|
+
```yml
|
83
|
+
morph:
|
84
|
+
include:
|
85
|
+
home_categories_bar:
|
86
|
+
title: Top Categories
|
87
|
+
path: /categories
|
88
|
+
home_tags_bar:
|
89
|
+
title: Top Tags
|
90
|
+
path: /tags
|
91
|
+
```
|
92
|
+
certainly, you can change the `titles` and `paths`
|
93
|
+
|
94
|
+
### Add searching page
|
95
|
+
1. create `search.json` at project root, and add these lines:
|
96
|
+
```text
|
97
|
+
---
|
98
|
+
layout: none
|
99
|
+
permalink: /search.json
|
100
|
+
---
|
101
|
+
[
|
102
|
+
{% for post in site.posts %}
|
103
|
+
{
|
104
|
+
"title" : {{ post.title | escape | jsonify }},
|
105
|
+
"category" : {{ post.category | jsonify }},
|
106
|
+
"tags" : "{{ post.tags | join: ', ' }}",
|
107
|
+
"url" : "{{ site.baseurl }}{{ post.url }}",
|
108
|
+
"date" : "{{ post.date }}",
|
109
|
+
"content" : {{ post.content | strip_html | strip_newlines | remove_chars | jsonify }}
|
110
|
+
} {% unless forloop.last %},{% endunless %}
|
111
|
+
{% endfor %}
|
112
|
+
]
|
113
|
+
```
|
114
|
+
|
115
|
+
2. create a new file `search.html`, and add these lines to head:
|
116
|
+
```html
|
117
|
+
---
|
118
|
+
layout: search
|
119
|
+
---
|
120
|
+
```
|
121
|
+
|
122
|
+
3. add change your `_config.yml` add a new page to `morph.pages`:
|
123
|
+
```yml
|
124
|
+
morph:
|
125
|
+
pages:
|
126
|
+
- name: tags
|
127
|
+
path: /tags
|
128
|
+
- name: categories
|
129
|
+
path: /categories
|
130
|
+
- name: search
|
131
|
+
path: /search
|
132
|
+
```
|
133
|
+
|
134
|
+
## Change the skin
|
135
|
+
There are two skins: `silver` (default) and `obsidian`, you can switching between multiple skins by `_config.yml`:
|
136
|
+
```yml
|
137
|
+
morph:
|
138
|
+
skin: obsidian
|
139
|
+
```
|
140
|
+
and rebuild or restart the dev server
|
141
|
+
|
142
|
+
## Multiple language
|
143
|
+
1. Create directory and file `__data/language/[lang].yml`(the `[lang]` is abbreviation of your language)
|
144
|
+
|
145
|
+
2. replace contents with another language, the following are the default values.
|
146
|
+
|
147
|
+
```yml
|
148
|
+
t:
|
149
|
+
posts: posts
|
150
|
+
tags_low: tags
|
151
|
+
tags_up: Tags
|
152
|
+
categories_low: categories
|
153
|
+
categories_up: Categories
|
154
|
+
about_low: about
|
155
|
+
about_up: About
|
156
|
+
search_low: search
|
157
|
+
search_up: Search
|
158
|
+
catalogue: Catalogue
|
159
|
+
home: Home
|
160
|
+
page: Page
|
161
|
+
post_up: Post
|
162
|
+
search_placeholder: input key words here...
|
163
|
+
update_time: Update time
|
164
|
+
pinned_articles: Pinned Articles
|
165
|
+
top_tags: Top Tags
|
166
|
+
top_categories: Top Categories
|
167
|
+
show_more: show more
|
168
|
+
catalogue_empty: Catalogue is empty
|
169
|
+
```
|
170
|
+
|
171
|
+
3 add your the `lang` item to your page files
|
172
|
+
```html
|
173
|
+
---
|
174
|
+
lang: [lang]
|
175
|
+
---
|
176
|
+
```
|
177
|
+
|
178
|
+
(the `[lang]` is abbreviation of your language)
|
179
|
+
|
180
|
+
- for posts page, you can change the defaults scope:
|
181
|
+
```yml
|
182
|
+
defaults:
|
183
|
+
- scope:
|
184
|
+
type: "posts"
|
185
|
+
values:
|
186
|
+
lang: [lang] # the `[lang]` is abbreviation of your language
|
187
|
+
```
|
188
|
+
|
189
|
+
and rebuild or restart the dev server
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{% assign t = site.data.language[page.lang].t %}
|
2
|
+
<div class="component bread fw-bold user-select-none">
|
3
|
+
<span class="bg-primary"><a class="link-light" href="{{ '/' | site.baseurl }}">{{ t.home | default: 'Home' }}</a></span>
|
4
|
+
{% assign paths = include.paths | split: " " %}
|
5
|
+
{% for path in paths %}
|
6
|
+
<i class="fas fa-angle-right color-secondary"></i>
|
7
|
+
<span class="bg-primary color-secondary-light">{{ path }}</span>
|
8
|
+
{% endfor %}
|
9
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{% assign t = site.data.language[page.lang].t %}
|
2
|
+
<div class="full-mask" id="full-mask-catalogue">
|
3
|
+
<div class="component catalogue m-auto">
|
4
|
+
<header class="header">
|
5
|
+
<h3 class="header-text text-center color-secondary bg-primary">{{ t.catalogue | default: 'Catalogue' }}</h3>
|
6
|
+
</header>
|
7
|
+
<ul class="body bg-base w-100" id="{{ include.list_id }}">
|
8
|
+
<!-- document structure list -->
|
9
|
+
<li class="text-center color-secondary">{{ t.catalogue_empty | default: 'Catalogue is empty' }}</li>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
<script>
|
14
|
+
(function () {
|
15
|
+
"use struct"
|
16
|
+
var fullMask = document.getElementById('full-mask-catalogue')
|
17
|
+
|
18
|
+
fullMask.onclick = function () {
|
19
|
+
fullMask.style.display = 'none'
|
20
|
+
}
|
21
|
+
|
22
|
+
window.comShowCatalogue = function () {
|
23
|
+
fullMask.style.display = 'block'
|
24
|
+
}
|
25
|
+
})()
|
26
|
+
</script>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<footer class="footer">
|
2
|
+
<div class="content m-auto color-secondary-light text-center">
|
3
|
+
© <time datetime="{{ site.time }}">{{ site.time | date: '%Y' }}</time>
|
4
|
+
{{ site.domain }}, all rights reserved {{ site.github_username }}
|
5
|
+
. Made with Jekyll using the <a target="_blank" href="https://github.com/alex-1900/jekyll-theme-morph">Morph</a> theme.
|
6
|
+
</div>
|
7
|
+
</footer>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
<meta charset="UTF-8">
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
3
|
+
|
4
|
+
{% seo %}
|
5
|
+
|
6
|
+
<!-- CSS -->
|
7
|
+
<link rel="stylesheet" href="{{ "/assets/style/main.css" | relative_url }}">
|
8
|
+
|
9
|
+
<!-- Favicon -->
|
10
|
+
<link rel="icon" type="image/png" sizes="32x32" href="{{ "/assets/favicon-32x32.png" | relative_url }}">
|
11
|
+
<link rel="icon" type="image/png" sizes="16x16" href="{{ "/assets/favicon-16x16.png" | relative_url }}">
|
12
|
+
<link rel="apple-touch-icon" sizes="180x180" href="{{ "/assets/apple-touch-icon.png" | relative_url }}">
|
13
|
+
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet">
|
14
|
+
|
15
|
+
<!-- for layouts -->
|
16
|
+
{% if page.layout == 'post' %}
|
17
|
+
<link rel="stylesheet" href="{{ "/assets/style/post.css" | relative_url }}">
|
18
|
+
<script src="{{ "/assets/javascript/post.js" | relative_url }}"></script>
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
<!-- for pages -->
|
22
|
+
{% if page.layout == 'search' %}
|
23
|
+
<link rel="stylesheet" href="{{ "/assets/style/search.css" | relative_url }}">
|
24
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/simple-jekyll-search/1.9.2/simple-jekyll-search.min.js"></script>
|
25
|
+
<script src="{{ "/assets/javascript/search.js" | relative_url }}"></script>
|
26
|
+
{% endif %}
|
27
|
+
|
28
|
+
{% if page.layout == 'home' %}
|
29
|
+
<link rel="stylesheet" href="{{ "/assets/style/home.css" | relative_url }}">
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
{% if page.layout == 'classify' %}
|
33
|
+
<link rel="stylesheet" href="{{ "/assets/style/classify.css" | relative_url }}">
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
<!-- RSS -->
|
37
|
+
{% feed_meta %}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
{% assign t = site.data.language[page.lang].t %}
|
2
|
+
<nav class="header w-100 bg-primary d-flex flex-column">
|
3
|
+
<div class="border-bottom" style="height: 65%;">
|
4
|
+
<div class="m-auto content h-100 d-flex">
|
5
|
+
<div class="logo user-select-none flex-none d-flex flex-column justify-content-center">
|
6
|
+
<a class="fw-bold" href="{{ '/' | prepend: site.baseurl }}">
|
7
|
+
{{ site.title }}
|
8
|
+
</a>
|
9
|
+
</div>
|
10
|
+
<div class="search-box flex-auto d-flex flex-column justify-content-center d-sm-none">
|
11
|
+
<form action="{{ '/search' | prepend: site.baseurl }}" id="header-search-form" class="search">
|
12
|
+
<label class="search-wrap d-flex flex-none">
|
13
|
+
<input name="words" class="search-input flex-grow-1" id="header-search-input" type="text" />
|
14
|
+
<button class="search-button cursor-pointer bg-base" type="submit">
|
15
|
+
<i class="fas fa-arrow-right"></i>
|
16
|
+
</button>
|
17
|
+
</label>
|
18
|
+
</form>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div class="nav-bar bg-primary">
|
23
|
+
<div class="m-auto content">
|
24
|
+
<div>
|
25
|
+
<ul class="white-space-nowrap">
|
26
|
+
<li class="d-inline-block active"><a href="{{ '/' | prepend: site.baseurl }}">{{ t.posts | default: 'posts' }}</a></li>
|
27
|
+
{% for _page in site.morph.pages %}
|
28
|
+
<li class="d-inline-block"><a href="{{ _page.path | prepend: site.baseurl }}">{{ _page.name }}</a></li>
|
29
|
+
{% endfor %}
|
30
|
+
<li class="d-inline-block"><a href="{{ '/about' | prepend: site.baseurl }}">{{ t.about_low | default: 'about' }}</a></li>
|
31
|
+
</ul>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</nav>
|
36
|
+
|
37
|
+
<script>
|
38
|
+
var headerSearchForm = document.getElementById('header-search-form')
|
39
|
+
var headerSearchInput = document.getElementById('header-search-input')
|
40
|
+
headerSearchForm.onsubmit = function (event) {
|
41
|
+
event.preventDefault()
|
42
|
+
var words = headerSearchInput.value
|
43
|
+
window.location.href = headerSearchForm.action + '?words=' + encodeURIComponent(words)
|
44
|
+
}
|
45
|
+
</script>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div>
|
2
|
+
{% if paginator.total_pages > 1 %}
|
3
|
+
<div class="pagination">
|
4
|
+
{% if paginator.previous_page %}
|
5
|
+
<a href="{{ paginator.previous_page_path | relative_url }}"><i class="fas fa-angle-left"></i></a>
|
6
|
+
{% else %}
|
7
|
+
<span><i class="fas fa-angle-left"></i></span>
|
8
|
+
{% endif %}
|
9
|
+
|
10
|
+
{% for page in (1..paginator.total_pages) %}
|
11
|
+
{% if page == paginator.page %}
|
12
|
+
<em>{{ page }}</em>
|
13
|
+
{% elsif page == 1 %}
|
14
|
+
<a href="{{ '/' | relative_url }}">{{ page }}</a>
|
15
|
+
{% else %}
|
16
|
+
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
|
17
|
+
{% endif %}
|
18
|
+
{% endfor %}
|
19
|
+
|
20
|
+
{% if paginator.next_page %}
|
21
|
+
<a href="{{ paginator.next_page_path | relative_url }}"><i class="fas fa-angle-right"></i></a>
|
22
|
+
{% else %}
|
23
|
+
<span><i class="fas fa-angle-right"></i></span>
|
24
|
+
{% endif %}
|
25
|
+
</div>
|
26
|
+
{% endif %}
|
27
|
+
</div>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class="post-info">
|
2
|
+
<h3 class="fw-normal"><a class="color-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></h3>
|
3
|
+
<div class="d-flex">
|
4
|
+
<span class="w-100 text-start">
|
5
|
+
<time datetime="{{ post.date }}" class="d-inline-block fw-light color-secondary-light">
|
6
|
+
<i class="far fa-calendar-alt color-rang1"></i> {{ post.date | date: "%b %d, %y" }}
|
7
|
+
</time>
|
8
|
+
|
9
|
+
<time datetime="{{ post.date }}" class="d-inline-block fw-light color-secondary-light">
|
10
|
+
<i class="far fa-clock color-rang2"></i> {{ post.date | date: "%H:%M" }}
|
11
|
+
</time>
|
12
|
+
</span>
|
13
|
+
<span class="w-100 text-end">
|
14
|
+
{% if include.sticky == 'true' %}
|
15
|
+
<i class="fas fa-thumbtack color-gray-400"></i>
|
16
|
+
{% endif %}
|
17
|
+
</span>
|
18
|
+
</div>
|
19
|
+
<p class="color-secondary">
|
20
|
+
{% if post.excerpt_separator %}
|
21
|
+
{{ post.excerpt | strip_html }}
|
22
|
+
{% else %}
|
23
|
+
{{ post.content | strip_html | truncate: 200 }}
|
24
|
+
{% endif %}
|
25
|
+
</p>
|
26
|
+
<div class="categories">
|
27
|
+
{% for tag in post.tags %}
|
28
|
+
<a class="flat" href="{{ '/tags' | site.baseurl }}#{{ tag }}">{{ tag }}</a>
|
29
|
+
{% endfor %}
|
30
|
+
</div>
|
31
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="simple-post-info">
|
2
|
+
<h3 class="fw-normal"><a class="color-link-dark" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></h3>
|
3
|
+
<div class="d-flex">
|
4
|
+
<span class="info w-100 text-start">
|
5
|
+
<time datetime="{{ post.date }}" class="d-inline-block fw-light color-secondary-light">
|
6
|
+
<i class="far fa-calendar-alt color-rang1"></i> {{ post.date | date: "%b %d, %y" }}
|
7
|
+
</time>
|
8
|
+
|
9
|
+
<time datetime="{{ post.date }}" class="d-inline-block fw-light color-secondary-light">
|
10
|
+
{{ post.date | date: "%H:%M" }}
|
11
|
+
</time>
|
12
|
+
</span>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{% assign t = site.data.language[page.lang].t %}
|
2
|
+
<li class="d-flex hover-primary" style="padding: .5rem 0">
|
3
|
+
<div class="flex-none color-secondary" style="padding: 0 .4rem">
|
4
|
+
{{ include.index }}.
|
5
|
+
</div>
|
6
|
+
<div class="d-flex flex-column w-100">
|
7
|
+
<div><a class="hover-color-reversal" style="line-height: 1.4rem;" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></div>
|
8
|
+
<p class="color-secondary-light" style="padding-top: .2rem;">
|
9
|
+
{% if post.sticky_subtitle %}
|
10
|
+
{{ post.sticky_subtitle }}
|
11
|
+
{% else %}
|
12
|
+
{{ post.date | date: "%b %d, %Y %H:%M" }}
|
13
|
+
{% endif %}
|
14
|
+
</p>
|
15
|
+
</div>
|
16
|
+
<div class="flex-none d-flex flex-column justify-content-center" style="padding: 0 4px;">
|
17
|
+
<a
|
18
|
+
class="d-inline-block color-secondary-light hover-border"
|
19
|
+
style="padding: .4rem 1rem; margin-right: 1rem"
|
20
|
+
href="{{ post.url | prepend: site.baseurl }}"
|
21
|
+
>
|
22
|
+
{{ t.detail_up | default: 'info' }}
|
23
|
+
</a>
|
24
|
+
</div>
|
25
|
+
</li>
|