[
  {
    "path": ".gitignore",
    "content": "*~\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\nCopyright (c) 2012 William Ting\nCopyright (c) 2013 Giulio Fidente\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "# Install using:\n#\n#   pip install pygments\n#\n# built in styles: ['monokai', 'manni', 'rrt', 'perldoc', 'borland', 'colorful',\n# 'default', 'murphy', 'vs', 'trac', 'tango', 'fruity', 'autumn', 'bw', 'emacs',\n# 'vim', 'pastie', 'friendly', 'native']\n\nSTYLE = default\n\npygments:\n\tpygmentize -S ${STYLE} -f html > ./static/css/pygments.css\n"
  },
  {
    "path": "README.md",
    "content": "# SVBHACK\n\npelican-svbhack is a responsive theme for [Pelican](http://getpelican.com), it is my hack of a svbtle-like theme.\n\n## DEMO\n\nYou can see the [theme in action](http://www.gfidente.com/).\n\n![theme screenshot](https://raw.github.com/gfidente/pelican-svbhack/master/screenshot.png)\n\n## FEATURES\n\n- responsive\n- syntax highlighting for pre blocks\n- supports google analytics and [matomo](https://matomo.org/)\n- custom list of links\n- supports the [readtime](https://github.com/getpelican/pelican-plugins/tree/master/readtime) plugin\n\n## KNOWN ISSUES\n\n- no IE testing\n- no custom menu\n\n## INSTALL\n\nClone the [repository](https://github.com/gfidente/pelican-svbhack), edit your `pelicanconf.py` and modify the `THEME` variable to make it point to the downloaded theme location.\n\n## PELICANCONF.PY\n\nSupports a number of common global variables but patches are welcomed if you need better support.\n\n- `GOOGLE_ANALYTICS` to use Google Analytics, set this var to your UA-XYZ code\n\n- `MATOMO_URL` to use Matomo, set this var to your server, e.g. \"analytics.example.com\" (no protocol prefix)\n\n- `MATOMO_SITE_ID` to use Matomo, set this var to your site ID, e.g. \"1\"\n\n- `USER_LOGO_URL` to replace the logo placeholder, put your logo in content/images/your_logo.png and make this var point to `SITEURL + '/static/images/your_logo.png'`\n\n- `ROUND_USER_LOGO` set this to `True` to crop your logo to a circle and add a black border\n\n- `HIDE_USER_LOGO` set this to `True` to hide the placeholder without adding your logo\n\n- `USE_GENERIC_FONT_FAMILIES` set this to `True` to use generic font families and avoid using Google Fonts\n\n- `DISQUS_SITENAME` set this to your Disqus sitename to enable disqus comments in articles\n\n- `TAGLINE` some text rendered right below the logo\n\n- `INTERNET_DEFENSE_LEAGUE` set this to `True` if you want to enable the [Internet Defense League](http://internetdefenseleague.org) code\n\nWhen developing locally, you may want to set the following variable: `SITEURL = http://localhost:8000`\n\n## MODIFICATIONS\n\n- Accent color can be changed by editing `@accent` in `./static/css/style.less`.\n- A different Pygmentize theme can be used by editing `./Makefile` and running `make pygments`.\n\n## AUTHOR\n\npelican-svbhack is authored by Giulio Fidente.\n\n## LICENSE\n\nReleased under MIT License, full details in `LICENSE` file.\n"
  },
  {
    "path": "static/css/pygments.css",
    "content": ".hll { background-color: #ffffcc }\n.c { color: #408080; font-style: italic } /* Comment */\n.err { border: 1px solid #FF0000 } /* Error */\n.k { color: #008000; font-weight: bold } /* Keyword */\n.o { color: #666666 } /* Operator */\n.cm { color: #408080; font-style: italic } /* Comment.Multiline */\n.cp { color: #BC7A00 } /* Comment.Preproc */\n.c1 { color: #408080; font-style: italic } /* Comment.Single */\n.cs { color: #408080; font-style: italic } /* Comment.Special */\n.gd { color: #A00000 } /* Generic.Deleted */\n.ge { font-style: italic } /* Generic.Emph */\n.gr { color: #FF0000 } /* Generic.Error */\n.gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.gi { color: #00A000 } /* Generic.Inserted */\n.go { color: #888888 } /* Generic.Output */\n.gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.gs { font-weight: bold } /* Generic.Strong */\n.gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.gt { color: #0044DD } /* Generic.Traceback */\n.kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.kp { color: #008000 } /* Keyword.Pseudo */\n.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.kt { color: #B00040 } /* Keyword.Type */\n.m { color: #666666 } /* Literal.Number */\n.s { color: #BA2121 } /* Literal.String */\n.na { color: #7D9029 } /* Name.Attribute */\n.nb { color: #008000 } /* Name.Builtin */\n.nc { color: #0000FF; font-weight: bold } /* Name.Class */\n.no { color: #880000 } /* Name.Constant */\n.nd { color: #AA22FF } /* Name.Decorator */\n.ni { color: #999999; font-weight: bold } /* Name.Entity */\n.ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n.nf { color: #0000FF } /* Name.Function */\n.nl { color: #A0A000 } /* Name.Label */\n.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n.nt { color: #008000; font-weight: bold } /* Name.Tag */\n.nv { color: #19177C } /* Name.Variable */\n.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n.w { color: #bbbbbb } /* Text.Whitespace */\n.mf { color: #666666 } /* Literal.Number.Float */\n.mh { color: #666666 } /* Literal.Number.Hex */\n.mi { color: #666666 } /* Literal.Number.Integer */\n.mo { color: #666666 } /* Literal.Number.Oct */\n.sb { color: #BA2121 } /* Literal.String.Backtick */\n.sc { color: #BA2121 } /* Literal.String.Char */\n.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.s2 { color: #BA2121 } /* Literal.String.Double */\n.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n.sh { color: #BA2121 } /* Literal.String.Heredoc */\n.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n.sx { color: #008000 } /* Literal.String.Other */\n.sr { color: #BB6688 } /* Literal.String.Regex */\n.s1 { color: #BA2121 } /* Literal.String.Single */\n.ss { color: #19177C } /* Literal.String.Symbol */\n.bp { color: #008000 } /* Name.Builtin.Pseudo */\n.vc { color: #19177C } /* Name.Variable.Class */\n.vg { color: #19177C } /* Name.Variable.Global */\n.vi { color: #19177C } /* Name.Variable.Instance */\n.il { color: #666666 } /* Literal.Number.Integer.Long */\n"
  },
  {
    "path": "static/css/style.css",
    "content": "body {\n  margin: 0;\n  padding: 0;\n  background-color: #ffffff;\n  color: #4d4d4d;\n  font-family: 'PT Sans', sans-serif;\n  font-size: 18px;\n}\na {\n  color: #000000;\n  text-decoration: none;\n}\nhr {\n  color: #eeeeee;\n  background-color: #eeeeee;\n  height: 1px;\n  border: none;\n}\nimg {\n  max-width: 100%;\n}\ntable {\n  border-collapse: collapse;\n}\nth,\ntd {\n  padding: 4px;\n  border-width: thin;\n  border-style: solid;\n}\n.round-img {\n  border-radius: 50%;\n  padding: 2px;\n  border: 10px solid;\n}\naside div#user_meta {\n  padding: 40px;\n  text-align: center;\n}\naside div#user_meta h2 {\n  margin: 15px 0 5px 0;\n}\naside div#user_meta p {\n  margin: 0 0 15px 0;\n  font-size: .8rem;\n}\naside div#user_meta ul {\n  margin: 40px 0 0 0;\n  padding-left: 0;\n  font-size: .9rem;\n  list-style-type: none;\n}\naside div#user_meta ul li {\n  display: inline;\n  line-height: 3em;\n}\naside div#user_meta ul li a {\n  padding: 5px 15px 5px 15px;\n  border: 3px solid #eeeeee;\n  border-radius: 15px;\n  -moz-border-radius: 15px;\n  -webkit-border-radius: 15px;\n  color: #999999;\n}\nmain header {\n  padding: 40px;\n  border-top: #eeeeee 1px solid;\n  border-bottom: #eeeeee 1px solid;\n}\nmain header p {\n  font-weight: bold;\n  font-size: .6rem;\n  text-transform: uppercase;\n}\nmain article {\n  max-width: 640px;\n  padding: 40px;\n}\nmain article div.article_text {\n  line-height: 1.375em;\n}\nmain article div.article_text a {\n  text-decoration: underline;\n}\nmain article div.article_text code {\n  margin: 2px;\n  padding: 0;\n  color: #000000;\n  font-size: .8rem;\n  font-family: 'PT Mono', monospace;\n  background: #eeeeee;\n}\nmain article div.article_text pre {\n  margin: 22px 2px 22px 2px;\n  padding: 2px;\n  color: #000000;\n  border-left: 3px solid #0e94ec;\n  font-size: .8rem;\n  font-family: 'PT Mono', monospace;\n  background: #eeeeee;\n  line-height: 1.125em;\n  overflow-x: auto;\n}\nmain article div.article_text blockquote {\n  margin: 22px 2px 22px 2px;\n  padding-left: 40px;\n  color: #999999;\n  font-style: italic;\n}\nmain article div.article_text div.quoteblock {\n  border-left: 5px solid #eeeeee;\n  color: #999999;\n  margin-bottom: 1.5em;\n  margin-left: 1em;\n  margin-right: 10%;\n  margin-top: 1em;\n  padding-left: 1em;\n}\nmain article div.article_text div.quoteblock > div.attribution {\n  padding-top: 0.5em;\n  text-align: right;\n}\nmain article div.article_text div.imageblock {\n  margin: 5px;\n  border: 1px solid #eeeeee;\n  padding: 5px;\n}\nmain article div.article_text figure {\n  margin: 5px;\n  border: 1px solid #eeeeee;\n  padding: 5px;\n}\nmain article div.article_text figcaption {\n  text-align: center;\n}\nmain article div.article_text h1 a.headerlink,\nmain article div.article_text h2 a.headerlink,\nmain article div.article_text h3 a.headerlink,\nmain article div.article_text h4 a.headerlink {\n  visibility: hidden;\n}\nmain article div.article_text h1:hover a.headerlink,\nmain article div.article_text h2:hover a.headerlink,\nmain article div.article_text h3:hover a.headerlink,\nmain article div.article_text h4:hover a.headerlink {\n  visibility: visible;\n}\nmain article div.gist {\n  line-height: .875em;\n}\nmain article div.article_meta, div.article_readtime {\n  font-size: .7rem;\n  color: #999999;\n}\nmain footer {\n  border-top: #eeeeee 1px solid;\n  padding: 40px;\n}\nmain footer a.button_accent {\n  padding: 10px;\n  border: 2px solid #0e94ec;\n  border-radius: 20px;\n  -moz-border-radius: 20px;\n  -webkit-border-radius: 20px;\n  text-transform: uppercase;\n  color: #0e94ec;\n  font-size: 1rem;\n}\nmain footer a.button_accent:hover {\n  color: #ffffff;\n  background-color: #0e94ec;\n}\nmain footer a.button_accent:active {\n  color: #ffffff;\n  background-color: #0e94ec;\n}\nmain div#ending_message {\n  border-top: #eeeeee 1px solid;\n  padding: 0 40px 0 40px;\n  color: #999999;\n  font-size: .6rem;\n}\n@media screen and (min-width: 1024px) {\n  aside {\n    width: 25%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    left: 0;\n    border-right: #eeeeee 1px solid;\n  }\n  aside h2 {\n    margin: 10px 0 0 0;\n  }\n  aside div#user_meta {\n    max-width: 192px;\n    text-align: right;\n  }\n  aside div#user_meta ul li {\n    display: block;\n  }\n  main {\n    width: 75%;\n    position: absolute;\n    top: 0;\n    left: 25%;\n    overflow-x: hidden;\n    overflow-y: hidden;\n  }\n  main article {\n    max-width: 640px;\n  }\n  main header {\n    border-top: 0;\n  }\n}\n"
  },
  {
    "path": "static/css/style.less",
    "content": "@red:  #ff0000;\n@black:  #000000;\n@white:  #ffffff;\n@light-grey:  #eeeeee;\n@med-grey:  #999999;\n@dark-grey:  #4d4d4d;\n@blue:  #0e94ec;\n@accent:  @blue;\n@sans: 'PT Sans', sans-serif;\n@serif: 'PT Serif', serif;\n@mono: 'PT Mono', monospace;\n\nbody {\n  margin: 0;\n  padding: 0;\n  background-color: @white;\n  color: @dark-grey;\n  font-family: @sans;\n  font-size: 18px;\n}\n\na {\n  color: @black;\n  text-decoration: none;\n}\n\nhr {\n  color: @light-grey;\n  background-color: @light-grey;\n  height: 1px;\n  border: none;\n}\n\n.border-radius (@radius: 5px) {\n  border-radius: @radius;\n  -moz-border-radius: @radius;\n  -webkit-border-radius: @radius;\n}\n\nimg {\n  max-width: 100%;\n}\n\ntable {\n    border-collapse: collapse;\n}\n\nth, td {\n    padding: 4px;\n    border-width: thin;\n    border-style: solid;\n}\n\n.round-img {\n  border-radius: 50%;\n  padding: 2px;\n  border: 10px solid;\n}\n\naside {\n  div#user_meta {\n    padding: 40px;\n    text-align: center;\n\n    h2 {\n      margin: 15px 0 5px 0;\n    }\n\n    p {\n      margin: 0 0 15px 0;\n      font-size: .8rem;\n    }\n\n    ul {\n      margin: 40px 0 0 0;\n      padding-left: 0;\n      font-size: .9rem;\n      list-style-type: none;\n\n      li {\n        display: inline;\n        line-height: 3em;\n\n        a {\n          padding: 5px 15px 5px 15px;\n          border: 3px solid @light-grey;\n          .border-radius(15px);\n          color: @med-grey;\n        }\n      }\n    }\n  }\n}\n\nmain {\n  header {\n    padding: 40px;\n    border-top: @light-grey 1px solid;\n    border-bottom: @light-grey 1px solid;\n\n    p {\n      font-weight: bold;\n      font-size: .6rem;\n      text-transform: uppercase;\n    }\n  }\n\n  article {\n    max-width: 640px;\n    padding: 40px;\n\n    div.article_title {\n    }\n\n    div.article_text {\n      line-height: 1.375em;\n      a {\n        text-decoration: underline;\n      }\n\n      code {\n        margin: 2px;\n        padding: 0;\n        color: @black;\n        font-size: .8rem;\n        font-family: @mono;\n        background: @light-grey;\n      }\n\n      pre {\n        margin: 22px 2px 22px 2px;\n        padding: 2px;\n        color: @black;\n        border-left: 3px solid @accent;\n        font-size: .8rem;\n        font-family: @mono;\n        background: @light-grey;\n        line-height: 1.125em;\n        overflow-x: auto;\n      }\n\n      blockquote {\n        margin: 22px 2px 22px 2px;\n        padding-left: 40px;\n        color: @med-grey;\n        font-style: italic;\n      }\n\n      // quoteblock and attribution are used by the asciidoc backend.\n      div.quoteblock {\n        border-left: 5px solid @light-grey;\n        color: @med-grey;\n        margin-bottom: 1.5em;\n        margin-left: 1.0em;\n        margin-right: 10%;\n        margin-top: 1.0em;\n        padding-left: 1.0em;\n      }\n      div.quoteblock > div.attribution {\n        padding-top: 0.5em;\n        text-align: right;\n      }\n\n      // imageblock is used by the asciidoc backend.\n      div.imageblock {\n        margin: 5px;\n        border: 1px solid @light-grey;\n        padding: 5px;\n      }\n\n      // figure and figcaption are used by the markdown_captions markdown extension.\n      figure {\n        margin: 5px;\n        border: 1px solid @light-grey;\n        padding: 5px;\n      }\n      figcaption {\n\ttext-align: center;\n      }\n\n      h1, h2, h3, h4 {\n        a.headerlink {\n\t  visibility:hidden;\n        }\n      }\n      h1:hover, h2:hover, h3:hover, h4:hover {\n        a.headerlink {\n\t  visibility:visible;\n        }\n      }\n    }\n\n    div.gist {\n      line-height: .875em;\n    }\n\n    div.article_meta, div.article_readtime {\n      font-size: .7rem;\n      color: @med-grey;\n    }\n  }\n\n  footer {\n    border-top: @light-grey 1px solid;\n    padding: 40px;\n\n    a.button_accent {\n      padding: 10px;\n      border: 2px solid @accent;\n      .border-radius(20px);\n      text-transform: uppercase;\n      color: @accent;\n      font-size: 1rem;\n      &:hover {\n        color: @white;\n        background-color: @accent;\n      }\n      &:active {\n        color: @white;\n        background-color: @accent;\n      }\n    }\n\n    div#paginator {\n    }\n  }\n\n  div#ending_message {\n    border-top: @light-grey 1px solid;\n    padding: 0 40px 0 40px;\n    color: @med-grey;\n    font-size: .6rem;\n  }\n}\n\n@media screen and (min-width: 1024px) {\n  aside {\n    width: 25%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    left: 0;\n    border-right: @light-grey 1px solid;\n\n    h2 {\n      margin: 10px 0 0 0;\n    }\n\n    div#user_meta {\n      max-width: 192px;\n      text-align: right;\n\n      ul {\n        li {\n          display: block;\n        }\n      }\n    }\n  }\n\n  main {\n    width: 75%;\n    position: absolute;\n    top: 0;\n    left: 25%;\n    overflow-x: hidden;\n    overflow-y: hidden;\n\n    article {\n      max-width: 640px;\n    }\n\n    header {\n      border-top: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "templates/archives.html",
    "content": "{% extends \"base.html\" %}\n{% block title %}&ndash; Archives{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_text\">\n    <dl>\n      {% for article in dates %}\n      <dt>{{ article.locale_date }}</dt>\n      <dd><a href=\"{{ SITEURL }}/{{ article.url }}\">{{ article.title }}</a></dd>\n      {% endfor %}\n    </dl>\n  </div>\n</article>\n{% endblock %}\n"
  },
  {
    "path": "templates/article.html",
    "content": "{% extends \"base.html\" %}\n{% block head %}\n<meta name=\"keywords\" content=\"{{ article.tags|join(', ')  }}\">\n{% endblock %}\n\n{% block title %}&ndash; {{ article.title }}{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_title\">\n    <h1><a href=\"{{ SITEURL }}/{{ article.url }}\">{{ article.title }}</a></h1>\n  </div>\n  <div class=\"article_meta\">\n    <p>Posted on: {{ article.locale_date }}</p>\n  </div>\n  {% if article.readtime %}\n  <div class=\"article_readtime\">\n    <p>Estimated read time: {{article.readtime.minutes}} minutes</p>\n  </div>\n  {% endif %}\n  <div class=\"article_text\">\n    {{ article.content }}\n  </div>\n  <div class=\"article_meta\">\n    <p>Category: <a href=\"{{ SITEURL }}/{{ article.category.url }}\">{{ article.category }}</a>\n      {% if article.tags %} &ndash; Tags:\n      {% for tag in article.tags %}\n      <a href=\"{{ SITEURL }}/{{ tag.url }}\">{{ tag }}</a>{% if not loop.last %},{% endif %}\n      {% endfor %}\n      {% endif %}\n    </p>\n  </div>\n\n  {% if DISQUS_SITENAME %}\n  <div id=\"article_comments\">\n    <div id=\"disqus_thread\"></div>\n    <script type=\"text/javascript\">\n        var disqus_identifier = \"{{ article.url }}\";\n        (function() {\n             var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;\n             dsq.src = '//{{ DISQUS_SITENAME }}.disqus.com/embed.js';\n             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);\n         })();\n    </script>\n  </div>\n  {% endif %}\n\n</article>\n{% endblock %}\n"
  },
  {
    "path": "templates/author.html",
    "content": "{% extends \"index.html\" %}\n{% block title %}&ndash; Posts by: {{ author }}{% endblock %}\n\n{% block header %}\n&gt; Author: {{ author }}\n{% endblock %}\n"
  },
  {
    "path": "templates/authors.html",
    "content": "{% extends \"base.html\" %}\n{% block title %}&ndash; Authors{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_text\">\n    <ul>\n      {% for author, articles in authors|sort %}\n      <li><a href=\"{{ SITEURL }}/{{ author.url }}\">{{ author }}</a> ({{ articles|count }})</li>\n      {% endfor %}\n    </ul>\n  </div>\n</article>\n{% endblock %}\n"
  },
  {
    "path": "templates/base.html",
    "content": "<!DOCTYPE html>\n<html lang=\"{{ DEFAULT_LANG }}\">\n\n<head>\n  <!-- ## for client-side less\n  <link rel=\"stylesheet/less\" type=\"text/css\" href=\"{{ SITEURL }}/theme/css/style.less\">\n  <script src=\"http://cdnjs.cloudflare.com/ajax/libs/less.js/1.7.3/less.min.js\" type=\"text/javascript\"></script>\n  -->\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"{{ SITEURL }}/theme/css/style.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"{{ SITEURL }}/theme/css/pygments.css\">\n  {% if not USE_GENERIC_FONT_FAMILIES %}\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"//fonts.googleapis.com/css?family=PT+Sans|PT+Serif|PT+Mono\">\n  {% endif %}\n\n  <meta charset=\"utf-8\" />\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <meta name=\"author\" content=\"{{ AUTHOR }}\">\n  <meta name=\"description\" content=\"Posts and writings by {{ AUTHOR }}\">\n\n  {% if FEED_ALL_ATOM %}\n  <link href=\"{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}\" type=\"application/atom+xml\" rel=\"alternate\" title=\"{{ SITENAME }} Atom\" />\n  {% endif %}\n  {% if FEED_ALL_RSS %}\n  <link href=\"{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}\" type=\"application/rss+xml\" rel=\"alternate\" title=\"{{ SITENAME }} RSS\" />\n  {% endif %}\n\n  {% block head %}\n  {% endblock %}\n\n  <title>\n    {{ SITENAME }}\n    {% block title %}{% endblock %}\n  </title>\n\n  {% include \"modules/analytics.html\" %}\n</head>\n\n<body>\n  <aside>\n    <div id=\"user_meta\">\n      {% if not HIDE_USER_LOGO %}\n      <a href=\"{{ SITEURL }}\">\n        {% if USER_LOGO_URL %}\n        <img src=\"{{ USER_LOGO_URL }}\" alt=\"logo\"\n        {%- if ROUND_USER_LOGO %} class=\"round-img\"{% endif %}>\n        {% else %}\n        <img src=\"{{ SITEURL }}/theme/images/logo.png\" alt=\"logo\">\n        {% endif %}\n      </a>\n      {% endif %}\n      <h2><a href=\"{{ SITEURL }}\">{{ SITENAME }}</a></h2>\n      <p>{{ TAGLINE }}</p>\n      <ul>\n        {% for title, link in MENUITEMS %}\n        <li><a href=\"{{ link }}\">{{ title }}</a></li>\n        {% endfor %}\n        {% if DISPLAY_PAGES_ON_MENU %}{% for p in pages %}\n        <li><a href=\"{{ SITEURL }}/{{ p.url }}\">{{ p.title }}</a></li>\n        {% endfor %}{% endif %}\n        {% if DISPLAY_CATEGORIES_ON_MENU %}{% for c, _ in categories %}\n        <li><a href=\"{{ SITEURL }}/{{ c.url }}\">{{ c }}</a></li>\n        {% endfor %}{% endif %}\n        {% for name, link in LINKS %}\n        <li><a href=\"{{ link }}\" target=\"_blank\">{{ name }}</a></li>\n        {% endfor %}\n        {% for name, link in SOCIAL %}\n        <li><a href=\"{{ link }}\" target=\"_blank\">{{ name }}</a></li>\n        {% endfor %}\n      </ul>\n    </div>\n  </aside>\n\n  <main>\n    <header>\n      <p>\n      <a href=\"{{ SITEURL }}\">Index</a> &brvbar; <a href=\"{{ SITEURL }}/archives.html\">Archives</a>\n      {% if FEED_ALL_ATOM %}\n      &brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}\">Atom</a>\n      {% endif %}\n      {% if FEED_ALL_RSS %}\n      &brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}\">RSS</a>\n      {% endif %}\n      {% block header %}\n      {% endblock header %}\n      </p>\n    </header>\n\n    {% block content %}\n    {% endblock %}\n\n    {% block footer %}\n    {% endblock %}\n\n    <div id=\"ending_message\">\n      <p>&copy; {{ AUTHOR }}. Built using <a href=\"http://getpelican.com\" target=\"_blank\">Pelican</a>. Theme by Giulio Fidente on <a href=\"https://github.com/gfidente/pelican-svbhack\" target=\"_blank\">github</a>. {% if INTERNET_DEFENSE_LEAGUE %}Member of the <a href=\"http://internetdefenseleague.org\">Internet Defense League</a>.{% endif %}</p>\n    </div>\n  </main>\n  {% include \"modules/idl.html\" %}\n</body>\n</html>\n"
  },
  {
    "path": "templates/categories.html",
    "content": "{% extends \"base.html\" %}\n{% block title %}&ndash; Categories{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_text\">\n    <ul>\n      {% for category, articles in categories|sort %}\n      <li><a href=\"{{ SITEURL }}/{{ category.url }}\">{{ category }}</a> ({{ articles|count }})</li>\n      {% endfor %}\n    </ul>\n  </div>\n</article>\n{% endblock %}\n"
  },
  {
    "path": "templates/category.html",
    "content": "{% extends \"index.html\" %}\n{% block title %}&ndash; Category: {{ category }}{% endblock %}\n\n{% block head %}\n{% if CATEGORY_FEED_ATOM %}\n<link href=\"{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM|replace(\"{slug}\", category.slug) }}\" type=\"application/atom+xml\" rel=\"alternate\" title=\"{{ SITENAME }} {{ category }} Category Atom\" />\n{% endif %}\n{% if CATEGORY_FEED_RSS %}\n<link href=\"{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS|replace(\"{slug}\", category.slug) }}\" type=\"application/rss+xml\" rel=\"alternate\" title=\"{{ SITENAME }} {{ category }} Category RSS\" />\n{% endif %}\n{% endblock %}\n\n{% block header %}\n&gt; Category: {{ category }}\n{% if CATEGORY_FEED_ATOM %}\n&brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM|replace(\"{slug}\", category.slug) }}\">Atom</a>\n{% endif %}\n{% if CATEGORY_FEED_RSS %}\n&brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS|replace(\"{slug}\", category.slug) }}\">RSS</a>\n{% endif %}\n{% endblock %}\n"
  },
  {
    "path": "templates/index.html",
    "content": "{% extends \"base.html\" %}\n{% block content %}\n{% for article in articles_page.object_list %}\n<article>\n  <div class=\"article_title\">\n    <h1><a href=\"{{ SITEURL }}/{{ article.url }}\">{{ article.title }}</a></h1>\n  </div>\n  <div class=\"article_meta\">\n    <p>Posted on: {{ article.locale_date }}</p>\n  </div>\n  {% if article.readtime %}\n  <div class=\"article_readtime\">\n    <p>Estimated read time: {{article.readtime.minutes}} minutes</p>\n  </div>\n  {% endif %}\n  <div class=\"article_text\">\n    {{ article.summary }}\n  </div>\n</article>\n{% if not loop.last %}\n<hr />\n{% endif %}\n{% endfor %}\n{% endblock %}\n\n{% block footer %}\n<footer>\n  {% include \"modules/pagination.html\" %}\n</footer>\n{% endblock %}\n"
  },
  {
    "path": "templates/modules/analytics.html",
    "content": "{% if GOOGLE_ANALYTICS %}\n<script type=\"text/javascript\">\n  var _gaq = _gaq || [];\n  _gaq.push(['_setAccount', '{{ GOOGLE_ANALYTICS }}']);\n  _gaq.push(['_trackPageview']);\n\n  (function() {\n    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n  })();\n</script>\n{% endif %}\n{% if MATOMO_URL %}\n<script type=\"text/javascript\">\n  var _paq = window._paq || [];\n  /* tracker methods like \"setCustomDimension\" should be called before \"trackPageView\" */\n  _paq.push(['trackPageView']);\n  _paq.push(['enableLinkTracking']);\n  (function() {\n    var u=\"//{{ MATOMO_URL }}/\";\n    _paq.push(['setTrackerUrl', u+'matomo.php']);\n    _paq.push(['setSiteId', '{{ MATOMO_SITE_ID }}']);\n    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];\n    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);\n  })();\n</script>\n{% endif %}\n"
  },
  {
    "path": "templates/modules/idl.html",
    "content": "{% if INTERNET_DEFENSE_LEAGUE %}\n<script type=\"text/javascript\">\n  window._idl = {};\n  _idl.variant = \"banner\";\n  (function() {\n    var idl = document.createElement('script');\n    idl.type = 'text/javascript';\n    idl.async = true;\n    idl.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');\n    document.getElementsByTagName('body')[0].appendChild(idl);\n  })();\n</script>\n{% endif %}\n"
  },
  {
    "path": "templates/modules/pagination.html",
    "content": "{% if DEFAULT_PAGINATION %}\n<div id=\"paginator\">\n{% if articles_page.has_next() %}\n<a href=\"{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html\" class=\"button_accent\">&larr; Older Posts</a>\n{% endif %}\n\n{% if articles_page.has_previous() %}\n{% if articles_page.previous_page_number() == 1 %}\n<a href=\"{{ SITEURL }}/{{ page_name }}.html\" class=\"button_accent\">Newer Posts &rarr;</a>\n{% else %}\n<a href=\"{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html\" class=\"button_accent\">Newer Posts &rarr;</a>\n{% endif %}\n{% endif %}\n</div>\n{% endif %}\n"
  },
  {
    "path": "templates/page.html",
    "content": "{% extends \"base.html\" %}\n{% block title %}&ndash; {{ page.title }}{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_title\">\n    <h1><a href=\"{{ SITEURL }}/{{ page.url }}\">{{ page.title }}</a></h1>\n  </div>\n  <div class=\"article_text\">\n    {{ page.content }}\n  </div>\n  <div class=\"article_meta\">\n    <p>Updated on: {{ page.locale_date }}</p>\n  </div>\n</article>\n{% endblock %}\n"
  },
  {
    "path": "templates/tag.html",
    "content": "{% extends \"index.html\" %}\n{% block title %}&ndash; Tag: {{ tag }}{% endblock %}\n\n{% block head %}\n{% if TAG_FEED_ATOM %}\n<link href=\"{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM|replace(\"{slug}\", tag.slug) }}\" type=\"application/atom+xml\" rel=\"alternate\" title=\"{{ SITENAME }} {{ tag }} Tag Atom\" />\n{% endif %}\n{% if TAG_FEED_RSS %}\n<link href=\"{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS|replace(\"{slug}\", tag.slug) }}\" type=\"application/rss+xml\" rel=\"alternate\" title=\"{{ SITENAME }} {{ tag }} Tag RSS\" />\n{% endif %}\n{% endblock %}\n\n{% block header %}\n&gt; Tag: {{ tag }}\n{% if TAG_FEED_ATOM %}\n&brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM|replace(\"{slug}\", tag.slug) }}\">Atom</a>\n{% endif %}\n{% if TAG_FEED_RSS %}\n&brvbar; <a href=\"{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS|replace(\"{slug}\", tag.slug) }}\">RSS</a>\n{% endif %}\n{% endblock %}\n"
  },
  {
    "path": "templates/tags.html",
    "content": "{% extends \"base.html\" %}\n{% block title %}&ndash; Tags{% endblock %}\n\n{% block content %}\n<article>\n  <div class=\"article_text\">\n    <ul>\n      {%- for tag, articles in tags|sort %}\n          <li><a href=\"{{ SITEURL }}/{{ tag.url }}\">{{ tag }}</a> ({{ articles|count }})</li>\n      {% endfor %}\n    </ul>\n  </div>\n</article>\n{% endblock %}\n"
  }
]