site relaunch

This commit is contained in:
evilchili
2023-06-11 21:35:15 -07:00
parent a6c101b01b
commit b70e416a3f
38 changed files with 834 additions and 70 deletions
@@ -136,13 +136,14 @@ h6 { font-size: 1.25em; }
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;
.container .box article.recent p:first-of-type::first-letter,
.summary p:first-of-type::first-letter {
font-family: inherit !important;
font-size: inherit !important;
float: inherit !important;
margin: inherit !important;
padding: inherit !important;
color: inherit !important;
}
img {
@@ -186,6 +187,19 @@ img {
text-justify: left;
}
.thumbnail {
float: right;
max-width: 150px;
margin-left: 1em;
}
.thumbnail img {
border: 1px solid black;
box-shadow: inset 0px 0px 4px 0px rgba(0,0,0,1);
max-width: 150px;
max-height: 150px;
height: auto;
}
article.recent {
font-style: italic;
margin-bottom: 1em;
@@ -196,6 +210,7 @@ article.recent a.title {
font-style: normal;
}
article.recent .pull,
article.recent h3,
article.recent h4,
article.recent h5,
@@ -753,6 +768,46 @@ a.disabled:hover {
display: none;
}
.statblock > .stat {
font-weight: bold;
}
.statblock > .stat > .value {
font-weight: normal;
margin-left: 0.5em;
}
.monster {
font-family: Roboto,Helvetica,sans-serif !important;
text-align: justify;
font-size: 0.9em;
column-count: 2;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid-column;
}
.monster h3, h4 {
margin-bottom: 0;
}
.monster h4 {
margin-top: 1em;
border-bottom: 1px solid #000;
}
.monster hr {
content: "";
display: block;
width: 100%;
margin: 10px 0px;
}
.monster-type {
text-align: center;
}
.pull {
float: right;
max-width: 40%;
@@ -810,6 +865,19 @@ a.disabled:hover {
text-align: left;
}
div.location {
display: block;
clear: both;
}
div.location:hover, div.location:active {
background: rgba(244,241,232, 0.5);
cursor: pointer;
}
div.location:hover h4 a, div.location:active h4 a {
color:#cca138;
}
.container .box p:first-of-type::first-letter {
margin-bottom: -0.5em;
}
@@ -27,14 +27,18 @@
{% if self.is_dm() %}
<li><a href="{{ SITEURL }}/dm">DM</a></li>
{% endif %}
{% if DISPLAY_CATEGORIES_ON_MENU %}
{% for category, articles in categories %}
{% if category != 'dm' %}
<li><a href="{{ SITEURL }}/{{ category.name }}">{{ category }}</a></li>
{% endif %}
{% endfor %}
{% endif %}
{% 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 m in MENU_ITEMS %}<li><a href="{{ SITEURL }}/{{ m[1] }}">{{ m[0] }}</a></li>{% endfor %}
</ul>
</div>
@@ -6,7 +6,11 @@
{% else %}
<section id="content" class="content">
{% if category %}
{% with key='category', values=[category], title=category %}{% include "category-index.html" %}{% endwith %}
{% if category.name in ('locations', ) %}
{% include category.name + "-index.html" %}
{% else %}
{% with key='category', values=[category], title=category %}{% include "category-index.html" %}{% endwith %}
{% endif %}
{% elif tag %}
{% include "tag-index.html" %}
{% endif %}
@@ -0,0 +1,33 @@
{% extends "base.html" %}
{% import "macros.html" as macros %}
{% block title %}{{ article.title|capitalize }} - {{SITENAME}}{% endblock title %}
{% block summary %}{{ article.summary|striptags }}{% endblock %}
{% block key_image %}{{ macros.key_image(article) }}{% endblock key_image %}
{% block content %}
{% if not self.is_dm() and article.category == 'dm' %}
{% else %}
<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>
<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 or article.thumbnail %}
<div class='scrap'>
<div class='note'>
<a href='{{article.image or article.thumbnail}}'><img src='{{article.thumbnail}}'></a>
{{ article.description or '' }}
</div>
</div>
{% endif %}
{{ article.content }}
{% if article.location.type == 'settlement' %}
{% with article=article %}{% include "settlement.html" %}{% endwith %}
{% endif %}
<hr>
{% include "bottom-nav.html" %}
</div>
</section>
{% endif %}
{% endblock content %}
@@ -0,0 +1,36 @@
{% set locations = articles | selectattr('category', 'in', ['locations']) | list | sort(attribute=date) %}
<img src='/images/dewa_qasos.png' class='key_image' alt="Hand-drawn map of the Dewa Q'Asos">
<div class='box curled'>
<h2>A Hopper's Guide To<br>The Dewa Q'Asos</h2>
<h3>Cites, Towns, and Settlements</h3>
{% for location in locations if 'region' not in location.tags %}
<div class='location' onclick="window.location.href='{{ SITEURL }}/{{ location.url }}'">
<h4><a class='title' href="{{ SITEURL }}/{{ location.url }}" rel="bookmark" title="{{location.title|striptags}}">{{ location.title }}</a></h4>
<div class='thumbnail'><a href='{{location.thumbnail}}'><img src='{{ location.thumbnail }}' alt='{{location.title}}'></a></div>
<span class="summary"> {{ location.summary }} </span>
</div>
{% endfor %}
<h3>The Sahwat Desert</h3>
<div class='thumbnail'><a href='/images/overland_map.png'><img src='/images/overland_map.png' alt="The known regions of the Sawhat Desert" /></a></div>
<span class='summary'>
The Sahwat Desert is a vast expanse covering thousands of miles of the Dewa Q'Asos region in southwestern Vosh, from
Tano's Edge to the Sea of Storms. It is comprised of a multitude of regions each with its own geography, weather,
and secrets, ranging from inhospitable to deadly. At the heart of the desert lies an impenetrable whirlwind called
the Heartstorm, through which no one has passed and which is the subject of wild speculation.
<p>
<br>
Travel in the Sahwat is governed by <a href='/mechanics/desert-travel-rules'>the rules for overland travel.</a> Mind how you step, Hopper.
</p>
</span>
{% for location in locations if 'region' in location.tags %}
<div class='location' onclick="window.location.href='{{ SITEURL }}/{{ location.url }}'">
<h4><a class='title' href="{{ SITEURL }}/{{ location.url }}" rel="bookmark" title="{{location.title|striptags}}">{{ location.title }}</a></h4>
<div class='thumbnail'><img src='{{ location.thumbnail }}' alt='{{location.title}}'></a></div>
<span class="summary"> {{ location.summary }} </span>
</div>
{% endfor %}
</div>
<hr>
</div>
@@ -0,0 +1,147 @@
{% extends "base.html" %}
{% import "macros.html" as macros %}
{% block title %}{{ article.title|capitalize }} - {{SITENAME}}{% endblock title %}
{% block summary %}{{ article.summary|striptags }}{% endblock %}
{% block key_image %}{{ macros.key_image(article) }}{% endblock key_image %}
{% block content %}
{% set m = article.metadata.monster %}
<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 %}
{% set target = article.title.replace(' ', '_') %}
{% if self.is_dm() or article.show_dm_content %}
<div class='statblock monster'>
<h3>{{ article.title }}</h3>
<div class='monster-type'>
<em>
{{m.size}} {{m.type}}{% if m.alignment %}, {{m.alignment}}{%endif%}
</em>
</div>
<hr>
<div class='stat'>
Armor Class <span class='value'>{{ m.AC }}</span>
</div>
<div class='stat'>
Hit Points <span class='value'>{{ m.HP }}</span>
</div>
<div class='stat'>
Speed <span class='value'>{{ m.speed }}</span>
</div>
<hr>
<table>
<tr>
<th>STR</th><th>DEX</th><th>CON</th><th>INT</th><th>WIS</th><th>CHA</th>
</tr>
<tr>
<td>{{ m.STR }}</td>
<td>{{ m.DEX }}</td>
<td>{{ m.CON }}</td>
<td>{{ m.INT }}</td>
<td>{{ m.WIS }}</td>
<td>{{ m.CHA }}</td>
</tr>
</table>
<hr>
{% if m.saving_throws %}
<div class='stat'>
Saving Throws <span class='value'>{{ m.saving_throws }}</span>
</div>
{% endif %}
{% if m.skills %}
<div class='stat'>
Skills <span class='value'>{{ m.skills }}</span>
</div>
{% endif %}
{% if m.resistances %}
<div class='stat'>
Damage Resistances <span class='value'>{{ m.resistances }}</span>
</div>
{% endif %}
{% if m.vulnerabilities %}
<div class='stat'>
Damage Vulnerabilities <span class='value'>{{ m.vulnerabilities }}</span>
</div>
{% endif %}
{% if m.damage_immunities %}
<div class='stat'>
Damage Immunities <span class='value'>{{ m.damage_immunities }}</span>
</div>
{% endif %}
{% if m.condition_immunities %}
<div class='stat'>
Condition Immunities <span class='value'>{{ m.condition_immunities }}</span>
</div>
{% endif %}
{% if m.saving_throws %}
<div class='stat'>
Senses <span class='value'>{{ m.senses }}</span>
</div>
{% endif %}
{% if m.languages %}
<div class='stat'>
Languages <span class='value'>{{ m.languages }}</span>
</div>
{% endif %}
{% if m.cr %}
<div class='stat'>
Challenge <span class='value'>{{ m.cr }}</span>
</div>
{% endif %}
<hr>
{% for (attr_name, attr_desc) in m.attributes.items() %}
<div class='stat'>{{ attr_name }}. <span class='value'>{{attr_desc}}</span></div>
{% endfor %}
{% for section in ('Actions', 'Reactions', 'Legendary Actions', 'Legendary Reactions', 'Lair and Actions') %}
{% if section in m.traits %}
{% set trait = m.traits[section] %}
{% if 'attributes' in trait or 'options' in trait %}
<h4>{{ section }}</h4>
{% if trait.attributes %}
{% for (attr_name, attr_desc) in trait.attributes.items() %}
<div class='stat'>{{ attr_name }}. <span class='value'>{{attr_desc}}</span></div>
{% endfor %}
{% endif %}
{% if trait.options %}
{% for (attr_name, attr_desc) in trait.options.items() %}
<div class='stat'>{{ attr_name }}. <span class='value'>{{attr_desc}}</span></div>
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
</div>
{% endif %}
{{ article.content }}
<div class='read'>{{ m.dm_notes }}</div>
<hr>
{% include "bottom-nav.html" %}
</div>
</section>
{% endblock %}
@@ -5,12 +5,6 @@
<div class='box curled'>
<hr>
{{ page.content }}
<hr>
{% if page.show_recent %}
<h3>Recent Posts</h3>
{% with count=10, key='category', values=['lore', 'mechanics', 'regions'] %}{% include "recent.html" %}{% endwith %}
<hr>
{% endif %}
</div>
</section>
{% endblock %}
@@ -15,8 +15,13 @@
<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>
{% if article.description or article.thumbnail %}
<div class='scrap'>
<div class='note'>
<a href='{{article.thumbnail}}'><img src='{{article.thumbnail}}'></a>
{{ article.description or '' }}
</div>
</div>
{% endif %}
{{ article.content }}
@@ -32,7 +37,7 @@
</div>
<dl>
<dt>Size</dt><dd>{{ r.size }} sq. miles </dd>
<dt>Terrain</dt><dd>{{ r.terrain }} (walking: {{ r.size / 10 if r.terrain == 'difficult' else 20 |round }} days)</dd>
<dt>Terrain</dt><dd>{{ r.terrain }} (walking: {{ r.size / (10 if r.terrain == 'difficult' else 20) |round }} days)</dd>
<dt>Regional Effects</dt><dd>{{ macros.table(r.regional_effects) }}</dd>
<dt>Skill Challenges</dt><dd>{{ macros.table(r.skills, ['Skills', 'DC', 'Notes']) }}</dd>
<dt>Encounters (CR {{r.cr}})</dt><dd>{{ macros.table(r.encounters, ['Roll', 'Difficulty']) }}</dd>
@@ -0,0 +1,24 @@
<table>
<tr>
<th>Population</th>
<th>Notable Races</th>
<th>Economy</th>
</tr>
<tr>
<td>{{ article.location.population }}</td>
<td>{{ article.location.notable_races }}</td>
<td>{{ article.location.economy }}</td>
</tr>
</table>
<h3>Stores</h3>
{% set stores = articles |selectattr('tags', 'eq', ['store']) | selectattr('location', 'eq', article.title) | list %}
{% if stores %}
{% for store in stores %}
<div class='location' onclick="window.location.href='{{ SITEURL }}/{{ store.url }}'">
<h4><a class='title' href="{{ SITEURL }}/{{ store.url }}" rel="bookmark" title="{{store.title|striptags}}">{{ store.title }}</a></h4>
<span class="summary"> {{ store.summary }} </span>
</div>
{% endfor %}
{% endif %}