The <al-setdefault> tag is used inside a macro definition to specify default content for a named macro argument. The content enclosed by this tag will be used if the caller does not override it with a <al-setarg> tag.
Note that only named arguments can have a default as the unnamed argument is always set, implicitly or explicitly, by the calling <al-expand> tag.
>>> import albatross
>>> ctx = albatross.SimpleContext('.')
>>> albatross.Template(ctx, '<magic>', '''
... <al-macro name="pagelayout">
... <al-setdefault name="title">Parrot</al-setdefault>
... <title><al-usearg name="title"></title>
... </al-macro>
... ''').to_html(ctx)
>>> albatross.Template(ctx, '<magic>', '''
... <al-expand name="pagelayout">
... <al-setarg name="title">Lumberjack</al-setarg>
... </al-expand>''').to_html(ctx)
>>> ctx.flush_content()
<title>Lumberjack</title>
>>> albatross.Template(ctx, '<magic>', '''
... <al-expand name="pagelayout">
... </al-expand>''').to_html(ctx)
>>> ctx.flush_content()
<title>Parrot</title>