nereare_grimoire 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/404.html +10 -0
  3. data/LICENSE.md +24 -0
  4. data/README.md +38 -0
  5. data/_layouts/adventure.html +26 -0
  6. data/_layouts/chapter.html +21 -0
  7. data/_layouts/default.html +63 -0
  8. data/_layouts/index.html +89 -0
  9. data/_layouts/monster.html +191 -0
  10. data/_layouts/post.html +26 -0
  11. data/_layouts/settlement.html +304 -0
  12. data/_layouts/spell.html +44 -0
  13. data/_plugins/abbr-align.rb +28 -0
  14. data/_plugins/ability.rb +10 -0
  15. data/_plugins/add-sign.rb +9 -0
  16. data/_plugins/articulate.rb +11 -0
  17. data/_plugins/number.rb +9 -0
  18. data/_plugins/ordinal.rb +21 -0
  19. data/_plugins/pluralize.rb +9 -0
  20. data/assets/404.png +0 -0
  21. data/assets/background.jpg +0 -0
  22. data/assets/desc-border.png +0 -0
  23. data/assets/favicon/android-chrome-192x192.png +0 -0
  24. data/assets/favicon/android-chrome-512x512.png +0 -0
  25. data/assets/favicon/apple-touch-icon.png +0 -0
  26. data/assets/favicon/browserconfig.xml +12 -0
  27. data/assets/favicon/favicon-16x16.png +0 -0
  28. data/assets/favicon/favicon-32x32.png +0 -0
  29. data/assets/favicon/favicon.ico +0 -0
  30. data/assets/favicon/mstile-144x144.png +0 -0
  31. data/assets/favicon/mstile-150x150.png +0 -0
  32. data/assets/favicon/mstile-310x150.png +0 -0
  33. data/assets/favicon/mstile-310x310.png +0 -0
  34. data/assets/favicon/mstile-70x70.png +0 -0
  35. data/assets/favicon/safari-pinned-tab.svg +133 -0
  36. data/assets/favicon/site.webmanifest +18 -0
  37. data/assets/favicon.png +0 -0
  38. data/assets/header.png +0 -0
  39. data/assets/note-border.png +0 -0
  40. data/css/boxes.scss +66 -0
  41. data/css/stats-block.scss +159 -0
  42. data/css/style.scss +230 -0
  43. metadata +212 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0c3c3607d9e610dedfa98b6bf5fbeaffa09b1284bd233d2864ec93db203d84e1
