Обновление фич блога
This commit is contained in:
parent
140d9ad2a0
commit
a674674c4e
25 changed files with 212 additions and 110 deletions
36
config.toml
36
config.toml
|
@ -16,6 +16,16 @@ colorScheme = "dark"
|
||||||
hideColorSchemeToggle = true
|
hideColorSchemeToggle = true
|
||||||
since = 2_007
|
since = 2_007
|
||||||
dateFormat = "2 January 2006"
|
dateFormat = "2 January 2006"
|
||||||
|
mainSections = ["posts"]
|
||||||
|
|
||||||
|
[params.brand]
|
||||||
|
tagline = "/home/NeonXP"
|
||||||
|
icon = "img/icon.png"
|
||||||
|
logo = "img/logo512.png"
|
||||||
|
|
||||||
|
[blackfriday]
|
||||||
|
angledQuotes = true
|
||||||
|
hrefTargetBlank = true
|
||||||
|
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
name = "Jabber"
|
name = "Jabber"
|
||||||
|
@ -27,10 +37,10 @@ dateFormat = "2 January 2006"
|
||||||
icon = "fa fa-git"
|
icon = "fa fa-git"
|
||||||
url = "https://gitrepo.ru/neonxp/"
|
url = "https://gitrepo.ru/neonxp/"
|
||||||
|
|
||||||
[[params.social]]
|
# [[params.social]]
|
||||||
name = "Mastodon"
|
# name = "Mastodon"
|
||||||
icon = "fa fa-mastodon"
|
# icon = "fa fa-mastodon"
|
||||||
url = "https://soc.neonxp.ru/@neonxp/"
|
# url = "https://soc.neonxp.ru/@neonxp/"
|
||||||
|
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
name = "Telegram канал"
|
name = "Telegram канал"
|
||||||
|
@ -50,7 +60,7 @@ dateFormat = "2 January 2006"
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
name = "RSS"
|
name = "RSS"
|
||||||
icon = "fa fa-rss"
|
icon = "fa fa-rss"
|
||||||
url = "/index.xml"
|
url = "/feed.atom"
|
||||||
|
|
||||||
[params.language]
|
[params.language]
|
||||||
Lang = "ru"
|
Lang = "ru"
|
||||||
|
@ -61,11 +71,21 @@ dateFormat = "2 January 2006"
|
||||||
appendFilePath = true
|
appendFilePath = true
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = [ "HTML", "RSS" ]
|
home = [ "HTML", "ATOM" ]
|
||||||
page = [ "HTML" ]
|
page = [ "HTML" ]
|
||||||
|
section = ["HTML"]
|
||||||
|
taxonomy = ["HTML"]
|
||||||
|
taxonomyTerm = ["HTML"]
|
||||||
|
|
||||||
|
[outputFormats]
|
||||||
|
[outputFormats.ATOM]
|
||||||
|
name = "ATOM"
|
||||||
|
baseName = "feed"
|
||||||
|
mediaType = "application/atom+xml"
|
||||||
|
|
||||||
|
[mediaTypes]
|
||||||
[mediaTypes."application/atom+xml"]
|
[mediaTypes."application/atom+xml"]
|
||||||
suffixes = [ "xml" ]
|
suffixes = ["atom"]
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
identifier = "jabber"
|
identifier = "jabber"
|
||||||
|
@ -104,7 +124,7 @@ url = "/archive"
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
identifier = "rss"
|
identifier = "rss"
|
||||||
name = "RSS"
|
name = "RSS"
|
||||||
url = "/index.xml"
|
url = "/feed.atom"
|
||||||
|
|
||||||
[permalinks]
|
[permalinks]
|
||||||
posts = "/posts/:year/:month/:day/:filename"
|
posts = "/posts/:year/:month/:day/:filename"
|
||||||
|
|
|
@ -8,6 +8,7 @@ date: 2021-01-01T00:00:00+03:00
|
||||||
|
|
||||||
<div class="h-card vcard">
|
<div class="h-card vcard">
|
||||||
<img class="u-logo" width="128" src="https://neonxp.ru/img/logo512.png"/>
|
<img class="u-logo" width="128" src="https://neonxp.ru/img/logo512.png"/>
|
||||||
|
<img class="u-photo" width="128" src="https://neonxp.ru/files/photo.jpg"/>
|
||||||
<p>
|
<p>
|
||||||
<a class="u-url u-uid url" href="https://neonxp.ru" rel="me">
|
<a class="u-url u-uid url" href="https://neonxp.ru" rel="me">
|
||||||
<span class="p-name fn"><span class="p-given-name">Александр</span> '<span class="p-nickname">NeonXP</span>' <span class="p-family-name">Кирюхин</span></span>
|
<span class="p-name fn"><span class="p-given-name">Александр</span> '<span class="p-nickname">NeonXP</span>' <span class="p-family-name">Кирюхин</span></span>
|
||||||
|
|
|
@ -26,7 +26,7 @@ featuredImage: /img/posts/photo_2023-12-27_22-45-44.jpg
|
||||||
## Наброски плана
|
## Наброски плана
|
||||||
|
|
||||||
0. Перейти максимально на собственные ресурсы, которые я контролирую и которые *точно* не сливают ничего налево.
|
0. Перейти максимально на собственные ресурсы, которые я контролирую и которые *точно* не сливают ничего налево.
|
||||||
Примерно так: социалки => https://ru.social/ , GitHub => https://coderepo.ru/ , Облачные диски => локальный NAS Synology и т.д.
|
Примерно так: социалки => https://soc.neonxp.ru/ , GitHub => https://gitrepo.ru/ , Облачные диски => локальный NAS Synology и т.д.
|
||||||
1. Мне надо сократить мессенджеры в идеале до одного, не считая корпоративного рабочего. Тут всё просто - оставляю Telegram, остальные сношу.
|
1. Мне надо сократить мессенджеры в идеале до одного, не считая корпоративного рабочего. Тут всё просто - оставляю Telegram, остальные сношу.
|
||||||
2. Мне надо отказаться от неэтичных социальных сетей, где я не могу полностью контролировать свои данные.
|
2. Мне надо отказаться от неэтичных социальных сетей, где я не могу полностью контролировать свои данные.
|
||||||
3. При отказе от социальных сетей чтобы не доставить проблем моим контактам надо оставить "новый адрес" по которому со мной можно связаться и, например, этот пост. Я не хочу чтобы для всех мои действия были прозрачны и понятны, а не "молча удалиться" оставив кого-то в недоумении.
|
3. При отказе от социальных сетей чтобы не доставить проблем моим контактам надо оставить "новый адрес" по которому со мной можно связаться и, например, этот пост. Я не хочу чтобы для всех мои действия были прозрачны и понятны, а не "молча удалиться" оставив кого-то в недоумении.
|
92
content/posts/wrong_internet.md
Normal file
92
content/posts/wrong_internet.md
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
+++
|
||||||
|
draft = true
|
||||||
|
date = 2024-06-24T23:39:35+03:00
|
||||||
|
title = "Интернет. Мы всё испортили."
|
||||||
|
description = ""
|
||||||
|
slug = ""
|
||||||
|
authors = []
|
||||||
|
tags = ["интернет", "лонгрид"]
|
||||||
|
categories = ["Лонгриды"]
|
||||||
|
externalLink = ""
|
||||||
|
series = []
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Вступление
|
||||||
|
|
||||||
|
Вот уже пару лет как я стал замечать, что интернет уже давно идёт куда-то не туда. Прежде чем я раскрою свою мысль,
|
||||||
|
давайте вспомним пару новостей из недавнего прошлого:
|
||||||
|
|
||||||
|
- Steam и PlayStation Network недоступны из-за проблем у
|
||||||
|
[Akamai](https://wtftime.ru/articles/117096/steam-i-playstation-network-nedostupny-iz-za-problem-u-akamai/) — на самом
|
||||||
|
деле тогда слегло много чего ещё, в том числе веб-сервисы Apple, такие как AppStore, Погода и прочие.
|
||||||
|
|
||||||
|
Кстати, чтобы далеко не уходить от Акамаи — случайно наткнулся на
|
||||||
|
[интересную статейку от 2017 года](https://www.securitylab.ru/analytics/485308.php). Просто интересно.
|
||||||
|
- Когда [ложится Cloudflare](https://pikabu.ru/story/cloudflare__rak_interneta_7599566) за ним ложится треть интернета
|
||||||
|
(на самом деле — [всего-то 21М сайтов](https://trends.builtwith.com/websitelist/Cloudflare)).
|
||||||
|
- [Падения AWS](https://habr.com/ru/news/597391/) — это вообще хтонический ужас. Ну а так же можно прибавить к AWS и
|
||||||
|
Google Cloud с Azure.
|
||||||
|
|
||||||
|
Это то, что сходу вспоминается и что лично меня трогало.
|
||||||
|
|
||||||
|
Что же в этом общее? А то, что и тот и другой и третьи — единные точки отказа для большой части интернета.
|
||||||
|
|
||||||
|
Но как же так? Ведь мы же помним историю интернета, и то, какая была его главная «киллерфича» — децентрализация и
|
||||||
|
устойчивость к катастрофам! Ведь времена были неспокойные, холодная война, все дела. Ну, на самом деле, всё как и сейчас
|
||||||
|
:)
|
||||||
|
|
||||||
|
![Логическая карта ARPA NET, май 1973](https://pic.neonxp.ru/image/f9b0d325-ad3b-4413-b0f0-a12931d488bb.jpg)
|
||||||
|
Логическая карта ARPA NET, май 1973
|
||||||
|
|
||||||
|
Обратите внимание, хоть эта сеть по нынешним временам своей ёмкостью и уступает средней локалке небольшой компании. Но
|
||||||
|
уже здесь прослеживается, что при полном уничтожении любого узла сети — остальные узлы не теряют связанности! А то и
|
||||||
|
имеют более одного маршрута!
|
||||||
|
|
||||||
|
Казалось бы, сейчас, спустя более 50 лет, интернет стал несравнимо сложнее и связаннее. Однако он стал гораздо более
|
||||||
|
хрупким!
|
||||||
|
|
||||||
|
Сразу оговорюсь: я буду иногда говорить про весь Интернет, а иногда про более близкий мне его сегмент — Рунет.
|
||||||
|
Прошу простить за путаницу, но Рунет как часть Интернета наследует все его болячки. Ну и я за него лучше знаю, в силу
|
||||||
|
того, что я в нём обитаю.
|
||||||
|
|
||||||
|
Но проблема не только лишь в физическом отказе этих «бутылочных горлышек»! Всего несколько корпораций получают доступ к
|
||||||
|
слежке за почти всеми пользователями сети. А в действительно децентрализованной сети (какой, напомню, якобы должен быть
|
||||||
|
Интернет) этого быть просто не должно! По целому ряду причин, не буду их перечислять, главное не в частностях, а в том,
|
||||||
|
что этого не должно быть просто потому что не должно быть никогда. И да, что иронично, но это всё на фоне лицемерной
|
||||||
|
борьбе за якобы конфидециальность пользователей со стороны этих же самых корпораций. Трижды ха.
|
||||||
|
|
||||||
|
И это касается не только CDN и прочих AWS! Вот ещё «хорошие» точки отказа и слежки за пользователями:
|
||||||
|
|
||||||
|
- Мессенджера по сути у нас два — Telegram и WhatsApp. Останемся без них (РКН, санкции, балканизация) — большинство
|
||||||
|
пользователей рунета остаётся де-факто без мессенджеров. Да, есть ещё VK Messenger — но это тоже единая точка отказа!
|
||||||
|
- GitHub — тут вообще максимально обидно! Ведь Гит — by design идеально децентрализованная и распределенная система
|
||||||
|
совместной разработки ПО! Да ей даже не обязален центральный сервер хранения репозитория, по большому счёту!
|
||||||
|
А имеем то, что 95% (умозрительно) всех репозиториев загнали в один загончик, который принадлежит одной из самых
|
||||||
|
хищных и беспринципных корпораций! А учитывая сколько всего завязанно на конкретно GitHub — так становится страшно
|
||||||
|
представить что будет, если его вдруг не будет. Ну например, менеджмент МС вдруг решит, что гитхаб стал убыточный или
|
||||||
|
недостаточно прибыльный, а косты на фоне финансового кризиса надо резать! Да, можно сказать, что есть GitLab. Ну окей,
|
||||||
|
пара процентов у него. Ещё пара процентов — всякие гиковские sr.ht и отвратительный Bitbucket.
|
||||||
|
Но что это меняет в сути? Да ничего.
|
||||||
|
- Почта. Основа основ. Есть у каждого пользователя. Так же как и Гит — идеально распределённая и децентрализованная
|
||||||
|
система. Но тут хоть больше выбор, хоть и не на много: gmail.com, mail.ru, yandex.ru... Ну вроде всё из основных.
|
||||||
|
Ну и вот покрыто 80-90% пользователей рунета :) Децентрализация, my ass!
|
||||||
|
- YouTube — ну тут и так всё понятно. Не буду пояснять.
|
||||||
|
- Google AdSense и прочие подобные треккеры от фейсбуков — хорошо владельцу сайта тем что он получает какую-то там
|
||||||
|
статистику(а собрать статистику по логам вебсервера раз уж так охото получить стату — не?) или виджеты (зачем?), а
|
||||||
|
взамен «сдаёт» своих пользователей корпорациям. Хорошо? Да просто охренетительно!
|
||||||
|
- Вход через OAuth провайдеров (ну эти вездесущие «Войти через Facebook/Google/итд») — здесь не столько про отказ, а про
|
||||||
|
то, что ради «удобства» добровольно помогаем транснациональным корпорациям следить за собой. То есть, тут уже не
|
||||||
|
только вина нечистоплотных разработчиков веб ресурсов, но и самих пользователей! А помните, был такой OpenID? Нет, не
|
||||||
|
помните? Ну спасибо за это OAuth, что не помните.
|
||||||
|
|
||||||
|
Можно, конечно, мне возразить, что всё это лишь естественное развитие и естественный ход вещей. Естестественный, да.
|
||||||
|
Такой же естественный как и стремление бизнеса к монополизации. Вот только в интернете ФАС, который это сдержит, нет.
|
||||||
|
И в итоге мы придём к антиутопичному будущему, где две-три или десяток, не суть, корпораций поделят Интернет и начнут
|
||||||
|
перекраивать его под себя. Сначала под прикрытием «заботы» о пользователях, чтобы всё было в одном месте. Потом будут
|
||||||
|
придумывать новые «стандарты», несовместимые ни с чем кроме себя (QUIC, ага). А потом что? А не знаю, но ничего
|
||||||
|
хорошего нас не ждёт.
|
||||||
|
|
||||||
|
Надеюсь, мне удалось хоть немного показать «неправильность» и тот хтонический ужас который я испытываю глядя на
|
||||||
|
современный интернет и на то, куда он катится.
|
||||||
|
|
||||||
|
Дальше мы попробуем понять что пошло не так и что с этим можно сделать.
|
|
@ -6,5 +6,5 @@ tags: ["блог"]
|
||||||
|
|
||||||
Покапавшись по вебархиву смог вытащить древние посты с разных моих старых блогов. В основном, кринжовые, конечно, но это моя жизнь, как она была в то время. Так что пусть будут.
|
Покапавшись по вебархиву смог вытащить древние посты с разных моих старых блогов. В основном, кринжовые, конечно, но это моя жизнь, как она была в то время. Так что пусть будут.
|
||||||
|
|
||||||
[Архив блога](/archive)
|
[Архив блога](https://neonxp.ru/archive)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title: "Вам не нужны пуши!"
|
title: "Вам не нужны пуши!"
|
||||||
date: 2024-06-01T21:05:55+03:00
|
date: 2024-06-01T21:05:55+03:00
|
||||||
tags: ["жизнь", "IT"]
|
tags: ["жизнь", "IT"]
|
||||||
featuredImage: https://pic.neonxp.ru/image/3da5c769-6b21-4cde-9e97-351bb95660a6.jpg
|
featuredImage: https://pic.neonxp.ru/image/b2ca8d44-de82-4d1b-9bbb-b7248a0ffad0.jpg
|
||||||
---
|
---
|
||||||
|
|
||||||
Я не шучу. Серьёзно.
|
Я не шучу. Серьёзно.
|
|
@ -2,7 +2,7 @@
|
||||||
title: "Книжные рекомендации 1"
|
title: "Книжные рекомендации 1"
|
||||||
date: 2024-06-02T01:48:16+03:00
|
date: 2024-06-02T01:48:16+03:00
|
||||||
tags: ["книги", "фантастика"]
|
tags: ["книги", "фантастика"]
|
||||||
featuredImage: https://pic.neonxp.ru/image/b3f041a9-4a77-4a2e-9118-917fc900778b.jpg
|
featuredImage: https://pic.neonxp.ru/image/6d169905-1ac6-46df-bbe8-b6b5809361f2.jpg
|
||||||
---
|
---
|
||||||
|
|
||||||
Подумалось, почему бы не рекомендовать понравившиеся мне книги.
|
Подумалось, почему бы не рекомендовать понравившиеся мне книги.
|
||||||
|
@ -13,4 +13,4 @@ featuredImage: https://pic.neonxp.ru/image/b3f041a9-4a77-4a2e-9118-917fc900778b.
|
||||||
Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на космическом корабле вольных торговцев
|
Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на космическом корабле вольных торговцев
|
||||||
"Королева Солнца". Читается легко и увлекательно. Книги небольшие, проглатываются за пару часов.
|
"Королева Солнца". Читается легко и увлекательно. Книги небольшие, проглатываются за пару часов.
|
||||||
|
|
||||||
[Скачать](/books/andre_norton-queen_of_sun.zip)
|
[Скачать](https://neonxp.ru/books/andre_norton-queen_of_sun.zip)
|
|
@ -11,7 +11,7 @@ featuredImage: /img/posts/photo_2023-12-27_22-50-30.jpg
|
||||||
|
|
||||||
Очень грустно, я был крайне расстроен. Штош, теперь настроил зато постоянные бекапы БД и данных на локальный NAS. Прошу прощения у пользователей, я очень виноват.
|
Очень грустно, я был крайне расстроен. Штош, теперь настроил зато постоянные бекапы БД и данных на локальный NAS. Прошу прощения у пользователей, я очень виноват.
|
||||||
|
|
||||||
А теперь о негрустном. Всё же решил что мне больше нравится основным домен не .dev, а именно .ru. Времена неспокойные - лучше перестраховаться и сделать ставку именно на национальный домен, а не на международный. К тому же у .dev домена есть неприятная особенность, что он требует обязательно валидного (то есть одобренного западными "партнерами") сертификата. А это не дело, как я уже [писал в заметке](/posts/2023-07-24-tls/).
|
А теперь о негрустном. Всё же решил что мне больше нравится основным домен не .dev, а именно .ru. Времена неспокойные - лучше перестраховаться и сделать ставку именно на национальный домен, а не на международный. К тому же у .dev домена есть неприятная особенность, что он требует обязательно валидного (то есть одобренного западными "партнерами") сертификата. А это не дело, как я уже [писал в заметке](https://neonxp.ru/posts/2023-07-24-tls/).
|
||||||
|
|
||||||
Пока что как-то так ¯\_(ツ)_/¯
|
Пока что как-то так ¯\_(ツ)_/¯
|
||||||
|
|
5
data/authors.toml
Normal file
5
data/authors.toml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[default]
|
||||||
|
name = "Александр NeonXP Кирюхин"
|
||||||
|
uri = "https://neonxp.ru/"
|
||||||
|
email = "i@neonxp.ru"
|
||||||
|
image = "https://neonxp.ru/img/logo512.png"
|
|
@ -1,71 +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 }}
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
||||||
<channel>
|
|
||||||
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }}</title>
|
|
||||||
<link>{{ .Permalink }}</link>
|
|
||||||
<description>Блог NeonXP</description>
|
|
||||||
<generator>Hugo</generator>
|
|
||||||
<language>{{ site.Language.LanguageCode }}</language>{{ with $authorEmail }}
|
|
||||||
<managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
|
|
||||||
<webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with .Site.Copyright }}
|
|
||||||
<copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
|
|
||||||
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
|
||||||
{{- with .OutputFormats.Get "RSS" }}
|
|
||||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
|
||||||
{{- end }}
|
|
||||||
{{- range $pages }}
|
|
||||||
<item>
|
|
||||||
<title>{{ .Title }}</title>
|
|
||||||
<link>{{ .Permalink }}</link>
|
|
||||||
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
|
||||||
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
|
|
||||||
<guid>{{ .Permalink }}</guid>
|
|
||||||
<description>{{ .Summary | transform.XMLEscape | safeHTML }}</description>
|
|
||||||
</item>
|
|
||||||
{{- end }}
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
53
layouts/index.atom
Normal file
53
layouts/index.atom
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{{- $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections -}}
|
||||||
|
{{- $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" xml:lang="{{ .Site.LanguageCode }}">
|
||||||
|
<title>{{ .Site.Title }}</title>
|
||||||
|
{{- with .Site.Params.brand.tagline }}
|
||||||
|
<subtitle>{{ . }}</subtitle>
|
||||||
|
{{- end }}
|
||||||
|
<id>{{ "/" | absLangURL }}</id>
|
||||||
|
<author>
|
||||||
|
<name>{{ .Site.Title }}</name>
|
||||||
|
<uri>{{ "/" | absLangURL }}</uri>
|
||||||
|
</author>
|
||||||
|
<generator>Hugo gohugo.io</generator>
|
||||||
|
{{- with .Site.Copyright }}
|
||||||
|
<rights>{{ . }}</rights>
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Site.Params.brand.icon }}
|
||||||
|
<icon>{{ . | absURL }}</icon>
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Site.Params.brand.logo }}
|
||||||
|
<logo>{{ . | absURL }}</logo>
|
||||||
|
{{- end }}
|
||||||
|
<updated>{{ dateFormat "2006-01-02T15:04:05Z" now.UTC | safeHTML }}</updated>
|
||||||
|
{{- with .OutputFormats.Get "ATOM" }}
|
||||||
|
{{ printf `<link rel="self" type="%s" href="%s" hreflang="%s"/>` .MediaType.Type .Permalink $.Site.LanguageCode | safeHTML }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .AlternativeOutputFormats }}
|
||||||
|
{{ printf `<link rel="alternate" type="%s" href="%s" hreflang="%s"/>` .MediaType.Type .Permalink $.Site.LanguageCode | safeHTML }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range $pages }}
|
||||||
|
<entry>
|
||||||
|
<title>{{ .Title }}</title>
|
||||||
|
{{- $author := index .Site.Data.authors (.Params.author | default "default") }}
|
||||||
|
<author>
|
||||||
|
<name>{{ $author.name }}</name>
|
||||||
|
<uri>{{ $author.uri }}</uri>
|
||||||
|
</author>
|
||||||
|
<id>{{ .Permalink }}</id>
|
||||||
|
{{- if .IsTranslated -}}
|
||||||
|
{{ range .Translations }}
|
||||||
|
<link rel="alternate" href="{{ .Permalink }}" hreflang="{{ .Language.Lang }}"/>
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
<updated>{{ dateFormat "2006-01-02T15:04:05Z" .Lastmod.UTC | safeHTML }}</updated>
|
||||||
|
<published>{{ dateFormat "2006-01-02T15:04:05Z" .Date.UTC | safeHTML }}</published>
|
||||||
|
<content type="html">{{ trim .Content "\n" }}</content>
|
||||||
|
</entry>
|
||||||
|
{{- end }}
|
||||||
|
</feed>
|
|
@ -3,6 +3,7 @@
|
||||||
<meta name="color-scheme" content="light dark">
|
<meta name="color-scheme" content="light dark">
|
||||||
<link rel="pingback" href="https://webmention.io/neonxp.ru/xmlrpc" />
|
<link rel="pingback" href="https://webmention.io/neonxp.ru/xmlrpc" />
|
||||||
<link rel="webmention" href="https://webmention.io/neonxp.ru/webmention" />
|
<link rel="webmention" href="https://webmention.io/neonxp.ru/webmention" />
|
||||||
|
<atom:link href="/feed.atom" rel="self" type="application/rss+xml" />
|
||||||
{{ if .Site.Params.csp }}
|
{{ if .Site.Params.csp }}
|
||||||
{{ partial "csp.html" . }}
|
{{ partial "csp.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -15,13 +15,13 @@
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
<div class="date">
|
<div class="date">
|
||||||
<span class="posted-on">
|
<span class="posted-on">
|
||||||
<i class="fa fa-calendar" aria-hidden="true"></i>
|
<i class="fa-solid fa-calendar" aria-hidden="true"></i>
|
||||||
<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}" time class="dt-published">
|
<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}" time class="dt-published">
|
||||||
{{ .Date | time.Format (.Site.Params.dateFormat | default "January 2, 2006" ) }}
|
{{ .Date | time.Format (.Site.Params.dateFormat | default "January 2, 2006" ) }}
|
||||||
</time>
|
</time>
|
||||||
</span>
|
</span>
|
||||||
<span class="reading-time">
|
<span class="reading-time">
|
||||||
<i class="fa fa-clock-o" aria-hidden="true"></i>
|
<i class="fa-solid fa-clock" aria-hidden="true"></i>
|
||||||
{{ i18n "reading_time" .ReadingTime }}
|
{{ i18n "reading_time" .ReadingTime }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
<div class="post-content e-content">
|
<div class="post-content e-content">
|
||||||
{{ if .Params.featuredImage }}
|
{{ if .Params.featuredImage }}
|
||||||
<img src="{{ .Params.featuredImage | relURL }}" alt="Илюстрация поста"/>
|
<img src="{{ .Params.featuredImage | relURL }}" alt="Featured image"/>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -41,27 +41,23 @@
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<form action="mailto:i@neonxp.ru" enctype="text/plain">
|
<form action="mailto:i@neonxp.ru" enctype="text/plain">
|
||||||
<input type="hidden" name="subject" required value="RE: {{ .Title }}">
|
<input type="hidden" name="subject" required value="RE: {{ .Permalink | safeURL }}">
|
||||||
<label>
|
<label>
|
||||||
<h2>Комментарий</h2>
|
<h2>Комментарий</h2>
|
||||||
<textarea name="body" required rows="5" style="width:100%"></textarea>
|
<textarea name="body" required rows="5" style="width:100%"></textarea>
|
||||||
</label>
|
</label>
|
||||||
<button type="submit">Отправить</button>
|
<button type="submit">Отправить</button>
|
||||||
</form>
|
</form>
|
||||||
<hr />
|
|
||||||
<h2>Отправить <a href="https://webmention.io">WebMention</a>:</h2>
|
|
||||||
<form action="https://webmention.io/neonxp.ru/webmention" method="POST">
|
|
||||||
<input type="hidden" name="target" required value="{{ .Permalink | safeURL }}">
|
|
||||||
<label>
|
|
||||||
Адрес откуда webmention:
|
|
||||||
<input type="text" name="source" required value="" placeholder="https://адрес-моего-блога.ru/пост-в-котором-я-упомянул">
|
|
||||||
</label>
|
|
||||||
<br />
|
|
||||||
<button type="submit">Отправить</button>
|
|
||||||
</form>
|
|
||||||
</footer>
|
</footer>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
{{ partial "posts/math.html" . }}
|
{{ partial "posts/series.html" . }}
|
||||||
|
{{ partial "posts/disqus.html" . }}
|
||||||
|
{{ partial "posts/commento.html" . }}
|
||||||
|
{{ partial "posts/utterances.html" . }}
|
||||||
|
{{ partial "posts/giscus.html" . }}
|
||||||
|
{{ partial "posts/mastodon.html" . }}
|
||||||
|
{{ partial "posts/telegram.html" . }}
|
||||||
|
{{ partial "posts/cusdis.html" . }}
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"Target":"css/coder.min.e1bdf152d93b060b06ba5d496486ed9c201a8b95d335e035beb5faebe3b61cad.css","MediaType":"text/css","Data":{"Integrity":"sha256-4b3xUtk7BgsGul1JZIbtnCAai5XTNeA1vrX66+O2HK0="}}
|
{"Target":"css/coder.min.38c4552ac40f9ae3408bad40358f654ebd8804412fe74ed56f2d6c8a7af82dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-OMRVKsQPmuNAi61ANY9lTr2IBEEv507Vby1sinr4LdM="}}
|
|
@ -12,7 +12,7 @@ ADR;CHARSET=UTF-8;TYPE=HOME:;;;Казань;Татарстан;;Российск
|
||||||
ROLE;CHARSET=UTF-8:Старший разработчик
|
ROLE;CHARSET=UTF-8:Старший разработчик
|
||||||
ORG;CHARSET=UTF-8:VK
|
ORG;CHARSET=UTF-8:VK
|
||||||
URL;CHARSET=UTF-8:https://neonxp.ru
|
URL;CHARSET=UTF-8:https://neonxp.ru
|
||||||
X-FEED;CHARSET=UTF-8:https://neonxp.ru/index.xml
|
X-FEED;CHARSET=UTF-8:https://neonxp.ru/feed.atom
|
||||||
SOURCE:https://neonxp.ru/files/vcard.vcf
|
SOURCE:https://neonxp.ru/files/vcard.vcf
|
||||||
PHOTO:https://neonxp.ru/files/photo.jpg
|
PHOTO:https://neonxp.ru/files/photo.jpg
|
||||||
X-SOCIALPROFILE;TYPE=Mastodon:https://soc.neonxp.ru/@neonxp
|
X-SOCIALPROFILE;TYPE=Mastodon:https://soc.neonxp.ru/@neonxp
|
||||||
|
|
BIN
static/img/icon.png
Normal file
BIN
static/img/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
|
@ -1 +1 @@
|
||||||
Subproject commit 4bef824c7b601d736cde47777043d813251b617c
|
Subproject commit b7470e26ab33d917ce195574d2fd40c8209ebb5e
|
Loading…
Reference in a new issue