Переезд на hugo

This commit is contained in:
Sn4il 2023-10-26 08:40:43 +03:00
parent b9457bc255
commit 76a83f6a1d
163 changed files with 5692 additions and 280 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.hugo_build.lock

30
README.md Normal file
View File

@ -0,0 +1,30 @@
# Обновленный TheDroth.Rocks
## Подготовка
- Установить Docker
- Загрузить образ с [Hugo](https://hub.docker.com/r/klakegg/hugo):
```
docker pull klakegg/hugo
```
## Запуск
- Перейти в корневой каталог с проектом
- Выполнить запуск Hugo сервера
1) Для тестов:
```
docker run --rm -v $(pwd):/src -p 1313:1313 klakegg/hugo server
```
2) Для прода:
```
docker run -v $(pwd):/src -p 1313:1313 klakegg/hugo
```
## Мини FAQ
- ```config.yml``` - основной файл настройки сайта.
- Записи (странички) складываются в ```content/core``` и имеют ```.md``` формат.
- Если нужно, чтобы страницы не отображались на главном экране - расположите их в директории отличной от ```content/core```. Например, для блога можно использовать ```content/blog```.
- Картинки лежат в ```static```.
## Документация
- [Hugo Docker](https://hub.docker.com/r/klakegg/hugo)
- [Hugo Docs](https://gohugo.io/documentation/)
- [Template Repo](https://github.com/adityatelange/hugo-PaperMod)
- [Template miniFAQ](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-faq/)

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

3
baseconfig.toml Normal file
View File

@ -0,0 +1,3 @@
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'

143
config.yml Normal file
View File

@ -0,0 +1,143 @@
baseURL: "https://thedroth.rocks"
title: TheDrothRocks!
paginate: 5
theme: PaperMod
enableRobotsTXT: true
buildDrafts: false
buildFuture: false
buildExpired: false
# googleAnalytics: UA-123-45
minify:
disableXML: true
minifyOutput: true
params:
env: production # to enable google analytics, opengraph, twitter-cards and schema.
title: ExampleSite
description: "ExampleSite description"
keywords: [Blog, Portfolio, PaperMod]
author: Me
# author: ["Me", "You"] # multiple authors
images: ["<link or path of image for opengraph, twitter-cards>"]
DateFormat: "January 2, 2006"
defaultTheme: auto # dark, light
disableThemeToggle: false
ShowReadingTime: true
ShowShareButtons: true
ShowPostNavLinks: true
ShowBreadCrumbs: true
ShowCodeCopyButtons: false
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
disableSpecial1stPost: false
disableScrollToTop: false
comments: false
hidemeta: false
hideSummary: false
showtoc: false
tocopen: false
assets:
# disableHLJS: true # to disable highlight.js
# disableFingerprinting: true
favicon: "/images/favicon.png"
favicon16x16: "/images/favicon.png"
favicon32x32: "/images/favicon.png"
apple_touch_icon: "<link / abs url>"
safari_pinned_tab: "<link / abs url>"
label:
text: "TheDroth.Rocks"
icon: "/images/thedroth_logo.png"
iconHeight: 35
# profile-mode
profileMode:
enabled: false # needs to be explicitly set
title: ExampleSite
subtitle: "This is subtitle"
imageUrl: "<img location>"
imageWidth: 120
imageHeight: 120
imageTitle: my image
buttons:
- name: Posts
url: posts
- name: Tags
url: tags
# home-info mode
homeInfoParams:
Title: "Привет всем TheDroth'ам \U0001F44B"
Content: Добро пожаловать на наш сайт!
socialIcons:
- name: lemmy
url: "https://asocial.thedroth.rocks/"
- name: gitea
url: "https://git.thedroth.rocks/TheDroth/thedroth-rocks"
- name: piped
url: "https://piped.thedroth.rocks/"
analytics:
google:
SiteVerificationTag: "XYZabc"
bing:
SiteVerificationTag: "XYZabc"
yandex:
SiteVerificationTag: "XYZabc"
cover:
hidden: true # hide everywhere but not in structured data
hiddenInList: true # hide on list pages and home
hiddenInSingle: true # hide on single page
# editPost:
# URL: "https://github.com/<path_to_repo>/content"
# Text: "Suggest Changes" # edit text
# appendFilePath: true # to append file path to Edit link
# for search
# https://fusejs.io/api/options.html
fuseOpts:
isCaseSensitive: false
shouldSort: true
location: 0
distance: 1000
threshold: 0.4
minMatchCharLength: 0
keys: ["title", "permalink", "summary", "content"]
menu:
main:
- identifier: our-services
name: Наши сервисы
url: /core/our-services/
weight: 10
- identifier: proxy
name: Проксирующие сервисы
url: /core/proxy/
weight: 20
- identifier: tos
name: ToS
url: https://git.thedroth.rocks/TheDroth/ToS/src/branch/main/README.md
weight: 30
- identifier: Blog
name: Блог
url: /blog/
weight: 40
# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma
pygmentsUseClasses: true
markup:
highlight:
noClasses: false
# anchorLineNos: true
# codeFences: true
# guessSyntax: true
# lineNos: true
# style: monokai

45
content/core/donate.md Normal file
View File

@ -0,0 +1,45 @@
---
title: "Donate!"
date: 2020-09-15T11:30:03+00:00
weight: 3
# aliases: ["/first"]
#tags: ["donae"]
author: "sn4il"
# author: ["Me", "You"] # multiple authors
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Поддержка - это хорошо, а материальная поддержка - всегда спасибо!"
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: true
ShowReadingTime: false
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: false
ShowRssButtonInSectionTermList: true
UseHugoToc: true
---
Больше спасибо, что посетили данную страницу! Обращаем ваше внимание, что материальная поддержка вовсе не обязательна и вы можете пользоваться всеми нашими ресурсами абсолютно бесплатно!
## Способы поддержки
### Единоразово
- Банковская карта:
```
номер карты
```
- Донат с сообщением: [Donationalerts](), [Boosty]()
- Криптовалюта:
- btc:
```
номер кошелька
```
### Подписка
Подписаться можно на [Boosty]()
## Зачем мне Вас поддерживать?

View File

@ -0,0 +1,52 @@
---
title: "Наши сервисы"
date: 2020-09-15T11:30:03+00:00
weight: 1
# aliases: ["/first"]
tags: ["first"]
# author: "nothing"
author: ["nothing", "sn4il"] # multiple authors
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Наши собственные сервисы. Заголовки - ссылки."
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: true
ShowReadingTime: true
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
---
Список сервисов, расположенных на серверах TheDroth. Все сервисы из данного списка "подчиняются" нашему [ToS]([https](https://git.thedroth.rocks/TheDroth/ToS/src/branch/main/README.md)), а потому настоятельно рекомендуем ознакомиться с ним перед началом взаимодействия с ресурсами.
## [Asocial](https://asocial.thedroth.rocks)
[![](../../images/lemmy.png)](https://asocial.thedroth.rocks/)
Lemmy - федеративный форум-аггрегатор ссылок в стиле Reddit
## [TheДротский поиск SearXNG](https://search.thedroth.rocks/)
[![](../../images/searx.png)](https://search.thedroth.rocks/)
Метапоисковый сервис (поиск через Google, Bing, DuckDuckGo...)
## [Gitea](https://git.thedroth.rocks)
[![](../../images/git.png)](https://git.thedroth.rocks/)
Хранилище исходных кодов
## [RSS Bridge](https://rss.thedroth.rocks/)
[![](../../images/rss.png)](https://rss.thedroth.rocks/)
Конвертация новостных лент в RSS

48
content/core/proxy.md Normal file
View File

@ -0,0 +1,48 @@
---
title: "Проксирующие сервисы"
date: 2020-09-15T11:30:03+00:00
weight: 2
# aliases: ["/first"]
#tags: ["first"]
#author: "nothing"
author: ["nothing", "sn4il"] # multiple authors
showToc: false
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Все сервисы, которые мы проксируем. Заголовки - ссылки."
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: true
ShowReadingTime: false
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: false
ShowRssButtonInSectionTermList: true
UseHugoToc: true
---
Список прокси — альтернативных фронтэндов для централизованных сервисов (Youtube, Wikipedia...), облегчающих взаимодействие с последними.
## [Piped](https://piped.thedroth.rocks/)
[![](../../images/piped.png)](https://piped.thedroth.rocks/)
Лёгкий приватный интерфейс для YouTube, умеюший автоматически проматывать рекламные вставки. Зачем кормить гугл, если можно не кормить...
## [WikiLess](https://wiki.thedroth.rocks/)
[![](../../images/wikiless.png)](https://wiki.thedroth.rocks)
Wikipedia без ненужных элементов и трекеров
## [Mozhi](https://tl.thedroth.rocks/)
[![](../../images/tl.png)
](https://tl.thedroth.rocks/)
Интерфейс для множества сервисов-переводчиков

26
content/example.md Normal file
View File

@ -0,0 +1,26 @@
---
title: "Наши сервисы" # Название материала
date: 2020-09-15T11:30:03+00:00 # Дата создания материала
weight: 1 # "Важность материала. Чем ниже 'важность' - тем выше в списке будет находится"
# aliases: ["/first"] #
tags: ["first"] # теги. Необходимо материалы помечать по тегам для того, чтобы проще было находить нужный матриеал
author: "nothing" # один автор материала
author: ["nothing", "sn4il"] # много авторов материала
showToc: true # оглавление загаловков в материале. True - показывать заголовки в материале
TocOpen: true # оглавление загаловков в материале. True - показывать заголовки в материале
draft: true # "черновик". True - материал виден публично и считается опубликованным. False - его не видно.
hidemeta: false #
comments: false # Комментарии
description: "Наши собственные сервисы. Заголовки - ссылки." # Небольшая аннотация под заголовком
disableHLJS: true # to disable highlightjs
disableShare: false # иконки "поделиться" внизу материала. True - иконок не будет.
disableHLJS: false #
hideSummary: true # Описание материала до входа на сам материал. True - скрыть описание, оставить только заголовок.
searchHidden: true #
ShowReadingTime: true # Приблизительное время на чтение. True - показывать.
ShowBreadCrumbs: true #
ShowPostNavLinks: true # Кнопки "другой материал" внизу материала. True - показывать кнопки.
ShowWordCount: true # Количество слов в материале. True - показывать кол-во слов.
ShowRssButtonInSectionTermList: true #
UseHugoToc: false #
---

File diff suppressed because one or more lines are too long

186
dither.py
View File

@ -1,186 +0,0 @@
#!/usr/local/bin/python3.8
import hitherdither
import os
import argparse
import shutil
from PIL import Image
import logging
parser = argparse.ArgumentParser(
"""
This script recursively traverses folders and creates dithered versions of the images it finds.
These are stored in the same folder as the images in a folder called "dithers".
"""
)
parser.add_argument(
'-d', '--directory', help="Set the directory to traverse", default="."
)
parser.add_argument(
'-rm', '--remove', help="Removes all the folders with dithers and their contents", action="store_true"
)
parser.add_argument(
'-c', '--colorize', help="Colorizes the dithered images", action="store_true"
)
parser.add_argument(
'-v', '--verbose', help="Print out more detailed information about what this script is doing", action="store_true"
)
args = parser.parse_args()
image_ext = [".jpg", ".JPG", ".jpeg", ".png", ".gif", ".webp", ".tiff", ".bmp"]
content_dir = args.directory
if args.verbose:
logging.basicConfig(level=logging.DEBUG)
else:
logging.basicConfig(level=logging.INFO)
exclude_dirs = set(["dithers"])
logging.info("Dithering all images in {} and subfolders".format(content_dir))
logging.debug("excluding directories: {}".format("".join(exclude_dirs)))
def colorize(source_image, category):
"""
Picks a colored dithering palette based on the post category.
"""
colors = {
'low-tech': hitherdither.palette.Palette([(30,32,40), (11,21,71),(57,77,174),(158,168,218),(187,196,230),(243,244,250)]),
'obsolete': hitherdither.palette.Palette([(9,74,58), (58,136,118),(101,163,148),(144,189,179),(169,204,195),(242,247,246)]),
'high-tech': hitherdither.palette.Palette([(86,9,6), (197,49,45),(228,130,124),(233,155,151),(242,193,190),(252,241,240)]),
'grayscale': hitherdither.palette.Palette([(25,25,25), (75,75,75),(125,125,125),(175,175,175),(225,225,225),(250,250,250)])
}
if category:
for i in colors.keys():
if i in category.lower():
color = colors[i]
logging.info("Applying color palette '{}' for {}".format(i, category))
break
else:
logging.info("No category for {}, {}".format(source_image, category))
print("No category for {}, {}".format(source_image, category))
color = colors['grayscale']
else:
logging.info("No category for {}, {}".format(source_image, category))
print("No category for {}, {}".format(source_image, category))
color = colors['grayscale']
return color
def dither_image(source_image, output_image, category ='high-tech'):
#see hitherdither docs for different dithering algos and settings
# if args.colorize:
# palette = colorize(source_image, category)
# else:
# palette = hitherdither.palette.Palette([(25,25,25), (75,75,75),(125,125,125),(175,175,175),(225,225,225),(250,250,250)])
try:
img= Image.open(source_image).convert('RGB')
img.thumbnail((800,800), Image.LANCZOS)
#palette = palettes[category]
#palette = hitherdither.palette.Palette.create_by_median_cut(img)
palette = hitherdither.palette.Palette(
[0x080000, 0x201A0B, 0x432817, 0x492910,
0x234309, 0x5D4F1E, 0x9C6B20, 0xA9220F,
0x2B347C, 0x2B7409, 0xD0CA40, 0xE8A077,
0x6A94AB, 0xD5C4B3, 0xFCE76E, 0xFCFAE2]
)
threshold = [96, 96, 96]
img_dithered = hitherdither.ordered.bayer.bayer_dithering(img, palette, threshold, order=8)
#if args.colorize:
# img_dithered = colorize(img_dithered, category)
# logging.debug("Created {} in category {}".format(img_dithered, category))
img_dithered.save(output_image, optimize=True)
except Exception as e:
logging.debug(" failed to convert {}".format(source_image))
logging.debug(e)
def delete_dithers(content_dir):
logging.info("Deleting 'dither' folders in {} and below".format(content_dir))
for root, dirs, files in os.walk(content_dir, topdown=True):
if root.endswith('dithers'):
shutil.rmtree(root)
logging.info("Removed {}".format(root))
def parse_front_matter(md):
with open(md) as f:
contents = f.readlines()
cat = None
for l in contents:
if l.startswith("categories: "):
cat = l.split("categories: ")[1]
cat = cat.strip("[")
cat = cat.strip()
cat = cat.strip("]")
logging.debug("Categories: {} from {}".format(cat, l.strip()))
return cat
prev_root = None
if args.remove:
delete_dithers(
os.path.abspath(content_dir)
)
else:
for root, dirs, files in os.walk(os.path.abspath(content_dir), topdown=True):
logging.debug("Checking next folder {}".format(root))
dirs[:] = [d for d in dirs if d not in exclude_dirs]
category = None
if prev_root is None:
prev_root = root
if prev_root is not root:
if files:
if any(x.endswith(tuple(image_ext)) for x in files):
if not os.path.exists(os.path.join(root,'dithers')):
os.mkdir(os.path.join(root,'dithers'))
logging.info(" created in {}".format(root))
if args.colorize:
#iterate over md files to find one with a category
if not category:
for i in os.listdir(root):
if i.startswith('index'):
category2 = parse_front_matter(os.path.join(root,i))
break
for fname in files:
if fname.endswith(tuple(image_ext)):
file_, ext = os.path.splitext(fname)
source_image= os.path.join(root,fname)
output_image = os.path.join(os.path.join(root, 'dithers'), file_+'_dithered.png')
if not os.path.exists(output_image):
if not args.colorize:
category2 = "high-tech"
dither_image(source_image,output_image, category2)
logging.info(" converted {}".format(fname))
logging.debug(output_image)
else:
logging.debug("Dithered version of {} found, skipping".format(fname))
prev_root = root
logging.info("Done dithering")

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,93 +0,0 @@
<!DOCTYPE HTML>
<html>
<head profile="https://thedroth.rocks">
<link rel="icon"
type="image/png"
href="favicon.png" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>TheDroth Rocks! </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<a href="https://thedroth.rocks" class="brand">
<img class="logo" src="dithers/thedroth_logo.png" />
</a>
<div class="site-container">
<main>
<article class="post">
<div class="wrapper post__entry">
<center>
<h2>TheDrothские сервисы</h2>
<h3 id="proxy">Проксирующие</h3>
<div class="">
<h4>Piped</h4>
<p>Лёгкий приватный интерфейс для YouTube, умеюший автоматически проматывать рекламные вставки. Зачем кормить гугл, если можно не кормить...</p>
<a href="https://piped.thedroth.rocks"><img src="dithers/piped.png" width="60%"></a>
</div>
<hr>
<div class="">
<h4>WikiLess</h4>
<p>Wikipedia без ненужных элементов и трекеров</p>
<a href="https://wiki.thedroth.rocks"><img src="dithers/wikiless.png" width="60%"></a>
</div>
<div class="">
<h4>Mozhi</h4>
<p>Интерфейс для множества сервисов-переводчиков</p>
<a href="https://tl.thedroth.rocks"><img src="dithers/tl.png" width="60%"></a>
</div>
</center>
<div class="wrapper post__entry">
<center>
<h3 id="selfhosted">Собственные</h3>
<div class="">
<h4>Asocial</h4>
<p>Lemmy - федеративный форум-аггрегатор ссылок в стиле Reddit</p>
<a href="https://asocial.thedroth.rocks"><img src="dithers/lemmy.png" width="60%"></a>
</div>
<hr>
<div class="">
<h4>TheДротский поиск</h4>
<p>SearXNG — метапоисковый сервис (поиск через Google, Bing, DuckDuckGo...)</p>
<a href="https://search.thedroth.rocks"><img src="dithers/searx.png" width="60%"></a>
</div>
<hr>
<div class="">
<h4>Git</h4>
<p>Хранилище исходных кодов</p>
<a href="https://git.thedroth.rocks"><img src="dithers/git.png" width="60%"></a>
</div>
<hr>
<div class="">
<h4>RSS Bridge</h4>
<p>Конвертация новостных лент в RSS</p>
<a href="https://rss.thedroth.rocks"><img src="dithers/rss.png" width="60%"></a>
</div>
</center>
</div>
</div>
</article>
</main>
<hr>
<center>
<a href="https://vdsina.ru/?partner=3735wzjajs">Хостинг - VDSина</a>
&nbsp;|&nbsp;
<a href="https://git.thedroth.rocks/sn4il/thedroth-rocks.git">Исходный код сайта</a>
&nbsp;|&nbsp;
<a href="https://pay.cloudtips.ru/p/f13dbdef">Дать чаевые</a>
</center>
</section>
</body>
</html>

4
public/404.html Normal file
View File

@ -0,0 +1,4 @@
<!doctype html><html lang=en dir=auto><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>404 Page not found | TheDrothRocks!</title><meta name=keywords content><meta name=description content="ExampleSite description"><meta name=author content="Me"><link rel=canonical href=https://thedroth.rocks/404.html><meta name=google-site-verification content="XYZabc"><meta name=yandex-verification content="XYZabc"><meta name=msvalidate.01 content="XYZabc"><link crossorigin=anonymous href=/assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as=style><link rel=icon href=https://thedroth.rocks/images/favicon.png><link rel=icon type=image/png sizes=16x16 href=https://thedroth.rocks/images/favicon.png><link rel=icon type=image/png sizes=32x32 href=https://thedroth.rocks/images/favicon.png><link rel=apple-touch-icon href=https://thedroth.rocks/%3Clink%20/%20abs%20url%3E><link rel=mask-icon href=https://thedroth.rocks/%3Clink%20/%20abs%20url%3E><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--hljs-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--theme)}.list:not(.dark)::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--theme)}}</style></noscript><meta property="og:title" content="404 Page not found"><meta property="og:description" content="ExampleSite description"><meta property="og:type" content="website"><meta property="og:url" content="https://thedroth.rocks/404.html"><meta property="og:image" content="https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E"><meta property="og:site_name" content="ExampleSite"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E"><meta name=twitter:title content="404 Page not found"><meta name=twitter:description content="ExampleSite description"></head><body class=list id=top><script>localStorage.getItem("pref-theme")==="dark"?document.body.classList.add("dark"):localStorage.getItem("pref-theme")==="light"?document.body.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches&&document.body.classList.add("dark")</script><header class=header><nav class=nav><div class=logo><a href=https://thedroth.rocks/ accesskey=h title="TheDroth.Rocks (Alt + H)"><img src=https://thedroth.rocks/images/thedroth_logo.png alt aria-label=logo height=35>TheDroth.Rocks</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)"><svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg><svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu><li><a href=https://thedroth.rocks/our-services/ title="Наши сервисы"><span>Наши сервисы</span></a></li><li><a href=https://thedroth.rocks/proxy/ title="Проксирующие сервисы"><span>Проксирующие сервисы</span></a></li><li><a href=https://git.thedroth.rocks/TheDroth/ToS/src/branch/main/README.md title=ToS><span>ToS</span>&nbsp;<svg fill="none" shape-rendering="geometricPrecision" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12"><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><path d="M15 3h6v6"/><path d="M10 14 21 3"/></svg></a></li><li><a href=https://thedroth.rocks/blog/ title=Блог><span>Блог</span></a></li></ul></nav></header><main class=main><div class=not-found>404</div></main><footer class=footer><span>&copy; 2023 <a href=https://thedroth.rocks/>TheDrothRocks!</a></span>
<span>Powered by
<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> &
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg></a><script>let menu=document.getElementById("menu");menu&&(menu.scrollLeft=localStorage.getItem("menu-scroll-position"),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{document.body.className.includes("dark")?(document.body.classList.remove("dark"),localStorage.setItem("pref-theme","light")):(document.body.classList.add("dark"),localStorage.setItem("pref-theme","dark"))})</script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Categories on TheDrothRocks!</title>
<link>https://thedroth.rocks/categories/</link>
<description>Recent content in Categories on TheDrothRocks!</description>
<image>
<title>TheDrothRocks!</title>
<url>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
<link>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
</image>
<generator>Hugo -- gohugo.io</generator><atom:link href="https://thedroth.rocks/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

46
public/core/index.xml Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Cores on TheDrothRocks!</title>
<link>https://thedroth.rocks/core/</link>
<description>Recent content in Cores on TheDrothRocks!</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Tue, 15 Sep 2020 11:30:03 +0000</lastBuildDate><atom:link href="https://thedroth.rocks/core/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Наши сервисы</title>
<link>https://thedroth.rocks/core/our-services/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/core/our-services/</guid>
<description>Данная страница - сборник ссылок на сервисы, которые хранятся на наших серверах. Все сервисы из данного списка &amp;ldquo;подчинаяются&amp;rdquo; нашему ToS, а потому настоятельно рекомендуем ознакомиться с ним перед началом взаимодействия с ресурсами.
Asocial Lemmy - федеративный форум-аггрегатор ссылок в стиле Reddit
TheДротский поиск SearXNG Метапоисковый сервис (поиск через Google, Bing, DuckDuckGo&amp;hellip;)
Gitea Хранилище исходных кодов
RSS Bridge Конвертация новостных лент в RSS</description>
</item>
<item>
<title>Проксирующие сервисы</title>
<link>https://thedroth.rocks/core/proxy/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/core/proxy/</guid>
<description>Piped Лёгкий приватный интерфейс для YouTube, умеюший автоматически проматывать рекламные вставки. Зачем кормить гугл, если можно не кормить&amp;hellip;
WikiLess Wikipedia без ненужных элементов и трекеров</description>
</item>
<item>
<title>Donate!</title>
<link>https://thedroth.rocks/core/donate/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/core/donate/</guid>
<description>Больше спасибо, что посетили данную страницу! Обращаем ваше внимание, что материальная поддержка вовсе не обязательно и вы можете пользоваться всеми нашими ресурсами абсолютно бесплатно!
Способы поддержки Единоразово Банковская карта: номер карты Донат с сообщением: Donationalerts, Boosty
Криптовалюта:
btc: номер кошелька Подписка Подписаться можно на Boosty
Зачем мне Вас поддерживать? </description>
</item>
</channel>
</rss>

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/images/lemmy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
public/images/searx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

4
public/index.html Normal file

File diff suppressed because one or more lines are too long

33
public/index.xml Normal file
View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>TheDrothRocks!</title>
<link>https://thedroth.rocks/</link>
<description>Recent content on TheDrothRocks!</description>
<image>
<title>TheDrothRocks!</title>
<url>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
<link>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
</image>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Tue, 15 Sep 2020 11:30:03 +0000</lastBuildDate><atom:link href="https://thedroth.rocks/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Наши сервисы</title>
<link>https://thedroth.rocks/our-services/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/our-services/</guid>
<description>Наши собственные сервисы. Заголовки - ссылки.</description>
</item>
<item>
<title>Проксирующие сервисы</title>
<link>https://thedroth.rocks/proxy/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/proxy/</guid>
<description>Все сервисы, которые мы проксируем. Заголовки - ссылки.</description>
</item>
</channel>
</rss>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on My New Hugo Site</title>
<link>http://example.org/tags/</link>
<description>Recent content in Tags on My New Hugo Site</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language><atom:link href="http://example.org/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

1
public/page/1/index.html Normal file
View File

@ -0,0 +1 @@
<!doctype html><html lang=en><head><title>https://thedroth.rocks/</title><link rel=canonical href=https://thedroth.rocks/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=https://thedroth.rocks/"></head></html>

5
public/proxy/index.html Normal file

File diff suppressed because one or more lines are too long

10
public/proxy/index.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on My New Hugo Site</title>
<link>http://example.org/categories/</link>
<description>Recent content in Categories on My New Hugo Site</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language><atom:link href="http://example.org/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

3
public/robots.txt Normal file
View File

@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://thedroth.rocks/sitemap.xml

22
public/sitemap.xml Normal file
View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://thedroth.rocks/tags/first/</loc>
<lastmod>2020-09-15T11:30:03+00:00</lastmod>
</url><url>
<loc>https://thedroth.rocks/tags/</loc>
<lastmod>2020-09-15T11:30:03+00:00</lastmod>
</url><url>
<loc>https://thedroth.rocks/</loc>
<lastmod>2020-09-15T11:30:03+00:00</lastmod>
</url><url>
<loc>https://thedroth.rocks/our-services/</loc>
<lastmod>2020-09-15T11:30:03+00:00</lastmod>
</url><url>
<loc>https://thedroth.rocks/proxy/</loc>
<lastmod>2020-09-15T11:30:03+00:00</lastmod>
</url><url>
<loc>https://thedroth.rocks/categories/</loc>
</url>
</urlset>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>first on TheDrothRocks!</title>
<link>https://thedroth.rocks/tags/first/</link>
<description>Recent content in first on TheDrothRocks!</description>
<image>
<title>TheDrothRocks!</title>
<url>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
<link>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
</image>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Tue, 15 Sep 2020 11:30:03 +0000</lastBuildDate><atom:link href="https://thedroth.rocks/tags/first/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Наши сервисы</title>
<link>https://thedroth.rocks/our-services/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/our-services/</guid>
<description>Наши собственные сервисы. Заголовки - ссылки.</description>
</item>
<item>
<title>Проксирующие сервисы</title>
<link>https://thedroth.rocks/proxy/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/proxy/</guid>
<description>Все сервисы, которые мы проксируем. Заголовки - ссылки.</description>
</item>
</channel>
</rss>

View File

@ -0,0 +1 @@
<!doctype html><html lang=en><head><title>https://thedroth.rocks/tags/first/</title><link rel=canonical href=https://thedroth.rocks/tags/first/><meta name=robots content="noindex"><meta charset=utf-8><meta http-equiv=refresh content="0; url=https://thedroth.rocks/tags/first/"></head></html>

4
public/tags/index.html Normal file

File diff suppressed because one or more lines are too long

24
public/tags/index.xml Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Tags on TheDrothRocks!</title>
<link>https://thedroth.rocks/tags/</link>
<description>Recent content in Tags on TheDrothRocks!</description>
<image>
<title>TheDrothRocks!</title>
<url>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
<link>https://thedroth.rocks/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
</image>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Tue, 15 Sep 2020 11:30:03 +0000</lastBuildDate><atom:link href="https://thedroth.rocks/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>first</title>
<link>https://thedroth.rocks/tags/first/</link>
<pubDate>Tue, 15 Sep 2020 11:30:03 +0000</pubDate>
<guid>https://thedroth.rocks/tags/first/</guid>
<description></description>
</item>
</channel>
</rss>

BIN
static/images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/images/git.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/images/piped.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
static/images/rss.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
static/images/wikiless.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

22
themes/PaperMod/LICENSE Normal file
View File

@ -0,0 +1,22 @@
MIT License
Copyright (c) 2020 nanxiaobei and adityatelange
Copyright (c) 2021-2023 adityatelange
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

105
themes/PaperMod/README.md Normal file
View File

@ -0,0 +1,105 @@
<h1 align=center>Hugo PaperMod | <a href="https://adityatelange.github.io/hugo-PaperMod/" rel="nofollow">Demo</a></h1>
Slightly updated by TheDroth
<h4 align=center>☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive</h4>
<br>
> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
> The goal of this project is to add more features and customization to the og theme.
**Documentation** can be found here: [**📚 Wiki**](https://github.com/adityatelange/hugo-PaperMod/wiki)
**ExampleSite** can be found here: [**exampleSite**](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite) as source.
[![hugo-papermod](https://img.shields.io/badge/Hugo--Themes-@PaperMod-blue)](https://themes.gohugo.io/themes/hugo-papermod/)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=HUGO-version&message=>0.97.1&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.97.1)
[![Discord](https://img.shields.io/discord/971046860317921340?label=Discord&logo=discord)](https://discord.gg/ahpmTvhVmp)
[![GitHub](https://img.shields.io/github/license/adityatelange/hugo-PaperMod)](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE)
![code-size](https://img.shields.io/github/languages/code-size/adityatelange/hugo-PaperMod)
---
<p align="center">
<kbd><img src="https://user-images.githubusercontent.com/21258296/114303440-bfc0ae80-9aeb-11eb-8cfa-48a4bb385a6d.png" alt="Mockup image" title="Mockup"/></kbd>
</p>
---
## Features/Mods 💥
- Uses Hugo's asset generator with pipelining, fingerprinting, bundling and minification by default.
- 3 Modes:
- [Regular Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#regular-mode-default-mode)
- [Home-Info Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#home-info-mode)
- [Profile Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode)
- Table of Content Generation (newer implementation).
- Archive of posts.
- Social Icons (home-info and profile-mode)
- Social-Media Share buttons on posts.
- Menu location indicator.
- Multilingual support. (with language selector)
- Taxonomies
- Cover image for each post (with Responsive image support).
- Light/Dark theme (automatic theme switch a/c to browser theme and theme-switch button).
- SEO Friendly.
- Multiple Author support.
- Search Page with Fuse.js
- Other Posts suggestion below a post
- Breadcrumb Navigation
- Code Block Copy buttons
- No webpack, nodejs and other dependencies are required to edit the theme.
Read Wiki For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)**
---
## Install/Update 📥
Read Wiki For More Details => **[PaperMod - Installation](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation)**
---
## FAQs / How To's Guide 🙋
Read Wiki For More Details => **[PaperMod-FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)**
---
## Social-Icons/Share-Icons 🖼️
Read Wiki For More Details => **[PaperMod-Icons](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)**
---
## Release Changelog 📃
Release ChangeLog has info about stuff added: **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)**
---
## [Pagespeed Insights (100% ?)](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/) 👀
---
## Support 🫶
- Star 🌟 this repository.
- Help spread the word about PaperMod by sharing it on social media and recommending it to your friends. 🗣️
- You can also sponsor 🏅 on [Github Sponsors](https://github.com/sponsors/adityatelange) / [Ko-Fi](https://ko-fi.com/adityatelange).
---
## Special Thanks 🌟
- [**Highlight.js**](https://github.com/highlightjs/highlight.js)
- [**Fuse.js**](https://github.com/krisk/fuse)
- [**Feather Icons**](https://github.com/feathericons/feather)
- [**Simple Icons**](https://github.com/simple-icons/simple-icons)
- **All Contributors and Supporters**
---
## Stargazers over time 📈
<kbd>[![Stargazers over time](https://starchart.cc/adityatelange/hugo-PaperMod.svg)](https://starchart.cc/adityatelange/hugo-PaperMod)</kbd>

View File

@ -0,0 +1,11 @@
.not-found {
position: absolute;
left: 0;
right: 0;
display: flex;
align-items: center;
justify-content: center;
height: 80%;
font-size: 160px;
font-weight: 700;
}

View File

@ -0,0 +1,44 @@
.archive-posts {
width: 100%;
font-size: 16px;
}
.archive-year {
margin-top: 40px;
}
.archive-year:not(:last-of-type) {
border-bottom: 2px solid var(--border);
}
.archive-month {
display: flex;
align-items: flex-start;
padding: 10px 0;
}
.archive-month-header {
margin: 25px 0;
width: 200px;
}
.archive-month:not(:last-of-type) {
border-bottom: 1px solid var(--border);
}
.archive-entry {
position: relative;
padding: 5px;
margin: 10px 0;
}
.archive-entry-title {
margin: 5px 0;
font-weight: 400;
}
.archive-count,
.archive-meta {
color: var(--secondary);
font-size: 14px;
}

View File

@ -0,0 +1,60 @@
.footer,
.top-link {
font-size: 12px;
color: var(--secondary);
}
.footer {
max-width: calc(var(--main-width) + var(--gap) * 2);
margin: auto;
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
text-align: center;
line-height: 24px;
}
.footer span {
margin-inline-start: 1px;
margin-inline-end: 1px;
}
.footer span:last-child {
white-space: nowrap;
}
.footer a {
color: inherit;
border-bottom: 1px solid var(--secondary);
}
.footer a:hover {
border-bottom: 1px solid var(--primary);
}
.top-link {
visibility: hidden;
position: fixed;
bottom: 60px;
right: 30px;
z-index: 99;
background: var(--tertiary);
width: 42px;
height: 42px;
padding: 12px;
border-radius: 64px;
transition: visibility 0.5s, opacity 0.8s linear;
}
.top-link,
.top-link svg {
filter: drop-shadow(0px 0px 0px var(--theme));
}
.footer a:hover,
.top-link:hover {
color: var(--primary);
}
.top-link:focus,
#theme-toggle:focus {
outline: 0;
}

View File

@ -0,0 +1,93 @@
.nav {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
max-width: calc(var(--nav-width) + var(--gap) * 2);
margin-inline-start: auto;
margin-inline-end: auto;
line-height: var(--header-height);
}
.nav a {
display: block;
}
.logo,
#menu {
display: flex;
margin: auto var(--gap);
}
.logo {
flex-wrap: inherit;
}
.logo a {
font-size: 24px;
font-weight: 700;
}
.logo a img, .logo a svg {
display: inline;
vertical-align: middle;
pointer-events: none;
transform: translate(0, -10%);
border-radius: 6px;
margin-inline-end: 8px;
}
button#theme-toggle {
font-size: 26px;
margin: auto 4px;
}
body.dark #moon {
vertical-align: middle;
display: none;
}
body:not(.dark) #sun {
display: none;
}
#menu {
list-style: none;
word-break: keep-all;
overflow-x: auto;
white-space: nowrap;
}
#menu li + li {
margin-inline-start: var(--gap);
}
#menu a {
font-size: 16px;
}
#menu .active {
font-weight: 500;
border-bottom: 2px solid currentColor;
}
.lang-switch li,
.lang-switch ul,
.logo-switches {
display: inline-flex;
margin: auto 4px;
}
.lang-switch {
display: flex;
flex-wrap: inherit;
}
.lang-switch a {
margin: auto 3px;
font-size: 16px;
font-weight: 500;
}
.logo-switches {
flex-wrap: inherit;
}

View File

@ -0,0 +1,68 @@
.main {
position: relative;
min-height: calc(100vh - var(--header-height) - var(--footer-height));
max-width: calc(var(--main-width) + var(--gap) * 2);
margin: auto;
padding: var(--gap);
}
.page-header h1 {
font-size: 40px;
}
.pagination {
display: flex;
}
.pagination a {
color: var(--theme);
font-size: 13px;
line-height: 36px;
background: var(--primary);
border-radius: calc(36px / 2);
padding: 0 16px;
}
.pagination .next {
margin-inline-start: auto;
}
.social-icons {
padding: 12px 0;
}
.social-icons a:not(:last-of-type) {
margin-inline-end: 12px;
}
.social-icons a svg {
height: 26px;
width: 26px;
}
code {
direction: ltr;
}
div.highlight,
pre {
position: relative;
}
.copy-code {
display: none;
position: absolute;
top: 4px;
right: 4px;
color: rgba(255, 255, 255, 0.8);
background: rgba(78, 78, 78, 0.8);
border-radius: var(--radius);
padding: 0 5px;
font-size: 14px;
user-select: none;
}
div.highlight:hover .copy-code,
pre:hover .copy-code {
display: block;
}

View File

@ -0,0 +1,104 @@
.first-entry {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
min-height: 320px;
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
}
.first-entry .entry-header {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.first-entry .entry-header h1 {
font-size: 34px;
line-height: 1.3;
}
.first-entry .entry-content {
margin: 14px 0;
font-size: 16px;
-webkit-line-clamp: 3;
}
.first-entry .entry-footer {
font-size: 14px;
}
.home-info .entry-content {
-webkit-line-clamp: unset;
}
.post-entry {
position: relative;
margin-bottom: var(--gap);
padding: var(--gap);
background: var(--entry);
border-radius: var(--radius);
transition: transform 0.1s;
border: 1px solid var(--border);
}
.post-entry:active {
transform: scale(0.96);
}
.tag-entry .entry-cover {
display: none;
}
.entry-header h2 {
font-size: 24px;
line-height: 1.3;
}
.entry-content {
margin: 8px 0;
color: var(--secondary);
font-size: 14px;
line-height: 1.6;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.entry-footer {
color: var(--secondary);
font-size: 13px;
}
.entry-link {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.entry-cover,
.entry-isdraft {
font-size: 14px;
color: var(--secondary);
}
.entry-cover {
margin-bottom: var(--gap);
text-align: center;
}
.entry-cover img {
border-radius: var(--radius);
pointer-events: none;
width: 100%;
height: auto;
}
.entry-cover a {
color: var(--secondary);
box-shadow: 0 1px 0 var(--primary);
}

View File

@ -0,0 +1,402 @@
.page-header,
.post-header {
margin: 24px auto var(--content-gap) auto;
}
.post-title {
margin-bottom: 2px;
font-size: 40px;
}
.post-description {
margin-top: 10px;
margin-bottom: 5px;
}
.post-meta,
.breadcrumbs {
color: var(--secondary);
font-size: 14px;
display: flex;
flex-wrap: wrap;
}
.post-meta .i18n_list li {
display: inline-flex;
list-style: none;
margin: auto 3px;
box-shadow: 0 1px 0 var(--secondary);
}
.breadcrumbs a {
font-size: 16px;
}
.post-content {
color: var(--content);
}
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
margin: 24px 0 16px;
}
.post-content h1 {
margin: 40px auto 32px;
font-size: 40px;
}
.post-content h2 {
margin: 32px auto 24px;
font-size: 32px;
}
.post-content h3 {
font-size: 24px;
}
.post-content h4 {
font-size: 16px;
}
.post-content h5 {
font-size: 14px;
}
.post-content h6 {
font-size: 12px;
}
.post-content a,
.toc a:hover {
box-shadow: 0 1px 0;
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
}
.post-content a code {
margin: auto 0;
border-radius: 0;
box-shadow: 0 -1px 0 var(--primary) inset;
}
.post-content del {
text-decoration: 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: 32px;
}
.post-content table th,
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
min-width: 80px;
padding: 12px 8px;
line-height: 1.5;
border-bottom: 1px solid var(--border);
}
.post-content table th {
font-size: 14px;
text-align: start;
}
.post-content table:not(.highlighttable) td code:only-child {
margin: auto 0;
}
.post-content .highlight table {
border-radius: var(--radius);
}
.post-content .highlight:not(table) {
margin: 10px auto;
background: var(--hljs-bg) !important;
border-radius: var(--radius);
direction: ltr;
}
.post-content li > .highlight {
margin-inline-end: 0;
}
.post-content ul pre {
margin-inline-start: calc(var(--gap) * -2);
}
.post-content .highlight pre {
margin: 0;
}
.post-content .highlighttable {
table-layout: fixed;
}
.post-content .highlighttable td:first-child {
width: 40px;
}
.post-content .highlighttable td .linenodiv {
padding-inline-end: 0 !important;
}
.post-content .highlighttable td .highlight,
.post-content .highlighttable td .linenodiv pre {
margin-bottom: 0;
}
.post-content code {
margin: auto 4px;
padding: 4px 6px;
font-size: 0.78em;
line-height: 1.5;
background: var(--code-bg);
border-radius: 2px;
}
.post-content pre code {
display: block;
margin: auto 0;
padding: 10px;
color: rgb(213, 213, 214);
background: var(--hljs-bg) !important;
border-radius: var(--radius);
overflow-x: auto;
word-break: break-all;
}
.post-content blockquote {
margin: 20px 0;
padding: 0 14px;
border-inline-start: 3px solid var(--primary);
}
.post-content hr {
margin: 30px 0;
height: 2px;
background: var(--tertiary);
border: 0;
}
.post-content iframe {
max-width: 100%;
}
.post-content img {
border-radius: 4px;
margin: 1rem 0;
}
.post-content img[src*="#center"] {
margin: 1rem auto;
}
.post-content figure.align-center {
text-align: center;
}
.post-content figure > figcaption {
color: var(--primary);
font-size: 16px;
font-weight: bold;
margin: 8px 0 16px;
}
.post-content figure > figcaption > p {
color: var(--secondary);
font-size: 14px;
font-weight: normal;
}
.toc {
margin: 0 2px 40px 2px;
border: 1px solid var(--border);
background: var(--code-bg);
border-radius: var(--radius);
padding: 0.4em;
}
.dark .toc {
background: var(--entry);
}
.toc details summary {
cursor: zoom-in;
margin-inline-start: 20px;
}
.toc details[open] summary {
cursor: zoom-out;
}
.toc .details {
display: inline;
font-weight: 500;
}
.toc .inner {
margin: 0 20px;
padding: 10px 20px;
}
.toc li ul {
margin-inline-start: var(--gap);
}
.toc summary:focus {
outline: 0;
}
.post-footer {
margin-top: 56px;
}
.post-tags li {
display: inline-block;
margin-inline-end: 3px;
margin-bottom: 5px;
}
.post-tags a,
.share-buttons,
.paginav {
border-radius: var(--radius);
background: var(--code-bg);
border: 1px solid var(--border);
}
.post-tags a {
display: block;
padding-inline-start: 14px;
padding-inline-end: 14px;
color: var(--secondary);
font-size: 14px;
line-height: 34px;
background: var(--code-bg);
}
.post-tags a:hover,
.paginav a:hover {
background: var(--border);
}
.share-buttons {
margin: 14px 0;
padding-inline-start: var(--radius);
display: flex;
justify-content: center;
overflow-x: auto;
}
.share-buttons a {
margin-top: 10px;
}
.share-buttons a:not(:last-of-type) {
margin-inline-end: 12px;
}
h1:hover .anchor,
h2:hover .anchor,
h3:hover .anchor,
h4:hover .anchor,
h5:hover .anchor,
h6:hover .anchor {
display: inline-flex;
color: var(--secondary);
margin-inline-start: 8px;
font-weight: 500;
user-select: none;
}
.paginav {
margin: 10px 0;
display: flex;
line-height: 30px;
border-radius: var(--radius);
}
.paginav a {
padding-inline-start: 14px;
padding-inline-end: 14px;
border-radius: var(--radius);
}
.paginav .title {
letter-spacing: 1px;
text-transform: uppercase;
font-size: small;
color: var(--secondary);
}
.paginav .prev,
.paginav .next {
width: 50%;
}
.paginav span:hover:not(.title) {
box-shadow: 0 1px 0;
}
.paginav .next {
margin-inline-start: auto;
text-align: right;
}
[dir="rtl"] .paginav .next {
text-align: left;
}
h1>a>svg {
display: inline;
}
img.in-text {
display: inline;
margin: auto;
}

View File

@ -0,0 +1,42 @@
.buttons,
.main .profile {
display: flex;
justify-content: center;
}
.main .profile {
align-items: center;
min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
text-align: center;
}
.profile .profile_inner h1 {
padding: 12px 0;
}
.profile img {
display: inline-table;
border-radius: 50%;
}
.buttons {
flex-wrap: wrap;
max-width: 400px;
margin: 0 auto;
}
.button {
background: var(--tertiary);
border-radius: var(--radius);
margin: 8px;
padding: 6px;
transition: transform 0.1s;
}
.button-inner {
padding: 0 8px;
}
.button:active {
transform: scale(0.96);
}

View File

@ -0,0 +1,45 @@
#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

@ -0,0 +1,18 @@
.terms-tags li {
display: inline-block;
margin: 10px;
font-weight: 500;
}
.terms-tags a {
display: block;
padding: 3px 10px;
background: var(--tertiary);
border-radius: 6px;
transition: transform 0.1s;
}
.terms-tags a:active {
background: var(--tertiary);
transform: scale(0.96);
}

View File

@ -0,0 +1,6 @@
/*
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

@ -0,0 +1,118 @@
*,
::after,
::before {
box-sizing: border-box;
}
html {
-webkit-tap-highlight-color: transparent;
overflow-y: scroll;
-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;
font-size: 18px;
line-height: 1.6;
word-break: break-word;
background: var(--theme);
}
article,
aside,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
table {
display: block;
}
h1,
h2,
h3,
h4,
h5,
h6 {
line-height: 1.2;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
margin-top: 0;
margin-bottom: 0;
}
ul {
padding: 0;
}
a {
text-decoration: none;
}
body,
figure,
ul {
margin: 0;
}
table {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
overflow-x: auto;
word-break: keep-all;
}
button,
input,
textarea {
padding: 0;
font: inherit;
background: 0 0;
border: 0;
}
input,
textarea {
outline: 0;
}
button,
input[type=button],
input[type=submit] {
cursor: pointer;
}
input:-webkit-autofill,
textarea:-webkit-autofill {
box-shadow: 0 0 0 50px var(--theme) inset;
}
img {
display: block;
max-width: 100%;
}

View File

@ -0,0 +1,38 @@
:root {
--gap: 24px;
--content-gap: 20px;
--nav-width: 1024px;
--main-width: 720px;
--header-height: 60px;
--footer-height: 60px;
--radius: 8px;
--theme: rgb(255, 255, 255);
--entry: rgb(255, 255, 255);
--primary: rgb(30, 30, 30);
--secondary: rgb(108, 108, 108);
--tertiary: rgb(214, 214, 214);
--content: rgb(31, 31, 31);
--hljs-bg: rgb(28, 29, 33);
--code-bg: rgb(245, 245, 245);
--border: rgb(238, 238, 238);
}
.dark {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--code-bg);
}
.dark.list {
background: var(--theme);
}

View File

@ -0,0 +1,49 @@
@media screen and (max-width: 768px) {
/* theme-vars */
:root {
--gap: 14px;
}
/* profile-mode */
.profile img {
transform: scale(0.85);
}
/* post-entry */
.first-entry {
min-height: 260px;
}
/* archive */
.archive-month {
flex-direction: column;
}
.archive-year {
margin-top: 20px;
}
/* footer */
.footer {
padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
}
}
/* footer */
@media screen and (max-width: 900px) {
.list .top-link {
transform: translateY(-5rem);
}
}
@media (prefers-reduced-motion) {
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
.terms-tags a:active,
.button:active,
.post-entry:active,
.top-link,
#searchResults .focus,
#searchResults li:active {
transform: none;
}
}

View File

@ -0,0 +1,5 @@
/*
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

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

@ -0,0 +1,63 @@
/* 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;
}
}

View File

@ -0,0 +1,152 @@
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

File diff suppressed because one or more lines are too long

View File

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

3
themes/PaperMod/go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/adityatelange/hugo-PaperMod
go 1.12

View File

@ -0,0 +1,28 @@
- 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

@ -0,0 +1,39 @@
- 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

@ -0,0 +1,16 @@
- id: prev_page
translation: "Предишна страница"
- id: next_page
translation: "Следваща страница"
- id: read_time
translation:
one : "1 мин"
other: "{{ .Count }} мин"
- id: toc
translation: "Съдържание"
- id: translations
translation: "Преводи"

View File

@ -0,0 +1,33 @@
- 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

@ -0,0 +1,19 @@
- 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

@ -0,0 +1,25 @@
- 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

@ -0,0 +1,28 @@
- 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

@ -0,0 +1,33 @@
- id: prev_page
translation: "Vorherige"
- id: next_page
translation: "Nächste"
- id: read_time
translation:
one: "1 Minute"
other: "{{ .Count }} Minuten"
- id: words
translation:
one : "Wort"
other: "{{ .Count }} Wörter"
- id: toc
translation: "Inhaltsverzeichnis"
- id: translations
translation: "Übersetzungen"
- id: home
translation: "Home"
- id: edit_post
translation: "Bearbeiten"
- id: code_copy
translation: "Kopieren"
- id: code_copied
translation: "Kopiert!"

View File

@ -0,0 +1,33 @@
- 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

@ -0,0 +1,33 @@
- id: prev_page
translation: "Prev"
- id: next_page
translation: "Next"
- id: read_time
translation:
one : "1 min"
other: "{{ .Count }} min"
- id: words
translation:
one : "word"
other: "{{ .Count }} words"
- id: toc
translation: "Table of Contents"
- id: translations
translation: "Translations"
- id: home
translation: "Home"
- id: edit_post
translation: "Edit"
- id: code_copy
translation: "copy"
- id: code_copied
translation: "copied!"

View File

@ -0,0 +1,25 @@
- 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

@ -0,0 +1,33 @@
- id: prev_page
translation: "Anterior"
- id: next_page
translation: "Siguiente"
- id: read_time
translation:
one : "1 min"
other: "{{ .Count }} min"
- id: words
translation:
one : "palabra"
other: "{{ .Count }} palabras"
- id: toc
translation: "Tabla de Contenidos"
- id: translations
translation: "Traducciones"
- id: home
translation: "Inicio"
- id: edit_post
translation: "Editar"
- id: code_copy
translation: "copiar"
- id: code_copied
translation: "¡copiado!"

View File

@ -0,0 +1,28 @@
- 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

@ -0,0 +1,33 @@
- id: prev_page
translation: "Précédent"
- 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é !"

View File

@ -0,0 +1,33 @@
- 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

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

View File

@ -0,0 +1,33 @@
- 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

@ -0,0 +1,16 @@
- 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"

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