\define([n], [ ]) \define([concat], [\ifelse($#, 0, , $#, 1, [$1], [$1 \concat(\shift($@))])]) \define([toupper], [\translit([$*], [a-z], [A-Z])]) \define([container], [\pushdef([_tag], \toupper([$1]))\dnl \ifelse($#, 1, [<\_tag>], $#, 2, [<\_tag>$2], $#, 3, [<\_tag $2>$3], [<\_tag $2>\concat(\shift(\shift($@)))])\dnl \popdef([_tag])\dnl ]) \define([large_container], [\pushdef([_tag], \toupper([$1]))\dnl \ifelse($#, 1, [<\_tag>\n], $#, 2, [<\_tag>\n[]$2\n\n], $#, 3, [<\_tag $2>\n[]$3\n\n], [<\_tag $2>\n\concat(\shift(\shift($@)))\n\n])\dnl \popdef([_tag])\dnl ]) \define([large_simple_container], [\pushdef([_tag], \toupper([$1]))\dnl <\_tag>\n\concat(\shift($@))\n\n\dnl \popdef([_tag])\dnl ]) \define([simple_container], [\pushdef([_tag], \toupper([$1]))\dnl <\_tag>\concat(\shift($@))\dnl \popdef([_tag])\dnl ]) \define([simple_tag], [\pushdef([_tag], \toupper([$1]))\dnl \ifelse([$2], [], [<\_tag>], [<\_tag $2>])\dnl \popdef([_tag])\dnl ]) \define([doctype], [\simple_tag([!DOCTYPE], $@)]) \define([html], [\large_simple_container([$0], $@)]) \define([head], [\large_simple_container([$0], $@)]) \define([title], [\simple_container([$0], $@)]) \define([meta], [\n]) \define([http_equiv], [\n]) \define([body], [\large_container([$0], $@)]) \define([center], [\large_simple_container([$0], $@)]) \define([right], [\large_simple_container([$0], $@)]) \define([left], [\large_simple_container([$0], $@)]) \define([div], [\large_container([$0], $@)]) \define([b], [\simple_container([$0], $@)]) \define([i], [\simple_container([$0], $@)]) \define([tt], [\simple_container([$0], $@)]) \define([table], [\large_container([$0], $@)]) \define([tr], [\large_container([$0], $@)]) \define([td], [\large_container([$0], $@)]) \define([th], [\large_container([$0], $@)]) \define([link], [\shift($*)]) \define([target], [\shift($*)]) \define([font], [\n\container([$0], $@)\n]) \define([h1], [\n\container([$0], $@)\n]) \define([h2], [\n\container([$0], $@)\n]) \define([h3], [\n\container([$0], $@)\n]) \define([h4], [\n\container([$0], $@)\n]) \define([h5], [\n\container([$0], $@)\n]) \define([h6], [\n\container([$0], $@)\n]) \define([p], [\large_simple_container([$0], $@)]) \define([hr], [\simple_tag([$0], $@)]) \define([ul], [\large_container([$0], $@)]) \define([ol], [\large_container([$0], $@)]) \define([li], [\simple_tag([$0], $@)]) \define([blockquote], [\large_simple_container([$0], $@)]) \define([dl], [\large_simple_container([$0], $@)]) \define([dt], [\simple_container([$0], $@)]) \define([dd], [\large_simple_container([$0], $@)]) \define([br], [\simple_tag([$0], $@)]) \define([hline], [\simple_tag([$0], $@)]) \define([pre], [\simple_container([$0], $@)]) \define([set_title], [\define([_TITLE], [$*])]) \set_title(_TITLE) \define([set_author], [\define([_AUTHOR], [$*])]) \set_author() \define([set_generator], [\define([_GENERATOR], [$*])]) \set_generator([GNU m4 \__m4_version__]) \define([set_keywords], [\define([_KEYWORDS], [$*])]) \set_keywords() \define([set_body], [\define([_BODY], [$*])]) \set_body() \define([meta_if_set], [\ifelse(\defn([_$1]), [], [], \meta([$1], \defn([_$1])))]\dnl )