Возврат на сайт Golded+

Шаблоны и макросы

Материал из Golded+ Wiki

Перейти к: навигация, поиск

Содержание

Шаблоны Golded+

Шаблон - это файл-заготовка для редактора сообщений. Гибкость шаблонов обеспечивается макроподстановкой разных значений.

В шаблонах Golded+ бывают значащие макросы, макросы форматирования и управляющие макросы. Макросы могут комбинироваться в любом сочетании. Вместо значащего макроса вставляется его значение, макрос форматирования вставляет пробелы или указанный символ до или после его параметра, управляющий макрос ставится первым в строке шаблона и управляет видимостью строки шаблона (исключает строку из шаблона если не удовлетворено условие макроса), изменяет параметры настройки редактора, парсера шаблона или изменяет поля сообщения.

Файл шаблона просматривается с начала до конца. Макросы, изменяющие параметры, действуют только на свою и последующие строки шаблона, обычно они указываются в начале шаблона.

Строки, начинающиеся с символа ;, являются комментариями и игнорирутся парсером шаблона.

Формат макросов.

Регулярное выражение, описывающее формат простого макроса:

@[a-z0-9]+

то есть слово, начинающееся с символа @. Чтобы указать сам символ @, нужно его повторить, другими словами, макрос @@ преобразуется в символ @.

Многие макросы могут иметь параметры, а некоторые требуют указания параметра(ов).

Параметры макроса, занимающего всю строку, указываются следом за макросом через пробел. Примеры:

@xlatexport CP866
@random coockies.txt coockies.mdx

Параметры всех остальных макросов заключаются в фигурные скобки. Формат таких макросов следующий:

@macro1{parameter}
@macro2{parameter1}{parameter2}
@macro3{parameter1}{parameter2}{parameter3}

В случае необходимости можно какие-то параметры не указывать, например:

@macro3{parameter1}{}{parameter3}
@macro3{}{parameter2}{parameter3}
@macro3{}{parameter2}{}

Если последний параметр отсутствует, последние фигурные скобки можно опустить:

@macro3{}{parameter2}

Расширенный формат макросов: параметры подстановки имён.

@macro{I}
@macro{I}{You}
@macro{I}{You}{All}

где I - слово для обозначения сисопа (Вас), You - слово для обозначения адресата (обращение к Вашему корреспонденту), All - слово для обращения ко всем.

Любой параметр может быть пустым. Если параметр указан, при совпадении вместо имени ставится указанное слово.

Такую форму макроса можно использовать для всех макросов @*name и @*pseudo.

Примеры:

@oname{Я}{Ты} написал @dname{мне}{тебе}{всем} следующее:
Привет, @tpseudo{}{}{народ}!

Расширенный формат макросов: параметры макросов адресов.

@macro{domain}

- вывод адреса в формате 5D, где domain - ключевое слово.

Такую форму макроса можно использовать для всех макросов @*addr.

Пример:

Сообщение от @poname @oaddr{domain} к @pdname @daddr{domain}

Макросы управляющие.

@loadlanguage file

- ставится в начале шаблона, параметр этого макроса указывает языковой файл для сообщения. Пример:

@LoadLanguage goldlang.rus
@xlatexport charset

- параметр этого макроса указывает кодировку (charset), в которой будет сохранено письмо (макрос изменяет параметр конфигурации XlatExport).

@include file

- влючает в шаблон другой файл шаблона, указанный параметром.

@spellchecker parameter

- заменяет значение директивы EditSpellCheck файла конфигурации.

@net

- строка с этим макросом действует только для netmail (для остальных областей вся строка игнорируется).

@echo

- строка с этим макросом действует только для echomail (для остальных областей вся строка игнорируется).

@local

- строка с этим макросом действует только для localmail (для остальных областей вся строка игнорируется).

@forward

- строка с этим макросом действует только для отфорварженного сообщения.

@notforward

- строка с этим макросом действует только для неотфорварженного сообщения (новое или скопированное, изменённое, перемещённое)

@changed

- строка с этим макросом действует только для изменённого сообщения.

@moved

- строка с этим макросом действует только для сообщения, перемещённого из другой области.

@new

- строка с этим макросом действует только для нового сообщения (копия сообщения является новым сообщением).

@reply

- строка с этим макросом действует только для сообщения-ответа без цитирования.

@quoted

- строка с этим макросом действует только для сообщения-ответа с цитированием.

@comment

- строка с этим макросом действует только для сообщения-комментария с цитированием.

@moderator

- строка с этим макросом действует, если в поле "От" присутствует слово "moderator" в любом регистре.

