diff --git a/pelicanconf.py b/pelicanconf.py index f382481..cee0d00 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -32,4 +32,6 @@ SOCIAL = (('You can add links in your config file', '#'), DEFAULT_PAGINATION = False # Uncomment following line if you want document-relative URLs when developing -#RELATIVE_URLS = True \ No newline at end of file +#RELATIVE_URLS = True + +THEME = 'themes/homebrewtheme' diff --git a/themes/homebrewtheme/static/css/main.css b/themes/homebrewtheme/static/css/main.css new file mode 100644 index 0000000..c61a95a --- /dev/null +++ b/themes/homebrewtheme/static/css/main.css @@ -0,0 +1,374 @@ +/* +2k18 Homebrewserver.club Pelican theme +--- +Style sheet is ordered vertically, with declarations for the header on top and footer on the bottom. + +With contributions by club members: +http://roelof.info +http://randomiser.info/ +http://majesticmoo.se +*/ +html { + font-size: 20px; +} +@font-face { + font-family:'OrkneyRegular'; + src: url('../fonts/Orkney Regular.woff') format('truetype'); +} + +header { + width:100%; +} + +#banner { + text-align: center; + font-size: 5rem; + padding-bottom: 0.5em; + padding-top: 1em; + background: #EAEAEA; +} + +#sitename { + color:#0074D9; + text-decoration:none; +} +pre { + font-family: monospace; +} +#menu { + font-size:2.5rem; + margin-top:1.2em; + font-weight:bold; + text-align:center; +} + +body { + line-height:1.6em; + color:#0074D9; + background-color:#f6f6f6; + font-family:'OrkneyRegular'; + letter-spacing: 0.05em; + margin:0; + /*! padding: 1em; */ +} + +#index{ + max-width:80%; + margin: auto; +} + +a { + color:#FF4136; +} + + +#index{ + /*! width:100%; */ + padding-top:2em; + padding-bottom:1em; + +} + +#post-list { + padding-left:0px; + margin-top:0px; +} + + +h1{ + font-size:2.5rem; + margin: 0; + padding: 0.5em; + padding-left: 0; +} +} +h2{ + font-size:2rem; + padding: 1em; + margin: 0; +} +} +h3{ + font-size:1.5rem; + text-decoration: underline; + padding: 1em; + margin: 0; +} +} + +.summary p{ + font-size:0.8rem; + text-align: left; + margin:0; +} +.hentry{ + border-width: 1px; + border-color: #EAEAEA; + border-style: hidden hidden dashed hidden; + padding-top:2em; + padding-bottom:2em; +} + +.entry-title{ + font-size:3rem; + font-weight:bold; + line-height: 1.2em; +} + +.entry-title span{ + width:100%; + display:inline-block; +} + +.toc{ + font-size: 0.8em; + padding: 3em; + float: right; + line-height: 1.5em; + border: 1px solid; + margin: 1em; +} + +.toc .toctitle { + font-size:1rem; +} + +.toc ul{ + /*list-style: none;*/ + margin-top:0px; +} +.entry-content{ + /*! margin:auto; */ + padding-bottom:1em; + +} + + +.entry-content pre{ + font-size: 18px; + padding: 0.5em; + overflow: auto; + background-color: #EAEAEA; + line-height: 1.2em; +} + +.codehilite { + max-width: 800px; + margin:1em auto; +} + +code { + /*! font-size: 18px; */ + padding: 0.5em; + background-color: #EAEAEA; + line-height: 1.2em; +} + +.entry-content img{ + max-height:100%; + max-width: 100%; +} + +.entry-content ul{ + line-height:1.5; + margin: auto; + max-width:800px; +} + +.entry-content pre{ + margin: auto; +} + +.highlight{ + margin: auto; + max-width:800px; +} + +blockquote { + font-style:italic; +} + + + +#content p{ + line-height:1.6; + max-width:800px; + margin: 0 auto; + margin-bottom:1em; +} + +#content .caption{ + font-size:80%; + padding-top:0; + margin-top:0px; + +} +#content p.img{ + margin-bottom:0px; +} + +.divider { + font-size:12px; + width:100%; + line-height:1em; + background-color:white; +} + +.published{ + font-size:smaller; +} + + +#categories { + font-size: 40px; + margin-top: 2em; + text-align: center; +} +#pertaining{ + margin-top:2em; + text-align:center; + +} + +.footnote{ + font-size:14px; + margin:auto; + max-width:800px; +} + +.author{ + font-size:smaller; +} + +.post-info { + line-height: 1em; + margin-top:1em; +} + +table{ + margin: 1em auto; + max-width: 800px; + font-size:0.9em; + width: 100%; + border-collapse: collapse; + text-align: left; + border: 1px solid #0074D9; +} + + table td, table th { + border: 1px dashed #EAEAEA; + padding-left:1em; + padding-top:0.2em; +} + +table thead tr { + border-bottom: 1px solid #0074D9; + background: #EAEAEA; +} + +table tr:nth-child(even) { + background: #EAEAEA; +} + + + +/* some good ol' theft from https://codepo8.github.io/css-fork-on-github-ribbon/ */ +#forkongithub a { + background:#FF4136; + color:#fff; + text-decoration:none; + /*! font-family:arial,sans-serif; */ + text-align:right; + font-weight:bold; + padding:5px 40px; + font-size:1rem; + line-height:2rem; + position:relative; + transition:0.5s; + font-size: 14px; +} + +#forkongithub a:hover{ + background:#0074D9; + color:#fff;} + +#forkongithub a::before,#forkongithub a::after{ + content:""; + width:100%; + display:block; + position:absolute; + top:1px; + left:0; + height:1px; + background:#fff; +} +#forkongithub a::after{ + bottom:1px; + top:auto; +} + +@media screen and (min-width:800px){ + #forkongithub{ + position:fixed; + display:block; + top:0; + right:0; + width:200px; + overflow:hidden; + height:200px; + z-index:9999; + } +#forkongithub a{ + width:210px; + position:absolute; + top:30px; + right:-60px; + transform:rotate(45deg); + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + -moz-transform:rotate(45deg); + -o-transform:rotate(45deg); + box-shadow:4px 4px 10px rgba(0,0,0,0.8); + } +} +@media screen and (max-width:620px) { + html {font-size:16px;} + #banner{ + font-size: 1rem; + line-height: 1rem; + word-wrap: break-word; + } + #menu{font-size:1rem} + #index{ + max-width:100%; + } + #content{ + padding:1em; + } + ul { + padding:0em; + } + article { + padding:1em; + } + blockquote{margin:1em;} + code{ + font-size:90%; + padding:0.3em; + } + h1 { + font-size:2rem; + line-height:1em; + } + .entry-content pre { + font-size: 90%; + padding: 0.3em; +} + .footnote { + word-wrap: break-word; + } + + .footnote ol{ + padding-left:1.5em; + } + diff --git a/themes/homebrewtheme/static/css/pygment.css b/themes/homebrewtheme/static/css/pygment.css new file mode 100644 index 0000000..ab96d84 --- /dev/null +++ b/themes/homebrewtheme/static/css/pygment.css @@ -0,0 +1,437 @@ + +pre .hll { + background-color: #ffffcc; +} +pre .c { + color: #60a0b0; + font-style: italic; +} +pre .err { + border: 1px solid #ff0000; +} +pre .k { + color: #007020; + font-weight: bold; +} +pre .o { + color: #666666; +} +pre .ch { + color: #60a0b0; + font-style: italic; +} +pre .cm { + color: #60a0b0; + font-style: italic; +} +pre .cp { + color: #007020; +} +pre .cpf { + color: #60a0b0; + font-style: italic; +} +pre .c1 { + color: #60a0b0; + font-style: italic; +} +pre .cs { + background-color: #fff0f0; + color: #60a0b0; +} +pre .gd { + color: #a00000; +} +pre .ge { + font-style: italic; +} +pre .gr { + color: #ff0000; +} +pre .gh { + color: #000080; + font-weight: bold; +} +pre .gi { + color: #00a000; +} +pre .go { + color: #888888; +} +pre .gp { + color: #c65d09; + font-weight: bold; +} +pre .gs { + font-weight: bold; +} +pre .gu { + color: #800080; + font-weight: bold; +} +pre .gt { + color: #0044dd; +} +pre .kc { + color: #007020; + font-weight: bold; +} +pre .kd { + color: #007020; + font-weight: bold; +} +pre .kn { + color: #007020; + font-weight: bold; +} +pre .kp { + color: #007020; +} +pre .kr { + color: #007020; + font-weight: bold; +} +pre .kt { + color: #902000; +} +pre .m { + color: #40a070; +} +pre .s { + color: #4070a0; +} +pre .na { + color: #4070a0; +} +pre .nb { + color: #007020; +} +pre .nc { + color: #0e84b5; + font-weight: bold; +} +pre .no { + color: #60add5; +} +pre .nd { + color: #555555; + font-weight: bold; +} +pre .ni { + color: #d55537; + font-weight: bold; +} +pre .ne { + color: #007020; +} +pre .nf { + color: #06287e; +} +pre .nl { + color: #002070; + font-weight: bold; +} +pre .nn { + color: #0e84b5; + font-weight: bold; +} +pre .nt { + color: #062873; + font-weight: bold; +} +pre .nv { + color: #bb60d5; +} +pre .ow { + color: #007020; + font-weight: bold; +} +pre .w { + color: #bbbbbb; +} +pre .mb { + color: #40a070; +} +pre .mf { + color: #40a070; +} +pre .mh { + color: #40a070; +} +pre .mi { + color: #40a070; +} +pre .mo { + color: #40a070; +} +pre .sb { + color: #4070a0; +} +pre .sc { + color: #4070a0; +} +pre .sd { + color: #4070a0; + font-style: italic; +} +pre .s2 { + color: #4070a0; +} +pre .se { + color: #4070a0; + font-weight: bold; +} +pre .sh { + color: #4070a0; +} +pre .si { + color: #70a0d0; + font-style: italic; +} +pre .sx { + color: #c65d09; +} +pre .sr { + color: #235388; +} +pre .s1 { + color: #4070a0; +} +pre .ss { + color: #517918; +} +pre .bp { + color: #007020; +} +pre .vc { + color: #bb60d5; +} +pre .vg { + color: #bb60d5; +} +pre .vi { + color: #bb60d5; +} +pre .il { + color: #40a070; +} +.syntax pre .hll { + background-color: #ffffcc; +} +.syntax pre { + background: #f0f0f0 none repeat scroll 0 0; +} +.syntax pre .c { + color: #60a0b0; + font-style: italic; +} +.syntax pre .err { + border: 1px solid #ff0000; +} +.syntax pre .k { + color: #007020; + font-weight: bold; +} +.syntax pre .o { + color: #666666; +} +.syntax pre .ch { + color: #60a0b0; + font-style: italic; +} +.syntax pre .cm { + color: #60a0b0; + font-style: italic; +} +.syntax pre .cp { + color: #007020; +} +.syntax pre .cpf { + color: #60a0b0; + font-style: italic; +} +.syntax pre .c1 { + color: #60a0b0; + font-style: italic; +} +.syntax pre .cs { + background-color: #fff0f0; + color: #60a0b0; +} +.syntax pre .gd { + color: #a00000; +} +.syntax pre .ge { + font-style: italic; +} +.syntax pre .gr { + color: #ff0000; +} +.syntax pre .gh { + color: #000080; + font-weight: bold; +} +.syntax pre .gi { + color: #00a000; +} +.syntax pre .go { + color: #888888; +} +.syntax pre .gp { + color: #c65d09; + font-weight: bold; +} +.syntax pre .gs { + font-weight: bold; +} +.syntax pre .gu { + color: #800080; + font-weight: bold; +} +.syntax pre .gt { + color: #0044dd; +} +.syntax pre .kc { + color: #007020; + font-weight: bold; +} +.syntax pre .kd { + color: #007020; + font-weight: bold; +} +.syntax pre .kn { + color: #007020; + font-weight: bold; +} +.syntax pre .kp { + color: #007020; +} +.syntax pre .kr { + color: #007020; + font-weight: bold; +} +.syntax pre .kt { + color: #902000; +} +.syntax pre .m { + color: #40a070; +} +.syntax pre .s { + color: #4070a0; +} +.syntax pre .na { + color: #4070a0; +} +.syntax pre .nb { + color: #007020; +} +.syntax pre .nc { + color: #0e84b5; + font-weight: bold; +} +.syntax pre .no { + color: #60add5; +} +.syntax pre .nd { + color: #555555; + font-weight: bold; +} +.syntax pre .ni { + color: #d55537; + font-weight: bold; +} +.syntax pre .ne { + color: #007020; +} +.syntax pre .nf { + color: #06287e; +} +.syntax pre .nl { + color: #002070; + font-weight: bold; +} +.syntax pre .nn { + color: #0e84b5; + font-weight: bold; +} +.syntax pre .nt { + color: #062873; + font-weight: bold; +} +.syntax pre .nv { + color: #bb60d5; +} +.syntax pre .ow { + color: #007020; + font-weight: bold; +} +.syntax pre .w { + color: #bbbbbb; +} +.syntax pre .mb { + color: #40a070; +} +.syntax pre .mf { + color: #40a070; +} +.syntax pre .mh { + color: #40a070; +} +.syntax pre .mi { + color: #40a070; +} +.syntax pre .mo { + color: #40a070; +} +.syntax pre .sb { + color: #4070a0; +} +.syntax pre .sc { + color: #4070a0; +} +.syntax pre .sd { + color: #4070a0; + font-style: italic; +} +.syntax pre .s2 { + color: #4070a0; +} +.syntax pre .se { + color: #4070a0; + font-weight: bold; +} +.syntax pre .sh { + color: #4070a0; +} +.syntax pre .si { + color: #70a0d0; + font-style: italic; +} +.syntax pre .sx { + color: #c65d09; +} +.syntax pre .sr { + color: #235388; +} +.syntax pre .s1 { + color: #4070a0; +} +.syntax pre .ss { + color: #517918; +} +.syntax pre .bp { + color: #007020; +} +.syntax pre .vc { + color: #bb60d5; +} +.syntax pre .vg { + color: #bb60d5; +} +.syntax pre .vi { + color: #bb60d5; +} +.syntax pre .il { + color: #40a070; +} + diff --git a/themes/homebrewtheme/static/fonts/Orkney Regular.woff b/themes/homebrewtheme/static/fonts/Orkney Regular.woff new file mode 100755 index 0000000..79a4f71 Binary files /dev/null and b/themes/homebrewtheme/static/fonts/Orkney Regular.woff differ diff --git a/themes/homebrewtheme/templates/archives.html b/themes/homebrewtheme/templates/archives.html new file mode 100644 index 0000000..050f268 --- /dev/null +++ b/themes/homebrewtheme/templates/archives.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

Archives for {{ SITENAME }}

+ +
+{% for article in dates %} +
{{ article.locale_date }}
+
{{ article.title }}
+{% endfor %} +
+{% endblock %} diff --git a/themes/homebrewtheme/templates/article.html b/themes/homebrewtheme/templates/article.html new file mode 100644 index 0000000..a0013b0 --- /dev/null +++ b/themes/homebrewtheme/templates/article.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% block head %} + {{ super() }} + {% if article.description %} + + {% endif %} + + {% if article.tags or article.category or article.keywords %} + + {% endif %} + + +{% endblock %} + +{% block content %} +
+
+
+ {{ article.title }}
+ {% import 'translations.html' as translations with context %} + {{ translations.translations_for(article) }} +
+
+ + + {% if article.modified %} + + {% endif %} + {% if article.authors %} +
+ By {% for author in article.authors %} + {{ author }} + {% endfor %} +
+ + {% endif %} +
+ {% if article.toc %} + {{ article.toc }} + {% endif %} +
+ {{ article.content }} +
+
+{% endblock %} diff --git a/themes/homebrewtheme/templates/author.html b/themes/homebrewtheme/templates/author.html new file mode 100644 index 0000000..e9f7870 --- /dev/null +++ b/themes/homebrewtheme/templates/author.html @@ -0,0 +1,7 @@ +{% extends "index.html" %} + +{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %} +{% block content_title %} +

