---
layout: base
---
<div class="header default">
    <div class="l-container">
        {% include mainmenu.html %}        
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>{{ page.title }}</h1>
            {% if page.subtitle %}<h2>{{ page.subtitle }}</h2>{% endif %}
            {% if page.titlePicture %}
                {% assign pictureAttrs = "" %}
                {% for prop in page.titlePicture %}
                   {% for subprop in prop %}	
                     {% capture pictureAttrs %}{{ pictureAttrs }} {{subprop[0]}}="{{subprop[1]}}" {% endcapture %}                         
                   {% endfor %}
                {% endfor %}
            <img {{pictureAttrs}}>
            {% endif %}
            {% if page.preamble %}<p>{{ page.preamble | markownify }}</p>{% endif %}
        </header>
        <div class="l-flex"> 
	        <div class="l-two-third">
	        {{ content }}
	        </div>
	        <div class="l-one-third">
	        {% for year in site.years %}
	            {% assign y = year.first.first.date | date: "%Y" %}
	            <h2>{{ y }}</h2>
	            <ul>
	            <li><a href="{{site.baseurl}}/news/{{year.first.first.date | date: "%Y"}}">All of {{y}}</a></li>
	            {% for month in year %}
	            <li><a href="{{site.baseurl}}/news/{{year.first.first.date | date: "%Y"}}/{{month.first.date | date: "%m"}}">{{ month.first.date | date: "%B" }}</a></li>
	            {% endfor %}
	            </ul>
	        {% endfor %}
	        </div>
        </div>
    </div>
</main>