@setsubj string

- задаёт тему сообщения, если она отсутствует.

@forcesubj string

- изменяет тему сообщения.

@setfrom string

- задаёт имя отправителя сообщения, если оно отсутствует.

@forcefrom string

- изменяет имя отправителя сообщения.

@setto string

- задаёт имя получателя сообщения, если оно отсутствует.

@forceto string

- изменяет имя получателя сообщения.

@quotebuf string

- остальная часть строки (string) помещается в буфер цитаты (используется в качестве цитируемого текста).

@attrib string

- заменяёт атрибуты сообщения, где

string - строка атрибутов.
@header string

- остальная часть строки (string) включается в текст заголовочной части сообщения при сохранений его в файл. Строки шаблона, начинающиеся с @header, формируют блок верхних строк файла, описывающий заголовок сообщения.

@write string

- строка с этим макросом добавляется к телу сохраняемого сообщения. Пример:

@write= @oecho (@caddr) @align{79}{=}

если эту строку указать первой строкой шаблона, в начале сохранённого теста будет вставлена строка с названием эхи и своим адресом.

Взаимоисключающие макросы:

  • @NET, @ECHO, @LOCAL (макросы типа области сообщений);
  • @FORWARD, @NOTFORWARD, @CHANGED, @MOVED, @NEW, @REPLY, @QUOTED, @COMMENT (макросы варианта сообщения).
  • @HEADER, WRITE.

Макросы форматирования.

@align{n}{c}

- дополнение справа до n-й позции (колонки) символами c. Пример:

@align{79}{=}
@pad{FAN}{T}

- выравнивание текстовой строки, где:

F - символ заполнения, если исходная строка короче заданной длины;
A - тип выравнивания (C - центрирование, L - по левому краю, R - по правому краю);
N - заданная длина строки на выходе;
T - обрабатываемая строка, в которой могут быть макросы без параметров.

Пример:

@pad{=C79}{ @OEcho (@ODesc) }

Макросы значащие.

@.

-

@@

- заменяется одним символом @.


@tr{text}

- замена ("перевод") текста, где text - текст для попытки замены. Собственно правила замены задаются в файле конфигурации директивой Translate.

@quote

- вместо макроса вставляется текст цитируемого сообщения.

@message

- текст пересылаемого (forward) или изменяемого сообщения, либо текст сообщения при записи в файл.

@random файл-coockie индексфайл-coockie

- заменяется на coockie-текст, где:

файл-coockie - файл с набором текстов для вставки, по умолчанию random.txt;
индексфайл-coockie - индекс для предыдущего файла, по умолчанию рядом с файлом-coockie с суффиксом .mdx.

Индекс или оба параметра указывать не обязательно.

@position

- в позицию начала макроса устанавливатеся курсор в начале редактирования.

@subject

- тема (исходного) сообщения.

@origin

- текст в строке " * Origin: " сообщения.

@tearline

- текст в строке "--- " сообщения

@tagline

- текст в строке "... " сообщения

@msgno current message number in messagebase

- номер сообщения в базе сообщений.

@msgs number of messages in current messagebase

- количество сообщений в базе сообщений.

@attr

- вместо макроса вставляется строка атрибутов сообщения.

@ofrom

-

@cfrom

- same as @ofrom but for current message

@oto

-

@cto

- same as @oto but for current message

@fpgp

- either e-mail or name from "From" field - адрес email отправителя, либо имя отправителя.

@dpgp

- either e-mail or name from "To" field - адрес email получателя, либо имя получателя.

@osver

- operation system version - версия операционной системы

@uptime

- время работы операционной системы (компьютера с последней загрузки) согласно формату, заданному директивой MS_UPTIME языкового файла.

@pid

- короткая строка идентификации редактора

@longpid

- средняя строка идентификации редактора

@widepid

- длинная строка идентификации редактора

@pipe{`command`}

- выполняет команду (вызывает командный процессор) и результат вставляется вместо макроса, где command - строка команды.

@сdate

- текущая дата.

@сtime

- текущее время.

@cdtime

- текущее время и дата в формате, описанном в директиве MS_DateTimeFmt языкового файла.

@odate

- дата исходного сообщения.

@otime

- время исходного сообщения.

@odtime

- время и дата исходного сообщения в формате, описанном в директиве MS_DateTimeFmt языкового файла.

@fname

- Current from name. - полное имя отправителя (Ваше имя в новом письме).

@_fname

- Current from name (fixed width: 34 chars). - полное имя отправителя, строго длиной 34 символа (дополнено пробелами или обрезано).