Articles by {{ author }}

+{% endblock %} + diff --git a/themes/homebrewtheme/templates/authors.html b/themes/homebrewtheme/templates/authors.html new file mode 100644 index 0000000..4914904 --- /dev/null +++ b/themes/homebrewtheme/templates/authors.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Authors{% endblock %} + +{% block content %} +

Authors on {{ SITENAME }}

+ + +{% endblock %} diff --git a/themes/homebrewtheme/templates/banner.html b/themes/homebrewtheme/templates/banner.html new file mode 100644 index 0000000..14dd55c --- /dev/null +++ b/themes/homebrewtheme/templates/banner.html @@ -0,0 +1,5 @@ +
+┃ ┃┏━┃┏┏ ┏━┛┏━ ┏━┃┏━┛┃┃┃┏━┛┏━┛┏━┃┃ ┃┏━┛┏━┃ ┏━┛┃  ┃ ┃┏━ 
+┏━┃┃ ┃┃┃┃┏━┛┏━┃┏┏┛┏━┛┃┃┃━━┃┏━┛┏┏┛┃ ┃┏━┛┏┏┛ ┃  ┃  ┃ ┃┏━┃
+┛ ┛━━┛┛┛┛━━┛━━ ┛ ┛━━┛━━┛━━┛━━┛┛ ┛ ┛ ━━┛┛ ┛┛━━┛━━┛━━┛━━   ━ ━
+
diff --git a/themes/homebrewtheme/templates/base.html b/themes/homebrewtheme/templates/base.html new file mode 100644 index 0000000..22f44df --- /dev/null +++ b/themes/homebrewtheme/templates/base.html @@ -0,0 +1,72 @@ + + + + {% block head %} + {% block title %}{{ SITENAME }}{% endblock title %} + + + + + {% if FEED_ALL_ATOM %} + + {% endif %} + {% if FEED_ALL_RSS %} + + {% endif %} + {% if FEED_ATOM %} + + {% endif %} + {% if FEED_RSS %} + + {% endif %} + {% if CATEGORY_FEED_ATOM and category %} + + {% endif %} + {% if CATEGORY_FEED_RSS and category %} + + {% endif %} + {% if TAG_FEED_ATOM and tag %} + + {% endif %} + {% if TAG_FEED_RSS and tag %} + + {% endif %} + + {% from 'syndication.html' import syndication with context %} + {{ syndication(article) }} + + + + {% endblock head %} + + + + + Yes We're Config!™ +
+ {% block content %} + {% endblock %} +
+ + diff --git a/themes/homebrewtheme/templates/categories.html b/themes/homebrewtheme/templates/categories.html new file mode 100644 index 0000000..789cfa1 --- /dev/null +++ b/themes/homebrewtheme/templates/categories.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} +{% block content %} +
+{% for category, articles in categories %} + {{ category }} +{% endfor %} +
+{% endblock %} diff --git a/themes/homebrewtheme/templates/category.html b/themes/homebrewtheme/templates/category.html new file mode 100644 index 0000000..39a8439 --- /dev/null +++ b/themes/homebrewtheme/templates/category.html @@ -0,0 +1,5 @@ +{% extends "index.html" %} +{% block content_title %} +
Everything pertaining to {{ category }}
+{% endblock %} + diff --git a/themes/homebrewtheme/templates/index.html b/themes/homebrewtheme/templates/index.html new file mode 100644 index 0000000..dce61bd --- /dev/null +++ b/themes/homebrewtheme/templates/index.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} +{% block content %} +
+{% block content_title %} +{% endblock %} + +
    +{% for article in articles_page.object_list %} + +{% endfor %} +
