| Маяк Александрийский

Список литературы на лето

  • А. Куприн
    • «Гранатовый браслет»
    • «Олеся»
  • А. Горький
    • «Челкаш»
    • «Старуха Изергиль»
    • «На дне»
  • М. Булгаков
    • «Мастер и Маргарита»
    • «Собачье сердце»
  • М. Шолохов
    • «Донские рассказы»
    • «Тихий Дон»
  • А. Солженицын
    • «Один день Ивана Денисовича»
    • «Матренин двор»
  • В. Астафьев
    • «Царь-рыба»
    • «У Золотой карги»
  • А. Блок
    • «Стихи о Прекрасной Даме»
    • поэма «Двенадцать»
  • В. Маяковский
    • стихотворения
    • поэма «Облако в штанах»
  • А. Ахматова
    • поэма «Реквием»
  • Стихотворения поэтов Серебряного века
  • Б. Васильев
    • «В списках не значился»
    • «А зори здесь тихие»
  • В. Кондратьев. «Сашка»
Комментарии 💬
| Маяк Александрийский

ВПС, ТГ, АПИ

Я получил выделенный сервер за 40 ₽ в месяц. Одно ядро на 2 ГГц, 512 МБ оперативной памяти, ССД на 10 ГБ, безлимитный трафик, Линукс. Пока на нем расположен только телеграм‑бот.

При настройке сервера я установил sudo (т. к. в Дебиане утилита отсутствует), создал нового пользователя с привилегиями, закрыл вход через рут, скачал pip и pyhton3, вставил в main.py код бота и добавил сервис weatherbot.service, чтобы программа работала в фоновом режиме и запускалась при перезагрузке сервера. Все.

Но я не понимаю.

Бот использует Openweathermap API для погоды и геокодера. Получив команду /weather, бот вызывает функцию weather. Функция weather с помощью функции геокодера находит координаты города и передает их функции погоды (если не указывать город, бот найдет координаты Москвы). На домашнем компьютере геокодер выполняет свою работу, функция погоды не выдает результат — таймаут. Почему? Я не знаю. На ВПС все работает, хотя он расположен в России. С другого домашнего компьютера тоже не получается, но компьютер в Дедовске решает проблему. Код тот же самый, пакеты Питона одинаковые.

Пользоваться сервером оказалось проще, чем своим компьютером.

Комментарии 💬
| n0p4g

Динамический генератор музыки

Программа генерирует музыку с помощью цепей Маркова и имеет систему интенсивности, изменяющую темп и количество возможных нот в сиквенсере.

В будущем сможет генерировать музыку для игр на ходу и иметь более широкий функционал в целом.

| Маяк Александрийский

Про страницу 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: Старикам тут не&nbsp;<a href="{{ "/" | relURL }}">место</a></h1> 
            </div> 
    </body> 
</html>

Присутствует переключение темной темы. Раньше кнопка была на каждой странице сайта, но из-за наличия формул переход между темами тормозил, поэтому функция закомментирована. Тем не менее она показывается при ошибке как вознаграждение. Возможно, это лишнее и стоит сделать серую страницу с акцидентным шрифтом, чтобы сразу возникало желание вернуться на основную часть сайта.

Комментарии 💬
| Маяк Александрийский

Поддержка формул на сайте

За отображение формул отвечает отдельная библиотека — Катек (\(\KaTeX \)). Она основана на Теке (\(\TeX\)) Дональда Кнута. Катек рендерит быстрее аналогов и прост в использовании.

Чтобы Катек отрендерил формулы, страница с формулами должна содержать ссылку на библиотеку в заголовке. Благодаря шаблонам Хьюго можно создать отдельный файл, содержащий эту ссылку, и указать файл в шаблоне страниц с формулами (формулы могут находиться внутри поста или выводиться на главную).

Создадим файл 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 программой через терминал.

Винда

  1. Скачать и распаковать архив в C:\Hugo\bin.
  2. Запустить командную строку через поиск и выполнить команду:
cd "C:\Hugo\bin"

Теперь можно работать с Хьюго, но только в этой директории. Нужно добавить путь до Хьюго в переменные окружения.

  1. Открыть через поиск «Изменение системных переменных среды», открыть переменные среды, добавить переменную с путем до программы.

Хьюго готов к работе из любого места в системе.

Линукс

Хьюго доступен в репозиториях, поэтому можно установить его одной командой и начать пользоваться. Если версия из репозитория не устраивает, можно скачать бинарник и распакавать архив в ~/hugo.

Программу можно запустить командой:

~/hugo/hugo

Это не очень удобно, хотелось бы сократить до простого hugo, чтобы было похоже на остальные команды. За это отвечает переменная окружения $PATH. Вносить изменения в нее или в директории, которые она хранит, сложнее, чем выполнение этой команды:

echo 'export PATH=$PATH:~/hugo' >> ~/.bashrc

Теперь при каждом запуске терминала к переменной добавляется путь до Хьюго.

Примечание: если в системе по умолчанию стоит не Bash, а Zsh, то вместо .bashrc нужно вписать .zshrc. Проверить оболочку: echo $SHELL.

Мак

Тут то же самое, что и на Линуксе. Стоит уточнить, что на последних маках по умолчанию стоит Zsh, но вместо .zshrc рекоммендуется использовать .zprofile.

Либо можно установить пакетный менеджер Хоумбрю и через него скачать Хьюго:

brew install hugo 
Комментарии 💬
| @andreymalina

Telegram Bot

Бот испоьзует API Яндекса, чтобы получить информацию о геолокации. Из этой информации он берёт температуру и осадки. В API погоды указываются координаты места. Если использовать API Геокодера, можно получить координаты конкретного города, района или улицы.
| Маяк Александрийский

Социальная cеть

Саундтрек к фильму на Яндекс.Музыке, Саундклауде и Ютубе.

Комментарии 💬