Skip to content

What is this

Aleksei Pirogov edited this page Sep 18, 2022 · 4 revisions

О чём это всё

Первая встреча, на которой обсуждали проект, не была записана, поэтому опишу по памяти поднятые вопросы здесь.

Формат

  • Пишем код все вместе, возможно с применением парного программирования
  • Со временем появятся задачи, которые смогут делать добровольцы и оформлять решения будут в виде PR, которые мы коллективно будет отсматривать

Проект

Идея

Построчный шаблонизатор текста. Превращает набор строк, принятый на вход, в набор строк на выходе. Преобразование делается силами языка шаблонов, идейно похожего на гибрид AWK и строковой интерполяции.

Области применения

  • Генерация разметки по текстовым данным

    • HTML-списки или таблицы
    • CSV
    • JSON
  • Генерация скриптов для группового переименовывания файлов посредством встраивания программы в конвеер

      ls -1 *.mp3 | lhs -e 'mv "$0" "$i - $0:capitalize"' | sh

Интерфейсы

  • Обычный CLI
  • Интерактивный TUI с живым предпросмотром результата
  • GUI на web-технологиях
  • Классическое Web-приложение

Язык шаблонов

  • Минималистичное ядро
    • Выделение полей указанием разделителя (как в AWK)
    • Встроенные операции вроде "перевести в верхний регистр" и "взять подстроку"
    • Сквозной счётчик
  • Расширяемость
    • Выражение своих ключевых слов через комбинирование имеющихся
    • Lua-скрипты?

Где-то я это уже видел

Я (@astynax) точно видел когда-то. Подумал, а неплохо бы сделать свой вариант. В итоге мы имеем данный проект.

А виденная ранее программа, это NimbleText. GUI для LHX я планировал сделать очень похожий. Да и из языка шаблонов можно что-то позаимствовать, например

  • Обратные индексы
  • Прагмы вроде $ONCE

А ещё было бы удобно генерировать команду со всеми нужными опциями по тому, что мы настроим в GUI (помимо возможности сохранить сниппет). У NimbleText есть для этого "The Command-Line Helper" (тут можно почитать).