Compare commits

..

No commits in common. "master" and "v2.0" have entirely different histories.
master ... v2.0

135 changed files with 1404 additions and 4672 deletions

View File

@ -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.112.4 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. -->

View File

@ -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.

View File

@ -1,7 +0,0 @@
---
name: New Blank Issue
about: Anything other than bug report
title: ""
labels: ""
assignees: ""
---

View File

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

17
.github/stale.yml vendored
View File

@ -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

View File

@ -1,80 +1,42 @@
name: Deploy Hugo PaperMod Demo to Pages
name: Build GH-Pages
on:
push:
paths-ignore:
- "images/**"
- "LICENSE"
- "README.md"
- 'images/**'
- 'LICENSE'
- 'README.md'
branches:
- master
- exampleSite
workflow_dispatch:
# manual run
inputs:
hugoVersion:
description: "Hugo Version"
required: false
default: "0.112.4"
# 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:
deploy:
runs-on: ubuntu-latest
env:
HUGO_VERSION: "0.112.4"
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-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v3
- name: Git checkout
uses: actions/checkout@v2
with:
ref: exampleSite
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
- 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@v2
- name: Setup hugo
uses: peaceiris/actions-hugo@v2
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@v2
hugo-version: 'latest'
- name: Build
run: hugo --buildDrafts --gc --verbose --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.TOKEN }}
publish_dir: ./public

View File

@ -1,7 +1,6 @@
MIT License
Copyright (c) 2020 nanxiaobei and adityatelange
Copyright (c) 2021-2023 adityatelange
Copyright (c) 2020 nanxiaobei, 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

View File

@ -1,5 +0,0 @@
run-example:
cd exampleSite && hugo server -D --gc -p 13131
chroma-css:
hugo gen chromastyles --style=dracula > assets/css/common/chroma.css

95
README.md Normal file → Executable file
View File

