<!DOCTYPE html>
<html lang="{{ DEFAULT_LANG }}">

<head>
  <link rel="stylesheet/less" type="text/css" href="{{ SITEURL }}/theme/css/style.less">
  <script src="{{ SITEURL }}/theme/js/less-1.3.3.min.js" type="text/javascript"></script>
  <!-- <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/style.css"> -->

  <link rel="stylesheet" type="text/css" href="{{ SITEURL }}/theme/css/pygments.css">
  <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=PT+Sans|PT+Serif|PT+Mono">

  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width; initial-scale=1.0">
  <meta name="author" content="{{ AUTHOR }}">
  <meta name="description" content="Posts and writings by {{ AUTHOR }}">

  {% if FEED_ALL_ATOM %}
  <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
  {% endif %}
  {% if FEED_ALL_RSS %}
  <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
  {% endif %}

  {% block head %}
  {% endblock %}

  <title>{% block title %}{{ SITENAME }}{% endblock %}</title>

  {% include "analytics.html" %}
</head>

<body>
  <aside>
    <div id="user_meta">
      <a href="{{ SITEURL }}">
        {% if USER_LOGO_URL %}
        <img src="{{ USER_LOGO_URL }}" alt="logo">
        {% else %}
        <img src="{{ SITEURL }}/theme/images/logo.png" alt="logo">
        {% endif %}
      </a>
      <h1><a href="{{ SITEURL }}">{{ AUTHOR }}</a></h1>
      <p>{{ TAGLINE }}</p>
      <ul>
        {% for title, link in MENUITEMS %}
        <li><a href="{{ link }}">{{ title }}</a></li>
        {% endfor %}
        {% if DISPLAY_PAGES_ON_MENU %}
        {% for p in pages %}
        <li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
        {% endfor %}
        {% endif %}
        {% for name, link in LINKS %}
        <li><a href="{{ link }}" target="_blank">{{ name }}</a></li>
        {% endfor %}
        {% for name, link in SOCIAL %}
        <li><a href="{{ link }}" target="_blank">{{ name }}</a></li>
        {% endfor %}
      </ul>
    </div>
  </aside>

  <main>
    <header>
      <p>
        {% block header %}
        <a href="{{ SITEURL }}">Index</a> &#124; <a href="{{ SITEURL }}/archives.html">Archives</a>
        {% if FEED_ALL_ATOM %}
        &#124; <a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}">Atom Feed</a>
        {% endif %}
        {% if FEED_ALL_RSS %}
        &#124; <a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}">RSS Feed</a>
        {% endif %}
        {% endblock header %}
      </p>
    </header>

    {% block content %}
    {% endblock %}

    <footer>
      {% block footer %}
      {% endblock %}
    </footer>

    <div id="ending_message">
      <p>&copy Giulio Fidente. Built using <a href="http://getpelican.com" target="_blank">Pelican</a>. Fork the blog theme <a href="https://github.com/giulivo/pelican-svbhack" target="_blank">on github</a>.</p>
    </div>
  </main>
</body>
</html>