@ffname

- Current from first name. - имя отправителя.

@fpseudo

- псевдоним из адресной книги для имени отправителя, либо имя отправителя (@ffname).

@flname

- Current from last name. - фамилия отправителя.

@faddr

- Current from address. - адрес отправителя.

@_faddr

- Current from address (fixed width: 19 chars). - адрес отправителя, строго длиной 19 символов (дополнен пробелами или обрезан).

@f3daddr

- адрес босса (узла) отправителя.

@tname

- Current to name. - полное имя получателя (адресата) сообщения.

@_tname

- Current to name (fixed width: 34 chars). - полное имя получателя, строго длиной 34 символа (дополнено пробелами или обрезано).

@tfname

- Current to first name. - имя получателя.

@pseudo

- псевдоним (ник) получателя из адресной книги, если в адресной книге нет получателя, эквивалентен макросу @tfname.

@tpseudo

- псевдоним из адресной книги для имени получателя, либо имя получателя (@tfname).

@tlname

- Current to last name. - фамилия получателя.

@taddr

- Current to address. - адрес получателя.

@_taddr

- Current to address (fixed width: 19 chars). - адрес получателя, строго длиной 19 символов (дополнен пробелами или обрезан).

@t3daddr

- адрес босса (узла) получателя.

@cname

- Current changer name. - полное имя человека, изменяюшего сообщение (Ваше имя).

@_cname

- Current changer name (fixed width: 34 chars). - полное имя человека, изменяюшего сообщение, строго длиной 34 символа (дополнено пробелами или обрезано).

@cfname

- Current changer first name. - имя человека, изменяюшего сообщение (Ваше имя).

@сpseudo

- псевдоним из адресной книги для имени сисопа, изменившего сообщение, либо имя (@cfname).

@clname

- Current changer last name. - фамилия человека, изменяюшего сообщение (Ваша фамилия).

@caddr

- Current changer address (for changed message only). - адрес человека, изменяюшего сообщение (Ваш адрес).

@_caddr

- Current changer address (fixed width: 19 chars). - адрес человека, изменяюшего сообщение, строго длиной 19 символов (дополнен пробелами или обрезан).

@c3daddr

- адрес босса (узла) сисопа, изменившего сообщение.

@oname

- Current originator name. - полное имя отправителя исходного сообщения.

@_oname

- Current originator name (fixed width: 34 chars). - полное имя отправителя исходного сообщения, строго длиной 34 символа (дополнено пробелами или обрезано).

@ofname

- Current originator first name. - имя отправителя исходного (пересылаемого) сообщения.

@opseudo

- псевдоним из адресной книги для имени отправителя исходного собщения, либо его имя (@ofname).

@olname

- Current originator last name. - фамилия отправителя исходного сообщения.

@oaddr

- Current originator address of forwarded message. - адрес отправителя исходного сообщения.

@_oaddr

- Current originator address (fixed width: 19 chars). - адрес отправителя исходного сообщения, строго длиной 19 символов (дополнен пробелами или обрезан).

@o3daddr

- адрес босса (узла) отправителя исходного сообщения.

@dname

- Current destination name. - полное имя получателя исходного сообщения.

@_dname

- Current destination name (fixed width: 34 chars). - полное имя получателя исходного сообщения, строго длиной 34 символа (дополнено пробелами или обрезано).

@dfname

- Current destination first name. - имя получателя исходного сообщения.

@dpseudo

- псевдоним из адресной книги для имени получателя исходного собщения, либо его имя (@dfname).

@dlname

- Current destination last name. - фамилия получателя исходного сообщения.

@daddr

- Current destination address of forwarded message. - адрес получателя исходного сообщения.

@_daddr

- Current destination address (fixed width: 19 chars). - адрес получателя исходного сообщения, строго длиной 19 символов (дополнен пробелами или обрезан).

@d3daddr

- адрес босса (узла) получателя исходного собщения.

Ранее использовавшиеся макросы

Следующие макросы Golded более не могут использоваться в Golded+:

  • @serialno (удалён в 2003 г.)
  • @os2slash (удалён в 2003 г.)

Макросы, не использующиеся в шаблонах

  • @file - имя файла (возможно, с путём), используется в директивах файла конфигурации exterutil, editor и др.;
  • @areapath - путь к базе сообщений области (полный путь, как указано в файле конфигурации);
  • @eareaame - файл базы сообщений без пути;
  • @areatype - формат базы сообщений (OPUS, JAM, Squish, Hudson, PCBoard, ...).