As macros de comando fornecem atalhos nomeados para conjuntos de comandos. As macros são definidas em arquivos de definição de macro separados, que podem ser anexados a catálogos de imagens ou ao catálogo padrão.
$ *
name*$
name |
Nome da macro. |
*
*
O nome não diferencia maiúsculas de minúsculas e pode consistir em qualquer combinação de letras ASCII, números, '-', '_' e '.' caracteres.
As macros podem ser chamadas em qualquer lugar em uma solicitação após o '?', bem como em qualquer lugar dentro de um campo catalog::Modifier
ou catalog::PostModifier
. As macros só podem representar um ou mais comandos completos do Image Serving e devem ser separadas de outros comandos com separadores '&'.
As invocações de macro são substituídas por suas sequências de substituição precocemente durante a análise. Comandos em macros substituirão os mesmos comandos na solicitação se ocorrerem antes da chamada de macro na solicitação. Isso é diferente de catalog::Modifier
, onde os comandos na cadeia de caracteres de solicitação sempre substituirão os comandos na cadeia de caracteres catalog::Modifier
, independentemente da posição na solicitação.
As macros de comando não podem ter valores de argumento, mas variáveis personalizadas podem ser usadas para transmitir valores da solicitação para a macro.
As macros podem ser aninhadas, com a seguinte restrição: Uma macro só pode ser invocada se já estiver definida no momento em que a definição da macro for analisada, seja pela exibição anterior no mesmo arquivo de definição de macro, ou colocando a definição de tal macro incorporada no arquivo de definição de macro padrão.
As macros podem ser úteis se os mesmos atributos forem aplicados a imagens diferentes.
http://server/cat/1345?wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1 http://server/cat/1435?wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1 http://server/cat/8243?wid=480&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1
Podemos definir uma macro para os atributos comuns:
view wid=240&fmt=jpeg&qlt=85&op_usm=5,2&bgc=200,200,200&align=-1,-1
A macro seria usada da seguinte maneira:
http://server/cat/1345?$view$ http://server/cat/1435?$view$ http://server/cat/8243?$view$&wid=480
Como wid=
é diferente para a terceira solicitação, simplesmente substituímos o valor depois de a macro é chamada (especificar wid=
antes $view$
não teria efeito).
catálogo::MacroFile , catalog::Modifier, Referência de definição de macro