Implement Journals
Some checks failed
/ jekyll (push) Failing after 11s

Jekyll will follow directory structures, using it as the URL path when
building a site. This significant change adds configuration, styles, and
layouts for journals. Journals will be stored in the `/journals`
directory, and then within a directory for the character.

For each character's journals, configuration must be established in the
`_config.yml` file. Each character journal directory then can be treated
similar to a Jekyll project: the `_posts` directory can be leveraged for
posts. The base character journal directory has an index page, which by
default shows a small top section, then the most recent post. Since
these character journals don't adhere to the actual calendar, permalinks
have been reduced to the post title alone. Note: this means every post
in the character journal must be named different. Not certain if every
post on the site must be named different.

There are a number of steps still left:
- Build site index page. Include cards for each character that has a
  journal, for each adventure, and for any additional miscellaneous
  things captured on the site.
- Implement the adventure section, similar to journals. Any configured
  adventures will exist in the `/adventures` directory, and then within
  a specific directory.
- Actually write stuff.
This commit is contained in:
Bill Niblock 2024-03-04 00:56:10 -05:00
parent 13b98ce049
commit 4dbf2aeb3e
13 changed files with 286 additions and 57 deletions

View file

@ -1,6 +1,6 @@
---
permalink: /404.html
layout: default
layout: journal
---
<style type="text/css" media="screen">

View file

@ -1,28 +1,7 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Taliah's Journal
author: Nataliah Kas Zhukoff
title: Vagabond's TTRPG Site
author: Bill Niblock
description: >- # this means to ignore newlines until "baseurl:"
My name is Nataliah Kas Zhukoff. At the suggestion of my master Jhoric
Stonehammer, I am keeping this journal of my progress and discoveries.
A collection of my tabletop roleplaying game writings.
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
@ -30,22 +9,32 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com
plugins:
- jekyll-feed
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
permalink: none
defaults:
## Defaults for Nataliah Journals ##
-
scope:
path: "journals/nataliah"
values:
layout: "journal"
title: Taliah's Journal
author: Nataliah Kas Zhukoff
aut: nataliah
description: >-
My name is Nataliah Kas Zhukoff. At the suggestion of my master Jhoric
Stonehammer, I am keeping this journal of my progress and discoveries.
des: Journal of the alchemist apprentice Nataliah Kas Zhukoff
## Defaults for Bask Journals ##
-
scope:
path: "journals/bask"
values:
layout: "journal"
title: Bask's Journal
author: Bask Temlin
aut: bask
description: >-
I'm Bask, I hit things with my sword.
des: Journal of the eldritch knight Bask Temlin

View file

@ -0,0 +1,23 @@
<footer>
{% assign entries = site.posts | where: "aut", page.aut %}
{% for entry in entries %}
{% if entry.id == page.id %}
{% assign this_index = forloop.index0 | to_integer %}
{% break %}
{% endif %}
{% endfor %}
{% assign next_index = this_index | minus: 1 %}
{% assign prev_index = this_index | plus: 1 %}
{% if prev_index < entries.size %}
<span class="previous">
<a href="{{ entries[prev_index].url }}">Previous</a>
</span>
{% endif %}
{% if next_index >= 0 %}
<span class="next">
<a href="{{ entries[next_index].url }}">Next</a>
</span>
{% endif %}
</footer>

View file

@ -1,10 +1,20 @@
---
layout: default
---
<header>
<img src="/assets/token.png"
alt="Nataliah Kas Zhukoff"
style="display:block;margin-left:auto;margin-right:auto"
/>
<p>{{ site.description }}</p>
</header>
<!DOCTYPE html>
<html>
<head>
<title>{{ site.title }}</title>
{% feed_meta %}
<meta name="description"
content="{{ site.des }}" />
<meta name="author" content="{{ site.author }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="canonical" href="{{ site.url}}{{ page.url }}" />
<link rel="stylesheet" type="text/css" href="/assets/home.css" />
</head>
<body>
<main>
<article>
{{ content }}
</article>
</main>
</body>
</html>