@ -1,41 +1,76 @@
## WonderMod (PaperMod fork - theme for Hugo)
![Build GH-Pages](https://github.com/adityatelange/hugo-PaperMod/workflows/Build%20GH-Pages/badge.svg)
![GitHub](https://img.shields.io/github/license/adityatelange/hugo-PaperMod)
[![hugo-papermod](https://img.shields.io/badge/Hugo--Themes-@PaperMod-blue)](https://themes.gohugo.io/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)
# hugo-PaperMod | [Demo](https://adityatelange.github.io/hugo-PaperMod/)
☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive
Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
The goal of this project is add more Features and customization to the og theme.
The [demo site](https://adityatelange.github.io/hugo-PaperMod/) includes a lot of documentation about Installation, Features with few more stuff. Make sure you visit it, to get the awesome hands-on experience and get known about the features ...
ExampleSite can be found here: [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with exampleSite as source.
---
<p align="center">
<img src="https://raw.githubusercontent.com/wonderfall/hugo-WonderMod/master/.github/assets/web-capture.jpeg" title="WonderMod" alt="WonderMod image">
<kbd><img width=600px src="https://i.ibb.co/GvspqCX/HomeInfo.png" alt="HomeInfo" /></kbd>
<kbd><img width=153px src="https://i.ibb.co/LNgGcrt/mobileview.png" alt="HomeInfo" /></kbd>
</p>
### What is this?
WonderMod is a fork of a theme for [Hugo](https://gohugo.io/) called [PaperMod](https://github.com/adityatelange/hugo-PaperMod) (made by adityatelange), which is based on [Paper](https://github.com/nanxiaobei/hugo-paper/). Since PaperMod isn't interested in a few changes such as **removing inline JavaScript**, which I personally require to harden my websites, I decided to maintain my own fork (I didn't want to keep overwriting a bunch of files as a fork workflow is much cleaner). Don't expect a ton of changes, and unless you know me, you probably don't want to use WonderMod.
---
When implementing new features, I try to do as much as I can with pure CSS code instead of adding new JavaScript code. I'd like to keep the JavaScript part minimal and that's why WonderMod should be totally usable when disabling JavaScript. WonderMod is also designed with strong CSP headers in mind: no inline JavaScript or style, no calls to third-parties.
## Install
**This fork is regularly synced with upstream changes from [PaperMod](https://github.com/adityatelange/hugo-PaperMod).** A merging workflow was chosen since rebasing WonderMod's changes every time could be less efficient. As such, commit history is a bit messy, but upstream changes will be merged on a best effort basis.
Read this post For More Details => [hugo-PaperMod - Installation](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-installation/)
### Main changes
Current "main" changes are as follows:
- Remove inline JavaScript
- Improved YouTube shortcode
- Built-in Chroma instead of client-side syntax highlighting with HLJS
- Responsive Table of Contents with side display support
- Responsive "hamburger" menu for mobile
- Simple reading progress bar
- Refactored RSS template (proper Atom feed)
- Bunch of CSS and other changes
---
### Credits
Additional credits:
- [PaperModX](https://github.com/reorx/hugo-PaperModX/) by reorx
## Features/Mods
### Configure
Most of the installation process and settings are shared with the original PaperMod, so check out [their documentation](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation). One noticeable difference though is that in order to enable syntax highlighting, you have to add this to your `config.yml` :
- Uses Hugo's asset generator with pipelining, fingerprinting, bundling and minification by default.
- 3 Modes:
- Regular Mode.
- [Home-Info Mode.](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/#home-info-mode)
- [Profile Mode.](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/#profile-mode)
- Table of Content Generation (newer implementation).
- Archive of posts
- Social-Media Share buttons on post.
- Menu location indicator.
- Multilingual support.
- Cover image for each post
- Light/Dark theme ( automatic theme switch a/c to browser theme)
- No webpack, nodejs and other depedencies required to edit the theme :)
```
markup:
highlight:
style: dracula
noClasses: false
guessSyntax: true
```
Read this post For More Details => [hugo-PaperMod - Features](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/)
See [Hugo documentation](https://gohugo.io/getting-started/configuration-markup#highlight) for more options.
*Note: for some reason, the `guessSyntax` doesn't actually work but is required. Please make your code fences explicit for the time being.*
Release ChangeLog has info about stuff added: [Releases](https://github.com/adityatelange/hugo-PaperMod/releases)
---
## Social-Icons
Read this post For More Details => [Social-Icons](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-icons/)
---
## LightHouse Report
<kbd><a href="https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fadityatelange.github.io%2Fhugo-PaperMod%2F"><img src="https://i.ibb.co/y6RwCzb/lighthouse.png" alt="LightHouse" /></a></kbd>
---
## Found a bug?
If you spot any bugs, please use [Issue Tracker](https://github.com/adityatelange/hugo-PaperMod/issues) and/or
create a new [Pull Request](https://github.com/adityatelange/hugo-PaperMod/pulls) to fix the issue.
![GitHub issues](https://img.shields.io/github/issues-raw/adityatelange/hugo-papermod)
![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/adityatelange/hugo-PaperMod)
![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/adityatelange/hugo-papermod)
![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed-raw/adityatelange/hugo-papermod)

View File

@ -1,3 +1,5 @@
/* 404
-------------------------------------------------- */
.not-found {
position: absolute;
left: 0;
@ -8,4 +10,4 @@
height: 80%;
font-size: 160px;
font-weight: 700;
}
}

63
assets/css/an-old-hope.min.css vendored Normal file
View File

@ -0,0 +1,63 @@
.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
}

View File

@ -1,3 +1,5 @@
/* Archive
-------------------------------------------------- */
.archive-posts {
width: 100%;
font-size: 16px;
@ -37,8 +39,22 @@
font-weight: 400;
}
.archive-count,
.archive-meta {
color: var(--secondary);
font-size: 14px;
}
.archive-count {
color: var(--secondary);
font-size: 14px;
}
@media (max-width: 800px) {
.archive-month {
flex-direction: column;
}
.archive-year {
margin-top: 20px;
}
}

View File

@ -1,82 +0,0 @@
/* Background */ .chroma { color: #f8f8f2; background-color: #282a36 }
/* Other */ .chroma .x { }
/* Error */ .chroma .err { }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 20px; border: 0; width: auto; overflow: auto; display: block; }
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* Keyword */ .chroma .k { color: #ff79c6 }
/* KeywordConstant */ .chroma .kc { color: #ff79c6 }
/* KeywordDeclaration */ .chroma .kd { color: #8be9fd; font-style: italic }
/* KeywordNamespace */ .chroma .kn { color: #ff79c6 }
/* KeywordPseudo */ .chroma .kp { color: #ff79c6 }
/* KeywordReserved */ .chroma .kr { color: #ff79c6 }
/* KeywordType */ .chroma .kt { color: #8be9fd }
/* Name */ .chroma .n { }
/* NameAttribute */ .chroma .na { color: #50fa7b }
/* NameBuiltin */ .chroma .nb { color: #8be9fd; font-style: italic }
/* NameBuiltinPseudo */ .chroma .bp { }
/* NameClass */ .chroma .nc { color: #50fa7b }
/* NameConstant */ .chroma .no { }
/* NameDecorator */ .chroma .nd { }
/* NameEntity */ .chroma .ni { }
/* NameException */ .chroma .ne { }
/* NameFunction */ .chroma .nf { color: #50fa7b }
/* NameFunctionMagic */ .chroma .fm { }
/* NameLabel */ .chroma .nl { color: #8be9fd; font-style: italic }
/* NameNamespace */ .chroma .nn { }
/* NameOther */ .chroma .nx { }
/* NameProperty */ .chroma .py { }
/* NameTag */ .chroma .nt { color: #ff79c6 }
/* NameVariable */ .chroma .nv { color: #8be9fd; font-style: italic }
/* NameVariableClass */ .chroma .vc { color: #8be9fd; font-style: italic }
/* NameVariableGlobal */ .chroma .vg { color: #8be9fd; font-style: italic }
/* NameVariableInstance */ .chroma .vi { color: #8be9fd; font-style: italic }
/* NameVariableMagic */ .chroma .vm { }
/* Literal */ .chroma .l { }
/* LiteralDate */ .chroma .ld { }
/* LiteralString */ .chroma .s { color: #f1fa8c }
/* LiteralStringAffix */ .chroma .sa { color: #f1fa8c }
/* LiteralStringBacktick */ .chroma .sb { color: #f1fa8c }
/* LiteralStringChar */ .chroma .sc { color: #f1fa8c }
/* LiteralStringDelimiter */ .chroma .dl { color: #f1fa8c }
/* LiteralStringDoc */ .chroma .sd { color: #f1fa8c }
/* LiteralStringDouble */ .chroma .s2 { color: #f1fa8c }
/* LiteralStringEscape */ .chroma .se { color: #f1fa8c }
/* LiteralStringHeredoc */ .chroma .sh { color: #f1fa8c }
/* LiteralStringInterpol */ .chroma .si { color: #f1fa8c }
/* LiteralStringOther */ .chroma .sx { color: #f1fa8c }
/* LiteralStringRegex */ .chroma .sr { color: #f1fa8c }
/* LiteralStringSingle */ .chroma .s1 { color: #f1fa8c }
/* LiteralStringSymbol */ .chroma .ss { color: #f1fa8c }
/* LiteralNumber */ .chroma .m { color: #bd93f9 }
/* LiteralNumberBin */ .chroma .mb { color: #bd93f9 }
/* LiteralNumberFloat */ .chroma .mf { color: #bd93f9 }
/* LiteralNumberHex */ .chroma .mh { color: #bd93f9 }
/* LiteralNumberInteger */ .chroma .mi { color: #bd93f9 }
/* LiteralNumberIntegerLong */ .chroma .il { color: #bd93f9 }
/* LiteralNumberOct */ .chroma .mo { color: #bd93f9 }
/* Operator */ .chroma .o { color: #ff79c6 }
/* OperatorWord */ .chroma .ow { color: #ff79c6 }
/* Punctuation */ .chroma .p { }
/* Comment */ .chroma .c { color: #6272a4 }
/* CommentHashbang */ .chroma .ch { color: #6272a4 }
/* CommentMultiline */ .chroma .cm { color: #6272a4 }
/* CommentSingle */ .chroma .c1 { color: #6272a4 }
/* CommentSpecial */ .chroma .cs { color: #6272a4 }
/* CommentPreproc */ .chroma .cp { color: #ff79c6 }
/* CommentPreprocFile */ .chroma .cpf { color: #ff79c6 }
/* Generic */ .chroma .g { }
/* GenericDeleted */ .chroma .gd { color: #ff5555 }
/* GenericEmph */ .chroma .ge { text-decoration: underline }
/* GenericError */ .chroma .gr { }
/* GenericHeading */ .chroma .gh { font-weight: bold }
/* GenericInserted */ .chroma .gi { color: #50fa7b; font-weight: bold }
/* GenericOutput */ .chroma .go { color: #44475a }
/* GenericPrompt */ .chroma .gp { }
/* GenericStrong */ .chroma .gs { }
/* GenericSubheading */ .chroma .gu { font-weight: bold }
/* GenericTraceback */ .chroma .gt { }
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
/* TextWhitespace */ .chroma .w { }

View File

@ -1,182 +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);
}
#hamburger-input {
display: none;
}
#hamburger-menu {
display: none;
width: 18px;
height: 18px;
margin: auto;
margin-right: 13px;
margin-left: 13px;
background: linear-gradient(
var(--primary), var(--primary) 20%,
#ffffff00 20%, #ffffff00 40%,
var(--primary) 40%, var(--primary) 60%,
#ffffff00 60%, #ffffff00 80%,
var(--primary) 80%, var(--primary) 100%
);
z-index: 10001;
cursor: pointer;
}
@media screen and (max-width: 900px) {
#menu {
display: none;
}
#hamburger-menu {
display: inline;
}
#hamburger-input:checked ~ #hamburger-menu {
background: none;
}
#hamburger-input:checked ~ #hamburger-menu:after {
content: "\00d7";
position: fixed;
font-size: 28px;
line-height: 0;
top: 28px;
}
#hamburger-input:checked ~ .overlay {
visibility: visible;
}
#hamburger-input:checked ~ #menu {
display: block;
width: 80%;
margin: auto;
position: fixed;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
z-index: 10002;
}
#menu li {
text-align: center;
}
#menu li + li {
margin-inline-start: 0;
}
}
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
visibility: hidden;
overflow: hidden;
background: var(--theme);
z-index: 10000;
}
#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;
}
#progressBar {
--scrollAmount: 0%;
width: var(--scrollAmount);
height: 3px;
background-color: #1e8cdb;
position: fixed;
z-index: 9999;
}

View File

@ -1,423 +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 {
border-bottom: 1px solid var(--primary);
}
.post-content a code {
margin: auto 0;
border-radius: 0;
box-shadow: 0 -1px 0 var(--primary) inset;
}
.post-content del {
text-decoration: line-through;
}
.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: var(--content-gap);
}
.post-content table th,
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
min-width: 80px;
padding: 8px 5px;
line-height: 1.5;
border-bottom: 1px solid var(--border);
}
.post-content table th {
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;
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 .highlighttable td .highlight pre code::-webkit-scrollbar {
display: none;
}
/* code block */
.post-content .chroma {
border-radius: var(--radius);
}
.post-content code {
/* inline code */
background-color: var(--tertiary);
margin: auto 4px;
padding: 4px 6px;
font-size: 0.78em;
line-height: 1.5;
border-radius: 4px;
}
.post-content pre code {
/* reset inline code */
background-color: unset;
display: block;
margin: 20px;
padding: 10px;
overflow-x: auto;
word-break: break-all;
}
.post-content .chroma code {
background-color: inherit;
}
.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(--tertiary);
border-radius: var(--radius);
padding: 0.4em;
}
@media screen and (min-width: 1400px) {
.toc.side {
position: fixed;
right: 30px;
top: 100px;
width: 300px;
font-size: .9em;
max-height: calc(100% - 150px);
overflow: auto;
}
}
.dark .toc {
background: var(--entry);
}
.toc details summary {
cursor: pointer;
margin-inline-start: 20px;
}
.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-footer>* {
margin-bottom: 10px;
}
.post-tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.post-tags li {
display: inline-block;
}
.post-tags a,
.paginav {
border-radius: var(--radius);
background: var(--code-bg);
border: 1px solid var(--border);
}
.post-tags a {
display: block;
padding: 0 14px;
color: var(--secondary);
font-size: 14px;
line-height: 34px;
background: var(--tertiary);
}
.share-buttons {
padding: 10px;
display: flex;
justify-content: center;
overflow-x: auto;
gap: 10px;
}
.share-buttons li,
.share-buttons a {
display: inline-flex;
}
.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 {
border-bottom: none;
display: inline-flex;
color: var(--secondary);
margin-inline-start: 8px;
font-weight: 500;
user-select: none;
}
.paginav {
display: flex;
line-height: 30px;
border-radius: var(--radius);
background: none;
border: none;
}
.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;
}

View File

@ -1,43 +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 {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.profile img {
border-radius: 50%;
}
.buttons {
flex-wrap: wrap;
max-width: 400px;
}
.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);
}

View File

@ -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);
}

View File

@ -1,6 +0,0 @@
/*
PaperMod v7
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
Copyright (c) 2020 nanxiaobei and adityatelange
Copyright (c) 2021-2023 adityatelange
*/

View File

@ -1,36 +0,0 @@
:root {
--gap: 24px;
--content-gap: 20px;
--nav-width: 1024px;
--main-width: 720px;
--header-height: 60px;
--footer-height: 60px;
--radius: 8px;
--theme: #e2e4f2;
--entry: #efefff;
--primary: rgb(30, 30, 30);
--secondary: rgb(108, 108, 108);
--tertiary: #c3c5d0;
--content: rgb(31, 31, 31);
--code-bg: #e2e4f2;
--border: rgb(238, 238, 238);
}
.dark {
--theme: #1f2125;
--entry: #26282e;
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: #3a3c42;
--content: rgb(196, 196, 197);
--code-bg: rgb(55, 56, 62);
--border: none;
}
.list {
background: var(--code-bg);
}
.dark.list {
background: var(--theme);
}

View File

@ -1,55 +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 screen and (max-width: 340px) {
.share-buttons {
justify-content: unset;
}
}
@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;
}
}

View File

@ -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
*/

View File

@ -1,16 +0,0 @@
.youtube-embed-div {
position: relative;
padding-bottom: 56.25%;
margin-bottom: 20px;
height: 0;
overflow: hidden;
}
.youtube-embed-frame {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}

View File

@ -1,24 +1,18 @@
.footer,
.top-link {
font-size: 12px;
color: var(--secondary);
}
/* Footer
-------------------------------------------------- */
.footer {
max-width: calc(var(--main-width) + var(--gap) * 2);
margin: auto;
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
padding: calc((var(--footer-height) - (var(--gap)) - 10px) / 2) var(--gap);
color: var(--secondary);
font-size: 12px;
text-align: center;
line-height: 24px;
}
.footer span {
margin-inline-start: 1px;
margin-inline-end: 1px;
}
.footer span:last-child {
white-space: nowrap;
margin-left: 1px;
margin-right: 1px;
}
.footer a {
@ -27,11 +21,14 @@
}
.footer a:hover {
color: var(--primary);
border-bottom: 1px solid var(--primary);
}
.top-link {
font-size: 12px;
visibility: hidden;
opacity: 0;
position: fixed;
bottom: 60px;
right: 30px;
@ -40,21 +37,14 @@
width: 42px;
height: 42px;
padding: 12px;
color: var(--secondary);
border-radius: 64px;
transition: visibility 0.5s, opacity 0.8s linear;
fill: currentColor;
fill-opacity: 80%;
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;
}
}

60
assets/css/header.css Normal file
View File

@ -0,0 +1,60 @@
/* Header
-------------------------------------------------- */
.nav {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
max-width: calc(var(--nav-width) + var(--gap) * 2);
margin-left: auto;
margin-right: auto;
}
.nav a {
display: block;
line-height: var(--header-height);
}
.logo,
.menu {
display: flex;
margin: auto var(--gap);
}
.logo a {
font-size: 24px;
font-weight: 700;
}
.theme-toggle svg{
height: 18px;
margin: 0 10px;
}
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-left: var(--gap);
}
.menu a {
font-size: 16px;
}
.menu .active {
font-weight: 500;
border-bottom: 2px solid currentColor;
}

View File

@ -1,8 +0,0 @@
#theme-toggle,
.top-link {
display: none;
}
#searchInput {
display: none;
}

View File

@ -1,80 +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;
}
}
/* side ToC */
.toc.side::-webkit-scrollbar-thumb {
border: none;
background: var(--secondary);
}
.toc.side::-webkit-scrollbar {
width: 8px;
}
/* code */
.highlight pre code::-webkit-scrollbar {
height: 6px;
}

View File

@ -1,3 +1,5 @@
/* Main
-------------------------------------------------- */
.main {
position: relative;
min-height: calc(100vh - var(--header-height) - var(--footer-height));
@ -6,6 +8,16 @@
padding: var(--gap);
}
@media screen and (max-width: 400px) {
.main {
min-height: calc(100vh - var(--header-height) - var(--footer-height) - 24px);
}
}
.page-header {
margin-bottom: 24px;
}
.page-header h1 {
font-size: 40px;
}
@ -24,43 +36,18 @@
}
.pagination .next {
margin-inline-start: auto;
margin-left: auto;
}
.social-icons {
padding: 12px 0;
}
.social-icons a {
display: inline-flex;
padding: 10px;
.social-icons a:not(:last-of-type) {
margin-right: 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;
}
}

View File

@ -1,12 +1,20 @@
/* Post entry
-------------------------------------------------- */
.first-entry {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
min-height: 220px;
min-height: 320px;
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
}
@media screen and (max-width: 600px) {
.first-entry {
min-height: 260px;
}
}
.first-entry .entry-header {
overflow: hidden;
display: -webkit-box;
@ -14,9 +22,8 @@
-webkit-line-clamp: 3;
}
.first-entry .entry-header h1 {
.first-entry .entry-header h2 {
font-size: 34px;
line-height: 1.4;
}
.first-entry .entry-content {
@ -29,10 +36,6 @@
font-size: 14px;
}
.home-info .entry-content {
-webkit-line-clamp: unset;
}
.post-entry {
position: relative;
margin-bottom: var(--gap);
@ -40,20 +43,19 @@
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 {
.tag-entry .entry-content,
.tag-entry .entry-footer {
display: none;
}
.entry-header h2 {
font-size: 24px;
line-height: 1.3;
}
.entry-content {
@ -80,26 +82,23 @@
bottom: 0;
}
.entry-hint {
.entry-isdraft {
display: inline;
color: var(--secondary);
}
.entry-hint-parent {
display: flex;
justify-content: space-between;
font-size: 14px;
}
.entry-cover {
font-size: 14px;
margin-bottom: var(--gap);
text-align: center;
font-size: 14px;
color: var(--secondary);
}
.entry-cover img {
border-radius: var(--radius);
pointer-events: none;
width: 100%;
height: auto;
}
.entry-cover a {

318
assets/css/post-single.css Normal file
View File

@ -0,0 +1,318 @@
/* Post single
-------------------------------------------------- */
.post-header {
margin: 24px auto var(--content-gap) auto
}
.post-title {
margin-bottom: 2px;
font-size: 40px;
transform: translateX(-2px);
}
.post-meta {
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);
}
.post-content {
color: var(--content);
}
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
margin: 24px 0 16px 0;
}
.post-content h1 {
margin: 40px auto 32px auto;
font-size: 40px;
}
.post-content h2 {
margin: 32px auto 24px auto;
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 {
box-shadow: 0 1px 0 var(--primary);
}
.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 p,
.post-content ul,
.post-content ol,
.post-content dl {
margin-bottom: var(--content-gap);
}
.post-content ul,
.post-content ol {
padding-left: 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-left: 0;
padding-left: 10px;
}
.post-content dt~dt,
.post-content dd~dd {
margin-top: 10px;
}
.post-content table {
margin-bottom: 32px;
}
.post-content table th,
.post-content table:not(.highlighttable) 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: left;
}
.post-content table:not(.highlighttable) td code:only-child {
margin: auto 0;
}
.post-content .highlight,
.post-content pre {
margin: auto calc(var(--gap) * -1) 32px calc(var(--gap) * -1);
background: var(--hljs-bg) !important;
border-radius: var(--radius);
}
.post-content li>.highlight {
margin-right: 0
}
.post-content ul pre {
margin-left: calc(var(--gap) * -2);
}
.post-content .highlight pre {
margin: 0;
}
/* table */
.post-content .highlighttable {
table-layout: fixed;
}
.post-content .highlighttable td:first-child {
width: 40px;
}
.post-content .highlighttable td .linenodiv {
padding-right: 0 !important;
}
.post-content .highlighttable td .linenodiv pre,
.post-content .highlighttable td .highlight {
margin-bottom: 0;
}
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
display: none;
}
/* inline */
.post-content .highlight span {
background: transparent !important;
}
.post-content code {
margin: auto 4px;
padding: 4px 6px;
font-family: Menlo, Monaco, 'Courier New', Courier, monospace;
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: rgba(255, 255, 255, 0.8);
background: transparent;
border-radius: 0;
overflow-x: auto;
}
.post-content blockquote {
margin: 0 calc(var(--gap) * -1);
padding: 0 32px;
border-left: 2px solid var(--primary);
}
.post-content hr {
margin: 30px calc(var(--gap) * -1);
height: 2px;
background: var(--tertiary);
border-top: 0;
border-bottom: 0;
}
.post-content iframe {
max-width: 100%;
}
.post-content img {
border-radius: 4px;
}
.toc {
margin-bottom: 40px;
border: 1px solid var(--border);
border-radius: var(--radius);
padding: .5em;
}
.toc details summary {
cursor: zoom-in;
margin-left: 20px;
}
.toc details[open] summary {
cursor: zoom-out;
}
.toc .details {
display: inline;
font-weight: 500;
}
.toc blockquote {
margin: 0 20px;
padding: 10px 20px;
}
.toc li ul {
margin-left: var(--gap);
}
.post-footer {
margin-top: 56px;
}
.post-tags li {
display: inline-block;
margin-right: 3px;
margin-bottom: 5px;
}
.post-tags a {
display: block;
padding-left: 14px;
padding-right: 14px;
color: var(--secondary);
font-size: 14px;
line-height: 34px;
background: var(--code-bg);
border-radius: 4px;
}
.post-tags a:hover {
background: var(--border);
}
.share-buttons {
margin-top: var(--gap);
border: 1px solid var(--tertiary);
padding: var(--radius);
border-radius: var(--radius);
display: flex;
overflow-x: auto;
}
.share-buttons a {
margin-top: 10px;
}
.share-buttons a:not(:last-of-type) {
margin-right: 12px;
}
.share-buttons a svg {
height: 30px;
width: 30px;
fill: currentColor;
transition: transform 0.1s;
}
.share-buttons svg:hover {
transform: scale(0.96);
}
@media screen and (max-width: 600px) {
.post-content blockquote {
margin: 0 calc(var(--gap) * -1);
padding: 0 21px;
}
}

View File

@ -0,0 +1,62 @@
.main {
text-align: center;
display: table;
}
.main>.profile {
display: table-cell;
vertical-align: middle;
}
.main>.profile>.profile_inner {
transform: translate(0, -10%);
}
.profile_inner h1 {
padding: 12px 0;
}
.profile_inner span {
padding: 10px 0;
font-size: 18px;
}
img {
display: inline-table;
width: 180px;
border-radius: 50%;
pointer-events: none;
}
@media screen and (max-width: 600px) {
img {
width: 150px;
}
.main>.profile>.profile_inner {
transform: translate(0, 0);
}
}
.buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
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);
}

View File

@ -1,31 +1,20 @@
/* Reset
-------------------------------------------------- */
*,
::after,
::before {
*::before,
*::after {
box-sizing: border-box;
}
html {
-webkit-tap-highlight-color: transparent;
overflow-y: scroll;
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
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;
margin: 0;
color: var(--primary);
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;
@ -41,8 +30,7 @@ header,
hgroup,
main,
nav,
section,
table {
section {
display: block;
}
@ -52,31 +40,33 @@ h3,
h4,
h5,
h6 {
margin-top: 0;
margin-bottom: 0;
color: var(--primary);
line-height: 1.2;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
margin-top: 0;
margin-bottom: 0;
}
strong,
b {
font-weight: 500;
}
ul {
margin: 0;
padding: 0;
}
a {
color: var(--primary);
text-decoration: none;
}
body,
figure,
ul {
figure {
margin: 0;
}
@ -84,7 +74,8 @@ table {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
overflow-x: auto;
display: block;
overflow-x: scroll;
word-break: keep-all;
}
@ -93,21 +84,24 @@ input,
textarea {
padding: 0;
font: inherit;
background: 0 0;
background: transparent;
border: 0;
-webkit-appearance: none;
}
button,
input[type='button'],
input[type='submit'] {
cursor: pointer;
}
input,
textarea {
padding: 0;
border: 0;
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;
@ -117,3 +111,32 @@ img {
display: block;
max-width: 100%;
}
*::-webkit-scrollbar {
width: 10px;
height: 6px;
}
*::-webkit-scrollbar-track {
background: var(--theme);
}
*::-webkit-scrollbar-thumb {
background: var(--tertiary);
border-radius: var(--radius);
}
*::-webkit-scrollbar-thumb:hover {
background: var(--secondary);
}
@media screen and (max-width: 800px) {
*::-webkit-scrollbar {
width: 8px;
height: 2px;
}
}
*:focus {
outline:none;
}

View File

@ -12,7 +12,7 @@
transition: transform 0.1s;
}
.terms-tags a:active {
.terms-tags a:hover {
background: var(--tertiary);
transform: scale(0.96);
}
}

49
assets/css/theme-vars.css Normal file
View File

@ -0,0 +1,49 @@
/* Theme
-------------------------------------------------- */
:root {
--gap: 24px;
--content-gap: 20px;
--nav-width: 1024px;
--main-width: 720px;
--header-height: 60px;
--footer-height: 60px;
--radius: 8px;
--theme: #fff;
--entry: #fff;
--primary: rgba(0, 0, 0, 0.88);
--secondary: rgba(0, 0, 0, 0.56);
--tertiary: rgba(0, 0, 0, 0.16);
--content: rgba(0, 0, 0, 0.88);
--hljs-bg: #1c1d21;
--code-bg: #f5f5f5;
--border: #eee;
}
@media screen and (max-width: 600px) {
:root {
--gap: 14px;
}
}
.dark {
--theme: #1d1e20;
--entry: #2e2e33;
--primary: rgba(255, 255, 255, 0.84);
--secondary: rgba(255, 255, 255, 0.56);
--tertiary: rgba(255, 255, 255, 0.16);
--content: rgba(255, 255, 255, 0.64);
--hljs-bg: #2e2e33;
--code-bg: #37383e;
--border: #5b5d67;
}
.list {
background: var(--code-bg);
}
.dark.list {
background: var(--theme);
}

View File

@ -1,152 +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) {
let results;
if (params.fuseOpts) {
results = fuse.search(this.value.trim(), {limit: params.fuseOpts.limit}); // the actual query being run using fuse.js along with options
} else {
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}&nbsp;»</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
assets/js/highlight.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
/*
PaperMod v7
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
Copyright (c) 2020 nanxiaobei and adityatelange
Copyright (c) 2021-2023 adityatelange
*/

View File

@ -1,106 +0,0 @@
import * as params from '@params';
function scrollToTop() {
const topButton = document.getElementById("top-link");
document.addEventListener('scroll', () => {
if (document.body.scrollTop > 600 || document.documentElement.scrollTop > 600) {
topButton.style.visibility = "visible";
topButton.style.opacity = "1";
} else {
topButton.style.visibility = "hidden";
topButton.style.opacity = "0";
}
})
}
function themeToggle() {
const themeButton = document.getElementById("theme-toggle");
themeButton.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');
}
})
}
function showCodeCopyButtons() {
document.querySelectorAll('pre > code').forEach((codeblock) => {
const container = codeblock.parentNode.parentNode;
const copybutton = document.createElement('button');
copybutton.classList.add('copy-code');
copybutton.innerHTML = 'copy';
function copyingDone() {
copybutton.innerHTML = 'copied!';
setTimeout(() => {
copybutton.innerHTML = '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);
}
});
}
function openToc() {
const toc = document.getElementById("toc");
if (!toc) return;
if (window.innerWidth > 1500 && window.innerHeight > 800) {
toc.open = true;
}
}
function progressBar() {
const bar = document.getElementById("progressBar");
if (!bar) return;
document.addEventListener('scroll', () => {
let scrollPercent = document.documentElement.scrollTop / (document.documentElement.scrollHeight - window.innerHeight) * 100;
if (scrollPercent >= 99) { scrollPercent = 0 };
bar.style.setProperty("--scrollAmount", scrollPercent + '%');
})
}
if (params.scrollToTop) scrollToTop();
if (params.themeToggle) themeToggle();
if (params.showCodeCopyButtons) showCodeCopyButtons();
openToc();
progressBar();

View File

@ -1,12 +0,0 @@
function loadPreferredTheme() {
const preferredTheme = localStorage.getItem("pref-theme");
const isDarkTheme = document.body.classList.contains("dark");
if (preferredTheme === "light" && isDarkTheme) {
document.body.classList.remove('dark')
} else if (preferredTheme === "dark" && !isDarkTheme) {
document.body.classList.add('dark')
}
}
loadPreferredTheme();

3
go.mod
View File

@ -1,3 +0,0 @@
module github.com/Wonderfall/hugo-WonderMod
go 1.12

View File

@ -1,28 +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: "الصفحة الرئيسية"
- id: code_copied
translation: "تم النسخ!"
- id: code_copy
translation: "نسخ الكود"

View File

@ -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: "няма слоў"
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: "скапіявана!"

View File

@ -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: "Преводи"

View File

@ -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: "কপি হয়েছে!"

View File

@ -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"

View File

@ -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: "لەبەر گیرایەوە!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Předchozí"
- id: next_page
translation: "Další"
- id: read_time
translation:
one : "1 min"
other: "{{ .Count }} min"
- id: words
translation:
one : "slovo"
other: "{{ .Count }} slov"
- id: toc
translation: "Obsah"
- id: translations
translation: "Překlady"
- id: home
translation: "Domů"
- id: edit_post
translation: "Upravit"
- id: code_copy
translation: "kopírovat"
- id: code_copied
translation: "zkopírováno!"

View File

@ -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!"

View File

@ -1,33 +1,5 @@
- id: prev_page
translation: "Vorherige"
translation: "Vorherige Seite"
- 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!"
translation: "Nächste Seite"

View File

@ -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: "αντιγράφηκε!"

View File

@ -1,33 +1,16 @@
- id: prev_page
translation: "Prev"
translation: "Prev Page"
- id: next_page
translation: "Next"
translation: "Next Page"
- 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!"

View File

@ -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!"

View File

@ -1,33 +1,5 @@
- id: prev_page
translation: "Anterior"
translation: "Página 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!"
translation: "Página siguiente"

View File

@ -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: "کپی شد!"

View File

@ -1,33 +1,5 @@
- id: prev_page
translation: "Précédent"
translation: "Page Précédente"
- id: next_page
translation: "Suivant"
- 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é !"
translation: "Page Suivante"

View File

@ -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: "!הועתק"

View File

@ -1,17 +1,14 @@
- id: prev_page
translation: "पिछला"
translation: "पिछला पृष्ठ"
- id: next_page
translation: "अगला"
translation: "अगला पृष्ठ"
- id: read_time
translation:
one : "एक मिनट"
other: "{{ .Count }} मिनट"
- id: edit_post
translation: "सुधारें"
- id: toc
translation: "विषय - सूची"

View File

@ -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!"

View File

@ -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"

View File

@ -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!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Precedente"
- id: next_page
translation: "Successivo"
- id: read_time
translation:
one: "1 minuto"
other: "{{ .Count }} minuti"
- id: words
translation:
one : "parola"
other: "{{ .Count }} parole"
- id: toc
translation: "Indice contenuti"
- id: translations
translation: "Traduzioni"
- id: home
translation: "Home"
- id: edit_post
translation: "Modifica"
- id: code_copy
translation: "copia"
- id: code_copied
translation: "copiato!"

View File

@ -1,33 +1,5 @@
- id: prev_page
translation: "前"
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: "コピーされました!"
translation: "次のページ"

View File

@ -3,31 +3,3 @@
- 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: "복사 완료!"

View File

@ -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!"

View File

@ -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: "хуулсан!"

View File

@ -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!"

View File

@ -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!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Forrige Side"
- id: next_page
translation: "Neste Side"
- id: read_time
translation:
one: "1 min"
other: "{{ .Count }} min"
- id: words
translation:
one: "ord"
other: "{{ .Count }} ord"
- id: toc
translation: "Innholdsfortegnelse"
- id: translations
translation: "Oversettelser"
- id: home
translation: "Hjem"
- id: edit_post
translation: "Rediger"
- id: code_copy
translation: "Kopier"
- id: code_copied
translation: "Kopiert!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Poprzednia"
- id: next_page
translation: "Następna"
- id: read_time
translation:
one: "1 min"
other: "{{ .Count }} min"
- id: words
translation:
one : "słowo"
other: "{{ .Count }} słów"
- 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!"

View File

@ -1,33 +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"
- id: home
translation: "Início"
- id: edit_post
translation: "Editar"
- id: code_copy
translation: "copiar"
- id: code_copied
translation: "copiado!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Înapoi"
- id: next_page
translation: "Înainte"
- id: read_time
translation:
one : "1 minut"
other: "{{ .Count }} minute"
- id: words
translation:
one : "cuvânt"
other: "{{ .Count }} cuvinte"
- id: toc
translation: "Sumar"
- id: translations
translation: "Traduceri"
- id: home
translation: "Acasă"
- id: edit_post
translation: "Editează"
- id: code_copy
translation: "copiază"
- id: code_copied
translation: "copiat!"

View File

@ -1,39 +1,5 @@
- id: prev_page
translation: "Предыдущая"
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: "скопировано!"
translation: "Туда"

View File

@ -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!"

View File

@ -1,33 +0,0 @@
- id: prev_page
translation: "Uliopita"
- id: next_page
translation: "Ujao"
- id: read_time
translation:
one : "dakika 1"
other: "dakika {{ .Count }}"
- id: words
translation:
one : "neno"
other: "maneno {{ .Count }}"
- id: toc
translation: "Jedwali la Yaliyomo"
- id: translations
translation: "Tafsiri"
- id: home
translation: "Mwanzo"
- id: edit_post
translation: "Hariri"
- id: code_copy
translation: "nakili"
- id: code_copied
translation: "nakiliwa!"

View File

@ -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: "คัดลอกแล้ว!"

View File

@ -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ı!"

View File

@ -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: "скопійовано!"

View File

@ -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"

View File

@ -1,33 +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: words
translation:
one: "từ"
other: "{{ .Count }} từ"
- id: toc
translation: "Mục lục"
- id: translations
translation: "Bản dịch"
- id: home
translation: "Trang chủ"
- id: edit_post
translation: "Chỉnh sửa"
- id: code_copy
translation: "Sao chép"
- id: code_copied
translation: "Đã sao chép!"

View File

@ -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: "已複製!"

View File

@ -9,25 +9,8 @@
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: "已复制!"

View File

@ -1,3 +1,3 @@
{{- define "main" }}
{{ define "main" }}
<div class="not-found">404</div>
{{- end }}{{/* end main */ -}}
{{ end }}{{/* end main */}}

View File

@ -1 +0,0 @@
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />

View File

@ -1,38 +1,10 @@
{{- define "main" }}
<header class="page-header">
<h1>
{{ .Title }}
{{- if (.Param "ShowRssButtonInSectionTermList") }}
{{- $rss := (.OutputFormats.Get "rss") }}
{{- if (eq .Kind `page`) }}
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
{{- end }}
{{- with $rss }}
<a href="{{ .RelPermalink }}" 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 }}
{{- end }}
</h1>
{{- if .Description }}
<div class="post-description">
{{ .Description }}
</div>
{{- end }}
<h1>{{ .Title }}</h1>
</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">
@ -41,24 +13,20 @@
</h2>
{{- range .Pages.GroupByDate "January" }}
<div class="archive-month">
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count">&nbsp;&nbsp;{{ len .Pages }}</sup></h3>
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count">&nbsp;&nbsp;{{ len .Pages }}</h3>
<div class="archive-posts">
{{- range .Pages }}
{{- range .Pages }}
{{- if eq .Kind "page" }}
<div class="archive-entry">
<h3 class="archive-entry-title entry-hint-parent">
<h3 class="archive-entry-title">
{{- .Title | markdownify }}
{{- if .Draft }}
<span class="entry-hint" title="Draft">
<svg xmlns="http://www.w3.org/2000/svg" height="15" viewBox="0 -960 960 960" fill="currentColor">
<path
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
</svg>
</span>
{{- end }}
</h3>
<div class="archive-meta">
{{- partial "post_meta.html" . -}}
<time>{{ .Date.Format "January 2, 2006" }}</time>
{{- if $.Site.Params.ShowReadingTime }}&nbsp;·&nbsp;
{{- $default_txt := print .ReadingTime " " "min" }}
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
{{- if or .Params.author .Site.Params.author }}&nbsp;·&nbsp;{{- .Params.author | default .Site.Params.author }}{{ end }}
</div>
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
</div>
@ -71,4 +39,4 @@
{{- end }}
{{- end }}
{{- end }}{{/* end main */}}
{{- end }}{{/* end main */}}

View File

@ -1,27 +1,18 @@
{{- if lt hugo.Version "0.112.4" }}
{{- errorf "=> hugo v0.112.4 or greater is required for hugo-PaperMod to build " }}
{{- end -}}
<!DOCTYPE html>
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
<html lang="{{ .Site.Language }}">
<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 -}}
<body class="{{ if (and (eq .Kind `page` ) (ne .Layout `archives`)) }}single{{ else }}list
{{- if .IsHome }} home{{ end }}{{ end }}{{- if eq $.Site.Params.defaultTheme `dark` }} dark{{ end }}" id="top">
{{- partialCached "header.html" . .Page}}
<main class="main">
{{- block "main" . }}{{ end }}
{{- block "main" . }}
{{- end }}
</main>
{{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}}
{{- partialCached "footer.html" . .Type }}
</body>
</html>
</html>

View File

@ -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 -}}

View File

@ -1,94 +1,63 @@
{{- define "main" }}
{{- if (and site.Params.profileMode.enabled .IsHome) }}
{{- 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") }}
{{- with .OutputFormats.Get "rss" }}
<a href="{{ .RelPermalink }}" 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 }}
{{- end }}
</h1>
{{- if .Description }}
<div class="post-description">
{{ .Description | markdownify }}
</div>
{{- end }}
<h1>{{ .Title }}</h1>
</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 }}
{{- $pages := .RegularPages }}
{{- if .IsHome }}
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
{{- end }}
{{- end}}
{{- $paginator := .Paginate $pages }}
{{ $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)) }}
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0)) }}
{{- if .Site.Params.homeInfoParams | or .Site.Params.disableSpecial1stPost}}
{{- partial "home_info.html" . }}
{{- else}}
{{- $class = "first-entry" }}
{{- else if $term }}
{{- end }}
{{- else if .Data.Term }}
{{- $class = "post-entry tag-entry" }}
{{- end }}
<article class="{{ $class }}">
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
{{- if .Params.cover.image }}
<figure class="entry-cover">
{{- if (or (fileExists (path.Join "static" .Params.cover.image)) (hasPrefix .Params.cover.image "http://") (hasPrefix .Params.cover.image "https://")) }}
<img src="{{ .Params.cover.image | absURL }}" alt="{{ .Params.cover.alt | plainify }}">
{{- else}}
<img src="{{ .Permalink -}} {{- .Params.cover.image }}" alt="{{ .Params.cover.alt | plainify }}">
{{- end}}
</figure>
{{- end }}
<header class="entry-header">
<h2 class="entry-hint-parent">
{{- .Title }}
{{- if .Draft }}
<span class="entry-hint" title="Draft">
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
<path
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
</svg>
</span>
{{- end }}
<h2>
{{ .Title }}
{{- if .Draft }}<div class="entry-isdraft"><sup>&nbsp;&nbsp;[draft]</sup></div>{{- end }}
</h2>
</header>
{{- if (ne (.Param "hideSummary") true) }}
<div class="entry-content">
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
</div>
{{- if (ne .Site.Params.hideSummary true)}}
<section class="entry-content">
<p>{{ .Summary | plainify | htmlUnescape }}...</p>
</section>
{{- end }}
{{- if not (.Param "hideMeta") }}
<footer class="entry-footer">
{{- partial "post_meta.html" . -}}
<time>{{ .Date.Format "January 2, 2006" }}</time>
{{- if $.Site.Params.ShowReadingTime }}&nbsp;·&nbsp;
{{- $default_txt := print .ReadingTime " " "min" }}
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
{{- if or .Params.author .Site.Params.author }}&nbsp;·&nbsp;{{- .Params.author | default .Site.Params.author }}{{ end }}
</footer>
{{- end }}
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
</article>
{{- end }}
@ -97,25 +66,13 @@
<footer class="page-footer">
<nav class="pagination">
{{- if $paginator.HasPrev }}
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
«&nbsp;{{ i18n "prev_page" }}&nbsp;
{{- if (.Param "ShowPageNums") }}
{{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
{{- end }}
</a>
<a class="prev" href="{{ $paginator.Prev.URL }}">« {{ i18n "prev_page" }}</a>
{{- end }}
{{- if $paginator.HasNext }}
<a class="next" href="{{ $paginator.Next.URL | absURL }}">
{{- i18n "next_page" }}&nbsp;
{{- if (.Param "ShowPageNums") }}
{{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
{{- end }}&nbsp;»
</a>
<a class="next" href="{{ $paginator.Next.URL }}">{{ i18n "next_page" }} »</a>
{{- end }}
</nav>
</footer>
{{- end }}
{{- end }}{{/* end profileMode */}}
{{- end }}{{- /* end main */ -}}
{{end}}{{/* end profileMode */}}
{{- end }}{{- /* end main */ -}}

View File

@ -1,80 +0,0 @@
{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
{{- $authorEmail := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .email }}
{{- $authorEmail = . }}
{{- end }}
{{- end }}
{{- else }}
{{- with site.Author.email }}
{{- $authorEmail = . }}
{{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
{{- end }}
{{- end }}
{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
{{- $authorName := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
{{- with .name }}
{{- $authorName = . }}
{{- end }}
{{- else }}
{{- $authorName = . }}
{{- end }}
{{- else }}
{{- with site.Author.name }}
{{- $authorName = . }}
{{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
{{- end }}
{{- end }}
{{- $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 }}
<feed xmlns="http://www.w3.org/2005/Atom">
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }}</title>
<link rel="alternate" href="{{ (.OutputFormats.Get "HTML").Permalink }}" />
<link rel="self" href="{{ (.OutputFormats.Get "RSS").Permalink }}" />
<subtitle>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }}</subtitle>
<id>{{ .Permalink }}</id>
<generator uri="http://gohugo.io" version="{{ hugo.Version }}">Hugo</generator>
<language>{{ site.Language.LanguageCode }}</language>
<updated>{{ .Date.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>
<author>
{{ with $authorName }}<name>{{ . }}</name>{{ end }}
{{ with $authorEmail }}<name>{{ . }}</name>{{ end }}
</author>
{{ with site.Copyright }}<rights>{{ . }}</rights>{{ end }}
{{- range $pages }}
{{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
<entry>
<title>{{ .Title }}</title>
<link rel="alternate" href="{{ .Permalink }}" />
<id>{{ .Permalink }}</id>
<published>{{ .Date.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</published>
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>
<summary type="html">{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</summary>
{{- if site.Params.ShowFullTextinRSS }}
<content type="html">{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content>
{{- end }}
</entry>
{{- end }}
{{- end }}
</feed>

View File

@ -1,32 +0,0 @@
{{- define "main" }}
<header class="page-header">
<h1>{{- (printf "%s&nbsp;" .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" maxlength="64">
<ul id="searchResults" aria-label="search results"></ul>
<noscript>
Enable JavaScript to use the search function.
</noscript>
</div>
{{- end }}{{/* end main */}}

View File

@ -2,67 +2,70 @@
<article class="post-single">
<header class="post-header">
{{ partial "breadcrumbs.html" . }}
<h1 class="post-title entry-hint-parent">
<h1 class="post-title">
{{ .Title }}
{{- if .Draft }}
<span class="entry-hint" title="Draft">
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
<path
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
</svg>
</span>
{{- end }}
{{- if .Draft }}<div class="entry-isdraft"><sup>&nbsp;&nbsp;[draft]</sup></div>{{- end }}
</h1>
{{- if .Description }}
<div class="post-description">
{{ .Description }}
</div>
{{- end }}
{{- if not (.Param "hideMeta") }}
{{- if .Params.hideMeta }}{{ else }}
<div class="post-meta">
{{- partial "post_meta.html" . -}}
{{- partial "translation_list.html" . -}}
{{- partial "edit_post.html" . -}}
{{- partial "post_canonical.html" . -}}
<time>{{ .Date.Format "January 2, 2006" }}</time>
{{- if $.Site.Params.ShowReadingTime -}}&nbsp;·&nbsp;
{{- $default_txt := print .ReadingTime " " "min" }}
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
{{- if or .Params.author .Site.Params.author }}&nbsp;·&nbsp;{{- .Params.author | default .Site.Params.author }}{{ end }}
{{- if .IsTranslated -}}&nbsp;|&nbsp;
<ul class="i18n_list">
{{- i18n "translations" | default "Translations"}}:
{{- range .Translations }}
<li>
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
</li>
{{- end }}
</ul>
{{- end }}
</div>
<div class="post-meta">
{{- partial "post_lastmod.html" . -}}
</div>
{{- end }}
{{- end}}
</header>
{{- $isHidden := (.Param "cover.hiddenInSingle") | default (.Param "cover.hidden") | default false }}
{{- partial "cover.html" (dict "cxt" . "IsSingle" true "isHidden" $isHidden) }}
{{- if (.Param "ShowToc") }}
{{- partial "toc.html" . }}
{{- if .Params.cover.image }}
<figure class="entry-cover">
{{- if (or (fileExists (path.Join "static" .Params.cover.image)) (hasPrefix .Params.cover.image "http://") (hasPrefix .Params.cover.image "https://")) }}
<img src="{{ .Params.cover.image | absURL }}" alt="{{ .Params.cover.alt | plainify }}">
{{- else}}
<img src="{{ .Permalink -}} {{- .Params.cover.image }}" alt="{{ .Params.cover.alt | plainify }}">
{{- end}}
<p>{{.Params.cover.caption | markdownify }}</p>
</figure>
{{- end }}
{{- if .Content }}
<div class="post-content">
{{- if not (.Param "disableAnchoredHeadings") }}
{{- partial "anchored_headings.html" .Content -}}
{{- else }}{{ .Content }}{{ end }}
{{- if .Params.ShowToc }}
<div class="toc">
<details {{if .Params.TocOpen }} open{{ end }}>
<summary>
<div class="details">{{- i18n "toc" | default "Table of Contents" }}</div>
</summary>
<blockquote>
{{- partial "toc.html" . }}
</blockquote>
</details>
</div>
{{- end }}
<div class="post-content">{{ .Content }}</div>
<footer class="post-footer">
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
{{- if .Params.tags }}
<ul class="post-tags">
{{- range ($.GetTerms $tags) }}
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
{{- range .Params.tags }}
{{- $href := print (absLangURL "tags/") (urlize .) }}
<li><a href="{{ $href }}">{{ . }}</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" . -}}
{{- if (and .Site.Params.ShowShareButtons (ne .Params.disableShare true) ) }}
{{- partial "share_icons.html" . }}
{{- end }}
</footer>
{{- if (.Param "comments") }}
{{- if and ($.Site.Params.comments) (ne .Params.comments false) }}
{{- partial "comments.html" . }}
{{- end }}
</article>
{{- end }}{{/* end main */}}
{{- end }}{{/* end main */}}

View File

@ -1,13 +1,8 @@
{{- define "main" }}
{{ define "main" }}
{{- if .Title }}
<header class="page-header">
<h1>{{ .Title }}</h1>
{{- if .Description }}
<div class="post-description">
{{ .Description }}
</div>
{{- end }}
</header>
{{- end }}
@ -16,7 +11,7 @@
{{- range $key, $value := .Data.Terms.Alphabetical }}
{{- $name := .Name }}
{{- $count := .Count }}
{{- with site.GetPage (printf "/%s/%s" $type $name) }}
{{- with $.Site.GetPage (printf "/%s/%s" $type $name) }}
<li>
<a href="{{ .Permalink }}">{{ .Name }} <sup><strong><sup>{{ $count }}</sup></strong></sup> </a>
</li>
@ -24,4 +19,4 @@
{{- end }}
</ul>
{{- end }}{{/* end main */ -}}
{{ end }}{{/* end main */}}

View File

@ -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 }}

View File

@ -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 -}}

View File

@ -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 "&nbsp;»&nbsp;" | safeHTML -}}<a href="{{ $bc_pg.Permalink }}">{{ $bc_pg.Name }}</a>
{{- end }}
{{- end -}}
</div>
{{- end -}}

View File

@ -1,3 +1,5 @@
{{- /* Comments area start */ -}}
{{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}}
{{- /* Comments area end */ -}}
<!-- Comments area start -->
<!--
to add comments read => https://gohugo.io/content-management/comments/
-->
<!-- Comments area end -->

View File

@ -1,43 +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) }}
{{- $loading := cond $.IsSingle "eager" "lazy" }}
<figure class="entry-cover">
{{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
{{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }}
{{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
{{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
{{- $cover := (or $pageBundleCover $globalResourcesCover)}}
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
{{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}"
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="{{$loading}}" 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="{{$loading}}" 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 }}"
rel="noopener noreferrer">{{ end -}}
<img loading="{{$loading}}" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
{{- end }}
{{- if $addLink }}</a>{{ end -}}
{{/* Display Caption */}}
{{- if $.IsSingle }}
{{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
{{- end }}
</figure>
{{- end }}{{/* End image */}}
{{- end -}}{{/* End context */ -}}

View File

@ -1,8 +0,0 @@
{{- if and (or .Params.editPost.URL site.Params.editPost.URL) (not (.Param "editPost.disabled")) -}}
{{- $fileUrlPath := path.Join .File.Path }}
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }}&nbsp;|&nbsp;{{- 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">
{{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
</a>
{{- end }}

View File

@ -1,3 +0,0 @@
{{- /* Footer custom content area start */ -}}
{{- /* Insert any custom code web-analytics, resources, etc. here */ -}}
{{- /* Footer custom content area end */ -}}

View File

@ -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 */ -}}

Some files were not shown because too many files have changed in this diff Show More