site relaunch
This commit is contained in:
@@ -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> {% 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> {% 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> {% 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 %}
|
||||
|
||||
Reference in New Issue
Block a user