{%- macro m_law(law) -%} {%- for el in law.children -%} {%- if el.tag == 'LawBody' -%} {{- m_law_body(el) -}} {%- elif el.tag == 'LawNum' -%} {%- else -%} {{- m_element(el) -}} {%- endif -%} {%- endfor -%} {%- endmacro -%} {%- macro m_law_body(law_body) -%} {%- for el in law_body.children -%} {%- if el.tag == 'LawTitle' -%} {{- m_law_title(el) -}} {%- elif el.tag == 'EnactStatement' -%} {{- m_enact_statement(el) -}} {%- elif el.tag == 'TOC' -%} {{- m_toc(el) -}} {%- elif el.tag in ['MainProvision', 'SupplProvision'] -%} {{- m_article_group(el) -}} {%- elif el.tag == 'AppdxTable' -%} {{- m_appdx_table(el) -}} {%- elif el.tag == 'AppdxStyle' -%} {{- m_appdx_style(el) -}} {%- else -%} {{- m_element(el) -}} {%- endif -%} {%- endfor -%} {%- endmacro -%} {%- macro m_law_title(law_title) -%}
{{- ('' + m_element_raw(el)) | escape -}}
{%- endmacro -%}
{%- macro m_element_raw(el) -%}
{%- if not el -%}
{%- elif not el.tag -%}
{{- el | escape -}}
{%- else -%}
<{{ el.tag }} {%- for key, value in el.attr | dictsort -%}
{{- ' ' -}}{{- key -}}="{{- value -}}"
{%- endfor -%}>
{%- for child in el.children -%}
{%- if not child.tag -%}
{{- child -}}
{%- else -%}
{{- m_element_raw(child) -}}
{%- endif -%}
{%- endfor -%}
{{ el.tag }}>
{%- endif -%}
{%- endmacro -%}
{%- macro m_text(el) -%}
{%- if not el -%}
{%- elif not el.tag -%}
{{- el -}}
{%- else -%}
{%- for child in el.children -%}
{%- if not child.tag -%}
{{- child -}}
{%- elif child.tag == 'Ruby' -%}
{{- m_element_raw(child) -}}
{%- else -%}
{{- m_element(child) -}}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- endmacro -%}