Всё думал, как будет лучше делать разноцветный текст в URQ, ведь для того чтобы поменять цвет и не потерять установленный ранее надо:
- Сохранить цвет текста во временную переменную
- Установить новый цвет текста
- Вывести текст
- Вернуть сохранённый цвет
И так каждый раз. Может быть это всё можно как-то упростить средствами самого URQ, но я не знаю как. Для удобства, я прикрутил внешний макропроцессор M4 к обработке URQ-файла, теперь, вот как выглядит вывод цветного текста:
COLTEXT(зелёный текст, 0xFF009900)
А теперь, то что получилось на выходе, после обработки препроцессором:
t1=textcolor
textcolor=0xFF009900
pln зелёный текст
textcolor=t1
textcolor=0xFF009900
pln зелёный текст
textcolor=t1
Текст макроса:
define(COLTEXT,`t1=textcolor
textcolor=$2
pln $1
textcolor=t1')
textcolor=$2
pln $1
textcolor=t1')
В результате получилось разворачивание одной строчки в четыре, плюс с помощью макросов устанавливаются константы цветов, цветные ссылки, мини-параграфы с описаниями и многое другое. Если заинтересовались, пишите в комментариях!
Можно было сделать и средствами урк, да. Просто в одной локации написать всё, что надо поменять, а потом вызывать её через proc с параметрами. Было бы тоже самое без всяких препроцессоров.
ОтветитьУдалитьСпасибо за ответ, Ajenta! Насколько я понял, чтобы вызвать средствами proc, надо сначала задать все параметры, например:
Удалитьp1=10
p2=20
proc ppp
При следующем вызове надо будет снова указывать эти глобальные переменные, то есть писать каждый раз три-четыре строчи вместо одной.