diff options
| author | Andrew Guschin <guschin@altlinux.org> | 2024-02-29 13:28:19 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin@altlinux.org> | 2024-02-29 13:28:19 +0400 |
| commit | da1d503b85112c22c17d142d0b05974ec38ebcf2 (patch) | |
| tree | 16a13b24bf4ebff8ed04551cbfcd3d8e82f50af3 | |
| parent | 3038bbfc64924bce04f06665f89acdc5df05b20e (diff) | |
fix: рецепт format переписан на python
На разных устройствах возникали какие-то проблемы с тем, что index.html
файл почему-то оказывался пустым.
Так как от python уже зависит другой рецепт, то ситуацию это не должно
ухудшить никаким образом (только если для локального хостинга мы заменим
встроенный в python вебсервер, в чём я сомневаюсь).
| -rw-r--r-- | README.md | 18 | ||||
| -rw-r--r-- | justfile | 14 |
2 files changed, 24 insertions, 8 deletions
@@ -4,9 +4,19 @@ - just (да, мне понравилось) - Python 3 -- UNIX Shell (вендузятники простите) - Желательно, браузер с поддержкой Javascript +## Как установить just? + +Программа достаточно новая, поэтому её может не быть в репозитории. Если она +есть, то пакет, скорее всего так и называется. Если пакета всё же нет, или ты +вендузятник, то можно скачать последний релиз: +- https://github.com/casey/just/releases + +Так как прога на расте, то бинарник у неё один и его можно положить куда угодно. + +Для эстетов: `cargo install just`. + ## Куда класть презентации? В директорию `presentations`. @@ -20,17 +30,17 @@ Запускаем команду ```shell -just serve <name> +just serve <path to markdown> ``` Запустится встроенный в python http сервер. Если порт 8000 уже занят можно ```shell -just serve <name> <port> +just serve <path to markdown> <port> ``` При этом автоматически сформируется `index.html`. Если нужно получить только его, без запуска сервера (например, чтобы захостить на другом сервере), используем ```shell -just format <name> +just format <path to markdown> ``` @@ -1,7 +1,13 @@ -format $filename: - #!/bin/sh - title=`sed -n 's/^# \(.*\)/\1/p' $filename | head -n1` - printf "$(< template.html)\n" "$title" "$filename" > index.html +format filename: + #!/usr/bin/env python3 + import re + with open("{{filename}}") as f: + m = re.search("^# (.*)", f.read()) + title = "Презентация" if m is None else m.group(1) + with open("template.html") as f: + template = f.read() + with open("index.html", "w") as f: + f.write(template % (title, "{{filename}}")) serve filename port="8000": (format filename) python3 -m http.server {{port}} |