]> git.otsuka.systems Git - cotsuka.github.io/commitdiff
add activities metacollection and reviews collection
authorCameron Otsuka <cameron@otsuka.haus>
Sun, 22 Dec 2024 08:00:58 +0000 (00:00 -0800)
committerCameron Otsuka <cameron@otsuka.haus>
Sun, 22 Dec 2024 08:00:58 +0000 (00:00 -0800)
_includes/components/activitylist.njk [new file with mode: 0644]
_includes/components/reviewslist.njk [new file with mode: 0644]
_includes/css/style.css
_includes/layouts/base.njk
_includes/layouts/home.njk
_includes/layouts/review.njk [new file with mode: 0644]
content/reviews.njk [new file with mode: 0644]
content/reviews/reviews.json [new file with mode: 0644]
eleventy.config.js

diff --git a/_includes/components/activitylist.njk b/_includes/components/activitylist.njk
new file mode 100644 (file)
index 0000000..b92a70b
--- /dev/null
@@ -0,0 +1,19 @@
+<dl>
+{% if maxPosts %}
+    {% set numPosts = collections.activities | length | min(maxPosts) %}
+    {% set activitieslist = collections.activities | reverse | head(numPosts) %}
+{% else %}
+    {% set activitieslist = collections.activities | reverse %}
+{% endif %}
+{%- for item in activitieslist %}
+    <dt><a href="{{ item.url }}">{{ item.data.title }}</a></dt>
+    <dd>
+        {% if "articles" in item.data.tags %}
+            <small class="collectiontag">article</small>
+        {% elseif "reviews" in item.data.tags %}
+            <small class="collectiontag">review</small>
+        {% endif %}
+        {{ item.data.description }}
+    </dd>
+{%- endfor %}
+</dl>
\ No newline at end of file
diff --git a/_includes/components/reviewslist.njk b/_includes/components/reviewslist.njk
new file mode 100644 (file)
index 0000000..85b52ab
--- /dev/null
@@ -0,0 +1,21 @@
+<dl>
+{% if maxPosts %}
+    {% set numPosts = collections.reviews | length | min(maxPosts) %}
+    {% set reviewslist = collections.reviews | reverse | head(numPosts) %}
+{% else %}
+    {% set reviewslist = collections.reviews | reverse %}
+{% endif %}
+{%- for review in reviewslist %}
+    <dt><a href="{{ review.url }}">{{ review.data.title }}</a></dt>
+    <dd>
+        {% if "movie" in review.data.tags %}
+            <small class="collectiontag">movie</small>
+        {% elseif "music" in review.data.tags %}
+            <small class="collectiontag">music</small>
+        {% elseif "show" in review.data.tags %}
+            <small class="collectiontag">show</small>
+        {% endif %}
+        {{ review.data.description }}
+    </dd>
+{%- endfor %}
+</dl>
\ No newline at end of file
index 267b5ec56dd756cd44b5e3f2dfabc0d7c132de77..816a6d8909dd451f1beecfb8999805c9b52f04f6 100644 (file)
@@ -13,12 +13,23 @@ body {
   font-size: 1rem;
 }
 nav {
+  margin-bottom: 1rem;
+}
+nav > h1 {
   font-size: 2rem;
   font-weight: bold;
 }
