Серьезная реновация
2
Makefile
|
@ -3,3 +3,5 @@
|
||||||
deploy:
|
deploy:
|
||||||
hugo --gc && rsync -avz --delete public/ neonxp@neonxp.ru:/var/www/neonxp.ru
|
hugo --gc && rsync -avz --delete public/ neonxp@neonxp.ru:/var/www/neonxp.ru
|
||||||
|
|
||||||
|
post:
|
||||||
|
hugo new content posts/$(shell date '+%Y-%m-%d')-$(name)/_index.md
|
82
assets/css/main.css
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
.p-summary {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.print-footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.sidebar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
article {
|
||||||
|
border: 0
|
||||||
|
}
|
||||||
|
article footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.container>header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.container>footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.comments {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.h-entry {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
.print-footer {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Give canvas a proper size and pixel perfect scaling */
|
||||||
|
canvas {
|
||||||
|
image-rendering: optimizeSpeed;
|
||||||
|
image-rendering: -moz-crisp-edges;
|
||||||
|
image-rendering: -webkit-optimize-contrast;
|
||||||
|
image-rendering: optimize-contrast;
|
||||||
|
image-rendering: pixelated;
|
||||||
|
-ms-interpolation-mode: nearest-neighbor;
|
||||||
|
border: 0px;
|
||||||
|
width: 512px;
|
||||||
|
height: 512px;
|
||||||
|
background: black;
|
||||||
|
display: block;
|
||||||
|
/* For nice loading */
|
||||||
|
}
|
||||||
|
|
||||||
|
#pico-container {
|
||||||
|
width: 512px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pico-container .buttons {
|
||||||
|
margin-top: 24px;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: calc(100%/6) calc(100%/6) calc(100%/6) calc(100%/6) calc(100%/6) calc(100%/6);
|
||||||
|
grid-auto-rows: 1fr;
|
||||||
|
grid-template-areas:
|
||||||
|
". up . . . ."
|
||||||
|
"left . right . . a"
|
||||||
|
". down . . b . "
|
||||||
|
}
|
||||||
|
|
||||||
|
.square_hack {
|
||||||
|
width:0;
|
||||||
|
padding-bottom: 100%;
|
||||||
|
}
|
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
|
@ -7,8 +7,10 @@ title = 'Книжные рекомендации 1'
|
||||||
|
|
||||||
Подумалось, почему бы не рекомендовать понравившиеся мне книги.
|
Подумалось, почему бы не рекомендовать понравившиеся мне книги.
|
||||||
|
|
||||||
В прошлый раз, ещё [в VK рекомендовал](https://vk.com/wall-174034751_45) Азимовский цикл “Основание”. А в этот разрекомендую цикл фантастики Андре Нортона “Королева Солнца”.
|
В прошлый раз, ещё [в VK рекомендовал](https://vk.com/wall-174034751_45) Азимовский цикл “Основание”.
|
||||||
|
А в этот раз рекомендую цикл фантастики Андре Нортона “Королева Солнца”.
|
||||||
|
|
||||||
Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на космическом корабле вольных торговцев“Королева Солнца”. Читается легко и увлекательно. Книги небольшие, проглатываются за пару часов.
|
Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на космическом корабле вольных торговцев
|
||||||
|
«Королева Солнца». Читается легко и увлекательно. Книги небольшие, проглатываются за пару часов.
|
||||||
|
|
||||||
[Скачать](https://neonxp.ru/wp-content/uploads/2024/09/andre_norton-queen_of_sun.zip)
|
[Скачать](andre_norton-queen_of_sun.zip)
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
categories = ['Без рубрики']
|
categories = ['Без рубрики']
|
||||||
date = '2024-07-13T20:49:12Z'
|
date = '2024-07-13T20:49:12Z'
|
||||||
image = '/upload/top-encrypted-todo-and-note-taking-apps-01.jpg'
|
image = 'joplin.jpg'
|
||||||
tags = ['it', 'joplin']
|
tags = ['it', 'joplin']
|
||||||
title = 'Заметочник Joplin'
|
title = 'Заметочник Joplin'
|
||||||
+++
|
+++
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
@ -1,8 +1,6 @@
|
||||||
+++
|
+++
|
||||||
categories = ['Без рубрики']
|
categories = ['Без рубрики']
|
||||||
date = '2024-09-26T19:05:00Z'
|
date = '2024-09-26T19:05:00Z'
|
||||||
image = '/upload/logo.png'
|
|
||||||
location = ['На базе']
|
|
||||||
tags = ['блог']
|
tags = ['блог']
|
||||||
title = 'Hugo → WordPress'
|
title = 'Hugo → WordPress'
|
||||||
+++
|
+++
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
categories = ['Мои проекты']
|
categories = ['Мои проекты']
|
||||||
date = '2024-10-06T12:00:11Z'
|
date = '2024-10-06T12:00:11Z'
|
||||||
image = '/upload/bash_org.jpg'
|
image = 'bash_org.jpg'
|
||||||
tags = ['go', 'it', 'моё']
|
tags = ['go', 'it', 'моё']
|
||||||
title = 'Цитатник Рунета'
|
title = 'Цитатник Рунета'
|
||||||
+++
|
+++
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
categories = ['Без рубрики']
|
categories = ['Без рубрики']
|
||||||
date = '2024-10-17T19:26:00Z'
|
date = '2024-10-17T19:26:00Z'
|
||||||
image = '/upload/Rama16wiki.jpg'
|
image = 'Rama16wiki.jpg'
|
||||||
tags = ['книги']
|
tags = ['книги']
|
||||||
title = 'Книжные рекомендации №2'
|
title = 'Книжные рекомендации №2'
|
||||||
+++
|
+++
|
||||||
|
@ -28,4 +28,4 @@ title = 'Книжные рекомендации №2'
|
||||||
|
|
||||||
Книга является частью цикла, и я прикладываю цикл целиком:
|
Книга является частью цикла, и я прикладываю цикл целиком:
|
||||||
|
|
||||||
[Цикл «КенгХо» скачать](https://neonxp.ru/upload/КенгХо.zip)
|
[Цикл «КенгХо» скачать](КенгХо.zip)
|
|
@ -11,7 +11,7 @@ location = "Казань"
|
||||||
|
|
||||||
С тех пор мои вкусы несколько поменялись и я открыл для себя его величество [Obsidian](https://obsidian.md/).
|
С тех пор мои вкусы несколько поменялись и я открыл для себя его величество [Obsidian](https://obsidian.md/).
|
||||||
|
|
||||||
![Obsidian logo](/img/posts/obsidian/logo.png)
|
![Obsidian logo](/posts/2024-11-17-obsidian/logo.png)
|
||||||
|
|
||||||
В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну особенность, которая буквально
|
В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну особенность, которая буквально
|
||||||
переворачивает всё. Это мощнейшая система плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме
|
переворачивает всё. Это мощнейшая система плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме
|
||||||
|
@ -152,7 +152,7 @@ ___
|
||||||
|
|
||||||
и переходя к сегодняшней заметке я сразу получаю такую заготовку:
|
и переходя к сегодняшней заметке я сразу получаю такую заготовку:
|
||||||
|
|
||||||
{{< figure src="/img/posts/obsidian/templater.png" title="Заметка из шаблона" >}}
|
{{< figure src="/posts/2024-11-17-obsidian/templater.png" title="Заметка из шаблона" >}}
|
||||||
|
|
||||||
### Остальные плагины
|
### Остальные плагины
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ ___
|
||||||
«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить
|
«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить
|
||||||
меня ты. А я отвечу что у меня вот такой план:
|
меня ты. А я отвечу что у меня вот такой план:
|
||||||
|
|
||||||
{{< figure src="/img/posts/obsidian/publish.png" title="план-кабан" >}}
|
{{< figure src="/posts/2024-11-17-obsidian/publish.png" title="план-кабан" >}}
|
||||||
|
|
||||||
То что выделено красным — ещё не существует в природе.
|
То что выделено красным — ещё не существует в природе.
|
||||||
|
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
BIN
content/posts/2024-11-27-hyperlocality/90e.jpg
Normal file
After Width: | Height: | Size: 130 KiB |
BIN
content/posts/2024-11-27-hyperlocality/braindance.jpg
Normal file
After Width: | Height: | Size: 190 KiB |
BIN
content/posts/2024-11-27-hyperlocality/camp.jpg
Normal file
After Width: | Height: | Size: 222 KiB |
BIN
content/posts/2024-11-27-hyperlocality/in-internet.jpg
Normal file
After Width: | Height: | Size: 176 KiB |
139
content/posts/2024-11-27-hyperlocality/index.md
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
+++
|
||||||
|
title = "Гиперлокальность"
|
||||||
|
description = ""
|
||||||
|
date = 2024-11-27T17:50:18+03:00
|
||||||
|
categories = [ "гиперлокальность" ]
|
||||||
|
tags = [ "разное", "IT", "размышления", "гиперлокальность" ]
|
||||||
|
+++
|
||||||
|
|
||||||
|
Это очередной пост моих пространных рассуждений про тенденции и будущее интернета, которых в последнее время становится
|
||||||
|
как-то многовато. Вероятно, в последствии, это станет даже серией постов.
|
||||||
|
|
||||||
|
Этот же я воспринимаю, как вводный в лор гиперлокальности.
|
||||||
|
|
||||||
|
Сначала, пожалуй, расскажу про посылки, а потом уже о том, куда они ведут, и какие из этого можно сделать выводы.
|
||||||
|
<!--more-->
|
||||||
|
# Посылка
|
||||||
|
|
||||||
|
Думаю, все мы заметили как много вокруг стало ИИ инструментов. Сейчас ИИ на хайпе и его засовывают буквально
|
||||||
|
куда можно и куда нельзя. Само по себе меня это не беспокоит. Я отношусь к ИИ как к просто очередному инструменту,
|
||||||
|
который можно и нужно использовать там, где он применим. С этим нет проблем.
|
||||||
|
Пройдёт какое-то время и ИИ инструменты займут ниши, где они наиболее уместны и где от них наибольшая польза.
|
||||||
|
Однако тут есть и негативный нюанс. Этот инструмент будет способствовать в том числе и тому,
|
||||||
|
что интернет станет (если ещё не стал!) по сути своей «мёртвым». Не мёртвым буквально, а «мёртвым» в том же смысле, в
|
||||||
|
котором в «Руководстве путешествующего автостопом по галактики» Д. Адамса была вселенная обозначена необитаемой.
|
||||||
|
|
||||||
|
{{< quote author="Д. Адамс" source="Ресторан «У края Вселенной», 19 глава" >}}
|
||||||
|
Вселенная — кое-какая информация, облегчающая существование в ней.
|
||||||
|
|
||||||
|
<...>
|
||||||
|
|
||||||
|
4. Население: Отсутствует.
|
||||||
|
Известно, что существует бесконечное множество планет.
|
||||||
|
Это объясняется той простой причиной, что пространство, в котором они могут существовать, также
|
||||||
|
бесконечно. Однако не всякая из этих планет обитаема. Отсюда следует, что число обитаемых планет конечно.
|
||||||
|
Частное от деления любого конечного числа на бесконечность стремится к нулю и не дает остатка,
|
||||||
|
следовательно, можно заключить, что средняя численность населения планет Вселенной равна нулю. Отсюда
|
||||||
|
следует, что численность населения во всей Вселенной также равна нулю, и потому все люди, которые порой
|
||||||
|
попадаются на вашем пути, являются продуктом вашего воспаленного воображения.
|
||||||
|
{{< /quote >}}
|
||||||
|
|
||||||
|
# Следствие
|
||||||
|
|
||||||
|
Количество сгенерированного ИИ контента, ИИ ботов пишущих комментарии и иным способом имитирующих людей будет
|
||||||
|
расти нелинейно. Таким образом будет «размываться» весьма конечное количиство «живых» пользователей «неживыми» до того,
|
||||||
|
что все эти миллиарды «живых» пользователей будут лишь статистической погрешностью относительно «неживых» ИИ ботов.
|
||||||
|
|
||||||
|
# Как это повлияет на наше восприятие реальности?
|
||||||
|
|
||||||
|
Представьте себе мир, где большинство сообщений, комментариев и публикаций создаются ИИ. Мы будем жить в мире, где
|
||||||
|
трудно отличить реальность от иллюзии. Где каждый день нам придётся задаваться вопросом: кто написал этот комментарий –
|
||||||
|
реальный человек или искусственный интеллект?
|
||||||
|
Это приведёт к тому, что доверие к информации в интернете начнёт стремительно падать. Люди станут всё больше сомневаться
|
||||||
|
в подлинности того, что видят и читают. В итоге, интернет превратится в огромное море данных, где настоящие голоса людей
|
||||||
|
тонут в океане фальшивок и симуляций.
|
||||||
|
|
||||||
|
{{< figure src="/posts/2024-11-27-hyperlocality/braindance.jpg" title="Киберпанк который мы заслужили" >}}
|
||||||
|
|
||||||
|
# Гиперлокальность
|
||||||
|
|
||||||
|
Уже сейчас вполне себе просматиривается контур того, что я, за неимением лучшего термина, называю «Гиперлокальностью».
|
||||||
|
Термин мне нравится тем что он, с одной стороны, хорошо описывает то, куда, по моему мнению, мы придём,
|
||||||
|
а с другой стороны, названием отсылает к «гипертексту».
|
||||||
|
|
||||||
|
## Что я под этим подразумеваю?
|
||||||
|
|
||||||
|
Помните старые времена, когда интернет только-только появлялся и из каждого утюга звучало как одно из его преимуществ,
|
||||||
|
то, что «вы сможете находить себе собеседников и друзьей в любой точке мира, не выходя из дома». Звучало многообещающе,
|
||||||
|
и в каком-то смысле, оно так и было.
|
||||||
|
|
||||||
|
{{< figure src="/posts/2024-11-27-hyperlocality/90e.jpg" title="Наивное представление из 90х о том, что интернет будет нас соединять" >}}
|
||||||
|
|
||||||
|
Но что происходит сейчас? Интернет, вместо того чтобы соединять людей по всему миру, начинает дробиться на маленькие
|
||||||
|
замкнутые круги. Почему так происходит? Ответ кроется в недоверии. Когда невозможно понять, кто перед тобой – настоящий
|
||||||
|
человек или ИИ-бот, люди начинают замыкаться в узких кругах тех, кому они доверяют.
|
||||||
|
|
||||||
|
{{< quote author="Януш Леон Вишневский" source="Одиночество в Сети" >}}
|
||||||
|
Интернет, он не сближает. Это скопление одиночества. Мы вроде вместе, но каждый один.
|
||||||
|
Иллюзия общения, иллюзия дружбы, иллюзия жизни…
|
||||||
|
{{< /quote >}}
|
||||||
|
|
||||||
|
Эти круги становятся всё меньше и меньше, пока не превращаются в замкнутые сообщества, где общение ограничено только
|
||||||
|
теми, кого знаешь лично. Таким образом, получается некая WebOfTrust, но только по валидации «человечности».
|
||||||
|
Это напоминает модель «доверительных сетей», которая существовала задолго до появления интернета, но теперь она
|
||||||
|
приобретает новый смысл в цифровую эпоху.
|
||||||
|
|
||||||
|
А личные знакомства они, как правило, достаточно локальные. А следовательно, в ближайшее время мы увидим расцвет
|
||||||
|
изолированных «анклавов» из _лично_ знакомых между собой людей, который и будут существовать своими маленькими,
|
||||||
|
**гиперлокальными** сообществами. Размер при этом может быть почти любой, как группка из трёх друзей, так и небольшой
|
||||||
|
клуб из пары десятков _лично знакомых_ единомышленников.
|
||||||
|
|
||||||
|
Причём, примеры гиперлокальных сообществ уже сейчас есть и в большом количестве. Например, у меня с друзьями уже почти
|
||||||
|
10 лет есть свой маленький чатик на шесть голов. И, в принципе, этого круга общения мне вполне хватает. И в своём кругу
|
||||||
|
мы, конечно же, уверенны в «человечности» каждого из нас, ибо знакомы и ИРЛ.
|
||||||
|
|
||||||
|
Причём, «достаточность» этого кружка для меня такая, что если у меня, вдруг, магическим образом, останется только этот
|
||||||
|
чатик, мой NAS в который загруженно примерно 50К книг и несколько любимых сериалов, и, конечно, VPN до работы, чтобы
|
||||||
|
я мог зарабатывать на жизнь — то, это и будет вся моя гиперлокальная сеть. И как будто, не сильно то я и потеряю если
|
||||||
|
останется только это, ну или как минимум, уж точно выживу.
|
||||||
|
Если что, это именно магически и гипотетически, но тем не менее.
|
||||||
|
|
||||||
|
Так же, подобные кружки, я видел и,
|
||||||
|
например, у своих старших родственников. Они, в основном, устраивают гиперлокальные «кружки» в том же вотсаппе. Там
|
||||||
|
они делятся рекомендациями фильмов, рецептами, шутками, новостями и прочим подобным.
|
||||||
|
|
||||||
|
## А к чему я это всё?
|
||||||
|
|
||||||
|
Да к тому что на текущем этапе развития интернета, мы всё больше уходим от **глобальной** сети к **гиперлокальной**.
|
||||||
|
И, наверное, мне это даже вполне нравится. Это как-то... уютно чтоли.
|
||||||
|
|
||||||
|
{{< figure src="/posts/2024-11-27-hyperlocality/camp.jpg" title="Примерно так я визуализирую гиперлокальное сообщество" >}}
|
||||||
|
|
||||||
|
# Перспективы
|
||||||
|
|
||||||
|
Дисклеймер. Дальше идут мои размышления, которые основываются в основном на интуитивных, а не объективных предположениях
|
||||||
|
|
||||||
|
С развитием этого тренда будут всё больше и больше отмирать крупные социальные сети типа ВК или РКНбука. История сделает
|
||||||
|
виток и восскресит т.н. локалки, которые были популярны в 90е-00е. Конечно же, уже в другом облике. Никто не будет
|
||||||
|
лазать по чердакам чтобы протянуть витуху между соседями, но именно суть останется. А суть в том, что будет бо́льшая
|
||||||
|
концентрация на небольшом числе условно локальных ресурсов, где человек будет только со своими друзьями, а «большой»
|
||||||
|
интернет отходит на второй план.
|
||||||
|
|
||||||
|
Так же могут получить развитие indieweb технологии, а так же self-hosted решения для общения, например, Matrix.
|
||||||
|
Эти инструменты потребуются как ответ на заполненные ботами и спамом соцсети и мессенджеры.
|
||||||
|
Конечно же, всё что нужно не затащить в свою уютненькую локалочку, но вылазка за недостающей инфой в интернет будет
|
||||||
|
ощущаться, как выход из своей зоны комфорта в дикую и опасную пустошь.
|
||||||
|
|
||||||
|
{{< figure src="/posts/2024-11-27-hyperlocality/in-internet.jpg" title="Вылазка в «большой» интернет" >}}
|
||||||
|
|
||||||
|
# Окончание?
|
||||||
|
|
||||||
|
Я отдаю себе отчёт что то, что я написал выше — весьма сумбурно. Но это следствие того, что я ещё не до конца исследовал
|
||||||
|
эту тему, и многие мысли на эту тему в моей голове пока ещё не сформированы в слова, а остаются на интуитивном уровне.
|
||||||
|
|
||||||
|
А написал я это, скорее как повод начать дискуссию на эту тему. Мне интересно, что вы думаете по этой теме. Возможно,
|
||||||
|
мнение со стороны меня наведёт на еще какие мысли.
|
||||||
|
|
||||||
|
В дальнейшем у меня уже есть некоторые мысли на развитие темы, но уже в каких то отдельных аспектах.
|
||||||
|
|
||||||
|
Остаёмся на связи, 73!
|
22
content/projects/games/_index.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
+++
|
||||||
|
Title = 'Мои игры'
|
||||||
|
Type = "pico8"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Мои небольшие игрушки на прекрасном движке PICO-8
|
||||||
|
<!--more-->
|
||||||
|
И на всякий случай дистрибутивы самих приложений.
|
||||||
|
Ведь их больше не купить у нас в стране, а значит это не пиратство, а корсарство! Яррр!
|
||||||
|
|
||||||
|
- PICO-8
|
||||||
|
- [Linux](/upload/pico-8_0_2_6b_amd64.zip)
|
||||||
|
- [macOS](/upload/pico-8_0_2_6b_osx.zip)
|
||||||
|
- [Windows](/upload/pico-8_0_2_6b_windows.zip)
|
||||||
|
- Picotron
|
||||||
|
- [Linux](/upload/picotron_0_1_0g_amd64.zip)
|
||||||
|
- [macOS](/upload/picotron_0_1_0g_osx.zip)
|
||||||
|
- [Windows](/upload/picotron_0_1_0g_windows.zip)
|
||||||
|
- Voxatron
|
||||||
|
- [Linux](/upload/voxatron_0_3_5b_amd64.zip)
|
||||||
|
- [macOS](/upload/voxatron_0_3_5b_osx.zip)
|
||||||
|
- [Windows](/upload/voxatron_0_3_5b_windows.zip)
|
5
content/projects/games/bubblebreaker.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
Title="Шарики"
|
||||||
|
Game="/projects/games/bubblebreaker.p8.png"
|
||||||
|
Type="pico8"
|
||||||
|
+++
|
BIN
content/projects/games/bubblebreaker.p8.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
5
content/projects/games/gameof15.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
Title="Пятнашки"
|
||||||
|
Game="/projects/games/gameof15.p8.png"
|
||||||
|
Type="pico8"
|
||||||
|
+++
|
BIN
content/projects/games/gameof15.p8.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
5
content/projects/games/lines.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
Title="Цветные линии"
|
||||||
|
Game="/projects/games/lines.p8.png"
|
||||||
|
Type="pico8"
|
||||||
|
+++
|
BIN
content/projects/games/lines.p8.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
5
content/projects/games/snake.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
Title="Змейка"
|
||||||
|
Game="/projects/games/snake.p8.png"
|
||||||
|
Type="pico8"
|
||||||
|
+++
|
BIN
content/projects/games/snake.p8.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
|
@ -2,6 +2,7 @@
|
||||||
description = 'Мой небольшой Jabber сервер'
|
description = 'Мой небольшой Jabber сервер'
|
||||||
slug = 'jabber'
|
slug = 'jabber'
|
||||||
title = 'Jabber'
|
title = 'Jabber'
|
||||||
|
draft = true
|
||||||
+++
|
+++
|
||||||
|
|
||||||
## Быстрое вкатывание
|
## Быстрое вкатывание
|
||||||
|
|
11
hugo.toml
|
@ -3,7 +3,6 @@ languageCode = "ru-RU"
|
||||||
DefaultContentLanguage = "ru"
|
DefaultContentLanguage = "ru"
|
||||||
Title = "~/neonxp.log"
|
Title = "~/neonxp.log"
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
theme = "neonxp"
|
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
logo = "/img/logo.png"
|
logo = "/img/logo.png"
|
||||||
|
@ -28,6 +27,11 @@ name = 'Проекты'
|
||||||
pageRef = '/projects'
|
pageRef = '/projects'
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
|
[[menus.main]]
|
||||||
|
name = 'Игры'
|
||||||
|
pageRef = '/projects/games'
|
||||||
|
weight = 15
|
||||||
|
|
||||||
[[menus.main]]
|
[[menus.main]]
|
||||||
name = 'Бортжурнал'
|
name = 'Бортжурнал'
|
||||||
pageRef = '/posts'
|
pageRef = '/posts'
|
||||||
|
@ -63,6 +67,11 @@ name = 'Проекты'
|
||||||
pageRef = '/projects'
|
pageRef = '/projects'
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
|
[[menus.sections]]
|
||||||
|
name = 'Игры'
|
||||||
|
pageRef = '/projects/games'
|
||||||
|
weight = 50
|
||||||
|
|
||||||
[[menus.sections]]
|
[[menus.sections]]
|
||||||
name = 'Архив блога'
|
name = 'Архив блога'
|
||||||
pageRef = '/archive'
|
pageRef = '/archive'
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<div class="row between-sm">
|
<div class="row between-xs">
|
||||||
<span class="p-name"> {{ .Title }} </span>
|
<span class="p-name"> {{ .Title }} </span>
|
||||||
<a href="/posts/index.xml">{{ partial "icon.html" "rss" }}</a>
|
<a href="/posts/index.xml">{{ partial "icon.html" "rss" }}</a>
|
||||||
</div>
|
</div>
|
|
@ -10,7 +10,7 @@
|
||||||
{{ if .Title }}
|
{{ if .Title }}
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<div class="row between-sm">
|
<div class="row between-xs">
|
||||||
<span class="p-name"> {{ .Title }} </span>
|
<span class="p-name"> {{ .Title }} </span>
|
||||||
<a href="index.xml">{{ partial "icon.html" "rss" }}</a>
|
<a href="index.xml">{{ partial "icon.html" "rss" }}</a>
|
||||||
</div>
|
</div>
|
|
@ -15,7 +15,7 @@
|
||||||
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<div class="row between-sm">
|
<div class="row between-xs">
|
||||||
<span class="p-name"> {{ .Title }} </span>
|
<span class="p-name"> {{ .Title }} </span>
|
||||||
{{ if .Date }}
|
{{ if .Date }}
|
||||||
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
|
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
|
||||||
|
@ -24,10 +24,13 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
{{ if .Params.Image }}
|
||||||
|
<img src="{{.Params.Image}}" />
|
||||||
|
{{ end }}
|
||||||
<div class="p-summary">{{ .Summary }}</div>
|
<div class="p-summary">{{ .Summary }}</div>
|
||||||
<div class="e-content">{{ .Content }}</div>
|
<div class="e-content">{{ .Content }}</div>
|
||||||
<footer>
|
<footer>
|
||||||
<div class="row between-sm">
|
<div class="row between-xs">
|
||||||
<span>
|
<span>
|
||||||
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
||||||
</span>
|
</span>
|
|
@ -9,6 +9,9 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
{{ if .Params.Image }}
|
||||||
|
<img src="{{ .RelPermalink }}{{.Params.Image}}" />
|
||||||
|
{{ end }}
|
||||||
{{ if .Description }}
|
{{ if .Description }}
|
||||||
{{ .Description }}
|
{{ .Description }}
|
||||||
{{ else }}
|
{{ else }}
|
50
layouts/pico8/list.html
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 last-xs last-sm first-md first-lg sidebar">
|
||||||
|
<article>
|
||||||
|
<header>Навигатор</header>
|
||||||
|
{{ partial "menu.html" (dict "menuID" "sections" "page" .) }}
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
||||||
|
{{ if .Title }}
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<div class="row between-xs">
|
||||||
|
<span class="p-name"> {{ .Title }} </span>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
{{ .Content }}
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
{{ $paginator := .Paginate .Pages 7 }}
|
||||||
|
{{ range $paginator.Pages }}
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<div class="row between-sm">
|
||||||
|
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||||
|
{{ if .Date }}
|
||||||
|
<span>
|
||||||
|
{{- .Date | time.Format (or .Site.Params.dateFormat.published "02 Jan 2006") -}}
|
||||||
|
</span>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
{{ if .Description }}
|
||||||
|
{{ .Description }}
|
||||||
|
{{ else }}
|
||||||
|
{{ .Summary }}
|
||||||
|
{{ end }}
|
||||||
|
<a href="{{ .RelPermalink }}">
|
||||||
|
<img src="{{ .Params.Game }}" />
|
||||||
|
</a>
|
||||||
|
<footer>
|
||||||
|
<a href="{{ .Params.Game }}">Скачать</a>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
<nav>{{ partial "pagination.html" . }}</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ end }}
|
106
layouts/pico8/single.html
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<div class="row">
|
||||||
|
<div
|
||||||
|
class="col-xs-12 col-sm-12 col-md-4 col-lg-4 last-xs last-sm first-md first-lg sidebar"
|
||||||
|
>
|
||||||
|
{{ if .Params.toc }}
|
||||||
|
<article>
|
||||||
|
<header>Содержание</header>
|
||||||
|
<aside>{{ .TableOfContents }}</aside>
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
<article>
|
||||||
|
<header>Навигатор</header>
|
||||||
|
{{ partial "menu.html" (dict "menuID" "sections" "page" .) }}
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<div class="h-entry col-xs-12 col-sm-12 col-md-8 col-lg-8">
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<div class="row between-xs">
|
||||||
|
<span class="p-name"> {{ .Title }} </span>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div id="pico-container">
|
||||||
|
<!-- <div class="buttons">
|
||||||
|
<button
|
||||||
|
id="pico-up"
|
||||||
|
style="grid-area: up"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
⇑
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="pico-down"
|
||||||
|
style="grid-area: down"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
⇓
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="pico-left"
|
||||||
|
style="grid-area: left"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
⇐
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="pico-right"
|
||||||
|
style="grid-area: right"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
⇒
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="pico-a"
|
||||||
|
style="grid-area: a"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
A
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="pico-b"
|
||||||
|
style="grid-area: b"
|
||||||
|
onclick="PicoPress(3, 0)"
|
||||||
|
>
|
||||||
|
B
|
||||||
|
</button>
|
||||||
|
<div class="square_hack"></div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
<h2>Управление</h2>
|
||||||
|
<h3>Игрок 1</h3>
|
||||||
|
<img src="/img/p8_lf.png" />←
|
||||||
|
<img src="/img/p8_rt.png" />→
|
||||||
|
<img src="/img/p8_up.png" />↑
|
||||||
|
<img src="/img/p8_dw.png" />↓
|
||||||
|
<img src="/img/p8_x.png" />Z C
|
||||||
|
<img src="/img/p8_o.png" />X V
|
||||||
|
<h3>Игрок 2</h3>
|
||||||
|
<img src="/img/p8_lf.png" /> S
|
||||||
|
<img src="/img/p8_rt.png" /> F
|
||||||
|
<img src="/img/p8_up.png" /> E
|
||||||
|
<img src="/img/p8_dw.png" /> D
|
||||||
|
<img src="/img/p8_x.png" />Q W
|
||||||
|
<img src="/img/p8_o.png" />TAB
|
||||||
|
<h3>Пауза</h3>
|
||||||
|
P/Enter
|
||||||
|
<footer>
|
||||||
|
<div class="row between-xs">
|
||||||
|
<a href="{{ .Params.Game }}">Скачать</a>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
{{ if .Params.comments }} {{ partial "comments.html" . }} {{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="/js/picoplayer.js"></script>
|
||||||
|
<script src="/js/pico8.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
PicoPlayer("pico-container", "{{.Params.Game}}");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{{ end }}
|
8
static/.well-known/matrix/client/index.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"m.homeserver": {
|
||||||
|
"base_url": "https://neonxp.ru:443"
|
||||||
|
},
|
||||||
|
"org.matrix.msc3575.proxy": {
|
||||||
|
"url": "https://neonxp.ru:443"
|
||||||
|
}
|
||||||
|
}
|
3
static/.well-known/matrix/server/index.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"m.server": "https://neonxp.ru:443"
|
||||||
|
}
|
BIN
static/img/p8_dw.png
Normal file
After Width: | Height: | Size: 674 B |
BIN
static/img/p8_lf.png
Normal file
After Width: | Height: | Size: 673 B |
BIN
static/img/p8_o.png
Normal file
After Width: | Height: | Size: 676 B |
BIN
static/img/p8_rt.png
Normal file
After Width: | Height: | Size: 675 B |
BIN
static/img/p8_up.png
Normal file
After Width: | Height: | Size: 674 B |
BIN
static/img/p8_x.png
Normal file
After Width: | Height: | Size: 680 B |
25
static/js/pico8.js
Normal file
118
static/js/picoplayer.js
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
// Big thanks to https://github.com/AfBu/PicoLoader
|
||||||
|
// pico-8 web player variables that must be present
|
||||||
|
var Module;
|
||||||
|
var playable_area_count = 0;
|
||||||
|
var playarea_state = 0;
|
||||||
|
var codo_command = 0;
|
||||||
|
var codo_command_p = 0;
|
||||||
|
var codo_volume = 256;
|
||||||
|
var codo_running = true;
|
||||||
|
var pa_pid = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||||
|
|
||||||
|
// Pico-8 buttons to Web Player key codes lookup table
|
||||||
|
var pico8keys = [
|
||||||
|
[37, 39, 38, 40, 90, 88],
|
||||||
|
[83, 70, 69, 68, 9, 81]
|
||||||
|
];
|
||||||
|
|
||||||
|
// Loads pico8 web player library and setups everything to run
|
||||||
|
function PicoPlayer(element, cart, lib) {
|
||||||
|
// fallback to bbs version of pico8 console
|
||||||
|
if (!lib) {
|
||||||
|
lib = '/js/pico8.js';
|
||||||
|
}
|
||||||
|
|
||||||
|
// load element by ID
|
||||||
|
if (typeof(element) == 'string') {
|
||||||
|
element = document.getElementById(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
// create canvas and add it into element
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
element.appendChild(canvas);
|
||||||
|
|
||||||
|
// setup module to load card and point to our canvas
|
||||||
|
Module = {
|
||||||
|
arguments: [cart],
|
||||||
|
canvas: canvas
|
||||||
|
};
|
||||||
|
|
||||||
|
// load pico8 library
|
||||||
|
var head = document.getElementsByTagName('head')[0];
|
||||||
|
var js = document.createElement('script');
|
||||||
|
js.src = lib;
|
||||||
|
head.appendChild(js);
|
||||||
|
}
|
||||||
|
|
||||||
|
// press button
|
||||||
|
function PicoPress(k, p) {
|
||||||
|
var kc = pico8keys[p][k];
|
||||||
|
|
||||||
|
gd({
|
||||||
|
type: 'keydown',
|
||||||
|
keyCode: kc
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// release button
|
||||||
|
function PicoRelease(k, p) {
|
||||||
|
var kc = pico8keys[p][k];
|
||||||
|
|
||||||
|
gd({
|
||||||
|
type: 'keyup',
|
||||||
|
keyCode: kc
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// set volume (0 - 256)
|
||||||
|
function PicoVolume(vol) {
|
||||||
|
codo_volume = vol;
|
||||||
|
codo_command = 2;
|
||||||
|
codo_command_p = codo_volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
// toggle sound
|
||||||
|
function PicoMute() {
|
||||||
|
codo_volume = (codo_volume == 0 ? 256 : 0);
|
||||||
|
codo_command = 2;
|
||||||
|
codo_command_p = codo_volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
// toggle pause
|
||||||
|
function PicoPause() {
|
||||||
|
codo_running = !codo_running;
|
||||||
|
|
||||||
|
if (codo_running) {
|
||||||
|
Module.resumeMainLoop();
|
||||||
|
} else {
|
||||||
|
Module.pauseMainLoop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset cart
|
||||||
|
function PicoReset() {
|
||||||
|
codo_command = 1;
|
||||||
|
codo_running = true;
|
||||||
|
|
||||||
|
Module.resumeMainLoop();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('keydown', (e) => {
|
||||||
|
if (e.target.localName != 'input') {
|
||||||
|
switch (e.keyCode) {
|
||||||
|
case 37: // left
|
||||||
|
case 39: // right
|
||||||
|
e.preventDefault();
|
||||||
|
break;
|
||||||
|
case 38: // up
|
||||||
|
case 40: // down
|
||||||
|
e.preventDefault();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
capture: true,
|
||||||
|
passive: false
|
||||||
|
});
|
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 13 KiB |
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2024 Alexander Kiryukhin
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
|
@ -1,7 +0,0 @@
|
||||||
# Theme Name
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
## Configuration
|
|
|
@ -1,5 +0,0 @@
|
||||||
+++
|
|
||||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
|
||||||
date = {{ .Date }}
|
|
||||||
draft = true
|
|
||||||
+++
|
|
|
@ -1,45 +0,0 @@
|
||||||
.p-summary {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
height: 64px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.print-footer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
.sidebar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
article {
|
|
||||||
border: 0
|
|
||||||
}
|
|
||||||
article footer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.container>header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.container>footer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.comments {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.h-entry {
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
.print-footer {
|
|
||||||
display: block !important;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
baseURL = 'https://example.org/'
|
|
||||||
languageCode = 'en-US'
|
|
||||||
title = 'My New Hugo Site'
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Home'
|
|
||||||
pageRef = '/'
|
|
||||||
weight = 10
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Posts'
|
|
||||||
pageRef = '/posts'
|
|
||||||
weight = 20
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Tags'
|
|
||||||
pageRef = '/tags'
|
|
||||||
weight = 30
|
|
||||||
|
|
||||||
[module]
|
|
||||||
[module.hugoVersion]
|
|
||||||
extended = false
|
|
||||||
min = "0.116.0"
|
|
Before Width: | Height: | Size: 20 KiB |
|
@ -1,20 +0,0 @@
|
||||||
name = 'NeonXP Theme'
|
|
||||||
license = 'MIT'
|
|
||||||
licenselink = 'https://git.neonxp.ru/neonxp/theme/LICENSE'
|
|
||||||
description = 'My own theme based on PicoCSS'
|
|
||||||
|
|
||||||
# The home page of the theme, where the source can be found
|
|
||||||
homepage = 'https://git.neonxp.ru/neonxp/theme'
|
|
||||||
|
|
||||||
# If you have a running demo of the theme
|
|
||||||
demosite = 'https://neonxp.ru'
|
|
||||||
|
|
||||||
# Taxonomy terms
|
|
||||||
tags = ['blog', 'minimal', 'personal']
|
|
||||||
features = ['remark42', 'microformats']
|
|
||||||
|
|
||||||
# If the theme has a single author
|
|
||||||
[author]
|
|
||||||
name = 'Alexander NeonXP Kiryukhin'
|
|
||||||
homepage = 'https://neonxp.ru/'
|
|
||||||
|
|