Относительно недавно нашел свежую систему разметки, весьма крутую альтернативу Теху, Typst. Очень рекомендую посмотреть тем, кому нужно какое-то кастомное оформление и крутые плюшки, голого Markdown не хватает, Tex муторный, а HTML слишком занудный.
Там как раз внутри можно писать код на полноценном скриптовом языке, близкому к чистому функциональному, и очень просто создавать штуки под себя. Там достаточно много крутых фич, например, set/show-правила (`set` позволяют в scope задавать параметры объектов, а show — заменять их; комбинацией получается, например, show header: set text(color: blue) для покраски заголовков в синий цвет; и там таких интересных комбинаций безумное количество).
Оно очень хорошо комбинируется (это один из главных design-принципов). Например, я могу рисовать произвольные картинки (или, например, вставить SVG-шку из файла) прямо внутри формулы.
Я до этого работал с Техом и Маркауном (собирал его pandoc-ом в Tex или revealjs), и мне Typst очень понравился простотой и настраиваемостью, по сравнению с теми двумя — код и сборка получается во многом красивее их обоих (не говоря уже о бесконечных плюшках в виде инкрементальной компиляции, вес компилятор порядка десятка мегабайт и хорошей надёжности благодаря Rust).
По сравнению с произвольным python-скриптом, конечно, возможностей может не хватать, взаимодействие с внешним миром — только чтение файлов (парсеры json, yml, csv, toml и тд. встроены в стандартную библиотеку), да и то хотят ограничить из соображений безопасности. Но если генерировать данные python-скриптом, а потом подгружать их, то как раз вроде разумное "разделение обязанностей" выходит. Хотя, безусловно, сильно зависит от задачи.
К сожалению, оно ещё сильно в бете, и генерировать умеет только pdf, но pdf-слайды вроде делаются достаточно неплохо. Надеюсь, что всё-таки реализуют экспорт в HTML, тогда, наверное, можно будет красиво генерировать и интерактивные презентации (пользовательские пакеты просто обязаны появиться).
Если будет время — надо будет написать статью про Typst, тут много чего нового, что можно пообсуждать.
Тут скорее вопрос в том, можно ли накостылять, чтобы оно использовало фишки LSP "не по назначению". Условно говоря, использовать подсказки (которые большие выпадающие блоки для, например, документации функции, если я правильно понимаю) для отображения ритмической структуры текущей строфы. Не знаю, можно ли таким образом удобоваримо встроить поиск. Может, что-нибудь вроде того же автодополнения к слову, к которому ищем рифму (на новой строке вводим слово, требуем автодополнение, выбираем из предложенных вариантов слово-рифму).
Впрочем, подозреваю, пользоваться таким в любом случае будет сложновато.
Код подборщика лежит в отдельном репозитории, можно использовать и как библиотеку, и как самостоятельную консольную утилиту.
Я написал в статье, такое как раз очень даже возможно. Я в первую очередь об этом подумал — весь функционал поиска рифмы запрятан в отдельную библиотеку/консольную утилиту. Приложение — просто удобная оболочка. Там сейчас немного сложнее с выбором настроек (оно читает всегда файл по умолчанию), в остальном же функционала даже больше, чем непосредственно встроено в приложение (например, можно фильтровать "неугодные" части речи). Только релизов в репозитории сейчас не лежит, нужно руками собирать, но если кому-то правда интересно — я могу выложить сборки через Github Actions и туда.
Синтаксис почти такой, как Вы сказали — quickpoeter "сло'во". ) Ну плюс опции.
А вот подсветка действительно есть только в приложении, но она гораздо проще с точки зрения кода, там ничего гиперумного. Тут уже нужно с lsp развлекаться, как пишут в комментариях выше.
Ну вот я, увы, с lsp не сталкивался до этого нормально, но я боюсь, что там обязательно будут веселые подводные камни. Как минимум, есть большая потребность в представлении "кода"-стихов в виде одних "квадратиков" (без них подсветка почти бесполезна). Плюс подбор рифмы/подходящего по ритму слова с удобными выпадающими вариантами из любого места (автоподсказки — плохо, не хотим привязываться к положению курсора). Возможно, придется лезть далеко каждый раз, чтобы указать текущие настройки подбора.
Да и не так много, увы, поэтов, у которых стоит приличная IDE. Со своим приложением спокойнее. Надо покопаться, конечно, но вот у меня есть сомнения.
Не спорю, можно использовать самые неподходящие слова и получить что-то интересное. Но это всё-таки специфичный случай — это намеренный литературный прием, его нужно делать осознанно.
К тому же, я говорил в первую очередь про рифмы, а рифма всегда привлекает к себе дополнительное внимание. Если строчка про любовь закончится "канализацией"... То это будет строчка уже не очень про любовь, акценты сместятся. Это может быть интересной деконструкцией образа, конечно, но, согласитесь, получить такое в качестве автоподсказки достаточно странно.
Спасибо, никогда не видел, надо будет попробовать поизучать. По краткому описанию и скриншотам хочется сказать, что оно похоже, но всё-таки принципиально с другой идеей. Оно действительно позволяет адекватно смотреть на ритм стихотворения (не очень гибко и красиво, но терпимо) и реализует систему паттернов поиска по ритму глубже, чем я. То есть специализируется на перестраивании структуры предложений.
Но в остальном функционал пересекается всё-таки мало. Рифмы, видимо, там реализованы в функции "найти похожее по звучанию слово", но сомневаюсь, что его можно настроить под себя и так далее. У меня всё-таки упор во многом именно на качество и адаптивность подбора.
Ну и в целом интерфейс и "алгоритм работы с приложением" у "Стихотворца" жутковатые. Мне кажется, у меня должен быть поменьше порог входа, проще, нагляднее, не нужно платить 250 ₽. ) Но в любом случае выглядит интересно, ещё раз спасибо.
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Относительно недавно нашел свежую систему разметки, весьма крутую альтернативу Теху, Typst. Очень рекомендую посмотреть тем, кому нужно какое-то кастомное оформление и крутые плюшки, голого Markdown не хватает, Tex муторный, а HTML слишком занудный.
Там как раз внутри можно писать код на полноценном скриптовом языке, близкому к чистому функциональному, и очень просто создавать штуки под себя. Там достаточно много крутых фич, например, set/show-правила (`set` позволяют в scope задавать параметры объектов, а
show
— заменять их; комбинацией получается, например,show header: set text(color: blue)
для покраски заголовков в синий цвет; и там таких интересных комбинаций безумное количество).Оно очень хорошо комбинируется (это один из главных design-принципов). Например, я могу рисовать произвольные картинки (или, например, вставить SVG-шку из файла) прямо внутри формулы.
Я до этого работал с Техом и Маркауном (собирал его pandoc-ом в Tex или revealjs), и мне Typst очень понравился простотой и настраиваемостью, по сравнению с теми двумя — код и сборка получается во многом красивее их обоих (не говоря уже о бесконечных плюшках в виде инкрементальной компиляции, вес компилятор порядка десятка мегабайт и хорошей надёжности благодаря Rust).
По сравнению с произвольным python-скриптом, конечно, возможностей может не хватать, взаимодействие с внешним миром — только чтение файлов (парсеры json, yml, csv, toml и тд. встроены в стандартную библиотеку), да и то хотят ограничить из соображений безопасности. Но если генерировать данные python-скриптом, а потом подгружать их, то как раз вроде разумное "разделение обязанностей" выходит. Хотя, безусловно, сильно зависит от задачи.
К сожалению, оно ещё сильно в бете, и генерировать умеет только pdf, но pdf-слайды вроде делаются достаточно неплохо. Надеюсь, что всё-таки реализуют экспорт в HTML, тогда, наверное, можно будет красиво генерировать и интерактивные презентации (пользовательские пакеты просто обязаны появиться).
Если будет время — надо будет написать статью про Typst, тут много чего нового, что можно пообсуждать.
Тут скорее вопрос в том, можно ли накостылять, чтобы оно использовало фишки LSP "не по назначению". Условно говоря, использовать подсказки (которые большие выпадающие блоки для, например, документации функции, если я правильно понимаю) для отображения ритмической структуры текущей строфы. Не знаю, можно ли таким образом удобоваримо встроить поиск. Может, что-нибудь вроде того же автодополнения к слову, к которому ищем рифму (на новой строке вводим слово, требуем автодополнение, выбираем из предложенных вариантов слово-рифму).
Впрочем, подозреваю, пользоваться таким в любом случае будет сложновато.
Я написал в статье, такое как раз очень даже возможно. Я в первую очередь об этом подумал — весь функционал поиска рифмы запрятан в отдельную библиотеку/консольную утилиту. Приложение — просто удобная оболочка. Там сейчас немного сложнее с выбором настроек (оно читает всегда файл по умолчанию), в остальном же функционала даже больше, чем непосредственно встроено в приложение (например, можно фильтровать "неугодные" части речи). Только релизов в репозитории сейчас не лежит, нужно руками собирать, но если кому-то правда интересно — я могу выложить сборки через Github Actions и туда.
Синтаксис почти такой, как Вы сказали —
quickpoeter "сло'во"
. ) Ну плюс опции.А вот подсветка действительно есть только в приложении, но она гораздо проще с точки зрения кода, там ничего гиперумного. Тут уже нужно с lsp развлекаться, как пишут в комментариях выше.
Ну вот я, увы, с lsp не сталкивался до этого нормально, но я боюсь, что там обязательно будут веселые подводные камни. Как минимум, есть большая потребность в представлении "кода"-стихов в виде одних "квадратиков" (без них подсветка почти бесполезна). Плюс подбор рифмы/подходящего по ритму слова с удобными выпадающими вариантами из любого места (автоподсказки — плохо, не хотим привязываться к положению курсора). Возможно, придется лезть далеко каждый раз, чтобы указать текущие настройки подбора.
Да и не так много, увы, поэтов, у которых стоит приличная IDE. Со своим приложением спокойнее. Надо покопаться, конечно, но вот у меня есть сомнения.
Не спорю, можно использовать самые неподходящие слова и получить что-то интересное. Но это всё-таки специфичный случай — это намеренный литературный прием, его нужно делать осознанно.
К тому же, я говорил в первую очередь про рифмы, а рифма всегда привлекает к себе дополнительное внимание. Если строчка про любовь закончится "канализацией"... То это будет строчка уже не очень про любовь, акценты сместятся. Это может быть интересной деконструкцией образа, конечно, но, согласитесь, получить такое в качестве автоподсказки достаточно странно.
Спасибо, никогда не видел, надо будет попробовать поизучать. По краткому описанию и скриншотам хочется сказать, что оно похоже, но всё-таки принципиально с другой идеей. Оно действительно позволяет адекватно смотреть на ритм стихотворения (не очень гибко и красиво, но терпимо) и реализует систему паттернов поиска по ритму глубже, чем я. То есть специализируется на перестраивании структуры предложений.
Но в остальном функционал пересекается всё-таки мало. Рифмы, видимо, там реализованы в функции "найти похожее по звучанию слово", но сомневаюсь, что его можно настроить под себя и так далее. У меня всё-таки упор во многом именно на качество и адаптивность подбора.
Ну и в целом интерфейс и "алгоритм работы с приложением" у "Стихотворца" жутковатые. Мне кажется, у меня должен быть поменьше порог входа, проще, нагляднее, не нужно платить 250 ₽. ) Но в любом случае выглядит интересно, ещё раз спасибо.