+{% if articles_page.has_other_pages() %} + {% include 'pagination.html' %} +{% endif %} +
+{% endblock content %} diff --git a/themes/homebrewtheme/templates/page.html b/themes/homebrewtheme/templates/page.html new file mode 100644 index 0000000..5ce1974 --- /dev/null +++ b/themes/homebrewtheme/templates/page.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% block title %}{{ page.title }}{%endblock%} +{% block content %} + {% import 'translations.html' as translations with context %} + {{ translations.translations_for(page) }} + +
+ {{ page.content }} + + {% if page.modified %} +

+ Last updated: {{ page.locale_modified }} +

+ {% endif %} +
+{% endblock %} diff --git a/themes/homebrewtheme/templates/pagination.html b/themes/homebrewtheme/templates/pagination.html new file mode 100644 index 0000000..4219a5c --- /dev/null +++ b/themes/homebrewtheme/templates/pagination.html @@ -0,0 +1,11 @@ +{% if DEFAULT_PAGINATION %} +

+ {% if articles_page.has_previous() %} + « + {% endif %} + Page {{ articles_page.number }} / {{ articles_paginator.num_pages }} + {% if articles_page.has_next() %} + » + {% endif %} +

+{% endif %} diff --git a/themes/homebrewtheme/templates/period_archives.html b/themes/homebrewtheme/templates/period_archives.html new file mode 100644 index 0000000..d930dbb --- /dev/null +++ b/themes/homebrewtheme/templates/period_archives.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