4
+ data.tar.gz: '0861be80b757c6c2fa4d36d8cadd58fc57b53391bfb5c799c65048dbe5a46a60'
5
+ SHA512:
6
+ metadata.gz: fb43ab2b16152364f0c4315becbd5f397e19a8f3ad1c9b68501cea5f8bbe9f1f671091b97f7ad3953a35ef564e21eae9700e64ed609ae2cc07d49a0318937559
7
+ data.tar.gz: c5726ca2690f1f6794fb5b7745e657c45136bf889fe0d84581453b14404e4c5cccb9233910308c4c1a414b72b4e2cae1008724a75d6b8c6654ed05ebe3e131cb
data/404.html ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="page-404">
6
+ <img alt="d20 with a natural one" src="{{ 'assets/404.png' | absolute_url }}" />
7
+
8
+ <h2>Page not Found</h2>
9
+ <p>Oops, this page doesn't seem to be on this site. :no_mouth:</p>
10
+ </div>
data/LICENSE.md ADDED
@@ -0,0 +1,24 @@
1
+ # The MIT License (MIT)
2
+
3
+ Copyright © `2019` `Igor Padoim`
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the “Software”), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Grimoire
2
+
3
+ [![GitHub package.json version](https://img.shields.io/github/package-json/v/Nereare/Grimoire)](https://github.com/Nereare/Grimoire)
4
+ [![Gem](https://img.shields.io/gem/v/nereare_grimoire)]()
5
+ [![GitHub](https://img.shields.io/github/license/Nereare/Grimoire)](LICENSE.md)
6
+ [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE-OF-CONDUCT.md)
7
+ [![Travis (.org)](https://img.shields.io/travis/Nereare/Grimoire)](https://travis-ci.org/Nereare/Grimoire)
8
+ [![Libraries.io dependency status for GitHub repo](https://img.shields.io/librariesio/github/Nereare/Grimoire)](https://libraries.io/github/Nereare/Grimoire)
9
+
10
+ A jekyll quasi-wiki for RPG-oriented worldbuilding.
11
+
12
+ ## Contributing
13
+
14
+ Please, also read our [Contributing Guidelines](CONTRIBUTING.md).
15
+
16
+ Also, note that this project is released with a [Contributor Code of Conduct](CODE-OF-CONDUCT.md). By participating in this project you agree to abide by its terms.
17
+
18
+ ## History & Versioning
19
+
20
+ This project uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/Nereare/Grimoire/tags). See the [Change Log](CHANGELOG.md) for history.
21
+
22
+ ## Legal Stuff
23
+
24
+ [![MIT License](http://i.imgur.com/Ze3dFob.png "MIT License")](https://opensource.org/licenses/MIT)
25
+
26
+ ### System Reference Document
27
+
28
+ ![d20 Logo](https://i.imgur.com/8CG0VEv.png)
29
+
30
+ Some of the contents of this site may fall under the [Open Game License](https://www.wizards.com/default.asp?x=d20/srdfaq/20040123b).
31
+
32
+ `d20 System` and the `d20 System` logo are trademarks of Wizards of the Coast, Inc. and are used according to the terms of the d20 System License. A copy of this License can be found at [www.wizards.com](http://www.wizards.com/default.asp?x=d20/article/srdarchive).
33
+
34
+ ### Acknowledgements
35
+
36
+ * [MIT License Logo](http://excaliburzero.deviantart.com/art/MIT-License-Logo-595847140) by [ExcaliburZero](http://excaliburzero.deviantart.com/), available under a [Creative Commons Attribution 3.0 License](https://creativecommons.org/licenses/by/3.0/)
37
+ * Favicon adapted from [D20](https://thenounproject.com/term/d20/1279708/) by Rafaël Massé from the Noun Project (available under a [Creative Commons Attribution License 3.0](https://creativecommons.org/licenses/by/3.0/us/legalcode)).
38
+ * 404 image adapted from [D20](https://thenounproject.com/term/d20/1315314/) by HeadsOfBirds from the Noun Project (available under a [Creative Commons Attribution License 3.0](https://creativecommons.org/licenses/by/3.0/us/legalcode)).
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="eight columns">
6
+ <div class="metadata">
7
+ <h1>{{ page.title | default: 'Adventure' }}</h1>
8
+ <p class="meta">{{ page.author | default: 'Unknown' }} &bull; {{ page.date | default: '1938-07-27' | date: '%A, %B %e, %Y' }}</p>
9
+ </div>
10
+
11
+ {{ content }}
12
+ </div>
13
+
14
+ <div class="four columns">
15
+ <blockquote class="meta">
16
+ <h5>{{ page.adventure.name | default: 'Adventure Name' }}</h5>
17
+ <p class="subtitle">An adventure for {{ page.adventure.char-num | default: 4 | pluralize: 'player character', 'player characters' }} of {% if page.adventure.lvl.range %}levels {{ page.adventure.lvl.min | ordinal }} through {{ page.adventure.lvl.max | ordinal }}{% else %}{{ page.adventure.lvl.lvl | ordinal }} level{% endif %}.</p>
18
+ <p><strong>Max XP:</strong> {{ page.adventure.max-xp | pretty_number }} xp</p>
19
+ <p><strong>Max Gold:</strong> {{ page.adventure.max-gp | pretty_number }} gp</p>
20
+ <p><strong>&#35; Encounters:</strong> {{ page.adventure.max-xp }} xp</p>
21
+ <p><strong>Type:</strong> {{ page.adventure.type }}</p>
22
+ {% if page.adventure.questline %}
23
+ <p><strong>Questline:</strong> <em>{{ page.adventure.questline.name }}</em>{% if page.adventure.questline.chapter %}, Chapter {{ page.adventure.questline.chapter }}{% endif %}</p>
24
+ {% endif %}
25
+ </blockquote>
26
+ </div>
@@ -0,0 +1,21 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="metadata">
6
+ <h1>{{ page.title | default: 'Post' }}</h1>
7
+ <p class="meta">{{ page.author | default: 'Unknown' }} &bull; {{ page.date | default: '1938-07-27' | date: '%A, %B %e, %Y' }}</p>
8
+ <p class="chapter">{{ page.chapter.book }} &bull; Chapter {{ page.chapter.number }}</p>
9
+ <!-- -->
10
+ </div>
11
+
12
+ {{ content }}
13
+
14
+ <div class="chapter links">
15
+ {% if page.chapter.previous != false %}
16
+ <a class="prev" href="{{ page.chapter.previous | prepend: 'chapters/' | append: '.html' | absolute_url }}">Previous Chapter</a>
17
+ {% endif %}
18
+ {% if page.chapter.next != false %}
19
+ <a class="next" href="{{ page.chapter.next | prepend: 'chapters/' | append: '.html' | absolute_url }}">Next Chapter</a>
20
+ {% endif %}
21
+ </div>
@@ -0,0 +1,63 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ site.lang | default: 'en-US' }}">
3
+ <head>
4
+ {% if site.google_analytics %}
5
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
6
+ <script>
7
+ window.dataLayer = window.dataLayer || [];
8
+ function gtag(){dataLayer.push(arguments);}
9
+ gtag('js', new Date());
10
+ gtag('config', '{{ site.google_analytics }}');
11
+ </script>
12
+ {% endif %}
13
+
14
+ {% seo %}
15
+
16
+ <meta charset="UTF-8">
17
+ <meta name="viewport" content="width=device-width, initial-scale=1">
18
+
19
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ 'assets/favicon/apple-touch-icon.png' | absolute_url }}">
20
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ 'assets/favicon/favicon-32x32.png' | absolute_url }}">
21
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ 'assets/favicon/favicon-16x16.png' | absolute_url }}">
22
+ <link rel="manifest" href="{{ 'assets/favicon/site.webmanifest' | absolute_url }}">
23
+ <link rel="mask-icon" href="{{ 'assets/favicon/safari-pinned-tab.svg' | absolute_url }}" color="#5bbad5">
24
+ <link rel="shortcut icon" href="{{ 'assets/favicon/favicon.ico' | absolute_url }}">
25
+ <meta name="msapplication-TileColor" content="#922610">
26
+ <meta name="msapplication-TileImage" content="{{ 'assets/favicon/mstile-144x144.png' | absolute_url }}">
27
+ <meta name="msapplication-config" content="{{ 'assets/favicon/browserconfig.xml' | absolute_url }}">
28
+ <meta name="theme-color" content="#922610">
29
+
30
+ <title>{{ site.title }}</title>
31
+
32
+ <link rel="stylesheet" href="{{ 'node_modules/normalize.css/normalize.css' | absolute_url }}" />
33
+ <link rel="stylesheet" href="{{ 'node_modules/getskeleton/lib/css/skeleton.css' | absolute_url }}" />
34
+ <link rel="stylesheet" href="{{ 'node_modules/@mdi/font/css/materialdesignicons.min.css' | absolute_url }}" />
35
+ <link rel="stylesheet" href="{{ 'node_modules/typeface-montserrat/index.css' | absolute_url }}" />
36
+ <link rel="stylesheet" href="{{ 'node_modules/typeface-libre-baskerville/index.css' | absolute_url }}" />
37
+ <link rel="stylesheet" href="{{ 'node_modules/typeface-noto-sans/index.css' | absolute_url }}" />
38
+ <link rel="stylesheet" href="{{ 'node_modules/typeface-unifrakturcook/index.css' | absolute_url }}" />
39
+ <link rel="stylesheet" href="{{ 'css/style.css' | absolute_url }}" />
40
+ <link rel="stylesheet" href="{{ 'css/stats-block.css' | absolute_url }}" />
41
+ <link rel="stylesheet" href="{{ 'css/boxes.css' | absolute_url }}" />
42
+
43
+ {% feed_meta %}
44
+ </head>
45
+
46
+ <body>
47
+ <header>
48
+ <div class="container">
49
+ <div class="row">
50
+ <h1><a href="{{ '/' | absolute_url }}">{{ site.title }}</a></h1>
51
+ <p class="subtitle">{{ site.description }}</p>
52
+ </div>
53
+ </div>
54
+ </header>
55
+
56
+ <main class="container">
57
+ <div class="row">
58
+ <!-- CONTENTS -->
59
+ {{ content }}
60
+ </div>
61
+ </main>
62
+ </body>
63
+ </html>
@@ -0,0 +1,89 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
6
+
7
+ <!-- Collections Title -->
8
+ {% assign: adventures = site.adventures | join: '' %}
9
+ {% assign: chapters = site.chapters | join: '' %}
10
+ {% assign: monsters = site.monsters | join: '' %}
11
+ {% assign: posts = site.posts | join: '' %}
12
+ {% assign: settlements = site.settlements | join: '' %}
13
+ {% assign: spells = site.spells | join: '' %}
14
+
15
+ {% if adventures != '' or chapters != '' or monsters != '' or posts != '' or settlements != '' or spells != '' %}
16
+ <h2 class="collections">Collections</h2>
17
+ {% endif %}
18
+
19
+ <!-- Adventure List -->
20
+ {% if adventures != '' %}
21
+ <div class="collection">
22
+ <h5>Adventures</h5>
23
+ <ul>
24
+ {% for adventure in site.adventures %}
25
+ <li><strong><a href="{{ adventure.url }}">{{ adventure.adventure.name }}</a>:</strong> {{ adventure.adventure.type | articulate: true }} for {{ adventure.adventure.char-num | default: 4 | pluralize: 'player character', 'player characters' }} of {% if adventure.adventure.lvl.range %}levels {{ adventure.adventure.lvl.min | ordinal }} through {{ adventure.adventure.lvl.max | ordinal }}{% else %}{{ adventure.adventure.lvl.lvl | ordinal }} level{% endif %}.</li>
26
+ {% endfor %}
27
+ </ul>
28
+ </div>
29
+ {% endif %}
30
+
31
+ <!-- Chapter List -->
32
+ {% if chapters != '' %}
33
+ <div class="collection">
34
+ <h5>Chapters</h5>
35
+ <ul>
36
+ {% for chapter in site.chapters %}
37
+ <li><strong><a href="{{ chapter.url }}">{{ chapter.title }}</a>:</strong> Chapter {{ chapter.chapter.number }} from {{ chapter.chapter.book }}.</li>
38
+ {% endfor %}
39
+ </ul>
40
+ </div>
41
+ {% endif %}
42
+
43
+ <!-- Monster List -->
44
+ {% if monsters != '' %}
45
+ <div class="collection">
46
+ <h5>Monsters</h5>
47
+ <ul>
48
+ {% for monster in site.monsters %}
49
+ <li><strong><a href="{{ monster.url }}">{{ monster.monster.name }}</a>:</strong> {{ monster.monster.size | articulate: true }} {{ monster.monster.type }}, CR {{ monster.monster.cr }}.</li>
50
+ {% endfor %}
51
+ </ul>
52
+ </div>
53
+ {% endif %}
54
+
55
+ <!-- Post List -->
56
+ {% if posts != '' %}
57
+ <div class="collection">
58
+ <h5>Posts</h5>
59
+ <ul>
60
+ {% for post in site.posts %}
61
+ <li><strong><a href="{{ post.url }}">{{ post.title }}</a>:</strong> {{ post.excerpt | strip_html | truncatewords: 50 }}(...)</li>
62
+ {% endfor %}
63
+ </ul>
64
+ </div>
65
+ {% endif %}
66
+
67
+ <!-- Settlement List -->
68
+ {% if settlements != '' %}
69
+ <div class="collection">
70
+ <h5>Settlements</h5>
71
+ <ul>
72
+ {% for settlement in site.settlements %}
73
+ <li><strong><a href="{{ settlement.url }}">{{ settlement.settlement.name }}</a>:</strong> {{ settlement.settlement.type | articulate: true }}.</li>
74
+ {% endfor %}
75
+ </ul>
76
+ </div>
77
+ {% endif %}
78
+
79
+ <!-- Spell List -->
80
+ {% if spells != '' %}
81
+ <div class="collection">
82
+ <h5>Spells</h5>
83
+ <ul>
84
+ {% for spell in site.spells %}
85
+ <li><strong><a href="{{ spell.url }}">{{ spell.spell.name }}</a>:</strong> {{ spell.spell.school | articulate: true }}{% if spell.spell.subschool %} ({{ spell.spell.subschool }}){% endif %}{% assign: descs = spell.spell.descriptor | join: '' %}{% if descs != '' %} [{{ spell.spell.descriptor | join: ', ' }}]{% endif %} for {{ spell.spell.level | join: ', ' }}.</li>
86
+ {% endfor %}
87
+ </ul>
88
+ </div>
89
+ {% endif %}
@@ -0,0 +1,191 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="eight columns">
6
+ <div class="metadata">
7
+ <h1>{{ page.title | default: 'Monster' }}</h1>
8
+ <p class="meta">{{ page.author | default: 'Unknown' }} &bull; {{ page.date | default: '1938-07-27' | date: '%A, %B %e, %Y' }}</p>
9
+ </div>
10
+
11
+ {{ content }}
12
+ </div>
13
+
14
+ <div class="four columns">
15
+ <div class="stat-block-container">
16
+ <div class="stat-block">
17
+ <hr class="orange-border" />
18
+ <div class="section-left">
19
+ <div class="creature-heading">
20
+ <h1>{{ page.monster.name | default: 'Terrasque' }}</h1>
21
+ <h2>{{ page.monster.size | default: 'Colossal' }} {{ page.monster.type | default: 'magical beast' }}, {{ page.monster.align | default: 'always neutral' }}</h2>
22
+ </div>
23
+ <!-- creature heading -->
24
+ <svg height="5" width="100%" class="tapered-rule">
25
+ <polyline points="0,0 400,2.5 0,5"></polyline>
26
+ </svg>
27
+ <div class="top-stats">
28
+ <div class="property-line first">
29
+ <h4>Armor Class</h4>
30
+ <p>{{ page.monster.ac.base | default: '35' }}{% if page.monster.ac.desc != '' %} ({{ page.monster.ac.desc }}){% endif %}, touch {{ page.monster.ac.touch | default: '5' }}, flat-footed {{ page.monster.ac.flat | default: '32' }}</p>
31
+ </div>
32
+ <!-- property line -->
33
+ <div class="property-line">
34
+ <h4>Hit Points</h4>
35
+ <p>{{ page.monster.hp.hp | default: '858' | pretty_number }}hp ({{ page.monster.hp.hd | default: '48d10 + 594' }})</p>
36
+ </div>
37
+ <!-- property line -->
38
+ <div class="property-line">
39
+ <h4>Speed</h4>
40
+ <p>{{ page.monster.speed | default: '20ft' }}</p>
41
+ </div>
42
+ <!-- property line -->
43
+ <div class="property-line">
44
+ <h4>Initiative</h4>
45
+ <p>{{ page.monster.initiative | default: 7 | add_sign }}</p>
46
+ </div>
47
+ <!-- property line -->
48
+ <div class="property-line">
49
+ <h4>Space/Reach</h4>
50
+ <p>{{ page.monster.space | default: '30ft' }}/{{ page.monster.reach | default: '20ft' }}</p>
51
+ </div>
52
+ <!-- property line -->
53
+ <div class="property-line">
54
+ <h4>BA/Grapple</h4>
55
+ <p>{{ page.monster.ba | default: '+48' }}/{{ page.monster.grapple | default: '+81' }}</p>
56
+ </div>
57
+ <!-- property line -->
58
+ <div class="property-line last">
59
+ <h4>Saves</h4>
60
+ <p>Fort {{ page.monster.saves.fort | default: 38 | add_sign }}, Ref {{ page.monster.saves.ref | default: 29 | add_sign }}, Will {{ page.monster.saves.will | default: 20 | add_sign }}</p>
61
+ </div>
62
+ <!-- property line -->
63
+ <svg height="5" width="100%" class="tapered-rule">
64
+ <polyline points="0,0 400,2.5 0,5"></polyline>
65
+ </svg>
66
+ <div class="abilities">
67
+ <div class="ability-strength">
68
+ <h4>STR</h4>
69
+ <p>{{ page.monster.abilities.str | default: 45 | ability }}</p>
70
+ </div>
71
+ <!-- ability strength -->
72
+ <div class="ability-dexterity">
73
+ <h4>DEX</h4>
74
+ <p>{{ page.monster.abilities.dex | default: 16 | ability }}</p>
75
+ </div>
76
+ <!-- ability dexterity -->
77
+ <div class="ability-constitution">
78
+ <h4>CON</h4>
79
+ <p>{{ page.monster.abilities.con | default: 35 | ability }}</p>
80
+ </div>
81
+ <!-- ability constitution -->
82
+ <div class="ability-intelligence">
83
+ <h4>INT</h4>
84
+ <p>{{ page.monster.abilities.int | default: 3 | ability }}</p>
85
+ </div>
86
+ <!-- ability intelligence -->
87
+ <div class="ability-wisdom">
88
+ <h4>WIS</h4>
89
+ <p>{{ page.monster.abilities.wis | default: 14 | ability }}</p>
90
+ </div>
91
+ <!-- ability wisdom -->
92
+ <div class="ability-charisma">
93
+ <h4>CHA</h4>
94
+ <p>{{ page.monster.abilities.cha | default: 14 | ability }}</p>
95
+ </div>
96
+ <!-- ability charisma -->
97
+ </div>
98
+ <!-- abilities -->
99
+ <svg height="5" width="100%" class="tapered-rule">
100
+ <polyline points="0,0 400,2.5 0,5"></polyline>
101
+ </svg>
102
+ <div class="property-line first">
103
+ <h4>Skills</h4>
104
+ <p>{{ page.monster.skills | default: 'none' }}</p>
105
+ </div>
106
+ <!-- property line -->
107
+ <div class="property-line">
108
+ <h4>Feats</h4>
109
+ <p>{{ page.monster.feats | default: 'none' }}</p>
110
+ </div>
111
+ <!-- property line -->
112
+ <div class="property-line">
113
+ <h4>Challenge Rating</h4>
114
+ <p>{{ page.monster.cr | default: 20 }}</p>
115
+ </div>
116
+ <!-- property line -->
117
+ <div class="property-line">
118
+ <h4>Treasure</h4>
119
+ <p>{{ page.monster.treasure | default: 'None' }}</p>
120
+ </div>
121
+ <!-- property line -->
122
+ <div class="property-line">
123
+ <h4>Advancement</h4>
124
+ <p>{{ page.monster.advancement | default: '49+ HD (Colossal)' }}</p>
125
+ </div>
126
+ <!-- property line -->
127
+ <div class="property-line">
128
+ <h4>Level Adjustment</h4>
129
+ <p>{{ page.monster.lvl_adj | default: 'N/A' }}</p>
130
+ </div>
131
+ <!-- property line -->
132
+ <div class="property-line">
133
+ <h4>Environment</h4>
134
+ <p>{{ page.monster.env | default: 'Any' }}</p>
135
+ </div>
136
+ <!-- property line -->
137
+ <div class="property-line last">
138
+ <h4>Organization</h4>
139
+ <p>{{ page.monster.org | default: 'Solitary' }}</p>
140
+ </div>
141
+ <!-- property line -->
142
+ </div>
143
+ <!-- top stats -->
144
+ <svg height="5" width="100%" class="tapered-rule">
145
+ <polyline points="0,0 400,2.5 0,5"></polyline>
146
+ </svg>
147
+ <div class="property-block">
148
+ <h4>Special Qualities</h4>
149
+ <p>{{ page.monster.qualities | default: 'none'}}</p>
150
+ </div>
151
+ <!-- property block -->
152
+ <div class="property-block">
153
+ <h4>Special Attacks</h4>
154
+ <p>{{ page.monster.sp_attacks | default: 'none' }}</p>
155
+ </div>
156
+ <!-- property block -->
157
+ </div>
158
+ <!-- section left -->
159
+ <div class="section-right">
160
+ <div class="actions">
161
+ <h3>Actions</h3>
162
+ {% for attack in page.monster.attacks %}
163
+ <div class="property-block">
164
+ <h4>{{ attack.name }}</h4>
165
+ <p>{{ attack.desc | default: '+57 melee (4d8 + 17 / 18-20 / x3)' }}</p>
166
+ </div>
167
+ <!-- property block -->
168
+ {% endfor %}
169
+ </div>
170
+ {% assign: items = page.monster.possessions | join: '' %}
171
+ {% if items != '' %}
172
+ <!-- actions -->
173
+ <div class="actions">
174
+ <h3>Possessions</h3>
175
+ {% for item in page.monster.possessions %}
176
+ <div class="property-block">
177
+ <h4>{{ item.name }}</h4>
178
+ <p>{{ item.desc }}</p>
179
+ </div>
180
+ <!-- property block -->
181
+ {% endfor %}
182
+ </div>
183
+ <!-- actions -->
184
+ {% endif %}
185
+ </div>
186
+ <!-- section right -->
187
+ <hr class="orange-border bottom" />
188
+ </div>
189
+ <!-- stat block -->
190
+ </div>
191
+ </div>
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="metadata">
6
+ <h1>{{ page.title | default: 'Post' }}</h1>
7
+ <p class="meta">{{ page.author | default: 'Unknown' }} &bull; {{ page.date | default: '1938-07-27' | date: '%A, %B %e, %Y' }}</p>
8
+ {% assign: tagg = page.tags | join: '' %}
9
+ {% if tagg != '' %}
10
+ <p>
11
+ {% for tag in page.tags %}
12
+ <span class="mdi mdi-tag-outline tag"> {{ tag }}</span>
13
+ {% endfor %}
14
+ </p>
15
+ {% endif %}
16
+ {% assign: catt = page.categories | join: '' %}
17
+ {% if catt != '' %}
18
+ <p>
19
+ {% for category in page.categories %}
20
+ <span class="mdi mdi-folder-outline category"> {{ category }}</span>
21
+ {% endfor %}
22
+ </p>
23
+ {% endif %}
24
+ </div>
25
+
26
+ {{ content }}