Всё думал, как будет лучше делать разноцветный текст в 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')
В результате получилось разворачивание одной строчки в четыре, плюс с помощью макросов устанавливаются константы цветов, цветные ссылки, мини-параграфы с описаниями и многое другое. Если заинтересовались, пишите в комментариях!