Archives for {{ period | reverse | join(' ') }}

+ +
+{% for article in dates %} +
{{ article.locale_date }}
+
{{ article.title }}
+{% endfor %} +
+{% endblock %} diff --git a/themes/homebrewtheme/templates/syndication.html b/themes/homebrewtheme/templates/syndication.html new file mode 100644 index 0000000..35375dc --- /dev/null +++ b/themes/homebrewtheme/templates/syndication.html @@ -0,0 +1,56 @@ +{#This template is for syndicating across the fucked up part of the web. It implements Open Graph and Twitter Card metadata to display links to HBSC well on social media +# This code is mostly taken from Talha Mansoor's Elegant pelican theme https://github.com/talha131/pelican-elegant +#} + +{# Thumbnail image to show when homepage is shared on social media. It also +serves as the default image for posts whose featured_image is not set. #} +{% if not FEATURED_IMAGE %} +{% set FEATURED_IMAGE = 'http://homebrewserver.club/extra/featured_image_blue.png' %} +{% else %} +{% set FEATURED_IMAGE = FEATURED_IMAGE %} +{% endif %} + + +{% macro syndication(article) %} +{% if article %} + + + + + +{% if article.date %} + +{% endif %} +{% if article.locale_modified and article.modified %} + +{% endif %} + + + +{% if article.featured_image %} + + +{% else %} + {% if FEATURED_IMAGE %} + + + {% endif %} +{% endif %} +{% endif %} +{% if not article %} + + + + + + + + +{% if FEATURED_IMAGE %} + + +{% endif %} +{% endif %} +{% endmacro %} + + diff --git a/themes/homebrewtheme/templates/tag.html b/themes/homebrewtheme/templates/tag.html new file mode 100644 index 0000000..e69de29 diff --git a/themes/homebrewtheme/templates/tags.html b/themes/homebrewtheme/templates/tags.html new file mode 100644 index 0000000..b5d1482 --- /dev/null +++ b/themes/homebrewtheme/templates/tags.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Tags{% endblock %} + +{% block content %} +

Tags for {{ SITENAME }}

+ {%- for tag, articles in tags|sort %} +
  • {{ tag }} ({{ articles|count }})
  • + {% endfor %} +{% endblock %} diff --git a/themes/homebrewtheme/templates/translations.html b/themes/homebrewtheme/templates/translations.html new file mode 100644 index 0000000..db8c372 --- /dev/null +++ b/themes/homebrewtheme/templates/translations.html @@ -0,0 +1,9 @@ +{% macro translations_for(article) %} +{% if article.translations %} +Translations: +{% for translation in article.translations %} +{{ translation.lang }} +{% endfor %} +{% endif %} +{% endmacro %} +