命令宏*

命令宏為一組命令提供了命名的快捷方式。

$ *name*$

name 宏名稱

宏在單獨的宏定義檔案中定義,這些檔案可附加到材料目錄或預設目錄。

name 不區分大小寫,並且可以包含ASCII字母、數字、「 — 」、「_」和「」的任意組合。字元.

在「?」後,或在vignette::Modifier欄位內的任意位置調用請求中的宏。 宏只能表示一個或多個完整的影像呈現命令,並且必須與具有「&」分隔符的其他命令分開。

在解析期間,宏調用會被其替代字串替換。 如果宏中的命令在請求中的宏調用之前發生,則宏中的命令會覆蓋請求中的相同命令。 這與vignette::Modifier不同,後者要求字串中的命令一律會覆寫vignette::Modifier字串中的命令,無論要求中的位置為何。

命令巨集不能有引數值,但可使用自訂變數將值從請求傳遞至巨集。

宏不能嵌套。

範例

如果將相同的命令或屬性應用於不同的渲染影像,則宏將非常有用。

http://server/ir/render/cat/vig0?fmt=jpeg&qlt=80&sharpen=1&src=cat/matA&res=40 http://server/ir/render/cat/vig1?fmt=jpeg&qlt=80&sharpen=1&src=cat/matB&res=40 http://server/ir/render/cat/vig2?fmt=jpeg&qlt=95&sharpen=1&src=cat/matC&res=40

您可以為通用屬性定義巨集:

render vignette=cat/$vig$&fmt=jpg&qlt=80&sharpen=1&src=cat/$mat$&res=40

宏的使用方式如下:

http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$&qlt=95

由於第三個請求的qlt=不同,因此我們只需在叫用巨集後覆寫值(在​$render$之前指定qlt=​將不會產生任何效果)。

另請參閱

catalog::MacroFile,,宏 catalog::Modifier定義引用

本頁內容