<!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">

  {% 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>
