# Refer to following asciidoc documentation:
#     http://www.methods.co.nz/asciidoc/userguide.html
# In particular sections "Macros" and "Attribute References"
#
# For hyperlinks, show 'link text [URL]' (if link text provided) or 'URL'
[http-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[https-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[ftp-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[file-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[irc-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}
[mailto-inlinemacro]
{0=}{0? &#91;}{name}:{target}{0?&#93;}

# Hide image representation from text manual
[image-inlinemacro]
{empty}
[image-blockmacro]
{empty}