-nav > a {
+nav > h1 > a {
   text-decoration: none;
 }
+nav > menu {
+  margin-inline-start: 0;
+  padding-inline-start: 0;
+}
+nav > menu > li {
+  display: inline;
+  padding-right: 1rem;
+}
 details {
   margin-bottom: 1rem;
 }
@@ -67,6 +78,9 @@ th, td {
 object {
   width: 100%;
 }
+hr {
+  margin-bottom: 1rem;
+}
 footer {
   text-align: center;
   font-style: italic;
@@ -78,4 +92,7 @@ footer > address > menu {
 footer > address > menu > li {
   display: inline;
   padding-right: 1rem;
+}
+.collectiontag {
+  font-variant: small-caps;
 }
\ No newline at end of file
index 3ec226efaa206ada0998a50ee3047b894e20d33c..289262ae39488974842861a03aa5eb2f9940e75b 100644 (file)
 <body>
     <header>
         <nav>
-            <a href="/">{{ metadata.title }}</a>
+            <h1><a href="/">{{ metadata.title }}</a></h1>
+            <menu>
+                <li><a href="/articles">Articles</a></li>
+                <li><a href="/reviews">Reviews</a></li>
+            </menu>
         </nav>
     </header>
+    <hr>
     <main>
         {{ content | safe }}
     </main>
index 7ae154e0e0244e5e902990ebe378a6aa622f96ec..62beefd6a12a6e95e142db80308dd6e1e8c65c77 100644 (file)
@@ -8,8 +8,8 @@ maxPosts: 5
 </section>
 
 <section>
-    <h2><a href="/articles">Articles</a></h2>
-    {%- include "components/articleslist.njk" %}
+    <h2>Latest Activity</h2>
+    {%- include "components/activitylist.njk" %}
 </section>
 
 <section>
diff --git a/_includes/layouts/review.njk b/_includes/layouts/review.njk
new file mode 100644 (file)
index 0000000..d9973f1
--- /dev/null
@@ -0,0 +1,30 @@
+---
+layout: layouts/base.njk
+---
+
+<h1>{{ title }}</h1>
+
+<details>
+       <summary>Metadata</summary>
+       <ul>
+               <li>Published: <time datetime="{{ page.date | htmlDateString }}">{{ page.date | htmlDateString }}</time></li>
+               <li>Description: {{ description }}</li>
+               <li>Tags: {{ tags | reject("equalto", "articles") | sort | join(", ") }}</li>
+               {% if posse %}
+                       <li>
+                               Also Posted To: 
+                               {% for item in posse %}
+                                       {% if item["letterboxd"] %}
+                                               <a href="{{ item["letterboxd"] }}">Letterboxd</a>
+                                       {% elseif item["goodreads"] %}
+                                               <a href="{{ item["goodreads"] }}">Goodreads</a>
+                                       {% endif %}
+                               {% endfor %}
+                       </li>
+               {% endif %}
+       </ul>
+</details>
+
+<article>
+       {{ content | safe }}
+</article>
diff --git a/content/reviews.njk b/content/reviews.njk
new file mode 100644 (file)
index 0000000..9d50f74
--- /dev/null
@@ -0,0 +1,7 @@
+---
+layout: layouts/base.njk
+---
+
+<h1>Reviews</h1>
+
+{% include "components/reviewslist.njk" %}
diff --git a/content/reviews/reviews.json b/content/reviews/reviews.json
new file mode 100644 (file)
index 0000000..72ea2b8
--- /dev/null
@@ -0,0 +1,5 @@
+{
+    "tags": ["reviews"],
+    "layout": "layouts/review.njk",
+    "permalink": "reviews/{{ date | htmlDateString }}-{{ title | slugify }}/"
+}
\ No newline at end of file
index a264a30ff77b1f258013f3e33a240666533437f9..14291329873f27546b92c775e9482c2e2953c4f0 100644 (file)
@@ -22,6 +22,17 @@ function isFullUrl(url) {
 }
 
 module.exports = function (eleventyConfig) {
+       eleventyConfig.addCollection("activities", function(collectionApi) {
+               let collectionSubset = [
+                       ...collectionApi.getFilteredByTag("articles"),
+                       ...collectionApi.getFilteredByTag("reviews"),
+               ];
+               let sortedSubset = collectionSubset.sort(function(a, b) {
+                       // maintain sort order when working with default collections objects
+                       return a.date - b.date;
+               });
+               return sortedSubset;
+       });
        eleventyConfig.addFilter("cssmin", function (code) {
                return new cleanCSS({}).minify(code).styles;
        });