Список литературы на лето
- А. Куприн
- «Гранатовый браслет»
- «Олеся»
- А. Горький
- «Челкаш»
- «Старуха Изергиль»
- «На дне»
- М. Булгаков
- «Мастер и Маргарита»
- «Собачье сердце»
- М. Шолохов
- «Донские рассказы»
- «Тихий Дон»
- А. Солженицын
- «Один день Ивана Денисовича»
- «Матренин двор»
- В. Астафьев
- «Царь-рыба»
- «У Золотой карги»
- А. Блок
- «Стихи о Прекрасной Даме»
- поэма «Двенадцать»
- В. Маяковский
- стихотворения
- поэма «Облако в штанах»
- А. Ахматова
- поэма «Реквием»
- Стихотворения поэтов Серебряного века
- Б. Васильев
- «В списках не значился»
- «А зори здесь тихие»
- В. Кондратьев. «Сашка»
ВПС, ТГ, АПИ
Я получил выделенный сервер за 40 ₽ в месяц. Одно ядро на 2 ГГц, 512 МБ оперативной памяти, ССД на 10 ГБ, безлимитный трафик, Линукс. Пока на нем расположен только телеграм‑бот.
При настройке сервера я установил sudo
(т. к. в Дебиане утилита отсутствует), создал нового пользователя с привилегиями, закрыл вход через рут, скачал pip
и pyhton3
, вставил в main.py
код бота и добавил сервис weatherbot.service
, чтобы программа работала в фоновом режиме и запускалась при перезагрузке сервера. Все.
Но я не понимаю.
Бот использует Openweathermap API для погоды и геокодера. Получив команду /weather
, бот вызывает функцию weather
. Функция weather
с помощью функции геокодера находит координаты города и передает их функции погоды (если не указывать город, бот найдет координаты Москвы). На домашнем компьютере геокодер выполняет свою работу, функция погоды не выдает результат — таймаут. Почему? Я не знаю. На ВПС все работает, хотя он расположен в России. С другого домашнего компьютера тоже не получается, но компьютер в Дедовске решает проблему. Код тот же самый, пакеты Питона одинаковые.
Пользоваться сервером оказалось проще, чем своим компьютером.
Динамический генератор музыки
Программа генерирует музыку с помощью цепей Маркова и имеет систему интенсивности, изменяющую темп и количество возможных нот в сиквенсере.
В будущем сможет генерировать музыку для игр на ходу и иметь более широкий функционал в целом.
Про страницу 404
Если страница не найдена, следует хоть
Страница 404.html
создается в папке /layouts
. Код страницы на этом сайте:
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode | default "en" }}">
{{ partial "head.html" . }}
<body>
{{ partial "darkmode.html" . }}
<div style="display: flex; align-items: center; justify-content: center;">
<h1>404: Старикам тут не <a href="{{ "/" | relURL }}">место</a></h1>
</div>
</body>
</html>
Присутствует переключение темной темы. Раньше кнопка была на каждой странице сайта, но из-за наличия формул переход между темами тормозил, поэтому функция закомментирована. Тем не менее она показывается при ошибке как вознаграждение. Возможно, это лишнее и стоит сделать серую страницу с акцидентным шрифтом, чтобы сразу возникало желание вернуться на основную часть сайта.
Поддержка формул на сайте
За отображение формул отвечает отдельная библиотека — Катек
Чтобы Катек отрендерил формулы, страница с формулами должна содержать ссылку на библиотеку в заголовке. Благодаря шаблонам Хьюго можно создать отдельный файл, содержащий эту ссылку, и указать файл в шаблоне страниц с формулами (формулы могут находиться внутри поста или выводиться на главную).
Создадим файл math.html
в папке /layouts/partials
и вставим в него следующий код:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/katex.min.css" integrity="sha384-KiWOvVjnN8qwAZbuQyWDIbfCLFhLXNETzBQjA/92pIowpC0d2O3nppDGQVgwd2nB" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/katex.min.js" integrity="sha384-0fdwu/T/EQMsQlrHCCHoH10pkPLlKA1jL5dFyUOvB3lfeT2540/2g6YgSi2BL14p" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>
В шаблоне поста (/layouts/_default/single.html
) укажем, нужно ли добавлять Катек (зависит от параметра math
, указываемого нами посте):
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
Добавив в фронт меттер поста math: true
, получим отрендеренные формулы:
$$E=mc^2$$
Кстати, \(\KaTeX\) и \(\TeX\) тоже написаны с помощью Катека.
Создание постов
Новый пост создается в директории сайта командой:
hugo new posts/new-post.md
Создается новый файл в папке /content/posts
. Это и есть пост, но если запустить сервер, новая запись не появится на главной. Потому что пост является черновиком. Это указано во фронт меттере, верхней части файла.
---
title: "New Post"
date: 2022-05-25T00:19:15+03:00
draft: true
---
Нужно поменять draft: true
на draft: false
. Теперь пост готов.
Можно добавить к посту автора. Во фронт меттере указывается поле author
с подписью в кавычках:
author: "Маяк Александрийский"
Под фронт меттером можно написать текст, он отобразится в посте.
Добавление темы на сайт
Хьюго строит сайт из шаблонов. Он применяет заготовленные пользователем правила для генерации сайта. Оформление поста описано одним файлом. В этом файле могут быть ссылки на другие шаблоны: общие для всех страниц подвал (футер), меню навигации, кнопки. Существуют сотни готовых тем оформления Хьюго.
На данном сайте используется тема Тейл. Для ее установки нужно скачать тему с Гитхаба и распаковать в папке /themes/tale
. Либо подключить тему в виде подмодуля:
git submodule add https://github.com/EmielH/tale-hugo.git themes/tale
В конфиге сайта следует указать тему:
echo "theme = 'tale'" >> config.toml
Результат:
Название сайта можно поменять в конфиге.
Установка Хьюго
Бинарники Хьюго доступны для всех платформ на Гитхабе. Достаточно скачать нужный архив, распаковать его и работать c программой через терминал.
Винда
- Скачать и распаковать архив в
C:\Hugo\bin
. - Запустить командную строку через поиск и выполнить команду:
cd "C:\Hugo\bin"
Теперь можно работать с Хьюго, но только в этой директории. Нужно добавить путь до Хьюго в переменные окружения.
- Открыть через поиск «Изменение системных переменных среды», открыть переменные среды, добавить переменную с путем до программы.
Хьюго готов к работе из любого места в системе.
Линукс
Хьюго доступен в репозиториях, поэтому можно установить его одной командой и начать пользоваться. Если версия из репозитория не устраивает, можно скачать бинарник и распакавать архив в ~/hugo
.
Программу можно запустить командой:
~/hugo/hugo
Это не очень удобно, хотелось бы сократить до простого hugo
, чтобы было похоже на остальные команды. За это отвечает переменная окружения $PATH
. Вносить изменения в нее или в директории, которые она хранит, сложнее, чем выполнение этой команды:
echo 'export PATH=$PATH:~/hugo' >> ~/.bashrc
Теперь при каждом запуске терминала к переменной добавляется путь до Хьюго.
Примечание: если в системе по умолчанию стоит не Bash, а Zsh, то вместо .bashrc
нужно вписать .zshrc
. Проверить оболочку: echo $SHELL
.
Мак
Тут то же самое, что и на Линуксе. Стоит уточнить, что на последних маках по умолчанию стоит Zsh, но вместо .zshrc
рекоммендуется использовать .zprofile
.
Либо можно установить пакетный менеджер Хоумбрю и через него скачать Хьюго:
brew install hugo
Telegram Bot
Социальная cеть
Саундтрек к фильму на Яндекс.Музыке, Саундклауде и Ютубе.