Merge branch 'dev' of rajukottedi/chirpy-blogging into prod
This commit is contained in:
commit
ce7ed6540a
8
.github/workflows/pages-deploy.yml
vendored
8
.github/workflows/pages-deploy.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
# submodules: true
|
# submodules: true
|
||||||
@ -42,7 +42,7 @@ jobs:
|
|||||||
- name: Setup Ruby
|
- name: Setup Ruby
|
||||||
uses: ruby/setup-ruby@v1
|
uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 3 # reads from a '.ruby-version' or '.tools-version' file if 'ruby-version' is omitted
|
ruby-version: 3
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Build site
|
- name: Build site
|
||||||
@ -52,7 +52,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Test site
|
- name: Test site
|
||||||
run: |
|
run: |
|
||||||
bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href
|
bundle exec htmlproofer _site \
|
||||||
|
\-\-disable-external=true \
|
||||||
|
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
||||||
|
|
||||||
- name: Upload site artifact
|
- name: Upload site artifact
|
||||||
uses: actions/upload-pages-artifact@v1
|
uses: actions/upload-pages-artifact@v1
|
||||||
|
|||||||
4
Gemfile
4
Gemfile
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "jekyll-theme-chirpy", "~> 6.1"
|
gem "jekyll-theme-chirpy", "~> 6.2", ">= 6.2.2"
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem "html-proofer", "~> 3.18"
|
gem "html-proofer", "~> 4.4"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||||
|
|||||||
27
README.md
27
README.md
@ -1,10 +1,18 @@
|
|||||||
# Chirpy Starter [](https://rubygems.org/gems/jekyll-theme-chirpy) [][mit]
|
# Chirpy Starter
|
||||||
|
|
||||||
When installing the [**Chirpy**][chirpy] theme through [RubyGems.org][gem], Jekyll can only read files in the folders `/_data`, `/_layouts`, `/_includes`, `/_sass` and `/assets`, as well as a small part of options of the `/_config.yml` file from the theme's gem. If you have ever installed this theme gem, you can use the command `bundle info --path jekyll-theme-chirpy` to locate these files.
|
[][gem]
|
||||||
|
[][mit]
|
||||||
|
|
||||||
The Jekyll team claims that this is to leave the ball in the user’s court, but this also results in users not being able to enjoy the out-of-the-box experience when using feature-rich themes.
|
When installing the [**Chirpy**][chirpy] theme through [RubyGems.org][gem], Jekyll can only read files in the folders
|
||||||
|
`_data`, `_layouts`, `_includes`, `_sass` and `assets`, as well as a small part of options of the `_config.yml` file
|
||||||
|
from the theme's gem. If you have ever installed this theme gem, you can use the command
|
||||||
|
`bundle info --path jekyll-theme-chirpy` to locate these files.
|
||||||
|
|
||||||
To fully use all the features of **Chirpy**, you need to copy the other critical files from the theme's gem to your Jekyll site. The following is a list of targets:
|
The Jekyll team claims that this is to leave the ball in the user’s court, but this also results in users not being
|
||||||
|
able to enjoy the out-of-the-box experience when using feature-rich themes.
|
||||||
|
|
||||||
|
To fully use all the features of **Chirpy**, you need to copy the other critical files from the theme's gem to your
|
||||||
|
Jekyll site. The following is a list of targets:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
.
|
.
|
||||||
@ -14,19 +22,22 @@ To fully use all the features of **Chirpy**, you need to copy the other critical
|
|||||||
└── index.html
|
└── index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
To save you time, and also in case you lose some files while copying, we extract those files/configurations of the latest version of the **Chirpy** theme and the [CD][CD] workflow to here, so that you can start writing in minutes.
|
To save you time, and also in case you lose some files while copying, we extract those files/configurations of the
|
||||||
|
latest version of the **Chirpy** theme and the [CD][CD] workflow to here, so that you can start writing in minutes.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
Follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of the basic environment. [Git](https://git-scm.com/) also needs to be installed.
|
Follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of
|
||||||
|
the basic environment. [Git](https://git-scm.com/) also needs to be installed.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Sign in to GitHub and [**use this template**][use-template] to generate a brand new repository and name it `USERNAME.github.io`, where `USERNAME` represents your GitHub username.
|
Sign in to GitHub and [**use this template**][use-template] to generate a brand new repository and name it
|
||||||
|
`USERNAME.github.io`, where `USERNAME` represents your GitHub username.
|
||||||
|
|
||||||
Then clone it to your local machine and run:
|
Then clone it to your local machine and run:
|
||||||
|
|
||||||
```
|
```console
|
||||||
$ bundle
|
$ bundle
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ baseurl: "/blog"
|
|||||||
# otherwise, the layout language will use the default value of 'en'.
|
# otherwise, the layout language will use the default value of 'en'.
|
||||||
lang: en
|
lang: en
|
||||||
|
|
||||||
# Change to your timezone › http://www.timezoneconverter.com/cgi-bin/findzone/findzone
|
# Change to your timezone › https://kevinnovak.github.io/Time-Zone-Picker
|
||||||
timezone: Asia/Kolkata
|
timezone: Asia/Kolkata
|
||||||
|
|
||||||
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
||||||
@ -181,12 +181,12 @@ compress_html:
|
|||||||
exclude:
|
exclude:
|
||||||
- "*.gem"
|
- "*.gem"
|
||||||
- "*.gemspec"
|
- "*.gemspec"
|
||||||
|
- docs
|
||||||
- tools
|
- tools
|
||||||
- README.md
|
- README.md
|
||||||
- CHANGELOG.md
|
- CHANGELOG.md
|
||||||
- LICENSE
|
- LICENSE
|
||||||
- rollup.config.js
|
- rollup.config.js
|
||||||
- node_modules
|
|
||||||
- package*.json
|
- package*.json
|
||||||
|
|
||||||
jekyll-archives:
|
jekyll-archives:
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
url: 'https://in.linkedin.com/in/bangara-raju-kottedi-299072109' # Fill with your Linkedin homepage
|
url: 'https://in.linkedin.com/in/bangara-raju-kottedi-299072109' # Fill with your Linkedin homepage
|
||||||
|
|
||||||
# - type: twitter
|
# - type: twitter
|
||||||
# icon: "fab fa-twitter"
|
# icon: "fa-brands fa-x-twitter"
|
||||||
|
|
||||||
- type: email
|
- type: email
|
||||||
icon: "fas fa-envelope"
|
icon: "fas fa-envelope"
|
||||||
|
|||||||
@ -57,6 +57,7 @@ post:
|
|||||||
updated: Updated
|
updated: Updated
|
||||||
views: Views
|
views: Views
|
||||||
likes: Likes
|
likes: Likes
|
||||||
|
comments: Comments
|
||||||
words: words
|
words: words
|
||||||
pageview_measure: views
|
pageview_measure: views
|
||||||
read_time:
|
read_time:
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
platforms:
|
platforms:
|
||||||
- type: Twitter
|
- type: Twitter
|
||||||
icon: "fab fa-twitter"
|
icon: "fa-brands fa-square-x-twitter"
|
||||||
link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
|
link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
|
||||||
|
|
||||||
- type: Facebook
|
- type: Facebook
|
||||||
|
|||||||
9
_includes/comments-counter.html
Normal file
9
_includes/comments-counter.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<style>
|
||||||
|
.fa-comment {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<i class="fa fa-comment" aria-hidden="true" {% if include.tooltip %} title="{{site.data.locales[include.lang].post.comments}}"
|
||||||
|
data-bs-toggle="tooltip" data-bs-placement="bottom" {% endif %}></i>
|
||||||
|
<span class="remark42__counter"></span>
|
||||||
@ -5,7 +5,7 @@
|
|||||||
var remark_config = {
|
var remark_config = {
|
||||||
host: remark42Host,
|
host: remark42Host,
|
||||||
site_id: siteId,
|
site_id: siteId,
|
||||||
components: ['embed'],
|
components: ['embed', 'counter'],
|
||||||
|
|
||||||
max_shown_comments: 10,
|
max_shown_comments: 10,
|
||||||
theme: modeToggle.modeStatus,
|
theme: modeToggle.modeStatus,
|
||||||
|
|||||||
@ -72,7 +72,7 @@
|
|||||||
<!-- Font Awesome -->
|
<!-- Font Awesome -->
|
||||||
<link rel="stylesheet" href="{{ site.data.origin[type].fontawesome.css | relative_url }}">
|
<link rel="stylesheet" href="{{ site.data.origin[type].fontawesome.css | relative_url }}">
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
|
<link rel="stylesheet" href="{{ '/assets/css/:THEME.css' | replace: ':THEME', site.theme | relative_url }}">
|
||||||
|
|
||||||
{% if site.toc and page.toc %}
|
{% if site.toc and page.toc %}
|
||||||
<link rel="stylesheet" href="{{ site.data.origin[type].toc.css | relative_url }}">
|
<link rel="stylesheet" href="{{ site.data.origin[type].toc.css | relative_url }}">
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<i class="heart-icon" {% if include.tooltip %} title="{{site.data.locales[include.lang].post.likes}}"
|
<i class="heart-icon" aria-hidden="true" {% if include.tooltip %} title="{{site.data.locales[include.lang].post.likes}}"
|
||||||
data-bs-toggle="tooltip" data-bs-placement="bottom" {% endif %}></i>
|
data-bs-toggle="tooltip" data-bs-placement="bottom" {% endif %}></i>
|
||||||
<em id="likes-count"></em>
|
<em id="likes-count"></em>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<i class="fa fa-eye fa-fw" {% if include.tooltip %} title="{{site.data.locales[include.lang].post.views}}"
|
<i class="fa fa-eye fa-fw" aria-hidden="true" {% if include.tooltip %} title="{{site.data.locales[include.lang].post.views}}"
|
||||||
data-bs-toggle="tooltip" data-bs-placement="bottom" {% endif %}></i>
|
data-bs-toggle="tooltip" data-bs-placement="bottom" {% endif %}></i>
|
||||||
<em id="views-count" style="margin-right: 12px">
|
<em id="views-count" style="margin-right: 12px">
|
||||||
</em>
|
</em>
|
||||||
|
|||||||
@ -15,6 +15,10 @@ data-mode="{{ site.theme_mode }}"
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endcapture %}
|
{% endcapture %}
|
||||||
|
|
||||||
|
{% if layout.tail_includes %}
|
||||||
|
{% assign has_tail = true %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!-- `site.alt_lang` can specify a language different from the UI -->
|
<!-- `site.alt_lang` can specify a language different from the UI -->
|
||||||
<html lang="{{ site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
|
<html lang="{{ site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
|
||||||
{% include head.html %}
|
{% include head.html %}
|
||||||
@ -31,36 +35,64 @@ data-mode="{{ site.theme_mode }}"
|
|||||||
{% include sidebar.html lang=lang %}
|
{% include sidebar.html lang=lang %}
|
||||||
|
|
||||||
<div id="main-wrapper" class="d-flex justify-content-center">
|
<div id="main-wrapper" class="d-flex justify-content-center">
|
||||||
<div id="main" class="container px-xxl-5">
|
<div class="container px-xxl-5">
|
||||||
{% include topbar.html lang=lang %}
|
{% include topbar.html lang=lang %}
|
||||||
{{ content }}
|
|
||||||
|
<div class="row">
|
||||||
|
<main
|
||||||
|
aria-label="Main Content"
|
||||||
|
class="col-12 col-lg-11 col-xl-9 px-md-4{% unless has_tail %} pb-5{% endunless %}"
|
||||||
|
>
|
||||||
|
{{ content }}
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- panel -->
|
||||||
|
<aside aria-label="Panel" id="panel-wrapper" class="col-xl-3 ps-2 text-muted">
|
||||||
|
<div class="access">
|
||||||
|
{% include_cached update-list.html lang=lang %}
|
||||||
|
{% include_cached trending-tags.html lang=lang %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% for _include in layout.panel_includes %}
|
||||||
|
{% assign _include_path = _include | append: '.html' %}
|
||||||
|
{% include {{ _include_path }} lang=lang %}
|
||||||
|
{% endfor %}
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<!-- tail -->
|
||||||
|
<div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
||||||
|
{% if has_tail %}
|
||||||
|
{% for _include in layout.tail_includes %}
|
||||||
|
{% assign _include_path = _include | append: '.html' %}
|
||||||
|
{% include {{ _include_path }} lang=lang %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% include related-posts.html lang=lang %}
|
||||||
|
{% include_cached footer.html lang=lang %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% include_cached search-results.html lang=lang %}
|
{% include_cached search-results.html lang=lang %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
{% include_cached footer.html lang=lang %}
|
<aside aria-label="Scroll to Top">
|
||||||
|
<button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</button>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="mask"></div>
|
<div id="mask"></div>
|
||||||
|
|
||||||
<button id="back-to-top" aria-label="back-to-top" class="btn btn-lg btn-box-shadow">
|
|
||||||
<i class="fas fa-angle-up"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
{% if site.pwa.enabled %}
|
{% if site.pwa.enabled %}
|
||||||
<div id="notification" class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true"
|
{% include_cached notification.html lang=lang %}
|
||||||
data-bs-autohide="false">
|
|
||||||
<div class="toast-header">
|
|
||||||
<button type="button" class="btn-close ms-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
<div class="toast-body text-center pt-0">
|
|
||||||
<p class="px-2 mb-3">{{ site.data.locales[lang].notification.update_found }}</p>
|
|
||||||
<button type="button" class="btn btn-primary" aria-label="Update">
|
|
||||||
{{ site.data.locales[lang].notification.update }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- JavaScripts -->
|
||||||
|
|
||||||
{% include js-selector.html %}
|
{% include js-selector.html %}
|
||||||
|
|
||||||
{% if page.mermaid %}
|
{% if page.mermaid %}
|
||||||
|
|||||||
@ -11,132 +11,133 @@ tail_includes:
|
|||||||
|
|
||||||
{% include lang.html %}
|
{% include lang.html %}
|
||||||
|
|
||||||
<h1 data-toc-skip>{{ page.title }}</h1>
|
<header>
|
||||||
|
<h1 data-toc-skip>{{ page.title }}</h1>
|
||||||
|
|
||||||
<div class="post-meta text-muted">
|
<div class="post-meta text-muted">
|
||||||
|
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div>
|
<div>
|
||||||
<!-- published date -->
|
<!-- published date -->
|
||||||
<span>
|
<span>
|
||||||
{{ site.data.locales[lang].post.posted }}
|
{{ site.data.locales[lang].post.posted }}
|
||||||
{% include datetime.html date=page.date tooltip=true lang=lang %}
|
{% include datetime.html date=page.date tooltip=true lang=lang %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!-- lastmod date -->
|
<!-- lastmod date -->
|
||||||
{% if page.last_modified_at and page.last_modified_at != page.date %}
|
{% if page.last_modified_at and page.last_modified_at != page.date %}
|
||||||
<span>
|
<span>
|
||||||
{{ site.data.locales[lang].post.updated }}
|
{{ site.data.locales[lang].post.updated }}
|
||||||
{% include datetime.html date=page.last_modified_at tooltip=true lang=lang %}
|
{% include datetime.html date=page.last_modified_at tooltip=true lang=lang %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- post counter -->
|
|
||||||
<div id="likes-views">
|
|
||||||
{% include likes-views.html tooltip=true lang=lang %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if page.image %}
|
|
||||||
{% capture src %}src="{{ page.image.path | default: page.image }}"{% endcapture %}
|
|
||||||
{% capture class %}class="preview-img{% if page.image.no_bg %}{{ ' no-bg' }}{% endif %}"{% endcapture %}
|
|
||||||
{% capture alt %}alt="{{ page.image.alt | xml_escape | default: "Preview Image" }}"{% endcapture %}
|
|
||||||
|
|
||||||
{% capture lqip %}
|
|
||||||
{% if page.image.lqip %}
|
|
||||||
lqip="{{ page.image.lqip }}"
|
|
||||||
{% endif %}
|
|
||||||
{% endcapture %}
|
|
||||||
|
|
||||||
<div class="mt-3 mb-3">
|
|
||||||
<img {{ src }} {{ class }} {{ alt }} w="1200" h="630" {{ lqip | strip }}>
|
|
||||||
{%- if page.image.alt -%}
|
|
||||||
<figcaption class="text-center pt-2 pb-2">{{ page.image.alt }}</figcaption>
|
|
||||||
{%- endif -%}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="d-flex justify-content-between">
|
|
||||||
<!-- author(s) -->
|
|
||||||
<span>
|
|
||||||
{% if page.author %}
|
|
||||||
{% assign authors = page.author %}
|
|
||||||
{% elsif page.authors %}
|
|
||||||
{% assign authors = page.authors %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ site.data.locales[lang].post.written_by }}
|
|
||||||
|
|
||||||
<em>
|
|
||||||
{% if authors %}
|
|
||||||
{% for author in authors %}
|
|
||||||
<a href="{{ site.data.authors[author].url }}">{{ site.data.authors[author].name }}</a>
|
|
||||||
{% unless forloop.last %}</em>, <em>{% endunless %}
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</em>
|
</div>
|
||||||
</span>
|
|
||||||
|
<!-- post counter -->
|
||||||
|
<div id="likes-views">
|
||||||
|
{% include likes-views.html tooltip=true lang=lang %}
|
||||||
|
{% include comments-counter.html tooltip=true lang=lang %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<!-- read time -->
|
|
||||||
{% include read-time.html content=content prompt=true lang=lang %}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div> <!-- .d-flex -->
|
{% if page.image %}
|
||||||
|
{% capture src %}src="{{ page.image.path | default: page.image }}"{% endcapture %}
|
||||||
|
{% capture class %}class="preview-img{% if page.image.no_bg %}{{ ' no-bg' }}{% endif %}"{% endcapture %}
|
||||||
|
{% capture alt %}alt="{{ page.image.alt | xml_escape | default: "Preview Image" }}"{% endcapture %}
|
||||||
|
|
||||||
</div> <!-- .post-meta -->
|
{% capture lqip %}
|
||||||
|
{% if page.image.lqip %}
|
||||||
|
lqip="{{ page.image.lqip }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
<div class="post-content">
|
<div class="mt-3 mb-3">
|
||||||
{{ content }}
|
<img {{ src }} {{ class }} {{ alt }} w="1200" h="630" {{ lqip | strip }}>
|
||||||
</div>
|
{%- if page.image.alt -%}
|
||||||
|
<figcaption class="text-center pt-2 pb-2">{{ page.image.alt }}</figcaption>
|
||||||
|
{%- endif -%}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="post-tail-wrapper text-muted">
|
<div class="d-flex justify-content-between">
|
||||||
|
<!-- author(s) -->
|
||||||
|
<span>
|
||||||
|
{% if page.author %}
|
||||||
|
{% assign authors = page.author %}
|
||||||
|
{% elsif page.authors %}
|
||||||
|
{% assign authors = page.authors %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!-- categories -->
|
{{ site.data.locales[lang].post.written_by }}
|
||||||
{% if page.categories.size > 0 %}
|
|
||||||
<div class="post-meta mb-3">
|
<em>
|
||||||
<i class="far fa-folder-open fa-fw me-1"></i>
|
{% if authors %}
|
||||||
{% for category in page.categories %}
|
{% for author in authors %}
|
||||||
<a href='{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/'>{{ category }}</a>
|
<a href="{{ site.data.authors[author].url }}">{{ site.data.authors[author].name }}</a>
|
||||||
{%- unless forloop.last -%}, {%- endunless -%}
|
{% unless forloop.last %}{{ '</em>, <em>' }}{% endunless %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>
|
||||||
|
{% endif %}
|
||||||
|
</em>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- read time -->
|
||||||
|
{% include read-time.html content=content prompt=true lang=lang %}
|
||||||
|
</div> <!-- .d-flex -->
|
||||||
|
|
||||||
|
</div> <!-- .post-meta -->
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
{{ content }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<!-- tags -->
|
<div class="post-tail-wrapper text-muted">
|
||||||
{% if page.tags.size > 0 %}
|
|
||||||
<div class="post-tags">
|
|
||||||
<i class="fa fa-tags fa-fw me-1"></i>
|
|
||||||
{% for tag in page.tags %}
|
|
||||||
<a href="{{ site.baseurl }}/tags/{{ tag | slugify | url_encode }}/" class="post-tag no-text-decoration">
|
|
||||||
{{- tag -}}
|
|
||||||
</a>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="post-tail-bottom
|
<!-- categories -->
|
||||||
d-flex justify-content-between align-items-center mt-3 pt-5 pb-2">
|
{% if page.categories.size > 0 %}
|
||||||
<div class="license-wrapper">
|
<div class="post-meta mb-3">
|
||||||
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
|
{% for category in page.categories %}
|
||||||
|
<a href="{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/">{{ category }}</a>
|
||||||
|
{%- unless forloop.last -%}, {%- endunless -%}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if site.data.locales[lang].copyright.license.template %}
|
<!-- tags -->
|
||||||
|
{% if page.tags.size > 0 %}
|
||||||
{% capture _replacement %}
|
<div class="post-tags">
|
||||||
<a href="{{ site.data.locales[lang].copyright.license.link }}">
|
<i class="fa fa-tags fa-fw me-1"></i>
|
||||||
{{ site.data.locales[lang].copyright.license.name }}
|
{% for tag in page.tags %}
|
||||||
|
<a href="{{ site.baseurl }}/tags/{{ tag | slugify | url_encode }}/" class="post-tag no-text-decoration">
|
||||||
|
{{- tag -}}
|
||||||
</a>
|
</a>
|
||||||
{% endcapture %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ site.data.locales[lang].copyright.license.template | replace: ':LICENSE_NAME', _replacement }}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% include post-sharing.html lang=lang %}
|
<div class="post-tail-bottom
|
||||||
|
d-flex justify-content-between align-items-center mt-3 pt-5 pb-2">
|
||||||
|
<div class="license-wrapper">
|
||||||
|
|
||||||
</div><!-- .post-tail-bottom -->
|
{% if site.data.locales[lang].copyright.license.template %}
|
||||||
|
|
||||||
</div><!-- div.post-tail-wrapper -->
|
{% capture _replacement %}
|
||||||
|
<a href="{{ site.data.locales[lang].copyright.license.link }}">
|
||||||
|
{{ site.data.locales[lang].copyright.license.name }}
|
||||||
|
</a>
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
{{ site.data.locales[lang].copyright.license.template | replace: ':LICENSE_NAME', _replacement }}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% include post-sharing.html lang=lang %}
|
||||||
|
|
||||||
|
</div><!-- .post-tail-bottom -->
|
||||||
|
|
||||||
|
</div><!-- div.post-tail-wrapper -->
|
||||||
Loading…
Reference in New Issue
Block a user