50
_layouts/journal.html Normal file
View file

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<title>{{ page.title }}</title>
{% feed_meta %}
<meta name="description"
content="{{ page.des }}" />
<meta name="author" content="{{ page.author }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="canonical" href="{{ site.url}}{{ page.url }}" />
<link rel="stylesheet" type="text/css" href="/assets/journal.css" />
<link rel="stylesheet" type="text/css" href="/assets/{{ page.aut }}.css" />
</head>
<body>
<div class="menu-toggle">M</div>
<menu>
<figure>
<a href="/journals/{{ page.aut }}">
<img src="/assets/{{ page.aut }}.png" alt="{{ page.author }}" />
</a>
<hr>
<figcaption>{{ page.description }}</figcaption>
<hr>
</figure>
<nav>
<ul>
<li><a href="/">Site Home</a></li>
<li><a href="/journals/{{ page.aut }}">Journal Home</li>
</ul>
<hr>
<ul>
{% assign entries = site.posts |
where_exp:"posts", "posts.categories contains page.aut" %}
{% for entry in entries %}
<li>
<a href="{{ entry.url }}">{{ entry.title }}</a>
</li>
{% endfor %}
</ul>
</nav>
</menu>
<div class="main-filter"></div>
<main>
<article>
{{ content }}
{% include journal_footer.html %}
</article>
</main>
</body>
</html>

8
assets/bask.css Normal file
View file

@ -0,0 +1,8 @@
/* Custom to Bask Journal */
menu {
background-color: orange;
}
figcaption {
font-family: sans-serif;
font-size: 1.5rem;
}

BIN
assets/bask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

110
assets/journal.css Normal file
View file

@ -0,0 +1,110 @@
html {
background-color: black;
}
/* Layout */
body {
display: flex;
margin: 0 auto; max-width: 1620px;
background-color: antiquewhite;
}
.menu-toggle {
display: none;
}
menu {
height: 100vh; width: 20%; max-width: 350px; min-width: 250px;
position: sticky; top: 0; left: 0;
padding: 0; margin: 0; z-index:5;
outline:none;
background-color: antiquewhite;
overflow-y: scroll;
}
menu .meta_buttons {
margin: 0; padding: 0 10%;
}
menu figure {
margin: 2vh 0 0 0; padding: 0 10%;
}
figure img {
width: 100%;
max-width: 100%;
}
menu nav {
margin: 0 0 2vh 0; padding: 0 10%;
}
menu nav ul {
list-style: none;
}
main {
position:relative;
height:100vh; width: 100%;
overflow-y: scroll;
}
main article {
margin: 3vh auto; padding: 0; max-width: 90%;
}
.main-filter {
display: none;
}
/* Typography */
html {
font-family: sans-serif;
}
a,a:visited,a:link,a:focus {
text-decoration: none;
color: purple;
transition: color 0.5s;
}
a:hover {
color: darkorchid;
transition: color 0.5s;
text-decoration: underline;
}
figcaption {
font-size: 1.5rem;
}
article h1 {}
article h2 {}
article h3 {}
article h4 {}
article h5 {}
/* Responsive */
@media only screen and (max-width: 900px) {
body {
overflow-y: hidden;
}
.menu-toggle {
display: block;
position: fixed;
bottom: 3vh; right: 1vw;
height: 3vh; padding: 0 1vw;
z-index: 10;
background-color: black; color: white;
text-align: center;
&:focus + menu,&:active + menu,&:target + menu {
top: 10vh;
transition: top 0.7s ease-in-out;
}
&:focus ~ .main-filter,&:active ~ .main-filter,&:target ~ .main-filter {
display: block;
transition: display 0.3s ease-in-out;
}
}
menu {
height: 90vh; width: 100vw; max-width: 100%; min-width: 100%;
position: absolute; top: 100vh; left: 0; right: 0;
padding: 0; margin: 0; z-index:5;
outline:none;
background-color: antiquewhite;
overflow-y: scroll;
transition: top 1s ease-in-out;
}
.main-filter {
position: fixed; top: 0; left: 0; right: 0; bottom: 0;
background-color: black;
opacity: 0.5;
transition: display;
}
}

8
assets/nataliah.css Normal file
View file

@ -0,0 +1,8 @@
/* Custom to Nataliah Journal */
menu {
background-color: darkslategrey;
}
figcaption {
font-family: cursive;
font-size: 1.5rem;
}

BIN
assets/nataliah.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

View file

@ -1,6 +1,9 @@
---
# Feel free to add content and custom Front Matter to this file.
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: home
---
<h2>Journals</h2>
<ul>
<li><a href="/journals/nataliah">Nataliah Kas Zhukoff</a></li>
<li><a href="/journals/bask">Bask Temlin</a></li>
</ul>

View file

@ -0,0 +1,14 @@
---
layout: journal
---
# This is the index page.
Certain Stuff can go here, and then the most recent
entry shows below.
---
{% assign recent = site.posts | where: "aut", page.aut | first %}
{{ recent.content }}

View file

@ -0,0 +1,14 @@
---
layout: journal
---
# This is the index page.
Certain Stuff can go here, and then the most recent
entry shows below.
---
{% assign recent = site.posts | where: "aut", page.aut | first %}
{{ recent.content }}