Start using a better theme #66
@ -41,8 +41,9 @@ steps:
|
|||||||
environment:
|
environment:
|
||||||
GIT_LFS_SKIP_SMUDGE: 1
|
GIT_LFS_SKIP_SMUDGE: 1
|
||||||
commands:
|
commands:
|
||||||
- git clone $DRONE_REMOTE_URL --recurse-submodules .
|
- git clone $DRONE_REMOTE_URL .
|
||||||
- git checkout $DRONE_BRANCH
|
- git checkout $DRONE_BRANCH
|
||||||
|
- git submodule update --init --recursive
|
||||||
|
|
||||||
- name: Test a build
|
- name: Test a build
|
||||||
image: git.badhouseplants.net/badhouseplants/hugo-builder
|
image: git.badhouseplants.net/badhouseplants/hugo-builder
|
||||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -1,3 +1,3 @@
|
|||||||
[submodule "themes/papermod"]
|
[submodule "src/themes/hugo-profile"]
|
||||||
path = src/themes/papermod
|
path = src/themes/hugo-profile
|
||||||
url = https://github.com/adityatelange/hugo-PaperMod.git
|
url = https://github.com/gurusabarish/hugo-profile.git
|
||||||
|
1
Makefile
1
Makefile
@ -4,3 +4,4 @@ lfs:
|
|||||||
submodules:
|
submodules:
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
|
||||||
|
24
docker-compose.yaml
Normal file
24
docker-compose.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
rclone:
|
||||||
|
image: rclone
|
||||||
|
command: sh -c "rclone copy -P badhouseplants-public:/badhouseplants-net-main /static"
|
||||||
|
hugo:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Containerfile
|
||||||
|
volumes:
|
||||||
|
- cache_vol:/var/cache
|
||||||
|
- run_vol:/run
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
public:
|
||||||
|
driver_opts:
|
||||||
|
type: tmpfs
|
||||||
|
device: tmpfs
|
||||||
|
static:
|
||||||
|
driver_opts:
|
||||||
|
type: tmpfs
|
||||||
|
device: tmpfs
|
||||||
|
|
0
src/.hugo_build.lock
Normal file
0
src/.hugo_build.lock
Normal file
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
languageCode: 'en-us'
|
languageCode: 'en-us'
|
||||||
title: 'Bad Houseplants'
|
title: 'Bad Houseplants'
|
||||||
theme: 'papermod'
|
theme: 'hugo-profile'
|
||||||
menu:
|
menu:
|
||||||
main:
|
main:
|
||||||
- name: Posts
|
- name: Posts
|
||||||
|
1
src/themes/hugo-profile
Submodule
1
src/themes/hugo-profile
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 828be0d1c04213ace8279d2d3f9f4410b2db0c51
|
@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: "[BUG]"
|
|
||||||
labels: bug
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
## READ BEFORE OPENING ISSUES
|
|
||||||
|
|
||||||
Please fill the template below
|
|
||||||
- **DO NOT** ask for instructions.
|
|
||||||
- Use Discussions section if you need help
|
|
||||||
- See project wiki https://github.com/adityatelange/hugo-PaperMod/wiki
|
|
||||||
- Read FAQs section https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs
|
|
||||||
- Search for previous issues/ pull requests
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
<!-- A clear and concise description of what the bug is. -->
|
|
||||||
|
|
||||||
- Device/Os: [e.g. Android 10]
|
|
||||||
- Type: [e.g. Desktop/Mobile]
|
|
||||||
- Browser and version [e.g. Chrome 86.0]:
|
|
||||||
- Hugo Version [ >=0.83.0 expected]:
|
|
||||||
- Theme Version [e.g. v4.0, master, or commit-id ]:
|
|
||||||
|
|
||||||
**Steps to reproduce the behavior:**
|
|
||||||
<!--
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
-->
|
|
||||||
|
|
||||||
**Expected behavior**:
|
|
||||||
<!-- A clear and concise description of what you expected to happen. -->
|
|
||||||
|
|
||||||
**Repo/Source where this issue can be reproduced**:
|
|
||||||
<!-- Please link source code of website where the said issue can be reproduced -->
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
<!--Add any other context about the problem here. -->
|
|
@ -1,5 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: PaperMod Discussions
|
|
||||||
url: https://github.com/adityatelange/hugo-PaperMod/discussions
|
|
||||||
about: Please ask and answer questions/doubts here, do not open an issue for questions.
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
name: New Blank Issue
|
|
||||||
about: Anything other than bug report
|
|
||||||
title: ""
|
|
||||||
labels: ""
|
|
||||||
assignees: ""
|
|
||||||
---
|
|
@ -1,44 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
## READ BEFORE OPENING A PR
|
|
||||||
|
|
||||||
Thank you for contributing to hugo-PaperMod!
|
|
||||||
Please fill out the following questions to make it easier for us to review your
|
|
||||||
changes. You do not need to check all the boxes below.
|
|
||||||
|
|
||||||
**NOTE**: PaperMod does not have any external dependencies fetched from 3rd party
|
|
||||||
CDN servers. However we do have custom Head/Footer extender templates which you can use
|
|
||||||
to add those to your website.
|
|
||||||
https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#custom-head--footer
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
**What does this PR change? What problem does it solve?**
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Describe the changes and their purpose here, as detailed as and if needed.
|
|
||||||
|
|
||||||
Please do not add 2 unrelated changes in a single PR as it is difficult to track/revert those in future.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
**Was the change discussed in an issue or in the Discussions before?**
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Link issues and relevant Discussions posts here.
|
|
||||||
|
|
||||||
If this PR resolves an issue on GitHub, use "Closes #1234" so that the issue
|
|
||||||
is closed automatically when this PR is merged.
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
## PR Checklist
|
|
||||||
|
|
||||||
- [ ] This change adds/updates translations and I have used the [template present here](https://github.com/adityatelange/hugo-PaperMod/wiki/Translations#want-to-add-your-language-).
|
|
||||||
- [ ] I have enabled [maintainer edits for this PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
|
||||||
- [ ] I have verified that the code works as described/as intended.
|
|
||||||
- [ ] This change adds a Social Icon which has a permissive license to use it.
|
|
||||||
- [ ] This change **does not** include any CDN resources/links.
|
|
||||||
- [ ] This change **does not** include any unrelated scripts such as bash and python scripts.
|
|
||||||
- [ ] This change updates the overridden internal templates from HUGO's repository.
|
|
17
src/themes/papermod/.github/stale.yml
vendored
17
src/themes/papermod/.github/stale.yml
vendored
@ -1,17 +0,0 @@
|
|||||||
# Number of days of inactivity before an issue becomes stale
|
|
||||||
daysUntilStale: 7
|
|
||||||
# Number of days of inactivity before a stale issue is closed
|
|
||||||
daysUntilClose: 3
|
|
||||||
# Issues with these labels will never be considered stale
|
|
||||||
exemptLabels:
|
|
||||||
- pinned
|
|
||||||
- keep
|
|
||||||
# Label to use when marking an issue as stale
|
|
||||||
staleLabel: stale
|
|
||||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
|
||||||
markComment: >
|
|
||||||
This issue has been automatically marked as stale because it has not had
|
|
||||||
recent activity. It will be closed if no further activity occurs. Thank you
|
|
||||||
for your contributions.
|
|
||||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
|
||||||
closeComment: false
|
|
@ -1,80 +0,0 @@
|
|||||||
name: Deploy Hugo PaperMod Demo to Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- "images/**"
|
|
||||||
- "LICENSE"
|
|
||||||
- "README.md"
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- exampleSite
|
|
||||||
workflow_dispatch:
|
|
||||||
# manual run
|
|
||||||
inputs:
|
|
||||||
hugoVersion:
|
|
||||||
description: "Hugo Version"
|
|
||||||
required: false
|
|
||||||
default: "0.83.0"
|
|
||||||
|
|
||||||
# Allow one concurrent deployment
|
|
||||||
concurrency:
|
|
||||||
group: "pages"
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
# Default to bash
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Build job
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
HUGO_VERSION: "0.83.0"
|
|
||||||
steps:
|
|
||||||
- name: Check version
|
|
||||||
if: ${{ github.event.inputs.hugoVersion }}
|
|
||||||
run: export HUGO_VERSION="${{ github.event.inputs.hugoVersion }}"
|
|
||||||
- name: Install Hugo CLI
|
|
||||||
run: |
|
|
||||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.deb \
|
|
||||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: exampleSite
|
|
||||||
- name: Setup Pages
|
|
||||||
id: pages
|
|
||||||
uses: actions/configure-pages@v1
|
|
||||||
- name: Get Theme
|
|
||||||
run: git submodule update --init --recursive
|
|
||||||
- name: Update theme to Latest commit
|
|
||||||
run: git submodule update --remote --merge
|
|
||||||
- name: Build with Hugo
|
|
||||||
run: |
|
|
||||||
hugo \
|
|
||||||
--buildDrafts --gc --verbose \
|
|
||||||
--baseURL ${{ steps.pages.outputs.base_url }}
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-pages-artifact@v1
|
|
||||||
with:
|
|
||||||
path: ./public
|
|
||||||
# Deployment job
|
|
||||||
deploy:
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v1
|
|
@ -1,22 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
|
||||||
Copyright (c) 2021-2022 adityatelange
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
@ -1,96 +0,0 @@
|
|||||||
<h1 align=center>Hugo PaperMod | <a href="https://adityatelange.github.io/hugo-PaperMod/" rel="nofollow">Demo</a></h1>
|
|
||||||
|
|
||||||
<h4 align=center>☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive</h4>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
|
|
||||||
> The goal of this project is to add more features and customization to the og theme.
|
|
||||||
|
|
||||||
The [demo](https://adityatelange.github.io/hugo-PaperMod/) includes a lot of documentation about Installation, Features with a few more stuff. Make sure you visit it, to get an awesome hands-on experience and get to know about the features ...
|
|
||||||
|
|
||||||
**ExampleSite** can be found here: [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite) as source.
|
|
||||||
|
|
||||||
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.83.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.83.0)
|
|
||||||
[![Build GH-Pages](https://github.com/adityatelange/hugo-PaperMod/workflows/Build%20GH-Pages/badge.svg)](https://github.com/adityatelange/hugo-PaperMod/deployments/activity_log?environment=github-pages)
|
|
||||||
[![GitHub](https://img.shields.io/github/license/adityatelange/hugo-PaperMod)](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE)
|
|
||||||
[![hugo-papermod](https://img.shields.io/badge/Hugo--Themes-@PaperMod-blue)](https://themes.gohugo.io/themes/hugo-papermod/)
|
|
||||||
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=adityatelange_hugo-PaperMod&metric=alert_status)](https://sonarcloud.io/dashboard?id=adityatelange_hugo-PaperMod)
|
|
||||||
![code-size](https://img.shields.io/github/languages/code-size/adityatelange/hugo-PaperMod)
|
|
||||||
[![Discord](https://img.shields.io/discord/971046860317921340?label=Discord)](https://discord.gg/ahpmTvhVmp)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<kbd><img src="https://user-images.githubusercontent.com/21258296/114303440-bfc0ae80-9aeb-11eb-8cfa-48a4bb385a6d.png" alt="Mockup image" title="Mockup"/></kbd>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Features/Mods 💥
|
|
||||||
|
|
||||||
- Uses Hugo's asset generator with pipelining, fingerprinting, bundling and minification by default.
|
|
||||||
- 3 Modes:
|
|
||||||
- [Regular Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#regular-mode-default-mode)
|
|
||||||
- [Home-Info Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#home-info-mode)
|
|
||||||
- [Profile Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode)
|
|
||||||
- Table of Content Generation (newer implementation).
|
|
||||||
- Archive of posts.
|
|
||||||
- Social Icons (home-info and profile-mode)
|
|
||||||
- Social-Media Share buttons on posts.
|
|
||||||
- Menu location indicator.
|
|
||||||
- Multilingual support. (with language selector)
|
|
||||||
- Taxonomies
|
|
||||||
- Cover image for each post (with Responsive image support).
|
|
||||||
- Light/Dark theme (automatic theme switch a/c to browser theme and theme-switch button).
|
|
||||||
- SEO Friendly.
|
|
||||||
- Multiple Author support.
|
|
||||||
- Search Page with Fuse.js
|
|
||||||
- Other Posts suggestion below a post
|
|
||||||
- Breadcrumb Navigation
|
|
||||||
- Code Block Copy buttons
|
|
||||||
- No webpack, nodejs and other dependencies are required to edit the theme.
|
|
||||||
|
|
||||||
Read Wiki For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Install/Update 📥
|
|
||||||
|
|
||||||
Read Wiki For More Details => **[PaperMod - Installation](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Social-Icons/Share-Icons 🖼️
|
|
||||||
|
|
||||||
Read Wiki For More Details => **[PaperMod-Icons](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## FAQs / How To's Guide 🙋
|
|
||||||
|
|
||||||
Read Wiki For More Details => **[PaperMod-FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Release Changelog 📃
|
|
||||||
|
|
||||||
Release ChangeLog has info about stuff added: **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## [Pagespeed Insights (100% ?)](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/) 👀
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Special Thanks 🌟
|
|
||||||
|
|
||||||
- [**Highlight.js**](https://github.com/highlightjs/highlight.js)
|
|
||||||
- [**Fuse.js**](https://github.com/krisk/fuse)
|
|
||||||
- [**Feather Icons**](https://github.com/feathericons/feather)
|
|
||||||
- [**Simple Icons**](https://github.com/simple-icons/simple-icons)
|
|
||||||
- **All Contributors and Supporters**
|
|
||||||
|
|
||||||
## Stargazers over time 📈
|
|
||||||
|
|
||||||
<kbd>[![Stargazers over time](https://starchart.cc/adityatelange/hugo-PaperMod.svg)](https://starchart.cc/adityatelange/hugo-PaperMod)</kbd>
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
.not-found {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
height: 80%;
|
|
||||||
font-size: 160px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
.archive-posts {
|
|
||||||
width: 100%;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-year {
|
|
||||||
margin-top: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-year:not(:last-of-type) {
|
|
||||||
border-bottom: 2px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-month {
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-start;
|
|
||||||
padding: 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-month-header {
|
|
||||||
margin: 25px 0;
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-month:not(:last-of-type) {
|
|
||||||
border-bottom: 1px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-entry {
|
|
||||||
position: relative;
|
|
||||||
padding: 5px;
|
|
||||||
margin: 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-entry-title {
|
|
||||||
margin: 5px 0;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-count,
|
|
||||||
.archive-meta {
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
.footer,
|
|
||||||
.top-link {
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
|
||||||
margin: auto;
|
|
||||||
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
|
|
||||||
text-align: center;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer span {
|
|
||||||
margin-inline-start: 1px;
|
|
||||||
margin-inline-end: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer span:last-child {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a {
|
|
||||||
color: inherit;
|
|
||||||
border-bottom: 1px solid var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a:hover {
|
|
||||||
border-bottom: 1px solid var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-link {
|
|
||||||
visibility: hidden;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 60px;
|
|
||||||
right: 30px;
|
|
||||||
z-index: 99;
|
|
||||||
background: var(--tertiary);
|
|
||||||
width: 42px;
|
|
||||||
height: 42px;
|
|
||||||
padding: 12px;
|
|
||||||
border-radius: 64px;
|
|
||||||
transition: visibility 0.5s, opacity 0.8s linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-link,
|
|
||||||
.top-link svg {
|
|
||||||
filter: drop-shadow(0px 0px 0px var(--theme));
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a:hover,
|
|
||||||
.top-link:hover {
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-link:focus,
|
|
||||||
#theme-toggle:focus {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
@ -1,93 +0,0 @@
|
|||||||
.nav {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-between;
|
|
||||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
|
||||||
margin-inline-start: auto;
|
|
||||||
margin-inline-end: auto;
|
|
||||||
line-height: var(--header-height);
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav a {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo,
|
|
||||||
#menu {
|
|
||||||
display: flex;
|
|
||||||
margin: auto var(--gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
flex-wrap: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo a {
|
|
||||||
font-size: 24px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo a img, .logo a svg {
|
|
||||||
display: inline;
|
|
||||||
vertical-align: middle;
|
|
||||||
pointer-events: none;
|
|
||||||
transform: translate(0, -10%);
|
|
||||||
border-radius: 6px;
|
|
||||||
margin-inline-end: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button#theme-toggle {
|
|
||||||
font-size: 26px;
|
|
||||||
margin: auto 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.dark #moon {
|
|
||||||
vertical-align: middle;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
body:not(.dark) #sun {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu {
|
|
||||||
list-style: none;
|
|
||||||
word-break: keep-all;
|
|
||||||
overflow-x: auto;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu li + li {
|
|
||||||
margin-inline-start: var(--gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu a {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu .active {
|
|
||||||
font-weight: 500;
|
|
||||||
border-bottom: 2px solid currentColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lang-switch li,
|
|
||||||
.lang-switch ul,
|
|
||||||
.logo-switches {
|
|
||||||
display: inline-flex;
|
|
||||||
margin: auto 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lang-switch {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lang-switch a {
|
|
||||||
margin: auto 3px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-switches {
|
|
||||||
flex-wrap: inherit;
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
.main {
|
|
||||||
position: relative;
|
|
||||||
min-height: calc(100vh - var(--header-height) - var(--footer-height));
|
|
||||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
|
||||||
margin: auto;
|
|
||||||
padding: var(--gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-header h1 {
|
|
||||||
font-size: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination a {
|
|
||||||
color: var(--theme);
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 36px;
|
|
||||||
background: var(--primary);
|
|
||||||
border-radius: calc(36px / 2);
|
|
||||||
padding: 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination .next {
|
|
||||||
margin-inline-start: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social-icons {
|
|
||||||
padding: 12px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social-icons a:not(:last-of-type) {
|
|
||||||
margin-inline-end: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social-icons a svg {
|
|
||||||
height: 26px;
|
|
||||||
width: 26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.highlight,
|
|
||||||
pre {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.copy-code {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
top: 4px;
|
|
||||||
right: 4px;
|
|
||||||
color: rgba(255, 255, 255, 0.8);
|
|
||||||
background: rgba(78, 78, 78, 0.8);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
padding: 0 5px;
|
|
||||||
font-size: 14px;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.highlight:hover .copy-code,
|
|
||||||
pre:hover .copy-code {
|
|
||||||
display: block;
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
.first-entry {
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
min-height: 320px;
|
|
||||||
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-entry .entry-header {
|
|
||||||
overflow: hidden;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-entry .entry-header h1 {
|
|
||||||
font-size: 34px;
|
|
||||||
line-height: 1.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-entry .entry-content {
|
|
||||||
margin: 14px 0;
|
|
||||||
font-size: 16px;
|
|
||||||
-webkit-line-clamp: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-entry .entry-footer {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home-info .entry-content {
|
|
||||||
-webkit-line-clamp: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-entry {
|
|
||||||
position: relative;
|
|
||||||
margin-bottom: var(--gap);
|
|
||||||
padding: var(--gap);
|
|
||||||
background: var(--entry);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
transition: transform 0.1s;
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-entry:active {
|
|
||||||
transform: scale(0.96);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-entry .entry-cover {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-header h2 {
|
|
||||||
font-size: 24px;
|
|
||||||
line-height: 1.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-content {
|
|
||||||
margin: 8px 0;
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 1.6;
|
|
||||||
overflow: hidden;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-footer {
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-link {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-cover,
|
|
||||||
.entry-isdraft {
|
|
||||||
font-size: 14px;
|
|
||||||
color: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-cover {
|
|
||||||
margin-bottom: var(--gap);
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-cover img {
|
|
||||||
border-radius: var(--radius);
|
|
||||||
pointer-events: none;
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry-cover a {
|
|
||||||
color: var(--secondary);
|
|
||||||
box-shadow: 0 1px 0 var(--primary);
|
|
||||||
}
|
|
@ -1,403 +0,0 @@
|
|||||||
.page-header,
|
|
||||||
.post-header {
|
|
||||||
margin: 24px auto var(--content-gap) auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-title {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
font-size: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-description {
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-meta,
|
|
||||||
.breadcrumbs {
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-meta .i18n_list li {
|
|
||||||
display: inline-flex;
|
|
||||||
list-style: none;
|
|
||||||
margin: auto 3px;
|
|
||||||
box-shadow: 0 1px 0 var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.breadcrumbs a {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content {
|
|
||||||
color: var(--content);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h3,
|
|
||||||
.post-content h4,
|
|
||||||
.post-content h5,
|
|
||||||
.post-content h6 {
|
|
||||||
margin: 24px 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h1 {
|
|
||||||
margin: 40px auto 32px;
|
|
||||||
font-size: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h2 {
|
|
||||||
margin: 32px auto 24px;
|
|
||||||
font-size: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h3 {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h4 {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h5 {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content h6 {
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content a,
|
|
||||||
.toc a:hover {
|
|
||||||
box-shadow: 0 1px 0;
|
|
||||||
box-decoration-break: clone;
|
|
||||||
-webkit-box-decoration-break: clone;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content a code {
|
|
||||||
margin: auto 0;
|
|
||||||
border-radius: 0;
|
|
||||||
box-shadow: 0 -1px 0 var(--primary) inset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content del {
|
|
||||||
text-decoration: none;
|
|
||||||
background: linear-gradient(to right, var(--primary) 100%, transparent 0) 0 50%/1px 1px repeat-x;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content dl,
|
|
||||||
.post-content ol,
|
|
||||||
.post-content p,
|
|
||||||
.post-content figure,
|
|
||||||
.post-content ul {
|
|
||||||
margin-bottom: var(--content-gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content ol,
|
|
||||||
.post-content ul {
|
|
||||||
padding-inline-start: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content li {
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content li p {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content dl {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content dt {
|
|
||||||
width: 25%;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content dd {
|
|
||||||
width: 75%;
|
|
||||||
margin-inline-start: 0;
|
|
||||||
padding-inline-start: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content dd ~ dd,
|
|
||||||
.post-content dt ~ dt {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content table {
|
|
||||||
margin-bottom: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content table th,
|
|
||||||
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
|
|
||||||
min-width: 80px;
|
|
||||||
padding: 12px 8px;
|
|
||||||
line-height: 1.5;
|
|
||||||
border-bottom: 1px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content table th {
|
|
||||||
font-size: 14px;
|
|
||||||
text-align: start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content table:not(.highlighttable) td code:only-child {
|
|
||||||
margin: auto 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlight table {
|
|
||||||
border-radius: var(--radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlight:not(table) {
|
|
||||||
margin: 10px auto;
|
|
||||||
background: var(--hljs-bg) !important;
|
|
||||||
border-radius: var(--radius);
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content li > .highlight {
|
|
||||||
margin-inline-end: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content ul pre {
|
|
||||||
margin-inline-start: calc(var(--gap) * -2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlight pre {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlighttable {
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlighttable td:first-child {
|
|
||||||
width: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlighttable td .linenodiv {
|
|
||||||
padding-inline-end: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content .highlighttable td .highlight,
|
|
||||||
.post-content .highlighttable td .linenodiv pre {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content code {
|
|
||||||
margin: auto 4px;
|
|
||||||
padding: 4px 6px;
|
|
||||||
font-size: 0.78em;
|
|
||||||
line-height: 1.5;
|
|
||||||
background: var(--code-bg);
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content pre code {
|
|
||||||
display: block;
|
|
||||||
margin: auto 0;
|
|
||||||
padding: 10px;
|
|
||||||
color: rgb(213, 213, 214);
|
|
||||||
background: var(--hljs-bg) !important;
|
|
||||||
border-radius: var(--radius);
|
|
||||||
overflow-x: auto;
|
|
||||||
word-break: break-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content blockquote {
|
|
||||||
margin: 20px 0;
|
|
||||||
padding: 0 14px;
|
|
||||||
border-inline-start: 3px solid var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content hr {
|
|
||||||
margin: 30px 0;
|
|
||||||
height: 2px;
|
|
||||||
background: var(--tertiary);
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content iframe {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content img {
|
|
||||||
border-radius: 4px;
|
|
||||||
margin: 1rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content img[src*="#center"] {
|
|
||||||
margin: 1rem auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content figure.align-center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content figure > figcaption {
|
|
||||||
color: var(--primary);
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 8px 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content figure > figcaption > p {
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc {
|
|
||||||
margin: 0 2px 40px 2px;
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
background: var(--code-bg);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
padding: 0.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .toc {
|
|
||||||
background: var(--entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc details summary {
|
|
||||||
cursor: zoom-in;
|
|
||||||
margin-inline-start: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc details[open] summary {
|
|
||||||
cursor: zoom-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc .details {
|
|
||||||
display: inline;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc .inner {
|
|
||||||
margin: 0 20px;
|
|
||||||
padding: 10px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc li ul {
|
|
||||||
margin-inline-start: var(--gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
.toc summary:focus {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-footer {
|
|
||||||
margin-top: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-tags li {
|
|
||||||
display: inline-block;
|
|
||||||
margin-inline-end: 3px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-tags a,
|
|
||||||
.share-buttons,
|
|
||||||
.paginav {
|
|
||||||
border-radius: var(--radius);
|
|
||||||
background: var(--code-bg);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-tags a {
|
|
||||||
display: block;
|
|
||||||
padding-inline-start: 14px;
|
|
||||||
padding-inline-end: 14px;
|
|
||||||
color: var(--secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 34px;
|
|
||||||
background: var(--code-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-tags a:hover,
|
|
||||||
.paginav a:hover {
|
|
||||||
background: var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.share-buttons {
|
|
||||||
margin: 14px 0;
|
|
||||||
padding-inline-start: var(--radius);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.share-buttons a {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.share-buttons a:not(:last-of-type) {
|
|
||||||
margin-inline-end: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1:hover .anchor,
|
|
||||||
h2:hover .anchor,
|
|
||||||
h3:hover .anchor,
|
|
||||||
h4:hover .anchor,
|
|
||||||
h5:hover .anchor,
|
|
||||||
h6:hover .anchor {
|
|
||||||
display: inline-flex;
|
|
||||||
color: var(--secondary);
|
|
||||||
margin-inline-start: 8px;
|
|
||||||
font-weight: 500;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav {
|
|
||||||
margin: 10px 0;
|
|
||||||
display: flex;
|
|
||||||
line-height: 30px;
|
|
||||||
border-radius: var(--radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav a {
|
|
||||||
padding-inline-start: 14px;
|
|
||||||
padding-inline-end: 14px;
|
|
||||||
border-radius: var(--radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav .title {
|
|
||||||
letter-spacing: 1px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-size: small;
|
|
||||||
color: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav .prev,
|
|
||||||
.paginav .next {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav span:hover:not(.title) {
|
|
||||||
box-shadow: 0 1px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginav .next {
|
|
||||||
margin-inline-start: auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
[dir="rtl"] .paginav .next {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1>a>svg {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.in-text {
|
|
||||||
display: inline;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
.buttons,
|
|
||||||
.main .profile {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main .profile {
|
|
||||||
align-items: center;
|
|
||||||
min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile .profile_inner h1 {
|
|
||||||
padding: 12px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile img {
|
|
||||||
display: inline-table;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttons {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
max-width: 400px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
background: var(--tertiary);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
margin: 8px;
|
|
||||||
padding: 6px;
|
|
||||||
transition: transform 0.1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button-inner {
|
|
||||||
padding: 0 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button:active {
|
|
||||||
transform: scale(0.96);
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
#searchbox input {
|
|
||||||
padding: 4px 10px;
|
|
||||||
width: 100%;
|
|
||||||
color: var(--primary);
|
|
||||||
font-weight: bold;
|
|
||||||
border: 2px solid var(--tertiary);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchbox input:focus {
|
|
||||||
border-color: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchResults li {
|
|
||||||
list-style: none;
|
|
||||||
border-radius: var(--radius);
|
|
||||||
padding: 10px;
|
|
||||||
margin: 10px 0;
|
|
||||||
position: relative;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchResults {
|
|
||||||
margin: 10px 0;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchResults li:active {
|
|
||||||
transition: transform 0.1s;
|
|
||||||
transform: scale(0.98);
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchResults a {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchResults .focus {
|
|
||||||
transform: scale(0.98);
|
|
||||||
border: 2px solid var(--tertiary);
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
.terms-tags li {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 10px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.terms-tags a {
|
|
||||||
display: block;
|
|
||||||
padding: 3px 10px;
|
|
||||||
background: var(--tertiary);
|
|
||||||
border-radius: 6px;
|
|
||||||
transition: transform 0.1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.terms-tags a:active {
|
|
||||||
background: var(--tertiary);
|
|
||||||
transform: scale(0.96);
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
/*
|
|
||||||
PaperMod v6
|
|
||||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
|
||||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
|
||||||
Copyright (c) 2021-2022 adityatelange
|
|
||||||
*/
|
|
@ -1,116 +0,0 @@
|
|||||||
*,
|
|
||||||
::after,
|
|
||||||
::before {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
a,
|
|
||||||
button,
|
|
||||||
body,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 1.6;
|
|
||||||
word-break: break-word;
|
|
||||||
background: var(--theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
article,
|
|
||||||
aside,
|
|
||||||
figcaption,
|
|
||||||
figure,
|
|
||||||
footer,
|
|
||||||
header,
|
|
||||||
hgroup,
|
|
||||||
main,
|
|
||||||
nav,
|
|
||||||
section,
|
|
||||||
table {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6,
|
|
||||||
p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
body,
|
|
||||||
figure,
|
|
||||||
ul {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
width: 100%;
|
|
||||||
border-collapse: collapse;
|
|
||||||
border-spacing: 0;
|
|
||||||
overflow-x: auto;
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input,
|
|
||||||
textarea {
|
|
||||||
padding: 0;
|
|
||||||
font: inherit;
|
|
||||||
background: 0 0;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
input,
|
|
||||||
textarea {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input[type=button],
|
|
||||||
input[type=submit] {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:-webkit-autofill,
|
|
||||||
textarea:-webkit-autofill {
|
|
||||||
box-shadow: 0 0 0 50px var(--theme) inset;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
:root {
|
|
||||||
--gap: 24px;
|
|
||||||
--content-gap: 20px;
|
|
||||||
--nav-width: 1024px;
|
|
||||||
--main-width: 720px;
|
|
||||||
--header-height: 60px;
|
|
||||||
--footer-height: 60px;
|
|
||||||
--radius: 8px;
|
|
||||||
--theme: rgb(255, 255, 255);
|
|
||||||
--entry: rgb(255, 255, 255);
|
|
||||||
--primary: rgb(30, 30, 30);
|
|
||||||
--secondary: rgb(108, 108, 108);
|
|
||||||
--tertiary: rgb(214, 214, 214);
|
|
||||||
--content: rgb(31, 31, 31);
|
|
||||||
--hljs-bg: rgb(28, 29, 33);
|
|
||||||
--code-bg: rgb(245, 245, 245);
|
|
||||||
--border: rgb(238, 238, 238);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark {
|
|
||||||
--theme: rgb(29, 30, 32);
|
|
||||||
--entry: rgb(46, 46, 51);
|
|
||||||
--primary: rgb(218, 218, 219);
|
|
||||||
--secondary: rgb(155, 156, 157);
|
|
||||||
--tertiary: rgb(65, 66, 68);
|
|
||||||
--content: rgb(196, 196, 197);
|
|
||||||
--hljs-bg: rgb(46, 46, 51);
|
|
||||||
--code-bg: rgb(55, 56, 62);
|
|
||||||
--border: rgb(51, 51, 51);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list {
|
|
||||||
background: var(--code-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark.list {
|
|
||||||
background: var(--theme);
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
@media screen and (max-width: 768px) {
|
|
||||||
/* theme-vars */
|
|
||||||
:root {
|
|
||||||
--gap: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* profile-mode */
|
|
||||||
.profile img {
|
|
||||||
transform: scale(0.85);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* post-entry */
|
|
||||||
.first-entry {
|
|
||||||
min-height: 260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* archive */
|
|
||||||
.archive-month {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-year {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* footer */
|
|
||||||
.footer {
|
|
||||||
padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* footer */
|
|
||||||
@media screen and (max-width: 900px) {
|
|
||||||
.list .top-link {
|
|
||||||
transform: translateY(-5rem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-reduced-motion) {
|
|
||||||
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
|
|
||||||
.terms-tags a:active,
|
|
||||||
.button:active,
|
|
||||||
.post-entry:active,
|
|
||||||
.top-link,
|
|
||||||
#searchResults .focus,
|
|
||||||
#searchResults li:active {
|
|
||||||
transform: none;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
/*
|
|
||||||
This is just a placeholder blank stylesheet so as to support adding custom styles budled with theme's default styles
|
|
||||||
|
|
||||||
Read https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#bundling-custom-css-with-themes-assets for more info
|
|
||||||
*/
|
|
@ -1,63 +0,0 @@
|
|||||||
.hljs-comment,
|
|
||||||
.hljs-quote {
|
|
||||||
color: #b6b18b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-deletion,
|
|
||||||
.hljs-name,
|
|
||||||
.hljs-regexp,
|
|
||||||
.hljs-selector-class,
|
|
||||||
.hljs-selector-id,
|
|
||||||
.hljs-tag,
|
|
||||||
.hljs-template-variable,
|
|
||||||
.hljs-variable {
|
|
||||||
color: #eb3c54;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-built_in,
|
|
||||||
.hljs-builtin-name,
|
|
||||||
.hljs-link,
|
|
||||||
.hljs-literal,
|
|
||||||
.hljs-meta,
|
|
||||||
.hljs-number,
|
|
||||||
.hljs-params,
|
|
||||||
.hljs-type {
|
|
||||||
color: #e7ce56;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-attribute {
|
|
||||||
color: #ee7c2b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-addition,
|
|
||||||
.hljs-bullet,
|
|
||||||
.hljs-string,
|
|
||||||
.hljs-symbol {
|
|
||||||
color: #4fb4d7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-section,
|
|
||||||
.hljs-title {
|
|
||||||
color: #78bb65;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-keyword,
|
|
||||||
.hljs-selector-tag {
|
|
||||||
color: #b45ea4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs {
|
|
||||||
display: block;
|
|
||||||
overflow-x: auto;
|
|
||||||
background: #1c1d21;
|
|
||||||
color: #c0c5ce;
|
|
||||||
padding: .5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-emphasis {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-strong {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
/* from reset */
|
|
||||||
::-webkit-scrollbar-track {
|
|
||||||
background: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-track {
|
|
||||||
background: var(--code-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb {
|
|
||||||
background: var(--tertiary);
|
|
||||||
border: 5px solid var(--theme);
|
|
||||||
border-radius: var(--radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
|
||||||
border: 5px solid var(--code-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) {
|
|
||||||
background: var(--theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* from post-single */
|
|
||||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content :not(table) ::-webkit-scrollbar-thumb {
|
|
||||||
border: 2px solid var(--hljs-bg);
|
|
||||||
background: rgb(113, 113, 117);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content :not(table) ::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: rgb(163, 163, 165);
|
|
||||||
}
|
|
||||||
|
|
||||||
.gist table::-webkit-scrollbar-thumb {
|
|
||||||
border: 2px solid rgb(255, 255, 255);
|
|
||||||
background: rgb(173, 173, 173);
|
|
||||||
}
|
|
||||||
|
|
||||||
.gist table::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: rgb(112, 112, 112);
|
|
||||||
}
|
|
||||||
|
|
||||||
.post-content table::-webkit-scrollbar-thumb {
|
|
||||||
border-width: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* from zmedia */
|
|
||||||
@media screen and (min-width: 768px) {
|
|
||||||
|
|
||||||
/* reset */
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 19px;
|
|
||||||
height: 11px;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,147 +0,0 @@
|
|||||||
import * as params from '@params';
|
|
||||||
|
|
||||||
let fuse; // holds our search engine
|
|
||||||
let resList = document.getElementById('searchResults');
|
|
||||||
let sInput = document.getElementById('searchInput');
|
|
||||||
let first, last, current_elem = null
|
|
||||||
let resultsAvailable = false;
|
|
||||||
|
|
||||||
// load our search index
|
|
||||||
window.onload = function () {
|
|
||||||
let xhr = new XMLHttpRequest();
|
|
||||||
xhr.onreadystatechange = function () {
|
|
||||||
if (xhr.readyState === 4) {
|
|
||||||
if (xhr.status === 200) {
|
|
||||||
let data = JSON.parse(xhr.responseText);
|
|
||||||
if (data) {
|
|
||||||
// fuse.js options; check fuse.js website for details
|
|
||||||
let options = {
|
|
||||||
distance: 100,
|
|
||||||
threshold: 0.4,
|
|
||||||
ignoreLocation: true,
|
|
||||||
keys: [
|
|
||||||
'title',
|
|
||||||
'permalink',
|
|
||||||
'summary',
|
|
||||||
'content'
|
|
||||||
]
|
|
||||||
};
|
|
||||||
if (params.fuseOpts) {
|
|
||||||
options = {
|
|
||||||
isCaseSensitive: params.fuseOpts.iscasesensitive ?? false,
|
|
||||||
includeScore: params.fuseOpts.includescore ?? false,
|
|
||||||
includeMatches: params.fuseOpts.includematches ?? false,
|
|
||||||
minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1,
|
|
||||||
shouldSort: params.fuseOpts.shouldsort ?? true,
|
|
||||||
findAllMatches: params.fuseOpts.findallmatches ?? false,
|
|
||||||
keys: params.fuseOpts.keys ?? ['title', 'permalink', 'summary', 'content'],
|
|
||||||
location: params.fuseOpts.location ?? 0,
|
|
||||||
threshold: params.fuseOpts.threshold ?? 0.4,
|
|
||||||
distance: params.fuseOpts.distance ?? 100,
|
|
||||||
ignoreLocation: params.fuseOpts.ignorelocation ?? true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fuse = new Fuse(data, options); // build the index from the json file
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(xhr.responseText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
xhr.open('GET', "../index.json");
|
|
||||||
xhr.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
function activeToggle(ae) {
|
|
||||||
document.querySelectorAll('.focus').forEach(function (element) {
|
|
||||||
// rm focus class
|
|
||||||
element.classList.remove("focus")
|
|
||||||
});
|
|
||||||
if (ae) {
|
|
||||||
ae.focus()
|
|
||||||
document.activeElement = current_elem = ae;
|
|
||||||
ae.parentElement.classList.add("focus")
|
|
||||||
} else {
|
|
||||||
document.activeElement.parentElement.classList.add("focus")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function reset() {
|
|
||||||
resultsAvailable = false;
|
|
||||||
resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults
|
|
||||||
sInput.focus(); // shift focus to input box
|
|
||||||
}
|
|
||||||
|
|
||||||
// execute search as each character is typed
|
|
||||||
sInput.onkeyup = function (e) {
|
|
||||||
// run a search query (for "term") every time a letter is typed
|
|
||||||
// in the search box
|
|
||||||
if (fuse) {
|
|
||||||
const results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
|
|
||||||
if (results.length !== 0) {
|
|
||||||
// build our html if result exists
|
|
||||||
let resultSet = ''; // our results bucket
|
|
||||||
|
|
||||||
for (let item in results) {
|
|
||||||
resultSet += `<li class="post-entry"><header class="entry-header">${results[item].item.title} »</header>` +
|
|
||||||
`<a href="${results[item].item.permalink}" aria-label="${results[item].item.title}"></a></li>`
|
|
||||||
}
|
|
||||||
|
|
||||||
resList.innerHTML = resultSet;
|
|
||||||
resultsAvailable = true;
|
|
||||||
first = resList.firstChild;
|
|
||||||
last = resList.lastChild;
|
|
||||||
} else {
|
|
||||||
resultsAvailable = false;
|
|
||||||
resList.innerHTML = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sInput.addEventListener('search', function (e) {
|
|
||||||
// clicked on x
|
|
||||||
if (!this.value) reset()
|
|
||||||
})
|
|
||||||
|
|
||||||
// kb bindings
|
|
||||||
document.onkeydown = function (e) {
|
|
||||||
let key = e.key;
|
|
||||||
let ae = document.activeElement;
|
|
||||||
|
|
||||||
let inbox = document.getElementById("searchbox").contains(ae)
|
|
||||||
|
|
||||||
if (ae === sInput) {
|
|
||||||
let elements = document.getElementsByClassName('focus');
|
|
||||||
while (elements.length > 0) {
|
|
||||||
elements[0].classList.remove('focus');
|
|
||||||
}
|
|
||||||
} else if (current_elem) ae = current_elem;
|
|
||||||
|
|
||||||
if (key === "Escape") {
|
|
||||||
reset()
|
|
||||||
} else if (!resultsAvailable || !inbox) {
|
|
||||||
return
|
|
||||||
} else if (key === "ArrowDown") {
|
|
||||||
e.preventDefault();
|
|
||||||
if (ae == sInput) {
|
|
||||||
// if the currently focused element is the search input, focus the <a> of first <li>
|
|
||||||
activeToggle(resList.firstChild.lastChild);
|
|
||||||
} else if (ae.parentElement != last) {
|
|
||||||
// if the currently focused element's parent is last, do nothing
|
|
||||||
// otherwise select the next search result
|
|
||||||
activeToggle(ae.parentElement.nextSibling.lastChild);
|
|
||||||
}
|
|
||||||
} else if (key === "ArrowUp") {
|
|
||||||
e.preventDefault();
|
|
||||||
if (ae.parentElement == first) {
|
|
||||||
// if the currently focused element is first item, go to input box
|
|
||||||
activeToggle(sInput);
|
|
||||||
} else if (ae != sInput) {
|
|
||||||
// if the currently focused element is input box, do nothing
|
|
||||||
// otherwise select the previous search result
|
|
||||||
activeToggle(ae.parentElement.previousSibling.lastChild);
|
|
||||||
}
|
|
||||||
} else if (key === "ArrowRight") {
|
|
||||||
ae.click(); // click on active link
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
44
src/themes/papermod/assets/js/highlight.min.js
vendored
44
src/themes/papermod/assets/js/highlight.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +0,0 @@
|
|||||||
/*
|
|
||||||
PaperMod v6
|
|
||||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
|
||||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
|
||||||
Copyright (c) 2021-2022 adityatelange
|
|
||||||
*/
|
|
@ -1,3 +0,0 @@
|
|||||||
module github.com/adityatelange/hugo-PaperMod
|
|
||||||
|
|
||||||
go 1.12
|
|
@ -1,22 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "الصفحة السابقة"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "الصفحة التالية"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "دقيقة واحدة"
|
|
||||||
two: "دقيقتان"
|
|
||||||
few: "بضع ثوان"
|
|
||||||
zero: "الآن"
|
|
||||||
other: "دقائق {{ .Count }}"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "فهرس المحتوى"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "ترجمات أخرى"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "الصفحة الرئيسية"
|
|
@ -1,16 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Предишна страница"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Следваща страница"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 мин"
|
|
||||||
other: "{{ .Count }} мин"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Съдържание"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Преводи"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "পূর্ববর্তী"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "পরবর্তী"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "১ মিনিট"
|
|
||||||
other: "{{ .Count }} মিনিট"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "১ টি শব্দ"
|
|
||||||
other: "{{ .Count }} টি শব্দ"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "সূচিপত্র"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "অনুবাদসমূহ"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "হোম"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "সম্পাদনা করুন"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "কপি করুন"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "কপি হয়েছে!"
|
|
@ -1,19 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Pàgina anterior"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Pàgina següent"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Taula de Continguts"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Traduccions"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Inici"
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "پەڕەی پێشتر"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "پەڕەی دواتر"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 خولەک"
|
|
||||||
other: "{{ .Count }} خولەک"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "پێڕست"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "وەرگێڕانەکان"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "ماڵەوە"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "لەبەری بگرەوە"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "لەبەر گیرایەوە!"
|
|
@ -1,28 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Forrige Side"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Næste Side"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Indholdsfortegnelse"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Oversættelser"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Start"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Rediger"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "kopier"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "kopieret!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Vorherige"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Nächste"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 Minute"
|
|
||||||
other: "{{ .Count }} Minuten"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "Wort"
|
|
||||||
other: "{{ .Count }} Wörter"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Inhaltsverzeichnis"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Übersetzungen"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Home"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Bearbeiten"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Kopieren"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Kopiert!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Prev"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Next"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "word"
|
|
||||||
other: "{{ .Count }} words"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Table of Contents"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Translations"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Home"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Edit"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "copy"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "copied!"
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "antaŭa paĝo"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "sekva paĝo"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Enhavo"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "tradukoj"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "ĉefpaĝo"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "kopii"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "kopiite!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Anterior"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Siguiente"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "palabra"
|
|
||||||
other: "{{ .Count }} palabras"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Tabla de Contenidos"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Traducciones"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Inicio"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Editar"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "copiar"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "¡copiado!"
|
|
@ -1,28 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "صفحه قبلی"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "صفحه بعدی"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "۱ دقیقه"
|
|
||||||
other: "{{ .Count }} دقیقه"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "فهرست مطالب"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "ترجمه ها"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "خانه"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "ویرایش"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "کپی"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "کپی شد!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Page précédente"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Page suivante"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "mot"
|
|
||||||
other: "{{ .Count }} mots"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Table des matières"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Traductions"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Accueil"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Modifier"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Copier"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Copié !"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "קודם"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "הבא"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "דקה אחת"
|
|
||||||
other: "דקות {{ .Count }}"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "word"
|
|
||||||
other: "מילים {{ .Count }} "
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "תוכן העניינים"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "תרגומים"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "בית"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "ערוך"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "העתק"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "!הועתק"
|
|
@ -1,19 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "पिछला"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "अगला"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "एक मिनट"
|
|
||||||
other: "{{ .Count }} मिनट"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "सुधारें"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "विषय - सूची"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "अनुवाद"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Prethodna stranica"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Sljedeća stranica"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 minuta"
|
|
||||||
other: "{{ .Count }} minute"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "riječ"
|
|
||||||
other: "{{ .Count }} riječi"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Tablica Sadržaja"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Prijevodi"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Početna stranica"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Promjeni"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "kopiraj"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "kopirano!"
|
|
@ -1,16 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Előző oldal"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Következő oldal"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 perc"
|
|
||||||
other: "{{ .Count }} perc"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Tartalomjegyzék"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Fordítások"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Sebelumnya"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Selanjutnya"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 menit"
|
|
||||||
other: "{{ .Count }} menit"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "kata"
|
|
||||||
other: "{{ .Count }} kata"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Daftar isi"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Terjemahan"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Beranda"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Sunting"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "salin"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "disalin!"
|
|
@ -1,27 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Pag Prec"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Pag Succ"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 minuto"
|
|
||||||
other: "{{ .Count }} minuti"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "parola"
|
|
||||||
other: "{{ .Count }} parole"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Tabella dei Contenuti"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Traduzioni"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "copia"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "copiato!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "前のページ"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "次のページ"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 分"
|
|
||||||
other: "{{ .Count }} 分"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one: "文字"
|
|
||||||
other: "{{ .Count }} 文字"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "目次"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "言語"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "ホーム"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "編集"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "コピー"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "コピーされました!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "이전 페이지"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "다음 페이지"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 분"
|
|
||||||
other: "{{ .Count }} 분"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "단어"
|
|
||||||
other: "{{ .Count }} 단어"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "목차"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "번역"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "홈"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "편집"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "복사"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "복사 완료!"
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Rûpela Paş"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Rûpela Pêş"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 xulek"
|
|
||||||
other: "{{ .Count }} xulek"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Pêrist"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Wergeran"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Xanî"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Jê bigire"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Hat jêgirtin!"
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Ѳмнѳх"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Дараах"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 МИН"
|
|
||||||
other: "{{ .Count }} МИН"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Агуулга"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Орчуулга"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Нүүр"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "хуулах"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "хуулсан!"
|
|
@ -1,28 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Halaman Sebelumnya"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Halaman Seterusnya"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 minit"
|
|
||||||
other: "{{ .Count }} minit"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Isi Kandungan"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Terjemahan"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Home"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Sunting"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Salin"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Disalin!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Vorige"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Volgende"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "woord"
|
|
||||||
other: "{{ .Count }} woorden"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Inhoudsopgave"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Vertalingen"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Startpagina"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Bewerk"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "kopieer"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "gekopieerd!"
|
|
@ -1,28 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Poprzednia strona"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Następna strona"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Spis treści"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Tłumaczenia"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Strona Główna"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Edytuj"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Kopiuj"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Skopiowano!"
|
|
@ -1,21 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Página Anterior"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Próxima Página"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 minuto"
|
|
||||||
other: "{{ .Count }} minutos"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "palavra"
|
|
||||||
other: "{{ .Count }} palavras"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Conteúdo"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Traduções"
|
|
@ -1,39 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Предыдущая"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Следующая"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
zero: "0 минут"
|
|
||||||
one: "1 минута"
|
|
||||||
few: "{{ .Count }} минуты"
|
|
||||||
many: "{{ .Count }} минут"
|
|
||||||
other: "{{ .Count }} минута"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
zero: "0 слов"
|
|
||||||
one: "1 слово"
|
|
||||||
few: "{{ .Count }} слова"
|
|
||||||
many: "{{ .Count }} слов"
|
|
||||||
other: "{{ .Count }} слово"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Оглавление"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Переводы"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Главная"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Редактировать"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "копировать"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "скопировано!"
|
|
@ -1,28 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Förra Sidan"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Nästa Sida"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one: "1 min"
|
|
||||||
other: "{{ .Count }} min"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Innehållsförteckning"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Översättningar"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Hem"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Redigera"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "kopiera"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "kopierad!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Önceki"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Sonraki"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 dk"
|
|
||||||
other: "{{ .Count }} dk"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one : "kelime"
|
|
||||||
other: "{{ .Count }} kelime"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "İçindekiler"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Çeviriler"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Anasayfa"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "Düzenle"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Kopyala"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Kopyalandı!"
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Попередня"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Наступна"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 хвилина"
|
|
||||||
other: "{{ .Count }} хвилин"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Зміст"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Переклади"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Головна"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "копіювати"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "скопійовано!"
|
|
@ -1,20 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Oldingi sahifa"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Keyingi sahifa"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "Bir daqiqa"
|
|
||||||
other: "{{ .Count }} daqiqa"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Mundarija"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Tarjimalar"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Bosh sahifa"
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "Trang trước"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "Trang tiếp theo"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 phút"
|
|
||||||
other: "{{ .Count }} phút"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "Mục lục"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "Bản dịch"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "Trang chủ"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "Sao chép"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "Đã sao chép!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "上一頁"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "下一頁"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 分鐘"
|
|
||||||
other: "{{ .Count }} 分鐘"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one: "字"
|
|
||||||
other: "{{ .Count }} 字"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "目錄"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "語言"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "首頁"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "編輯"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "複製"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "已複製!"
|
|
@ -1,33 +0,0 @@
|
|||||||
- id: prev_page
|
|
||||||
translation: "上一页"
|
|
||||||
|
|
||||||
- id: next_page
|
|
||||||
translation: "下一页"
|
|
||||||
|
|
||||||
- id: read_time
|
|
||||||
translation:
|
|
||||||
one : "1 分钟"
|
|
||||||
other: "{{ .Count }} 分钟"
|
|
||||||
|
|
||||||
- id: words
|
|
||||||
translation:
|
|
||||||
one: "字"
|
|
||||||
other: "{{ .Count }} 字"
|
|
||||||
|
|
||||||
- id: toc
|
|
||||||
translation: "目录"
|
|
||||||
|
|
||||||
- id: translations
|
|
||||||
translation: "语言"
|
|
||||||
|
|
||||||
- id: home
|
|
||||||
translation: "主页"
|
|
||||||
|
|
||||||
- id: edit_post
|
|
||||||
translation: "编辑"
|
|
||||||
|
|
||||||
- id: code_copy
|
|
||||||
translation: "复制"
|
|
||||||
|
|
||||||
- id: code_copied
|
|
||||||
translation: "已复制!"
|
|
Binary file not shown.
Before Width: | Height: | Size: 138 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
@ -1,3 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
<div class="not-found">404</div>
|
|
||||||
{{- end }}{{/* end main */ -}}
|
|
@ -1 +0,0 @@
|
|||||||
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />
|
|
@ -1,49 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
|
|
||||||
<header class="page-header">
|
|
||||||
<h1>{{ .Title }}</h1>
|
|
||||||
{{- if .Description }}
|
|
||||||
<div class="post-description">
|
|
||||||
{{ .Description }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
|
|
||||||
|
|
||||||
{{- if site.Params.ShowAllPagesInArchive }}
|
|
||||||
{{- $pages = site.RegularPages }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- range $pages.GroupByPublishDate "2006" }}
|
|
||||||
{{- if ne .Key "0001" }}
|
|
||||||
<div class="archive-year">
|
|
||||||
<h2 class="archive-year-header">
|
|
||||||
{{- replace .Key "0001" "" }}<sup class="archive-count"> {{ len .Pages }}</sup>
|
|
||||||
</h2>
|
|
||||||
{{- range .Pages.GroupByDate "January" }}
|
|
||||||
<div class="archive-month">
|
|
||||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3>
|
|
||||||
<div class="archive-posts">
|
|
||||||
{{- range .Pages }}
|
|
||||||
{{- if eq .Kind "page" }}
|
|
||||||
<div class="archive-entry">
|
|
||||||
<h3 class="archive-entry-title">
|
|
||||||
{{- .Title | markdownify }}
|
|
||||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
|
||||||
</h3>
|
|
||||||
<div class="archive-meta">
|
|
||||||
{{- partial "post_meta.html" . -}}
|
|
||||||
</div>
|
|
||||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- end }}{{/* end main */}}
|
|
@ -1,23 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
{{- partial "head.html" . }}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="
|
|
||||||
{{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) -}}
|
|
||||||
{{- print "list" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- if eq site.Params.defaultTheme `dark` -}}
|
|
||||||
{{- print " dark" }}
|
|
||||||
{{- end -}}
|
|
||||||
" id="top">
|
|
||||||
{{- partialCached "header.html" . .Page -}}
|
|
||||||
<main class="main">
|
|
||||||
{{- block "main" . }}{{ end }}
|
|
||||||
</main>
|
|
||||||
{{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}}
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,7 +0,0 @@
|
|||||||
{{- $.Scratch.Add "index" slice -}}
|
|
||||||
{{- range site.RegularPages -}}
|
|
||||||
{{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }}
|
|
||||||
{{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary) -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $.Scratch.Get "index" | jsonify -}}
|
|
@ -1,112 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
|
|
||||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
|
||||||
{{- partial "index_profile.html" . }}
|
|
||||||
{{- else }} {{/* if not profileMode */}}
|
|
||||||
|
|
||||||
{{- if not .IsHome | and .Title }}
|
|
||||||
<header class="page-header">
|
|
||||||
{{- partial "breadcrumbs.html" . }}
|
|
||||||
<h1>
|
|
||||||
{{ .Title }}
|
|
||||||
{{- if and (or (eq .Kind `term`) (eq .Kind `section`)) (.Param "ShowRssButtonInSectionTermList") }}
|
|
||||||
<a href="index.xml" title="RSS" aria-label="RSS">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
|
||||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
|
||||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
|
||||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
|
||||||
<circle cx="5" cy="19" r="1" />
|
|
||||||
</svg>
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
</h1>
|
|
||||||
{{- if .Description }}
|
|
||||||
<div class="post-description">
|
|
||||||
{{ .Description | markdownify }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</header>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if .Content }}
|
|
||||||
<div class="post-content">
|
|
||||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
|
||||||
{{- partial "anchored_headings.html" .Content -}}
|
|
||||||
{{- else }}{{ .Content }}{{ end }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $pages := union .RegularPages .Sections }}
|
|
||||||
|
|
||||||
{{- if .IsHome }}
|
|
||||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
|
||||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $paginator := .Paginate $pages }}
|
|
||||||
|
|
||||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
|
||||||
{{- partial "home_info.html" . }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $term := .Data.Term }}
|
|
||||||
{{- range $index, $page := $paginator.Pages }}
|
|
||||||
|
|
||||||
{{- $class := "post-entry" }}
|
|
||||||
|
|
||||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
|
||||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
|
||||||
{{- $class = "first-entry" }}
|
|
||||||
{{- else if $term }}
|
|
||||||
{{- $class = "post-entry tag-entry" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
<article class="{{ $class }}">
|
|
||||||
{{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
|
|
||||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
|
||||||
<header class="entry-header">
|
|
||||||
<h2>
|
|
||||||
{{- .Title }}
|
|
||||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
|
||||||
</h2>
|
|
||||||
</header>
|
|
||||||
{{- if (ne (.Param "hideSummary") true) }}
|
|
||||||
<div class="entry-content">
|
|
||||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
{{- if not (.Param "hideMeta") }}
|
|
||||||
<footer class="entry-footer">
|
|
||||||
{{- partial "post_meta.html" . -}}
|
|
||||||
</footer>
|
|
||||||
{{- end }}
|
|
||||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
|
||||||
</article>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if gt $paginator.TotalPages 1 }}
|
|
||||||
<footer class="page-footer">
|
|
||||||
<nav class="pagination">
|
|
||||||
{{- if $paginator.HasPrev }}
|
|
||||||
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
|
|
||||||
« {{ i18n "prev_page" }}
|
|
||||||
{{- if (.Param "ShowPageNums") }}
|
|
||||||
{{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
|
|
||||||
{{- end }}
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
{{- if $paginator.HasNext }}
|
|
||||||
<a class="next" href="{{ $paginator.Next.URL | absURL }}">
|
|
||||||
{{- i18n "next_page" }}
|
|
||||||
{{- if (.Param "ShowPageNums") }}
|
|
||||||
{{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
|
|
||||||
{{- end }} »
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- end }}{{/* end profileMode */}}
|
|
||||||
|
|
||||||
{{- end }}{{- /* end main */ -}}
|
|
@ -1,50 +0,0 @@
|
|||||||
{{- $pctx := . -}}
|
|
||||||
{{- if .IsHome -}}{{ $pctx = site }}{{- end -}}
|
|
||||||
{{- $pages := slice -}}
|
|
||||||
{{- if or $.IsHome $.IsSection -}}
|
|
||||||
{{- $pages = $pctx.RegularPages -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- $pages = $pctx.Pages -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $limit := site.Config.Services.RSS.Limit -}}
|
|
||||||
{{- if ge $limit 1 -}}
|
|
||||||
{{- $pages = $pages | first $limit -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
||||||
<channel>
|
|
||||||
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ site.Title }}{{ end }}</title>
|
|
||||||
<link>{{ .Permalink }}</link>
|
|
||||||
<description>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ site.Title }}</description>
|
|
||||||
{{- with site.Params.images }}
|
|
||||||
<image>
|
|
||||||
<url>{{ index . 0 | absURL }}</url>
|
|
||||||
<link>{{ index . 0 | absURL }}</link>
|
|
||||||
</image>
|
|
||||||
{{- end }}
|
|
||||||
<generator>Hugo -- gohugo.io</generator>{{ with site.LanguageCode }}
|
|
||||||
<language>{{.}}</language>{{end}}{{ with site.Author.email }}
|
|
||||||
<managingEditor>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with site.Author.email }}
|
|
||||||
<webMaster>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with site.Copyright }}
|
|
||||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
|
||||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
|
||||||
{{- with .OutputFormats.Get "RSS" -}}
|
|
||||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
|
||||||
{{- end -}}
|
|
||||||
{{ range $pages }}
|
|
||||||
{{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
|
|
||||||
<item>
|
|
||||||
<title>{{ .Title }}</title>
|
|
||||||
<link>{{ .Permalink }}</link>
|
|
||||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
|
||||||
{{ with site.Author.email }}<author>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
|
||||||
<guid>{{ .Permalink }}</guid>
|
|
||||||
<description>{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</description>
|
|
||||||
{{- if site.Params.ShowFullTextinRSS }}
|
|
||||||
<content:encoded>{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content:encoded>
|
|
||||||
{{- end }}
|
|
||||||
</item>
|
|
||||||
{{- end }}
|
|
||||||
{{ end }}
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
@ -1,29 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
|
|
||||||
<header class="page-header">
|
|
||||||
<h1>{{- (printf "%s " .Title ) | htmlUnescape -}}
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none"
|
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
||||||
<circle cx="11" cy="11" r="8"></circle>
|
|
||||||
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
||||||
</svg>
|
|
||||||
</h1>
|
|
||||||
{{- if .Description }}
|
|
||||||
<div class="post-description">
|
|
||||||
{{ .Description }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
{{- if not (.Param "hideMeta") }}
|
|
||||||
<div class="post-meta">
|
|
||||||
{{- partial "translation_list.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div id="searchbox">
|
|
||||||
<input id="searchInput" autofocus placeholder="{{ .Params.placeholder | default (printf "%s ↵" .Title) }}"
|
|
||||||
aria-label="search" type="search" autocomplete="off">
|
|
||||||
<ul id="searchResults" aria-label="search results"></ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{- end }}{{/* end main */}}
|
|
@ -1,58 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
|
|
||||||
<article class="post-single">
|
|
||||||
<header class="post-header">
|
|
||||||
{{ partial "breadcrumbs.html" . }}
|
|
||||||
<h1 class="post-title">
|
|
||||||
{{ .Title }}
|
|
||||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
|
||||||
</h1>
|
|
||||||
{{- if .Description }}
|
|
||||||
<div class="post-description">
|
|
||||||
{{ .Description }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
{{- if not (.Param "hideMeta") }}
|
|
||||||
<div class="post-meta">
|
|
||||||
{{- partial "post_meta.html" . -}}
|
|
||||||
{{- partial "translation_list.html" . -}}
|
|
||||||
{{- partial "edit_post.html" . -}}
|
|
||||||
{{- partial "post_canonical.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</header>
|
|
||||||
{{- $isHidden := .Params.cover.hidden | default site.Params.cover.hiddenInSingle | default site.Params.cover.hidden }}
|
|
||||||
{{- partial "cover.html" (dict "cxt" . "IsHome" false "isHidden" $isHidden) }}
|
|
||||||
{{- if (.Param "ShowToc") }}
|
|
||||||
{{- partial "toc.html" . }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if .Content }}
|
|
||||||
<div class="post-content">
|
|
||||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
|
||||||
{{- partial "anchored_headings.html" .Content -}}
|
|
||||||
{{- else }}{{ .Content }}{{ end }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
<footer class="post-footer">
|
|
||||||
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
|
|
||||||
<ul class="post-tags">
|
|
||||||
{{- range ($.GetTerms $tags) }}
|
|
||||||
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
|
|
||||||
{{- end }}
|
|
||||||
</ul>
|
|
||||||
{{- if (.Param "ShowPostNavLinks") }}
|
|
||||||
{{- partial "post_nav_links.html" . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
|
|
||||||
{{- partial "share_icons.html" . -}}
|
|
||||||
{{- end }}
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
{{- if (.Param "comments") }}
|
|
||||||
{{- partial "comments.html" . }}
|
|
||||||
{{- end }}
|
|
||||||
</article>
|
|
||||||
|
|
||||||
{{- end }}{{/* end main */}}
|
|
@ -1,27 +0,0 @@
|
|||||||
{{- define "main" }}
|
|
||||||
|
|
||||||
{{- if .Title }}
|
|
||||||
<header class="page-header">
|
|
||||||
<h1>{{ .Title }}</h1>
|
|
||||||
{{- if .Description }}
|
|
||||||
<div class="post-description">
|
|
||||||
{{ .Description }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</header>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
<ul class="terms-tags">
|
|
||||||
{{- $type := .Type }}
|
|
||||||
{{- range $key, $value := .Data.Terms.Alphabetical }}
|
|
||||||
{{- $name := .Name }}
|
|
||||||
{{- $count := .Count }}
|
|
||||||
{{- with site.GetPage (printf "/%s/%s" $type $name) }}
|
|
||||||
<li>
|
|
||||||
<a href="{{ .Permalink }}">{{ .Name }} <sup><strong><sup>{{ $count }}</sup></strong></sup> </a>
|
|
||||||
</li>
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
{{- end }}{{/* end main */ -}}
|
|
@ -1,2 +0,0 @@
|
|||||||
{{- /* formats .Content headings by adding an anchor */ -}}
|
|
||||||
{{ . | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" "${1}<a hidden class=\"anchor\" aria-hidden=\"true\" href=\"#${2}\">#</a>${3}" | safeHTML }}
|
|
@ -1,9 +0,0 @@
|
|||||||
{{- if or .Params.author site.Params.author }}
|
|
||||||
{{- $author := (.Params.author | default site.Params.author) }}
|
|
||||||
{{- $author_type := (printf "%T" $author) }}
|
|
||||||
{{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}")) }}
|
|
||||||
{{- (delimit $author ", " ) }}
|
|
||||||
{{- else }}
|
|
||||||
{{- $author }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
@ -1,19 +0,0 @@
|
|||||||
{{- if (.Param "ShowBreadCrumbs") -}}
|
|
||||||
<div class="breadcrumbs">
|
|
||||||
{{- $url := replace .Parent.Permalink (printf "%s" site.BaseURL) "" }}
|
|
||||||
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}
|
|
||||||
|
|
||||||
<a href="{{ "" | absLangURL }}">{{ i18n "home" | default "Home" }}</a>
|
|
||||||
{{- $scratch := newScratch }}
|
|
||||||
{{- range $index, $element := split $lang_url "/" }}
|
|
||||||
|
|
||||||
{{- $scratch.Add "path" (printf "%s/" $element )}}
|
|
||||||
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
|
|
||||||
|
|
||||||
{{- if (and ($bc_pg) (gt (len . ) 0))}}
|
|
||||||
{{- print " » " | safeHTML -}}<a href="{{ $bc_pg.Permalink }}">{{ $bc_pg.Name }}</a>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- end -}}
|
|
||||||
</div>
|
|
||||||
{{- end -}}
|
|
@ -1,3 +0,0 @@
|
|||||||
{{- /* Comments area start */ -}}
|
|
||||||
{{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}}
|
|
||||||
{{- /* Comments area end */ -}}
|
|
@ -1,40 +0,0 @@
|
|||||||
{{- with .cxt}} {{/* Apply proper context from dict */}}
|
|
||||||
{{- if (and .Params.cover.image (not $.isHidden)) }}
|
|
||||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
|
|
||||||
<figure class="entry-cover">
|
|
||||||
{{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
|
|
||||||
{{- $addLink := (and site.Params.cover.linkFullImages (not $.IsHome)) }}
|
|
||||||
{{- $cover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
|
||||||
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
|
|
||||||
{{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" target="_blank"
|
|
||||||
rel="noopener noreferrer">{{ end -}}
|
|
||||||
{{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
|
|
||||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
|
||||||
{{- if hugo.IsExtended -}}
|
|
||||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
|
||||||
{{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }}
|
|
||||||
<img loading="lazy" srcset="{{- range $size := $sizes -}}
|
|
||||||
{{- if (ge $cover.Width $size) -}}
|
|
||||||
{{ printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw ," $size) -}}
|
|
||||||
{{ end }}
|
|
||||||
{{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}"
|
|
||||||
sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}"
|
|
||||||
width="{{ $cover.Width }}" height="{{ $cover.Height }}">
|
|
||||||
{{- else }}{{/* Unprocessable image or responsive images disabled */}}
|
|
||||||
<img loading="lazy" src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
|
||||||
{{- end }}
|
|
||||||
{{- else }}{{/* For absolute urls and external links, no img processing here */}}
|
|
||||||
{{- if $addLink }}<a href="{{ (.Params.cover.image) | absURL }}" target="_blank"
|
|
||||||
rel="noopener noreferrer">{{ end -}}
|
|
||||||
<img loading="lazy" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
|
||||||
{{- end }}
|
|
||||||
{{- if $addLink }}</a>{{ end -}}
|
|
||||||
{{/* Display Caption */}}
|
|
||||||
{{- if not $.IsHome }}
|
|
||||||
{{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
</figure>
|
|
||||||
{{- end }}{{/* End image */}}
|
|
||||||
{{- end -}}{{/* End context */ -}}
|
|
@ -1,8 +0,0 @@
|
|||||||
{{- if or .Params.editPost.URL site.Params.editPost.URL -}}
|
|
||||||
{{- $fileUrlPath := path.Join .File.Path }}
|
|
||||||
|
|
||||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}}
|
|
||||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer" target="_blank">
|
|
||||||
{{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
@ -1,3 +0,0 @@
|
|||||||
{{- /* Footer custom content area start */ -}}
|
|
||||||
{{- /* Insert any custom code web-analytics, resources, etc. here */ -}}
|
|
||||||
{{- /* Footer custom content area end */ -}}
|
|
@ -1,4 +0,0 @@
|
|||||||
{{- /* Head custom content area start */ -}}
|
|
||||||
{{- /* Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. */ -}}
|
|
||||||
{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}}
|
|
||||||
{{- /* Head custom content area end */ -}}
|
|
@ -1,135 +0,0 @@
|
|||||||
{{- if not (.Param "hideFooter") }}
|
|
||||||
<footer class="footer">
|
|
||||||
{{- if site.Copyright }}
|
|
||||||
<span>{{ site.Copyright | markdownify }}</span>
|
|
||||||
{{- else }}
|
|
||||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
|
|
||||||
{{- end }}
|
|
||||||
<span>
|
|
||||||
Powered by
|
|
||||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
|
||||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
|
||||||
</span>
|
|
||||||
</footer>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if (not site.Params.disableScrollToTop) }}
|
|
||||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
|
||||||
<path d="M12 6H0l6-6z" />
|
|
||||||
</svg>
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- partial "extend_footer.html" . }}
|
|
||||||
|
|
||||||
<script>
|
|
||||||
let menu = document.getElementById('menu')
|
|
||||||
if (menu) {
|
|
||||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
|
||||||
menu.onscroll = function () {
|
|
||||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
|
||||||
anchor.addEventListener("click", function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
var id = this.getAttribute("href").substr(1);
|
|
||||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
|
||||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
|
||||||
behavior: "smooth"
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
|
||||||
}
|
|
||||||
if (id === "top") {
|
|
||||||
history.replaceState(null, null, " ");
|
|
||||||
} else {
|
|
||||||
history.pushState(null, null, `#${id}`);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{{- if (not site.Params.disableScrollToTop) }}
|
|
||||||
<script>
|
|
||||||
var mybutton = document.getElementById("top-link");
|
|
||||||
window.onscroll = function () {
|
|
||||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
|
||||||
mybutton.style.visibility = "visible";
|
|
||||||
mybutton.style.opacity = "1";
|
|
||||||
} else {
|
|
||||||
mybutton.style.visibility = "hidden";
|
|
||||||
mybutton.style.opacity = "0";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if (not site.Params.disableThemeToggle) }}
|
|
||||||
<script>
|
|
||||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
|
||||||
if (document.body.className.includes("dark")) {
|
|
||||||
document.body.classList.remove('dark');
|
|
||||||
localStorage.setItem("pref-theme", 'light');
|
|
||||||
} else {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
localStorage.setItem("pref-theme", 'dark');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }}
|
|
||||||
<script>
|
|
||||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
|
||||||
const container = codeblock.parentNode.parentNode;
|
|
||||||
|
|
||||||
const copybutton = document.createElement('button');
|
|
||||||
copybutton.classList.add('copy-code');
|
|
||||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
|
||||||
|
|
||||||
function copyingDone() {
|
|
||||||
copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}';
|
|
||||||
setTimeout(() => {
|
|
||||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
|
|
||||||
copybutton.addEventListener('click', (cb) => {
|
|
||||||
if ('clipboard' in navigator) {
|
|
||||||
navigator.clipboard.writeText(codeblock.textContent);
|
|
||||||
copyingDone();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const range = document.createRange();
|
|
||||||
range.selectNodeContents(codeblock);
|
|
||||||
const selection = window.getSelection();
|
|
||||||
selection.removeAllRanges();
|
|
||||||
selection.addRange(range);
|
|
||||||
try {
|
|
||||||
document.execCommand('copy');
|
|
||||||
copyingDone();
|
|
||||||
} catch (e) { };
|
|
||||||
selection.removeRange(range);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (container.classList.contains("highlight")) {
|
|
||||||
container.appendChild(copybutton);
|
|
||||||
} else if (container.parentNode.firstChild == container) {
|
|
||||||
// td containing LineNos
|
|
||||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
|
||||||
// table containing LineNos and code
|
|
||||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
|
||||||
} else {
|
|
||||||
// code blocks not having highlight as parent class
|
|
||||||
codeblock.parentNode.appendChild(copybutton);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{{- end }}
|
|
@ -1,170 +0,0 @@
|
|||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") | and (ne .Params.robotsNoIndex true) }}
|
|
||||||
<meta name="robots" content="index, follow">
|
|
||||||
{{- else }}
|
|
||||||
<meta name="robots" content="noindex, nofollow">
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- /* Title */}}
|
|
||||||
<title>{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ site.Title }}</title>
|
|
||||||
|
|
||||||
{{- /* Meta */}}
|
|
||||||
{{- if .IsHome }}
|
|
||||||
{{ with site.Params.keywords -}}<meta name="keywords" content="{{- range $i, $e := . }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}">{{ end }}
|
|
||||||
{{- else }}
|
|
||||||
<meta name="keywords" content="{{ if .Params.keywords -}}
|
|
||||||
{{- range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- else }}
|
|
||||||
{{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}">
|
|
||||||
{{- end }}
|
|
||||||
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if or .IsPage .IsSection}}
|
|
||||||
{{- .Summary | default (printf "%s - %s" .Title site.Title) }}{{- else }}
|
|
||||||
{{- with site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
|
|
||||||
<meta name="author" content="{{ (partial "author.html" . ) }}">
|
|
||||||
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}">
|
|
||||||
{{- if site.Params.analytics.google.SiteVerificationTag }}
|
|
||||||
<meta name="google-site-verification" content="{{ site.Params.analytics.google.SiteVerificationTag }}">
|
|
||||||
{{- end }}
|
|
||||||
{{- if site.Params.analytics.yandex.SiteVerificationTag }}
|
|
||||||
<meta name="yandex-verification" content="{{ site.Params.analytics.yandex.SiteVerificationTag }}">
|
|
||||||
{{- end }}
|
|
||||||
{{- if site.Params.analytics.bing.SiteVerificationTag }}
|
|
||||||
<meta name="msvalidate.01" content="{{ site.Params.analytics.bing.SiteVerificationTag }}">
|
|
||||||
{{- end }}
|
|
||||||
{{- if site.Params.analytics.naver.SiteVerificationTag }}
|
|
||||||
<meta name="naver-site-verification" content="{{ site.Params.analytics.naver.SiteVerificationTag }}">
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- /* Styles */}}
|
|
||||||
|
|
||||||
{{- /* includes */}}
|
|
||||||
{{- $includes := slice }}
|
|
||||||
{{- $includes = $includes | append (" " | resources.FromString "assets/css/includes-blank.css")}}
|
|
||||||
|
|
||||||
{{- if not (eq site.Params.assets.disableScrollBarStyle true) }}
|
|
||||||
{{- $ScrollStyle := (resources.Get "css/includes/scroll-bar.css") }}
|
|
||||||
{{- $includes = (append $ScrollStyle $includes) }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $includes_all := $includes | resources.Concat "assets/css/includes.css" }}
|
|
||||||
|
|
||||||
{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }}
|
|
||||||
{{- $reset := (resources.Get "css/core/reset.css") }}
|
|
||||||
{{- $media := (resources.Get "css/core/zmedia.css") }}
|
|
||||||
{{- $license_css := (resources.Get "css/core/license.css") }}
|
|
||||||
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
|
|
||||||
|
|
||||||
{{- /* include `an-old-hope` if hljs is on */}}
|
|
||||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default false) }}
|
|
||||||
{{- $hljs := (cond ($isHLJSdisabled) (".chroma { background-color: unset !important;}" | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
|
|
||||||
|
|
||||||
{{- /* order is important */}}
|
|
||||||
{{- $core := (slice $theme_vars $reset $common $hljs $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
|
|
||||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }}
|
|
||||||
|
|
||||||
{{- /* bundle all required css */}}
|
|
||||||
{{- /* Add extended css after theme style */ -}}
|
|
||||||
{{- $stylesheet := (slice $license_css $core $extended) | resources.Concat "assets/css/stylesheet.css" }}
|
|
||||||
|
|
||||||
{{- if not site.Params.assets.disableFingerprinting }}
|
|
||||||
{{- $stylesheet := $stylesheet | fingerprint }}
|
|
||||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet" as="style">
|
|
||||||
{{- else }}
|
|
||||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- /* Search */}}
|
|
||||||
{{- if (eq .Layout `search`) -}}
|
|
||||||
<link crossorigin="anonymous" rel="preload" as="fetch" href="../index.json">
|
|
||||||
{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" site.Params.fuseOpts)) | resources.Minify }}
|
|
||||||
{{- $fusejs := resources.Get "js/fuse.basic.min.js" }}
|
|
||||||
{{- $license_js := resources.Get "js/license.js" }}
|
|
||||||
{{- if not site.Params.assets.disableFingerprinting }}
|
|
||||||
{{- $search := (slice $fusejs $license_js $fastsearch ) | resources.Concat "assets/js/search.js" | fingerprint }}
|
|
||||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
|
|
||||||
{{- else }}
|
|
||||||
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" }}
|
|
||||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}"></script>
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- /* Highlight.js */}}
|
|
||||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
|
||||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
|
||||||
{{- if not site.Params.assets.disableFingerprinting }}
|
|
||||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | fingerprint }}
|
|
||||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
|
||||||
onload="hljs.initHighlightingOnLoad();"></script>
|
|
||||||
{{- else }}
|
|
||||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" }}
|
|
||||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- /* Favicons */}}
|
|
||||||
<link rel="icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}">
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
|
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL }}">
|
|
||||||
<link rel="apple-touch-icon" href="{{ site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL }}">
|
|
||||||
<link rel="mask-icon" href="{{ site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL }}">
|
|
||||||
<meta name="theme-color" content="{{ site.Params.assets.theme_color | default "#2e2e33" }}">
|
|
||||||
<meta name="msapplication-TileColor" content="{{ site.Params.assets.msapplication_TileColor | default "#2e2e33" }}">
|
|
||||||
|
|
||||||
{{- /* RSS */}}
|
|
||||||
{{ range .AlternativeOutputFormats -}}
|
|
||||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
|
|
||||||
{{ end -}}
|
|
||||||
{{- range .AllTranslations -}}
|
|
||||||
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
|
|
||||||
{{ end -}}
|
|
||||||
|
|
||||||
<noscript>
|
|
||||||
<style>
|
|
||||||
#theme-toggle,
|
|
||||||
.top-link {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
{{- if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark")) }}
|
|
||||||
<style>
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
--theme: rgb(29, 30, 32);
|
|
||||||
--entry: rgb(46, 46, 51);
|
|
||||||
--primary: rgb(218, 218, 219);
|
|
||||||
--secondary: rgb(155, 156, 157);
|
|
||||||
--tertiary: rgb(65, 66, 68);
|
|
||||||
--content: rgb(196, 196, 197);
|
|
||||||
--hljs-bg: rgb(46, 46, 51);
|
|
||||||
--code-bg: rgb(55, 56, 62);
|
|
||||||
--border: rgb(51, 51, 51);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list {
|
|
||||||
background: var(--theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-track {
|
|
||||||
background: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
|
||||||
border-color: var(--theme);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
{{- end }}
|
|
||||||
</noscript>
|
|
||||||
|
|
||||||
{{- partial "extend_head.html" . -}}
|
|
||||||
|
|
||||||
{{- /* Misc */}}
|
|
||||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") }}
|
|
||||||
{{- template "_internal/google_analytics.html" . }}
|
|
||||||
{{- template "partials/templates/opengraph.html" . }}
|
|
||||||
{{- template "partials/templates/twitter_cards.html" . }}
|
|
||||||
{{- template "partials/templates/schema_json.html" . }}
|
|
||||||
{{- end -}}
|
|
@ -1,149 +0,0 @@
|
|||||||
{{- /* theme-toggle is enabled */}}
|
|
||||||
{{- if (not site.Params.disableThemeToggle) }}
|
|
||||||
{{- /* theme is light */}}
|
|
||||||
{{- if (eq site.Params.defaultTheme "light") }}
|
|
||||||
<script>
|
|
||||||
if (localStorage.getItem("pref-theme") === "dark") {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- /* theme is dark */}}
|
|
||||||
{{- else if (eq site.Params.defaultTheme "dark") }}
|
|
||||||
<script>
|
|
||||||
if (localStorage.getItem("pref-theme") === "light") {
|
|
||||||
document.body.classList.remove('dark')
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- else }}
|
|
||||||
{{- /* theme is auto */}}
|
|
||||||
<script>
|
|
||||||
if (localStorage.getItem("pref-theme") === "dark") {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
} else if (localStorage.getItem("pref-theme") === "light") {
|
|
||||||
document.body.classList.remove('dark')
|
|
||||||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- end }}
|
|
||||||
{{- /* theme-toggle is disabled and theme is auto */}}
|
|
||||||
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
|
|
||||||
<script>
|
|
||||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
document.body.classList.add('dark');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<nav class="nav">
|
|
||||||
<div class="logo">
|
|
||||||
{{- $label_text := (site.Params.label.text | default site.Title) }}
|
|
||||||
{{- if site.Title }}
|
|
||||||
<a href="{{ "" | absLangURL }}" accesskey="h" title="{{ $label_text }} (Alt + H)">
|
|
||||||
{{- if site.Params.label.icon }}
|
|
||||||
{{- $img := resources.Get site.Params.label.icon }}
|
|
||||||
{{- if $img }}
|
|
||||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
|
||||||
{{- if hugo.IsExtended -}}
|
|
||||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
|
||||||
{{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}}
|
|
||||||
{{- if site.Params.label.iconHeight }}
|
|
||||||
{{- $img = $img.Resize (printf "x%d" site.Params.label.iconHeight) }}
|
|
||||||
{{ else }}
|
|
||||||
{{- $img = $img.Resize "x30" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
<img src="{{ $img.Permalink }}" alt="" aria-label="logo"
|
|
||||||
height="{{- site.Params.label.iconHeight | default "30" -}}">
|
|
||||||
{{- else }}
|
|
||||||
<img src="{{- site.Params.label.icon | absURL -}}" alt="" aria-label="logo"
|
|
||||||
height="{{- site.Params.label.iconHeight | default "30" -}}">
|
|
||||||
{{- end -}}
|
|
||||||
{{- else if hasPrefix site.Params.label.iconSVG "<svg" }}
|
|
||||||
{{ site.Params.label.iconSVG | safeHTML }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $label_text -}}
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
<div class="logo-switches">
|
|
||||||
{{- if (not site.Params.disableThemeToggle) }}
|
|
||||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
|
||||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
|
||||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
||||||
stroke-linejoin="round">
|
|
||||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
|
||||||
</svg>
|
|
||||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
|
||||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
|
||||||
stroke-linejoin="round">
|
|
||||||
<circle cx="12" cy="12" r="5"></circle>
|
|
||||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
|
||||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
|
||||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
|
||||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
|
||||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
|
||||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
|
||||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
|
||||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $lang := .Lang}}
|
|
||||||
{{- $separator := or $label_text (not site.Params.disableThemeToggle)}}
|
|
||||||
{{- with site.Home.AllTranslations }}
|
|
||||||
<ul class="lang-switch">
|
|
||||||
{{- if $separator }}<li>|</li>{{ end }}
|
|
||||||
{{- range . -}}
|
|
||||||
{{- if ne $lang .Lang }}
|
|
||||||
<li>
|
|
||||||
<a href="{{- .Permalink -}}" title="{{ .Language.Params.languageAltTitle | default (.Language.LanguageName | emojify) | default (.Lang | title) }}"
|
|
||||||
aria-label="{{ .Language.LanguageName | default (.Lang | title) }}">
|
|
||||||
{{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }}
|
|
||||||
{{- .Language.LanguageName | emojify -}}
|
|
||||||
{{- else }}
|
|
||||||
{{- .Lang | title -}}
|
|
||||||
{{- end -}}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{- end -}}
|
|
||||||
{{- end}}
|
|
||||||
</ul>
|
|
||||||
{{- end }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{- $currentPage := . }}
|
|
||||||
<ul id="menu">
|
|
||||||
{{- range site.Menus.main }}
|
|
||||||
{{- $menu_item_url := (cond (strings.HasSuffix .URL "/") .URL (printf "%s/" .URL) ) | absLangURL }}
|
|
||||||
{{- $page_url:= $currentPage.Permalink | absLangURL }}
|
|
||||||
{{- $is_search := eq (site.GetPage .KeyName).Layout `search` }}
|
|
||||||
<li>
|
|
||||||
<a href="{{ .URL | absLangURL }}" title="{{ .Title | default .Name }} {{- cond $is_search (" (Alt + /)" | safeHTMLAttr) ("" | safeHTMLAttr ) }}"
|
|
||||||
{{- cond $is_search (" accesskey=/" | safeHTMLAttr) ("" | safeHTMLAttr ) }}>
|
|
||||||
<span {{- if eq $menu_item_url $page_url }} class="active" {{- end }}>
|
|
||||||
{{- .Pre }}
|
|
||||||
{{- .Name -}}
|
|
||||||
{{ .Post -}}
|
|
||||||
</span>
|
|
||||||
{{- if (findRE "://" .URL) }}
|
|
||||||
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
|
|
||||||
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
|
|
||||||
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
|
|
||||||
<path d="M15 3h6v6"></path>
|
|
||||||
<path d="M10 14L21 3"></path>
|
|
||||||
</svg>
|
|
||||||
{{- end }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{- end }}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
@ -1,13 +0,0 @@
|
|||||||
{{- with site.Params.homeInfoParams }}
|
|
||||||
<article class="first-entry home-info">
|
|
||||||
<header class="entry-header">
|
|
||||||
<h1>{{ .Title | markdownify }}</h1>
|
|
||||||
</header>
|
|
||||||
<div class="entry-content">
|
|
||||||
{{ .Content | markdownify }}
|
|
||||||
</div>
|
|
||||||
<footer class="entry-footer">
|
|
||||||
{{ partial "social_icons.html" site.Params.socialIcons }}
|
|
||||||
</footer>
|
|
||||||
</article>
|
|
||||||
{{- end -}}
|
|
@ -1,58 +0,0 @@
|
|||||||
<div class="profile">
|
|
||||||
{{- with site.Params.profileMode }}
|
|
||||||
<div class="profile_inner">
|
|
||||||
{{- if .imageUrl -}}
|
|
||||||
{{- $img := "" }}
|
|
||||||
{{- if not (urls.Parse .imageUrl).IsAbs }}
|
|
||||||
{{- $img = resources.Get .imageUrl }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $img }}
|
|
||||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
|
||||||
{{- if hugo.IsExtended -}}
|
|
||||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
|
||||||
{{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}}
|
|
||||||
{{- if (not (and (not .imageHeight) (not .imageWidth))) }}
|
|
||||||
{{- $img = $img.Resize (printf "%dx%d" .imageWidth .imageHeight) }}
|
|
||||||
{{- else if .imageHeight }}
|
|
||||||
{{- $img = $img.Resize (printf "x%d" .imageHeight) }}
|
|
||||||
{{ else if .imageWidth }}
|
|
||||||
{{- $img = $img.Resize (printf "%dx" .imageWidth) }}
|
|
||||||
{{ else }}
|
|
||||||
{{- $img = $img.Resize "150x150" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
<img draggable="false" src="{{ $img.Permalink }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
|
|
||||||
height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
|
|
||||||
{{- else }}
|
|
||||||
<img draggable="false" src="{{ .imageUrl | absURL }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
|
|
||||||
height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
<h1>{{ .title | default site.Title | markdownify }}</h1>
|
|
||||||
<span>{{ .subtitle | markdownify }}</span>
|
|
||||||
{{- partial "social_icons.html" site.Params.socialIcons -}}
|
|
||||||
|
|
||||||
{{- with .buttons }}
|
|
||||||
<div class="buttons">
|
|
||||||
{{- range . }}
|
|
||||||
<a class="button" href="{{ trim .url " " }}" rel="noopener" title="{{ .name }}">
|
|
||||||
<span class="button-inner">
|
|
||||||
{{ .name }}
|
|
||||||
{{- if (findRE "://" .url) }}
|
|
||||||
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
|
|
||||||
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="14" width="14">
|
|
||||||
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
|
|
||||||
<path d="M15 3h6v6"></path>
|
|
||||||
<path d="M10 14L21 3"></path>
|
|
||||||
</svg>
|
|
||||||
{{- end }}
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
||||||
</div>
|
|
||||||
{{- end}}
|
|
||||||
</div>
|
|
@ -1,9 +0,0 @@
|
|||||||
{{ if and (.Params.canonicalURL) (.Params.ShowCanonicalLink ) -}}
|
|
||||||
{{ $url := urls.Parse .Params.canonicalURL }}
|
|
||||||
|
|
||||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated (or .Params.editPost.URL site.Params.editPost.URL) }} | {{- end -}}
|
|
||||||
<span>
|
|
||||||
{{- (site.Params.CanonicalLinkText | default .Params.CanonicalLinkText) | default "Originally published at" -}}
|
|
||||||
<a href="{{ trim .Params.canonicalURL " " }}" title="{{ trim .Params.canonicalURL " " }}" target="_blank" rel="noopener noreferrer">{{ $url.Host }}</a>
|
|
||||||
</span>
|
|
||||||
{{- end }}
|
|
@ -1,21 +0,0 @@
|
|||||||
{{- $scratch := newScratch }}
|
|
||||||
|
|
||||||
{{- if not .Date.IsZero -}}
|
|
||||||
{{- $scratch.Add "meta" (slice (printf "<span title='%s'>%s</span>" (.Date) (.Date | time.Format (default "January 2, 2006" site.Params.DateFormat)))) }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if (.Param "ShowReadingTime") -}}
|
|
||||||
{{- $scratch.Add "meta" (slice (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime))) }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if (.Param "ShowWordCount") -}}
|
|
||||||
{{- $scratch.Add "meta" (slice (i18n "words" .WordCount | default (printf "%d words" .WordCount))) }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- with (partial "author.html" .) }}
|
|
||||||
{{- $scratch.Add "meta" (slice .) }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- with ($scratch.Get "meta") }}
|
|
||||||
{{- delimit . " · " -}}
|
|
||||||
{{- end -}}
|
|
@ -1,19 +0,0 @@
|
|||||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
|
|
||||||
{{- if and (gt (len $pages) 1) (in $pages . ) }}
|
|
||||||
<nav class="paginav">
|
|
||||||
{{- with $pages.Next . }}
|
|
||||||
<a class="prev" href="{{ .Permalink }}">
|
|
||||||
<span class="title">« {{ i18n "prev_page" }}</span>
|
|
||||||
<br>
|
|
||||||
<span>{{- .Name -}}</span>
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
{{- with $pages.Prev . }}
|
|
||||||
<a class="next" href="{{ .Permalink }}">
|
|
||||||
<span class="title">{{ i18n "next_page" }} »</span>
|
|
||||||
<br>
|
|
||||||
<span>{{- .Name -}}</span>
|
|
||||||
</a>
|
|
||||||
{{- end }}
|
|
||||||
</nav>
|
|
||||||
{{- end }}
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user