collapsing dir structure

This commit is contained in:
evilchili
2022-07-30 15:00:24 -07:00
parent 2796d56426
commit fd6131ad5a
99 changed files with 3394 additions and 33 deletions
@@ -0,0 +1,11 @@
{% if GOOGLE_ANALYTICS %}
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}");
pageTracker._trackPageview();
} catch(err) {}</script>
{% endif %}
+12
View File
@@ -0,0 +1,12 @@
{% set lim = count or 10 %}
{% set a = articles | selectattr(key, 'in', values) | list %}
<div class='cards'>
{% for article in a[:lim] %}
<div class='card curled'>
<article class="hentry">
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
<div class="entry-content"> {{ article.summary }} </div><!-- entry-content -->
</article>
</div>
{% endfor %}
</div>
@@ -0,0 +1,18 @@
<div class='pager'>
<div class='prev'>
{% if articles_page.has_previous() %}
{% set num = articles_page.previous_page_number() %}
<a href="{{ SITEURL }}/{{ page_name }}{{ num if num > 1 else '' }}.html">← Previous</a>
{% else %}
<a>← Previous</a>
{% endif %}
</div>
<div class='middle'>&nbsp;</div>
<div class='next'>
{% if articles_page.has_next() %}
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html">Next →</a>
{% else %}
<a>Next →</a>
{% endif %}
</div>
</div>
@@ -0,0 +1,9 @@
{% for article in articles_page.object_list | selectattr('field', 'in', values) %}
<div class='sign curled'>
<article class="hentry">
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
<div class="entry-content"> {{ article.summary }} </div><!-- entry-content -->
</article>
</div>
{% endfor %}
+8
View File
@@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %} Articles in {{ category }} category - {{ SITENAME }}{% endblock %}
{% block navclass %}{%endblock%}
{% block archclass %} class="active"{%endblock%}
{% block content_title %}
<h2>Articles in the {{ category }} category</h2>
{% endblock %}
@@ -0,0 +1,17 @@
<div class='pager'>
<div class='prev'>
{% if dates_previous_page %}
<a href="{{ SITEURL }}/{{ dates_previous_page.url }}">&#8647;</a>
<a href="{{ SITEURL }}/{{ dates_previous_page.url }}">&laquo;</a>
{% endif %}
</div>
<div class='middle'>
Page {{ dates_previous_page.number }} / {{ dates_next_page.num_pages }}
</div>
<div class='next'>
{% if dates_next_page %}
<a href="{{ SITEURL }}/{{ dates_next_page.url }}">&raquo;</a>
<a href="{{ SITEURL }}/{{ dates_next_page.url }}">&#8649;</a>
{% endif %}
</div>
</div>
+16
View File
@@ -0,0 +1,16 @@
{% if PIWIK_URL and PIWIK_SITE_ID %}
<script type="text/javascript">
{% if PIWIK_SSL_URL %}
var pkBaseURL = (("https:" == document.location.protocol) ? "https://{{ PIWIK_SSL_URL }}/" : "http://{{ PIWIK_URL }}/");
{% else %}
var pkBaseURL = (("https:" == document.location.protocol) ? "https://{{ PIWIK_URL }}/" : "http://{{ PIWIK_URL }}/");
{% endif %}
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {{ PIWIK_SITE_ID }});
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://{{ PIWIK_URL }}/piwik.php?idsite={{ PIWIK_SITE_ID }}" style="border:0" alt="" /></p></noscript>
{% endif %}
@@ -0,0 +1,16 @@
<div class='box curled'>
<hr>
</hr>
</div>
<div class='column'>
<div class='signs'>
<h3>Recent Sessions</h3>
{% with count=10, key='category', values=['sessions', 'test'] %}{% include "signs.html" %}{% endwith %}
</div>
</div>
<div class='column'>
<h3>Recent Lore</h3>
<div class='signs'>
{% with count=10, key='category', values=['lore', 'dm'] %}{% include "signs.html" %}{% endwith %}
</div>
</div>
+5
View File
@@ -0,0 +1,5 @@
this is a simple bootstrap pelican theme based on bootstrap [Narrow jumbotron](http://getbootstrap.com/examples/jumbotron-narrow/) template
## Screenshot ##
![screenshot](screenshot.png)
Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

@@ -0,0 +1,882 @@
@font-face {
font-family: 'display';
src: url('/theme/deadsands/fonts/RewardPersonalUseRegular-qZAl5.ttf');
}
@font-face {
font-family: 'headers';
src: url('/theme/deadsands/fonts/edmunds.otf');
}
@font-face {
font-family: 'body';
src: url('/theme/deadsands/fonts/LibreBaskerville-Regular.ttf');
font-weight: normal;
}
@font-face {
font-family: 'body';
src: url('/theme/deadsands/fonts/LibreBaskerville-Bold.ttf');
font-weight: bold;
}
@font-face {
font-family: 'body';
src: url('/theme/deadsands/fonts/LibreBaskerville-Italic.ttf');
font-style: italic;
font-weight: normal;
}
@font-face {
font-family: 'nav';
src: url('/theme/deadsands/fonts/marlboro.regular.ttf');
}
@font-face {
font-family: 'dropcase';
src: url('/theme/deadsands/fonts/edmunds_distressed.otf');
}
@font-face {
font-family: 'note';
src: url('/theme/deadsands/fonts/ReenieBeanie-Regular.ttf');
}
html, body {
width:100%;
height:100%;
}
/* Space out content a bit */
body {
background: #702623;
padding-bottom: 20px;
}
#background {
position: relative;
z-index: 1;
min-height: 500px;
background: #EFDFBE;
background-image: url("/theme/deadsands/background.jpg");
background-position: center;
background-repeat: no-repeat;
background-size: 100% auto;
background-position: bottom;
}
a {
color: #702623;
text-decoration: none;
font-weight: bold;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h5 a {
font-weight: inherit;
}
h1, h2, h3, h4, h5, h6 {
letter-spacing: 0.05em;
padding:0px;
font-family: 'headers';
text-align: center;
color: #692F28;
margin: 0px auto;
margin-bottom: 0.5em;
width: 100%;
}
h4, h5, h6 {
color: inherit;
}
h1 { font-size: 4.0em; }
h2 { font-size: 3.5em; }
h3 { font-size: 2.5em; }
h4 { font-size: 2.0em; }
h5 { font-size: 1.5em; }
h6 { font-size: 1.25em; }
.container h3:before, .container h3:after {
content: "★";
font-size: 0.75em;
padding: 0px 5px;
color:#cca138;
}
.container a:hover, .container a:active {
color:#cca138;
}
.container .box h2:first-of-type {
text-transform: capitalize;
text-align: center;
}
.container .box h2:first-of-type a {
color: inherit;
}
.container .box {
position: relative;
width: 100%;
max-width:960px;
text-align: justify;
font-family: 'body';
background: rgb(244,241,232);
background: radial-gradient(circle, rgba(255,255,255,1) 35%, rgba(244,241,232,1) 100%);
}
.container .box p:last-of-type {
padding-bottom: 1.5em;
}
.container .box p:first-of-type::first-letter {
font-family: 'dropcase';
font-size: 5em;
float: left;
margin: 0px;
margin-top: -0.25em;
margin-bottom: -0.5em;
padding: 0px;
padding-right: 5px;
color: #692F28;
}
.container .box article.recent p:first-of-type::first-letter {
font-family: inherit;
font-size: inherit;
float: inherit;
margin: inherit;
padding: inherit;
color: inherit;
}
article.recent {
font-style: italic;
margin-bottom: 1em;
width: 100%;
}
article.recent a.title {
font-weight; bold;
font-style: normal;
}
/* Custom page header */
.header {
position: relative;
display: block;
margin: 0px auto;
padding: 0px;
text-align: center;
}
#header_background {
width: 100%;
background: #EFDFBE;
}
/* Make the masthead heading the same height as the navigation */
.header .title {
position: relative;
display: block;
z-index: 2;
}
.header .sun {
position: absolute;
top: 1.5em;
left: 62%;
display: inline-block;
width: 6em;
height: 6em;
border-radius: 50%;
background-color: #D9B645;
z-index: 1;
}
.header .title h1 {
font-family: 'display';
font-size: 7em;
margin: 0;
padding: 0;
letter-spacing: 0.15em;
}
.header .title h1 a{
color: #692F28;
text-decoration:none;
font-weight: normal;
}
.byline {
font-size: 1.25em;
font-family: 'nav';
text-transform: uppercase;
margin-bottom: 0.5em;
}
table {
padding: 1em;
width: 100%;
margin: 1em 0em;
}
th {
border-bottom: 1px solid #999;
}
td {
width: auto;
padding-right: 1em;
}
tr:nth-child(even) {
background: rgba(244,241,232, 0.5);
}
tr:nth-child(odd) {
background: rgba(255,255,255, 0.5);
}
tr td:last-of-type: {
width: 100%;
padding-right: 0;
}
table.archive-list td.date, td.category {
white-space: nowrap;
width: auto;
font-size: 1.25em;
font-family: 'nav';
text-transform: uppercase;
}
table.archive-list td.title {
width: 100%;
text-transform: capitalize;
}
/* Column-first tables /*
/* don't delete */
ol {
display: block;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
align-items: start;
width: 100%;
margin: 0;
list-style: none;
padding: 0;
text-justify: left;
}
/* row */
ol > li {
width: 100%;
}
ol > li:nth-child(even) {
background: rgba(244,241,232, 0.5);
}
ol > li:nth-child(odd) {
background: rgba(255,255,255, 0.5);
}
ol > li:first-of-type {
background: transparent;
font-weight: bold;
border-bottom: 1px solid #999;
}
ol > li > ul {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: start;
justify-content: space-between;
padding: 0px;
}
ol > li ul > li {
display: flex;
flex-direction: row;
flex-wrap: wrap;
list-style-type: none;
padding: 0.5em;
text-align: left;
}
ol > li > ul > li:first-child:nth-last-child(1) { min-width: 100%; }
ol > li > ul > li:first-child:nth-last-child(2), ol > li > ul > li:first-child:nth-last-child(2) ~ li { width: 100%; }
ol > li > ul > li:first-child:nth-last-child(3), ol > li > ul > li:first-child:nth-last-child(3) ~ li { width: 50%; }
ol > li > ul > li:first-child:nth-last-child(4), ol > li > ul > li:first-child:nth-last-child(4) ~ li { width: 33%; }
ol > li > ul > li:first-child:nth-last-child(5), ol > li > ul > li:first-child:nth-last-child(5) ~ li { width: 25%; }
ol > li > ul > li:first-child:nth-last-child(6), ol > li > ul > li:first-child:nth-last-child(6) ~ li { width: 20%; }
ol > li:first-child > ul > li:last-of-type {
display: none;
}
ol > li > ul li:last-of-type {
flex-direction: column;
width: 100% !important;
margin-left: 3em;
margin-bottom: 1em;
}
.archive-list {
}
.archive-list ul {
}
.archive-list li {
list-style: none;
font-family: 'nav';
font-size: 1.25em;
}
/* Custom page footer */
.footer {
text-align: right;
}
#content {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
align-items: start;
width: 100%;
}
.content {
font-family: 'body';
position: relative;
}
.column {
margin: 1em 0;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
flex-direction: row;
}
.cards {
flex-direction: row;
margin: 1em auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: start;
width: 100%;
}
.cards .card {
display: flex;
flex: 0 1 calc(50% - 2em);
margin: 1em auto;
width: 100%;
min-height: 200px;
}
.cards .card article {
width: 100%;
min-height: 100px;
}
.scrap {
display: block;
float: right;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
}
.scrap .note {
font-family: 'note';
font-size: 1.5em;
line-height: 1.0em;
text-align: left;
width: 200px;
padding: 10px;
min-height: 200px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 60%), 0 0 25px rgba(0, 0, 0, 20%) inset;
background: #e8d4b3;
}
.note address{
display:inline;
}
.bottom-nav{display:none;}
.bottom-nav a{margin-left:15px;}
.container {
position: relative;
z-index: 1;
padding: 20px 0px;
max-width:960px;
}
.container:after {
content:"";
display:block;
clear:both;
visibility:hidden;
height:0;
font-size:0;
}
hr {
font-size: 2em;
position: relative;
outline: 0;
border: 0;
color: #692F28;
text-align: center;
margin: 10px auto;
opacity: 1;
}
hr:before {
content: '';
background: linear-gradient(to right, transparent, #000, transparent);
background: #000;
position: absolute;
left: 0;
top: 50%;
width: 100%;
height: 1px;
}
hr:after {
content: '⭑';
position: relative;
display: inline-block;
color: #000;
font-weight: bold;
padding: 0 0.25em;
line-height: 1.5em;
background: transparent;
text-shadow: -2px 0 #FFF, 0 2px #FFF, 2px 0 #FFF, 0 -2px #FFF;
}
hr.divider {
font-size: 2em;
font-weight: bold;
line-height: 1em;
position: relative;
outline: 0;
border: 0;
color: #000;
text-align: center;
height: 1.5em;
margin: 0px auto;
width: 100%;
}
hr.divider:before {
content: '';
background: #000;
position: absolute;
left: 0;
top: 50%;
width: 100%;
height: 1px;
}
hr.divider:after {
content: '☠';
position: relative;
display: inline-block;
color: #000;
font-weight: bold;
padding: 0 0.25em;
line-height: 1.5em;
background-color: transparent;
text-shadow: none;
}
.pager {
font-family: 'nav';
text-align:center;
text-justify: center;
}
.pager .prev {
flex: 0 1 calc(50% - 2em);
line-height: 2em;
}
.pager .middle {
display: none;
flex: 0 1 2em;
font-size: 2em;
line-height: 1em;
padding: 0px;
}
.pager .next {
flex: 0 1 calc(50% - 2em);
line-height: 2em;
}
ul.nav {
font-family: 'nav';
display: block;
padding: 0px;
margin: 0px;
}
ul.nav li {
width: 100%;
display: block;
padding: 0px 10px;
}
ul.nav li:hover, ul.nav li:active {
background-color: #D9B645;
}
ul.nav li a, .pager a {
text-transform: uppercase;
font-size: 1.5em;
color: #000;
}
ul.nav li:first-child:before {
display: none;
content: '⭑';
padding-right: 1em;
}
ul.nav li:after {
display: none;
content: '⭑';
padding-left: 1em;
}
ul.nav li a:hover, ul.nav li a:active {
text-decoration: underline;
}
ul.cloud {
list-style: none;
padding-left: 0;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
line-height: 2.75rem;
width: 450px;
}
ul.cloud a {
/*
Not supported by any browser at the moment :(
--size: attr(data-weight number);
*/
--size: 4;
--color: #a33;
color: var(--color);
font-family: 'headers';
font-size: calc(var(--size) * 1.0rem + 0.5rem);
display: block;
padding: 0.125rem 0.25rem;
position: relative;
text-decoration: none;
/*
For different tones of a single color
opacity: calc((15 - (9 - var(--size))) / 15);
*/
}
ul.cloud a[data-weight="1"] { --size: 1; }
ul.cloud a[data-weight="2"] { --size: 2; }
ul.cloud a[data-weight="3"] { --size: 3; }
ul.cloud a[data-weight="4"] { --size: 4; }
ul.cloud a[data-weight="5"] { --size: 6; }
ul.cloud a[data-weight="6"] { --size: 8; }
ul.cloud a[data-weight="7"] { --size: 10; }
ul.cloud a[data-weight="8"] { --size: 13; }
ul.cloud a[data-weight="9"] { --size: 16; }
ul[data-show-value] a::after {
content: " (" attr(data-weight) ")";
font-size: 1rem;
}
ul.cloud li:nth-child(2n+1) a { --color: #181; }
ul.cloud li:nth-child(3n+1) a { --color: #33a; }
ul.cloud li:nth-child(4n+1) a { --color: #c38; }
ul.cloud a:focus {
outline: 1px dashed;
}
ul.cloud a::before {
content: "";
position: absolute;
top: 0;
left: 50%;
width: 0;
height: 100%;
background: var(--color);
transform: translate(-50%, 0);
opacity: 0.15;
transition: width 0.25s;
}
a.disabled,
a.disabled:active,
a.disabled:hover {
color: #333;
}
.statblock h4, .statblock h5, .statblock h6 {
border: none;
}
.statblock table,
.statblock table tr {
width: 100%;
}
.statblock table th {
border: none;
white-space: nowrap;
vertical-align: top;
}
.statblock table th, .statblock table td {
padding: 0.5em;
width: 1%;
text-align: left;
}
.statblock table ul {
padding-left: 1em;
}
.two-column {
column-count: 2;
display: block;
}
.two-column div {
break-inside: avoid-column;
}
.statblock table,
.statblock table tr {
break-inside: avoid-column;
width: 100%;
}
.statblock table th {
width: 1%;
font-weight: bold;
}
table.last-wide tr:last-child {
width: 100%;
}
table.auto, table.auto tr, table.auto th, table.auto td {
width: auto;
}
.statblock, dl.spoiler {
margin: 20px auto;
padding: 10px;
/*
background: rgb(255,255,255);
background: linear-gradient(135deg, rgba(255,255,255,1) 40%, #A2B672 100%);
*/
border: 1px solid #AAA;
}
.statblock .separator {
content: "";
display:block;
width: 100%;
margin: 10px 0px;
border-top: 3px solid #28371C;
}
/* Stat block typography */
.statblock {
font-size: 0.75em;
}
.statblock h2, h3, h4, h5, h6 {
padding-bottom: 5px;
border-bottom: 1px solid #28371C;
text-transform: capitalize;
}
.statblock .name {
font-weight: 700;
font-size: 2em;
font-variant: small-caps;
margin: 0;
margin-top: -10px;
}
.statblock .name:hover {
color: #28371C;
}
.statblock .size {
font-style: italic;
margin-top: -3px;
padding-left:2px;
}
.statblock .stat {
font-size:0.9em;
color: #28371C;
font-weight: bold;
}
.statblock .stat .value {
color: #333;
font-weight:normal;
padding-left: 3px;
}
.statblock .ability-scores ul {
font-size: 1.2rem;
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
list-style: none;
margin: 0 auto;
padding: 0;
color: #28371C;
font-weight: bold;
}
.statblock .ability-scores ul li {
width: calc(100% / 6);
font-size: 0.8em;
text-align: center;
}
.statblock .ability-scores ul.score li small {
font-weight: normal;
color: #333;
}
.statblock p {
font-family: Roboto,Helvetica,sans-serif !important;
text-align: justify;
}
.statblock p strong::after {
content: '.';
display: inline;
}
.statblock p em {
padding-right: 5px;
}
.statblock p em::after {
content: ':';
display:inline;
}
@media screen and (min-width: 900px) {
.column {
flex: 0 1 calc(50% - 2em);
flex-direction: column;
margin: 0px;
}
}
@media screen and (min-width: 768px) {
/* affix the background */
#background {
background-attachment: fixed;
min-height: 100%;
}
/* set nav bars to horizontal */
ul.nav {
display: inline-flex;
justify-content: space-between;
}
ul.nav li {
display: flex;
width: auto;
}
.pager {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.pager .middle {
display: block;
}
.pager .prev {
text-align: right;
}
.pager .next {
text-align: left;
}
/* enable fancy star decorations */
ul.nav li:first-child:before,ul.nav li:after {
display: inherit;
}
/* disable background highlight on hover */
ul.nav li:hover, ul.nav li:active {
background: inherit;
}
.scrap {
margin-top: -7.5em;
margin-right: -4em;
padding: 20px;
}
.scrap .note {
transform: rotate(6deg);
}
}
/* Curled corners */
.curled {
position: relative;
border: 1px solid #efefef;
-moz-border-radius: 0 0 120px 120px / 0 0 6px 6px;
border-radius: 0 0 120px 120px / 0 0 6px 6px;
padding: 1em;
margin: 2em 10px 4em;
background: #fff;
-webkit-box-shadow: 0 1px 4px rgb(0 0 0 / 60%), 0 0 40px rgb(0 0 0 / 30%) inset;
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6), 0 0 40px rgba(0, 0, 0, 0.3) inset;
box-shadow: 0 1px 4px rgb(0 0 0 / 60%), 0 0 40px rgb(0 0 0 / 30%) inset;
}
.curled:before,
.curled:after {
content:"";
position:absolute;
z-index:-2;
bottom:17px;
left:10px;
width:50%;
height:55%;
max-width: 200px;
max-height: 100px;
-webkit-box-shadow:0 26px 6px rgba(0, 0, 0, 0.6);
-moz-box-shadow:0 26px 6px rgba(0, 0, 0, 0.6);
box-shadow:0 26px 6px rgba(0, 0, 0, 0.6);
-webkit-transform:skew(-8deg) rotate(-3deg);
-moz-transform:skew(-8deg) rotate(-3deg);
-ms-transform:skew(-8deg) rotate(-3deg);
-o-transform:skew(-8deg) rotate(-3deg);
transform:skew(-8deg) rotate(-3deg);
}
.curled:after {
right:10px;
left:auto;
-webkit-transform:skew(8deg) rotate(3deg);
-moz-transform:skew(8deg) rotate(3deg);
-ms-transform:skew(8deg) rotate(3deg);
-o-transform:skew(8deg) rotate(3deg);
transform:skew(8deg) rotate(3deg);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

@@ -0,0 +1,24 @@
{% extends "base.html" %}
{% block archclass %} class="active"{%endblock%}
{% block title %}Site Index - {{SITENAME}}{%endblock%}
{% block content %}
<div class='box curled'>
<h2>Index</h2>
<hr>
{% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %}
<!--<h3><a href="{{SITEURL}}/{{year}}">{{ year }}</a></h3>-->
<h3>{{ year }}</h3>
<table class='archive-list'>
{% for article in date_year %}
<tr>
<td class="date">{{article.locale_date}}</td>
<td class='category'>{{article.category}}</td>
<td class='title'><a href="{{ SITEURL }}/{{ article.url }}">{{article.title}}</a> </td>
</tr>
{% endfor %}
</table>
<hr>
{% endfor %}
</div>
{% endblock %}
@@ -0,0 +1,22 @@
{% extends "base.html" %}
{% block title %}{{ article.title|capitalize }} - {{SITENAME}}{% endblock title %}
{% block content %}
<section id="content">
<div class='box curled'>
<h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(article) }}
<hr>
<div class='byline'>
<span class='date'>{{ article.locale_date }}</span>&nbsp;{% if article.tags %}{% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> {% endfor %}{% endif %}
</div>
{% if article.description %}
<div class='scrap'><div class='note'>{{ article.description }}</div></div>
{% endif %}
{{ article.content }}
<hr>
{% include "bottom-nav.html" %}
</div>
</section>
{% endblock %}
@@ -0,0 +1,7 @@
{% extends "index.html" %}
{% block title %} Articles by {{ author }} - {{ SITENAME }}{% endblock %}
{% block navclass %}{%endblock%}
{% block content_title %}
<h2>Articles by {{ author }}</h2>
{% endblock %}
@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
{% block head %}
<title>{% block title %}{{ SITENAME }}{% endblock %}</title>
<meta charset="utf-8" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
<link href="{{ SITEURL }}/theme/deadsands/css/style.css" rel="stylesheet" />
{% if FAVICON %}
<link rel="shortcut icon" href="{{ SITEURL }}/{{ FAVICON }}" type="image/x-icon" />
{% endif %}
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
{% endblock head %}
</head>
<body id="index" class="archive">
<div id='header_background'>
<div class="header">
<div class='sun'></div>
<div class='title'><h1><a href="/">{{ SITENAME }}</a></h1></div>
<ul class="nav">
{% for category, articles in categories %}
<li><a href="{{ SITEURL }}/{{ category.name }}">{{ category }}</a></li>
{% endfor %}
{% for p in pages %}
<li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
{% for m in MENU_ITEMS %}<li><a href="{{ SITEURL }}/{{ m[1] }}">{{ m[0] }}</a></li>{% endfor %}
</ul>
</div>
</div>
<div id='background'>
<div class="container">{% block content %}{% endblock %}</div>
<footer id="contentinfo" class="footer">
<nav class="pull-right bottom-nav">
<a href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}">RSS</a>
</nav>
<address id="about" class="vcard body">
<!--
&copy; <a href="{{SITEURL}}">{{SITENAME}}</a> Proudly powered by <a href="http://getpelican.com/">Pelican</a>
-->
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</div>
</body>
</html>
@@ -0,0 +1,22 @@
{% set all = articles|selectattr('category', 'equalto', category)|list %}
{% if article in all %}
{% set pos = all.index(article) %}
{% set next = all[pos - 1] if pos > 0 else "" %}
{% set prev = all[pos + 1] if pos < all|length else "" %}
<div class='pager'>
<div class='prev'>
{% if prev %}
<a href="{{ SITEURL }}/{{ prev.url }}">← {{ prev.title }}</a>
{% else %}
<a class='disabled'>← Previous</a>
{% endif %}
</div>
<div class='middle'>&nbsp;</div>
<div class='next'>
{% if next %}
<a href="{{ SITEURL }}/{{ next.url }}">{{ next.title }} →</a>
{% else %}
<a class='disabled'>Next →</a>
{% endif %}
</div>
{% endif %}
@@ -0,0 +1,10 @@
{% extends "base.html" %}
{% block title %} {{ category }} - {{ SITENAME }}{% endblock %}
{% block archclass %} class="active"{%endblock%}
{% block content %}
<ul>
{% for category, articles in categories %}
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a></li>
{% endfor %}
</ul>
{% endblock %}
@@ -0,0 +1,17 @@
<div class='box curled'>
<h2>{{ title | capitalize }}</a></h2>
<hr>
{% for year, date_year in dates|selectattr(key, 'in', values)|groupby( 'date.year' )|sort(reverse=True) %}
<h3>{{ year }}</h3>
<table class='archive-list'>
{% for article in date_year %}
<tr>
<td class="date">{{article.locale_date}}</td>
<td class='category'>{{article.category}}</td>
<td class='title'><a href="{{ SITEURL }}/{{ article.url }}">{{article.title}}</a> </td>
</tr>
{% endfor %}
</table>
{% endfor %}
<hr>
</div>
@@ -0,0 +1,13 @@
{% extends "base.html" %}
{% block title %}{{ category if category else tag if tag else "" |capitalize }} - {{SITENAME}}{% endblock title %}
{% block navclass %}active{%endblock%}
{% block content %}
<section id="content" class="content">
{% if category %}
{% with key='category', values=[category], title=category %}{% include "category-index.html" %}{% endwith %}
{% elif tag %}
{% include "tag-index.html" %}
{% endif %}
</section>
{% endblock content %}
@@ -0,0 +1,26 @@
{% extends "base.html" %}
{% block title %}{{ page.title }} - {{SITENAME}}{%endblock%}
{% block content %}
<div class='box curled'>
<h2>{{ page.title }}</h2>
<hr>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(page) }}
{{ page.content }}
<hr>
{% if page.metadata['show_recent'] %}
<div class='column'>
<div class='signs'>
<h3>Recent Sessions</h3>
{% with count=10, key='category', values=['sessions', 'test'] %}{% include "signs.html" %}{% endwith %}
</div>
</div>
<div class='column'>
<h3>Recent Lore</h3>
<div class='signs'>
{% with count=10, key='category', values=['lore', 'dm'] %}{% include "signs.html" %}{% endwith %}
</div>
</div>
{% endif %}
</div>
{% endblock %}
@@ -0,0 +1,19 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }}: A 5e Homebrew Campaign{%endblock%}
{% block content %}
<section id='content' class='content'>
<div class='box curled'>
<hr>
{{ page.content }}
<hr>
</div>
<div class='column box curled'>
<h3>Recent Sessions</h3>
{% with count=10, key='category', values=['sessions', 'test'] %}{% include "recent.html" %}{% endwith %}
</div>
<div class='column box curled'>
<h3>Recent Lore</h3>
{% with count=10, key='category', values=['lore', 'dm'] %}{% include "recent.html" %}{% endwith %}
</div>
</section>
{% endblock %}
@@ -0,0 +1,7 @@
{% set lim = count or 10 %}
{% set a = articles | selectattr(key, 'in', values) | list %}
{% for article in a[:lim] %}
<article class='recent'>
<a class='title' href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{article.title|striptags }}">{{ article.title }}</a><span class="summary"> {{ article.summary }} </span>
</article>
{% endfor %}
@@ -0,0 +1,98 @@
{% extends "base.html" %}
{% block title %}{{ article.title|capitalize }} - {{SITENAME}}{% endblock title %}
{% block content %}
{% set r = article.metadata.region %}
<section id="content">
<div class='box curled'>
<h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(article) }}
<hr>
<div class='byline'>
<span class='date'>{{ article.locale_date }}</span>&nbsp;{% if article.tags %}{% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> {% endfor %}{% endif %}
</div>
{% if article.description %}
<div class='scrap'><div class='note'>{{ article.description }}</div></div>
{% endif %}
{{ article.content }}
<div class='statblock'>
<div class='two-column'>
<h3>{{ article.title }}</h3>
<table class='auto'>
<tr>
<td colspan='2'>{{ r.description }}</td>
</tr>
<tr>
<th>Size</th>
<td>{{ r.size }} sq. miles</td>
</tr>
<tr>
<th>Terrain</th>
<td>{{ r.terrain }}</td>
</tr>
<tr>
<th>Encounters On</th>
<td>{{ r.encounters }}</td>
</tr>
<tr>
<th>Challenge Rating</th>
<td>{{ r.cr }}</td>
</tr>
<tr>
<th>Regional Effects</th>
<td>
<ul>{% for e in r.regional_effects %}<li>{{ e }}</li>{% endfor %}</ul>
</td>
</tr>
</table>
<div>
<h4>Weather</h4>
<table class='auto'>
<tr><th>Roll</th><th>Effect</td></tr>
<tr><td>d1</td><td>{{ r.weather.d1 }}</td></tr>
<tr><td>d2</td><td>{{ r.weather.d2 }}</td></tr>
<tr><td>d3</td><td>{{ r.weather.d3 }}</td></tr>
<tr><td>d4</td><td>{{ r.weather.d4 }}</td></tr>
<tr><td>d5</td><td>{{ r.weather.d5 }}</td></tr>
<tr><td>d6</td><td>{{ r.weather.d6 }}</td></tr>
<tr><td>d7</td><td>{{ r.weather.d7 }}</td></tr>
<tr><td>d8</td><td>{{ r.weather.d8 }}</td></tr>
</table>
</div>
</div>
<br>
<h4>Activities</h4>
<table class='min'>
<thead>
<tr>
<th>&nbsp;</td>
<th>DC</th>
<th>Resources</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{% for (k, v) in [ ('Travel', r.travel), ('Forage', r.forage), ('Track', r.track), ('Evade', r.evade), ('Survey', r.survey) ] %}
<tr>
<th>{{ k }}</th>
<td>{{ v.dc or ""}}</td>
<td>{{ v.resources or ""}}</td>
<td>
{% if v.critical_success %}crit. success = {{ v.critical_success }}<br>{% endif %}
{% if v.critical_failure %}crit. failure = {{ v.critical_failure }}<br>{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
<hr>
{% include "bottom-nav.html" %}
</div>
</section>
{% endblock %}
@@ -0,0 +1,19 @@
<div class='box curled'>
<h2>{{ tag }}</a></h2>
<hr>
{% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %}
<h3>{{ year }}</h3>
<table class='archive-list'>
{% for article in date_year %}
{% if tag in article.tags %}
<tr>
<td class="date">{{article.locale_date}}</td>
<td class='category'>{{article.category}}</td>
<td class='title'><a href="{{ SITEURL }}/{{ article.url }}">{{article.title}}</a> </td>
</tr>
{% endif %}
{% endfor %}
</table>
{% endfor %}
<hr>
</div>
@@ -0,0 +1,17 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Tags{% endblock %}
{% block content %}
<section id="content" class="content">
<div class='cards'>
<div class='card curled'>
<ul class='cloud'>
{% for tag, articles in tags|sort %}
<li><a href="{{ SITEURL }}/{{ tag.url }}" data-weight={{ articles|count }}>{{ tag }}</a></li>
{% endfor %}
</ul>
</div>
</div>
</section>
{% endblock %}