summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2022-06-16 10:05:59 +0200
committerVolpeon <git@volpeon.ink>2022-06-16 10:05:59 +0200
commitb4444941222ce6d12613c9e97ad64b7a345ff3c8 (patch)
tree167005a56956b2643bda3cf477bcbca868683b19
parentUpdate (diff)
downloadvolpeon.ink-b4444941222ce6d12613c9e97ad64b7a345ff3c8.tar.gz
volpeon.ink-b4444941222ce6d12613c9e97ad64b7a345ff3c8.tar.bz2
volpeon.ink-b4444941222ce6d12613c9e97ad64b7a345ff3c8.zip
Update
-rw-r--r--assets/css/_fonts.scss8
-rw-r--r--assets/css/style.scss1
-rw-r--r--assets/fonts/IBMPlexSans-Medium.ttfbin0 -> 182060 bytes
-rw-r--r--content/art/drawings/2022-autumn-fox/index.md (renamed from content/art/drawings/2022-ava-shading/index.md)0
-rwxr-xr-xcontent/art/drawings/2022-autumn-fox/pic.png (renamed from content/art/drawings/2022-ava-shading/pic.png)bin473946 -> 473946 bytes
-rwxr-xr-xcontent/art/drawings/2022-autumn-fox/thumbnail.png (renamed from content/art/drawings/2022-ava-shading/thumbnail.png)bin165693 -> 165693 bytes
-rw-r--r--content/main.js24
-rw-r--r--content/notebook/scrap/design-test.md356
-rw-r--r--scripts/metadata_filter.lua11
-rw-r--r--templates/layouts/page.html2
-rw-r--r--yarn.lock2
11 files changed, 147 insertions, 257 deletions
diff --git a/assets/css/_fonts.scss b/assets/css/_fonts.scss
index aa1ec45..6b3095e 100644
--- a/assets/css/_fonts.scss
+++ b/assets/css/_fonts.scss
@@ -17,6 +17,14 @@
17@font-face { 17@font-face {
18 font-family: 'IBM Plex Sans'; 18 font-family: 'IBM Plex Sans';
19 font-style: normal; 19 font-style: normal;
20 font-weight: 500;
21 font-display: swap;
22 src: url('/IBMPlexSans-Medium.woff2') format('woff2');
23}
24
25@font-face {
26 font-family: 'IBM Plex Sans';
27 font-style: normal;
20 font-weight: bold; 28 font-weight: bold;
21 font-display: swap; 29 font-display: swap;
22 src: url('/IBMPlexSans-Bold.woff2') format('woff2'); 30 src: url('/IBMPlexSans-Bold.woff2') format('woff2');
diff --git a/assets/css/style.scss b/assets/css/style.scss
index 9ec6483..3ae810d 100644
--- a/assets/css/style.scss
+++ b/assets/css/style.scss
@@ -29,6 +29,7 @@
29@use 'iro-design/src/scopes/headings' as iro-headings; 29@use 'iro-design/src/scopes/headings' as iro-headings;
30@use 'iro-design/src/scopes/invisible-links' as iro-invisible-links; 30@use 'iro-design/src/scopes/invisible-links' as iro-invisible-links;
31@use 'iro-design/src/scopes/lists' as iro-lists; 31@use 'iro-design/src/scopes/lists' as iro-lists;
32@use 'iro-design/src/scopes/tables' as iro-tables;
32@use 'scopes/small'; 33@use 'scopes/small';
33 34
34@use 'iro-design/src/utils'; 35@use 'iro-design/src/utils';
diff --git a/assets/fonts/IBMPlexSans-Medium.ttf b/assets/fonts/IBMPlexSans-Medium.ttf
new file mode 100644
index 0000000..4de5fea
--- /dev/null
+++ b/assets/fonts/IBMPlexSans-Medium.ttf
Binary files differ
diff --git a/content/art/drawings/2022-ava-shading/index.md b/content/art/drawings/2022-autumn-fox/index.md
index 9dcea6a..9dcea6a 100644
--- a/content/art/drawings/2022-ava-shading/index.md
+++ b/content/art/drawings/2022-autumn-fox/index.md
diff --git a/content/art/drawings/2022-ava-shading/pic.png b/content/art/drawings/2022-autumn-fox/pic.png
index 0689364..0689364 100755
--- a/content/art/drawings/2022-ava-shading/pic.png
+++ b/content/art/drawings/2022-autumn-fox/pic.png
Binary files differ
diff --git a/content/art/drawings/2022-ava-shading/thumbnail.png b/content/art/drawings/2022-autumn-fox/thumbnail.png
index dc39092..dc39092 100755
--- a/content/art/drawings/2022-ava-shading/thumbnail.png
+++ b/content/art/drawings/2022-autumn-fox/thumbnail.png
Binary files differ
diff --git a/content/main.js b/content/main.js
index 760d40a..c843947 100644
--- a/content/main.js
+++ b/content/main.js
@@ -32,7 +32,7 @@
32 const lightboxNextEl = lightboxEl.querySelector(".o-lightbox__next-btn"); 32 const lightboxNextEl = lightboxEl.querySelector(".o-lightbox__next-btn");
33 const lightboxImgEl = lightboxEl.querySelector(".o-lightbox__img"); 33 const lightboxImgEl = lightboxEl.querySelector(".o-lightbox__img");
34 const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer"); 34 const lightboxFooterEl = lightboxEl.querySelector(".o-lightbox__footer");
35 const figureEls = Array.from(mainEl.querySelectorAll("figure")).map(el => el.querySelector("a")); 35 const figureEls = Array.from(mainEl.querySelectorAll("figure"));
36 36
37 const show = () => { 37 const show = () => {
38 visible = true; 38 visible = true;
@@ -47,7 +47,7 @@
47 const setIndex = (i) => { 47 const setIndex = (i) => {
48 thumbnailEls[currentIndex].classList.remove("is-selected"); 48 thumbnailEls[currentIndex].classList.remove("is-selected");
49 currentIndex = i; 49 currentIndex = i;
50 lightboxImgEl.src = figureEls[i].href; 50 lightboxImgEl.src = figureEls[i].firstElementChild.href;
51 thumbnailEls[i].classList.add("is-selected"); 51 thumbnailEls[i].classList.add("is-selected");
52 }; 52 };
53 53
@@ -70,13 +70,29 @@
70 setIndex(i); 70 setIndex(i);
71 }; 71 };
72 72
73 figureEl.addEventListener("click", go); 73 let anchorEl;
74 let imgEl;
75
76 if (figureEl.firstElementChild.tagName === "A") {
77 anchorEl = figureEl.firstElementChild;
78 imgEl = anchorEl.firstElementChild;
79 } else {
80 imgEl = figureEl.firstElementChild;
81 anchorEl = document.createElement("a");
82 anchorEl.href = imgEl.src;
83
84 figureEl.insertBefore(anchorEl, imgEl);
85 figureEl.removeChild(imgEl);
86 anchorEl.appendChild(imgEl);
87 }
88
89 anchorEl.addEventListener("click", go);
74 90
75 const thumbnailButtonEl = document.createElement("button"); 91 const thumbnailButtonEl = document.createElement("button");
76 const thumbnailImgEl = document.createElement("img"); 92 const thumbnailImgEl = document.createElement("img");
77 93
78 thumbnailImgEl.classList.add("o-lightbox__thumbnail-img"); 94 thumbnailImgEl.classList.add("o-lightbox__thumbnail-img");
79 thumbnailImgEl.src = figureEl.href; 95 thumbnailImgEl.src = anchorEl.href;
80 96
81 thumbnailButtonEl.classList.add("o-lightbox__thumbnail"); 97 thumbnailButtonEl.classList.add("o-lightbox__thumbnail");
82 thumbnailButtonEl.appendChild(thumbnailImgEl); 98 thumbnailButtonEl.appendChild(thumbnailImgEl);
diff --git a/content/notebook/scrap/design-test.md b/content/notebook/scrap/design-test.md
index 2367513..2a272c3 100644
--- a/content/notebook/scrap/design-test.md
+++ b/content/notebook/scrap/design-test.md
@@ -1,315 +1,177 @@
1--- 1---
2title: Design Test 2title: Markdown Test Page
3last_update: 2022-06-16
3--- 4---
4 5
5- [Overview](#overview) 6- [Headings](#headings)
6 - [Philosophy](#philosophy) 7- [Paragraphs](#paragraphs)
7- [Block Elements](#block-elements) 8- [Blockquotes](#blockquotes)
8 - [Paragraphs and Line Breaks](#paragraphs-and-line-breaks) 9- [Lists](#lists)
9 - [Headers](#headers) 10 - [Ordered List](#ordered-list)
10 - [Blockquotes](#blockquotes) 11 - [Unordered List](#unordered-list)
11 - [Lists](#lists) 12- [Horizontal rule](#horizontal-rule)
12 - [Code Blocks](#code-blocks) 13- [Table](#table)
13- [Span Elements](#span-elements) 14- [Code](#code)
14 - [Links](#links) 15 - [Inline code](#inline-code)
15 - [Emphasis](#emphasis) 16 - [Highlighted](#highlighted)
16 - [Code](#code) 17- [Inline elements](#inline-elements)
17 18
18---- 19---
19
20## Overview
21
22### Philosophy
23
24Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
25
26Readability, however, is emphasized above all else. A Markdown-formatted
27document should be publishable as-is, as plain text, without looking
28like it's been marked up with tags or formatting instructions. While
29Markdown's syntax has been influenced by several existing text-to-HTML
30filters -- including [Setext](http://docutils.sourceforge.net/mirror/setext.html), [atx](http://www.aaronsw.com/2002/atx/), [Textile](http://textism.com/tools/textile/), [reStructuredText](http://docutils.sourceforge.net/rst.html),
31[Grutatext](http://www.triptico.com/software/grutatxt.html), and [EtText](http://ettext.taint.org/doc/) -- the single biggest source of
32inspiration for Markdown's syntax is the format of plain text email.
33
34## Block Elements
35
36### Paragraphs and Line Breaks
37
38A paragraph is simply one or more consecutive lines of text, separated
39by one or more blank lines. (A blank line is any line that looks like a
40blank line -- a line containing nothing but spaces or tabs is considered
41blank.) Normal paragraphs should not be indented with spaces or tabs.
42
43The implication of the "one or more consecutive lines of text" rule is
44that Markdown supports "hard-wrapped" text paragraphs. This differs
45significantly from most other text-to-HTML formatters (including Movable
46Type's "Convert Line Breaks" option) which translate every line break
47character in a paragraph into a `<br />` tag.
48
49When you *do* want to insert a `<br />` break tag using Markdown, you
50end a line with two or more spaces, then type return.
51
52### Headers
53
54Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
55
56Optionally, you may "close" atx-style headers. This is purely
57cosmetic -- you can use this if you think it looks better. The
58closing hashes don't even need to match the number of hashes
59used to open the header. (The number of opening hashes
60determines the header level.)
61
62
63### Blockquotes
64
65Markdown uses email-style `>` characters for blockquoting. If you're
66familiar with quoting passages of text in an email message, then you
67know how to create a blockquote in Markdown. It looks best if you hard
68wrap the text and put a `>` before every line:
69
70> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
71> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
72> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
73>
74> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
75> id sem consectetuer libero luctus adipiscing.
76
77Markdown allows you to be lazy and only put the `>` before the first
78line of a hard-wrapped paragraph:
79
80> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
81consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
82Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
83 20
84> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse 21# Headings
85id sem consectetuer libero luctus adipiscing.
86 22
87Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by 23# Heading one
88adding additional levels of `>`:
89 24
90> This is the first level of quoting. 25Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat commodo id sunt. Nostrud enim ad commodo incididunt cupidatat in ullamco ullamco Lorem cupidatat velit enim et Lorem. Ut laborum cillum laboris fugiat culpa sint irure do reprehenderit culpa occaecat. Exercitation esse mollit tempor magna aliqua in occaecat aliquip veniam reprehenderit nisi dolor in laboris dolore velit.
91>
92> > This is nested blockquote.
93>
94> Back to the first level.
95 26
96Blockquotes can contain other Markdown elements, including headers, lists, 27## Heading two
97and code blocks:
98 28
99> ## This is a header. 29Aute officia nulla deserunt do deserunt cillum velit magna. Officia veniam culpa anim minim dolore labore pariatur voluptate id ad est duis quis velit dolor pariatur enim. Incididunt enim excepteur do veniam consequat culpa do voluptate dolor fugiat ad adipisicing sit. Labore officia est adipisicing dolore proident eiusmod exercitation deserunt ullamco anim do occaecat velit. Elit dolor consectetur proident sunt aliquip est do tempor quis aliqua culpa aute. Duis in tempor exercitation pariatur et adipisicing mollit irure tempor ut enim esse commodo laboris proident. Do excepteur laborum anim esse aliquip eu sit id Lorem incididunt elit irure ea nulla dolor et. Nulla amet fugiat qui minim deserunt enim eu cupidatat aute officia do velit ea reprehenderit.
100>
101> 1. This is the first list item.
102> 2. This is the second list item.
103>
104> Here's some example code:
105>
106> return shell_exec("echo $input | $markdown_script");
107 30
108Any decent text editor should make email-style quoting easy. For 31### Heading three
109example, with BBEdit, you can make a selection and choose Increase
110Quote Level from the Text menu.
111 32
33Voluptate cupidatat cillum elit quis ipsum eu voluptate fugiat consectetur enim. Quis ut voluptate culpa ex anim aute consectetur dolore proident voluptate exercitation eiusmod. Esse in do anim magna minim culpa sint. Adipisicing ipsum consectetur proident ullamco magna sit amet aliqua aute fugiat laborum exercitation duis et.
112 34
113### Lists 35#### Heading four
114 36
115Markdown supports ordered (numbered) and unordered (bulleted) lists. 37Commodo fugiat aliqua minim quis pariatur mollit id tempor. Non occaecat minim esse enim aliqua adipisicing nostrud duis consequat eu adipisicing qui. Minim aliquip sit excepteur ipsum consequat laborum pariatur excepteur. Veniam fugiat et amet ad elit anim laborum duis mollit occaecat et et ipsum et reprehenderit. Occaecat aliquip dolore adipisicing sint labore occaecat officia fugiat. Quis adipisicing exercitation exercitation eu amet est laboris sunt nostrud ipsum reprehenderit ullamco. Enim sint ut consectetur id anim aute voluptate exercitation mollit dolore magna magna est Lorem. Ut adipisicing adipisicing aliqua ullamco voluptate labore nisi tempor esse magna incididunt.
116 38
117Unordered lists use asterisks, pluses, and hyphens -- interchangably 39##### Heading five
118-- as list markers:
119 40
120* Red 41Veniam enim esse amet veniam deserunt laboris amet enim consequat. Minim nostrud deserunt cillum consectetur commodo eu enim nostrud ullamco occaecat excepteur. Aliquip et ut est commodo enim dolor amet sint excepteur. Amet ad laboris laborum deserunt sint sunt aliqua commodo ex duis deserunt enim est ex labore ut. Duis incididunt velit adipisicing non incididunt adipisicing adipisicing. Ad irure duis nisi tempor eu dolor fugiat magna et consequat tempor eu ex dolore. Mollit esse nisi qui culpa ut nisi ex proident culpa cupidatat cillum culpa occaecat anim. Ut officia sit ea nisi ea excepteur nostrud ipsum et nulla.
121* Green
122* Blue
123 42
124is equivalent to: 43###### Heading six
125 44
126+ Red 45Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
127+ Green
128+ Blue
129 46
130and: 47[[Top]](#top)
131 48
132- Red 49# Paragraphs
133- Green
134- Blue
135 50
136Ordered lists use numbers followed by periods: 51Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu.
137 52
1381. Bird 53Officia dolore laborum aute incididunt commodo nisi velit est est elit et dolore elit exercitation. Enim aliquip magna id ipsum aliquip consectetur ad nulla quis. Incididunt pariatur dolor consectetur cillum enim velit cupidatat laborum quis ex.
1392. McHale
1403. Parish
141 54
142It's important to note that the actual numbers you use to mark the 55Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt enim ut. Reprehenderit incididunt in ad anim et deserunt deserunt Lorem laborum quis. Enim aute anim labore proident laboris voluptate elit excepteur in. Ex labore nulla velit officia ullamco Lorem Lorem id do. Dolore ullamco ipsum magna dolor pariatur voluptate ipsum id occaecat ipsum. Dolore tempor quis duis commodo quis quis enim.
143list have no effect on the HTML output Markdown produces. The HTML
144Markdown produces from the above list is:
145 56
146If you instead wrote the list in Markdown like this: 57[[Top]](#top)
147 58
1481. Bird 59# Blockquotes
1491. McHale
1501. Parish
151 60
152or even: 61Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in.
153 62
1543. Bird 63> Ipsum et cupidatat mollit exercitation enim duis sunt irure aliqua reprehenderit mollit. Pariatur Lorem pariatur laboris do culpa do elit irure. Eiusmod amet nulla voluptate velit culpa et aliqua ad reprehenderit sit ut.
1551. McHale
1568. Parish
157 64
158you'd get the exact same HTML output. The point is, if you want to, 65Labore ea magna Lorem consequat aliquip consectetur cillum duis dolore. Et veniam dolor qui incididunt minim amet laboris sit. Dolore ad esse commodo et dolore amet est velit ut nisi ea. Excepteur ea nulla commodo dolore anim dolore adipisicing eiusmod labore id enim esse quis mollit deserunt est. Minim ea culpa voluptate nostrud commodo proident in duis aliquip minim.
159you can use ordinal numbers in your ordered Markdown lists, so that
160the numbers in your source match the numbers in your published HTML.
161But if you want to be lazy, you don't have to.
162 66
163To make lists look nice, you can wrap items with hanging indents: 67> Qui est sit et reprehenderit aute est esse enim aliqua id aliquip ea anim. Pariatur sint reprehenderit mollit velit voluptate enim consectetur sint enim. Quis exercitation proident elit non id qui culpa dolore esse aliquip consequat.
164 68
165* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 69Ipsum excepteur cupidatat sunt minim ad eiusmod tempor sit.
166 Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
167 viverra nec, fringilla in, laoreet vitae, risus.
168* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
169 Suspendisse id sem consectetuer libero luctus adipiscing.
170 70
171But if you want to be lazy, you don't have to: 71> Deserunt excepteur adipisicing culpa pariatur cillum laboris ullamco nisi fugiat cillum officia. In cupidatat nulla aliquip tempor ad Lorem Lorem quis voluptate officia consectetur pariatur ex in est duis. Mollit id esse est elit exercitation voluptate nostrud nisi laborum magna dolore dolore tempor in est consectetur.
172 72
173* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 73Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat veniam ullamco occaecat do ut. Tempor et esse reprehenderit veniam proident ipsum irure sit ullamco et labore ea excepteur nulla labore ut. Ex aute minim quis tempor in eu id id irure ea nostrud dolor esse.
174Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
175viverra nec, fringilla in, laoreet vitae, risus.
176* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
177Suspendisse id sem consectetuer libero luctus adipiscing.
178 74
179List items may consist of multiple paragraphs. Each subsequent 75[[Top]](#top)
180paragraph in a list item must be indented by either 4 spaces
181or one tab:
182 76
1831. This is a list item with two paragraphs. Lorem ipsum dolor 77# Lists
184 sit amet, consectetuer adipiscing elit. Aliquam hendrerit
185 mi posuere lectus.
186 78
187 Vestibulum enim wisi, viverra nec, fringilla in, laoreet 79### Ordered List
188 vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
189 sit amet velit.
190 80
1912. Suspendisse id sem consectetuer libero luctus adipiscing. 811. Longan
822. Lychee
833. Excepteur ad cupidatat do elit laborum amet cillum reprehenderit consequat quis.
84 Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip aliquip velit pariatur dolore.
854. Marionberry
865. Melon
87 - Cantaloupe
88 - Honeydew
89 - Watermelon
906. Miracle fruit
917. Mulberry
192 92
193It looks nice if you indent every line of the subsequent 93### Unordered List
194paragraphs, but here again, Markdown will allow you to be
195lazy:
196 94
197* This is a list item with two paragraphs. 95- Olive
96- Orange
97 - Blood orange
98 - Clementine
99- Papaya
100- Ut aute ipsum occaecat nisi culpa Lorem id occaecat cupidatat id id magna laboris ad duis. Fugiat cillum dolore veniam nostrud proident sint consectetur eiusmod irure adipisicing.
101- Passionfruit
198 102
199 This is the second paragraph in the list item. You're 103[[Top]](#top)
200only required to indent the first line. Lorem ipsum dolor
201sit amet, consectetuer adipiscing elit.
202 104
203* Another item in the same list. 105# Horizontal rule
204 106
205To put a blockquote within a list item, the blockquote's `>` 107In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit.
206delimiters need to be indented:
207 108
208* A list item with a blockquote: 109---
209 110
210 > This is a blockquote 111In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore anim elit veniam Lorem minim commodo eiusmod irure do minim nisi. Dolor amet cillum excepteur consequat sint non sint.
211 > inside a list item.
212 112
213To put a code block within a list item, the code block needs 113[[Top]](#top)
214to be indented *twice* -- 8 spaces or two tabs:
215 114
216* A list item with a code block: 115# Table
217 116
218 <code goes here> 117Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do.
219 118
220### Code Blocks 119| Table Heading 1 | Table Heading 2 | Center align | Right align | Table Heading 5 |
120| :-------------- | :-------------- | :----------: | ----------: | :-------------- |
121| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 |
122| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 |
123| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 |
124| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 |
125| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 |
221 126
222Pre-formatted code blocks are used for writing about programming or 127Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et duis pariatur reprehenderit eu ex consectetur. Sunt nisi qui eiusmod ut cillum laborum Lorem officia aliquip laboris ullamco nostrud laboris non irure laboris. Cillum dolore labore Lorem deserunt mollit voluptate esse incididunt ex dolor.
223markup source code. Rather than forming normal paragraphs, the lines
224of a code block are interpreted literally. Markdown wraps a code block
225in both `<pre>` and `<code>` tags.
226 128
227To produce a code block in Markdown, simply indent every line of the 129[[Top]](#top)
228block by at least 4 spaces or 1 tab.
229 130
230This is a normal paragraph: 131# Code
231 132
232 This is a code block. 133## Inline code
233 134
234Here is an example of AppleScript: 135Ad amet irure est magna id mollit Lorem in do duis enim. Excepteur velit nisi magna ea pariatur pariatur ullamco fugiat deserunt sint non sint. Duis duis est `code in text` velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna `<strong>in culpa qui officia</strong>` dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt.
235 136
236 tell application "Foo" 137## Highlighted
237 beep
238 end tell
239 138
240A code block continues until it reaches a line that is not indented 139Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex.
241(or the end of the article).
242 140
243Within a code block, ampersands (`&`) and angle brackets (`<` and `>`) 141```go
244are automatically converted into HTML entities. This makes it very 142package main
245easy to include example HTML source code using Markdown -- just paste
246it and indent it, and Markdown will handle the hassle of encoding the
247ampersands and angle brackets. For example, this:
248 143
249 <div class="footer"> 144import (
250 &copy; 2004 Foo Corporation 145 "fmt"
251 </div> 146 "net/http"
147)
252 148
253Regular Markdown syntax is not processed within code blocks. E.g., 149func handler(w http.ResponseWriter, r *http.Request) {
254asterisks are just literal asterisks within a code block. This means 150 fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
255it's also easy to use Markdown to write about Markdown's own syntax. 151}
256 152
153func main() {
154 http.HandleFunc("/", handler)
155 http.ListenAndServe(":8080", nil)
156}
257``` 157```
258tell application "Foo"
259 beep
260end tell
261```
262
263## Span Elements
264
265### Links
266
267Markdown supports two style of links: *inline* and *reference*.
268
269In both styles, the link text is delimited by [square brackets].
270
271To create an inline link, use a set of regular parentheses immediately
272after the link text's closing square bracket. Inside the parentheses,
273put the URL where you want the link to point, along with an *optional*
274title for the link, surrounded in quotes. For example:
275
276This is [an example](http://example.com/) inline link.
277 158
278[This link](http://example.net/) has no title attribute. 159Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occaecat nostrud est. Nostrud pariatur esse veniam laborum non sint magna sit laboris minim in id. Aliqua pariatur pariatur excepteur adipisicing irure culpa consequat commodo et ex id ad.
279 160
280### Emphasis 161[[Top]](#top)
281 162
282Markdown treats asterisks (`*`) and underscores (`_`) as indicators of 163# Inline elements
283emphasis. Text wrapped with one `*` or `_` will be wrapped with an
284HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
285`<strong>` tag. E.g., this input:
286 164
287*single asterisks* 165Sint ea anim ipsum ad commodo cupidatat do **exercitation** incididunt et minim ad labore sunt. Minim deserunt labore laboris velit nulla incididunt ipsum nulla. Ullamco ad laborum ea qui et anim in laboris exercitation tempor sit officia laborum reprehenderit culpa velit quis. **Consequat commodo** reprehenderit duis [irure](#!) esse esse exercitation minim enim Lorem dolore duis irure. Nisi Lorem reprehenderit ea amet excepteur dolor excepteur magna labore proident voluptate ipsum. Reprehenderit ex esse deserunt aliqua ea officia mollit Lorem nulla magna enim. Et ad ipsum labore enim ipsum **cupidatat consequat**. Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia.
288
289_single underscores_
290
291**double asterisks**
292
293__double underscores__
294
295### Code
296
297To indicate a span of code, wrap it with backtick quotes (`` ` ``).
298Unlike a pre-formatted code block, a code span indicates code within a
299normal paragraph. For example:
300
301Use the `printf()` function.
302
303---
304 166
305# Headline 1 167![Super wide](http://placekitten.com/1280/800)
306 168
307## Headline 2 169_Proident sit veniam in est proident officia adipisicing_ ea tempor cillum non cillum velit deserunt. Voluptate laborum incididunt sit consectetur Lorem irure incididunt voluptate nostrud. Commodo ut eiusmod tempor cupidatat esse enim minim ex anim consequat. Mollit sint culpa qui laboris quis consectetur ad sint esse. Amet anim anim minim ullamco et duis non irure. Sit tempor adipisicing ea laboris `culpa ex duis sint` anim aute reprehenderit id eu ea. Aute [excepteur proident](#!) Lorem minim adipisicing nostrud mollit ad ut voluptate do nulla esse occaecat aliqua sint anim.
308 170
309### Headline 3 171![Not so big](http://placekitten.com/480/400)
310 172
311#### Headline 4 173Incididunt in culpa cupidatat mollit cillum qui proident sit. In cillum aliquip incididunt voluptate magna amet cupidatat cillum pariatur sint aliqua est _enim **anim** voluptate_. Magna aliquip proident incididunt id duis pariatur eiusmod incididunt commodo culpa dolore sit. Culpa do nostrud elit ad exercitation anim pariatur non minim nisi **adipisicing sunt _officia_**. Do deserunt magna mollit Lorem commodo ipsum do cupidatat mollit enim ut elit veniam ea voluptate.
312 174
313##### Headline 5 175[![Manny Pacquiao](https://img.youtube.com/vi/s6bCmZmy9aQ/0.jpg)](https://youtu.be/s6bCmZmy9aQ)
314 176
315###### Headline 6 177Reprehenderit non eu quis in ad elit esse qui aute id [incididunt](#!) dolore cillum. Esse laboris consequat dolor anim exercitation tempor aliqua deserunt velit magna laboris. Culpa culpa minim duis amet mollit do quis amet commodo nulla irure.
diff --git a/scripts/metadata_filter.lua b/scripts/metadata_filter.lua
index 07f060c..b78c480 100644
--- a/scripts/metadata_filter.lua
+++ b/scripts/metadata_filter.lua
@@ -51,9 +51,9 @@ function page_sort(order)
51 elseif p2.position then 51 elseif p2.position then
52 return false 52 return false
53 elseif order == "date_desc" then 53 elseif order == "date_desc" then
54 if p1.date then 54 if p1.last_update then
55 if p2.date then 55 if p2.last_update then
56 return p1.date.yyyy_mm_dd > p2.date.yyyy_mm_dd 56 return p1.last_update.yyyy_mm_dd > p2.last_update.yyyy_mm_dd
57 else 57 else
58 return true 58 return true
59 end 59 end
@@ -155,7 +155,7 @@ function process_pages(global, order, pages_by_id)
155 local p = process(global, page) 155 local p = process(global, page)
156 if not p.unlisted then 156 if not p.unlisted then
157 pages_all:insert(p) 157 pages_all:insert(p)
158 if p.date then pages_date_desc:insert(p) end 158 if p.last_update then pages_date_desc:insert(p) end
159 end 159 end
160 end 160 end
161 161
@@ -188,6 +188,7 @@ function d1_page_to_list_item(meta, p)
188 title = p.title, 188 title = p.title,
189 subtitle = p.subtitle, 189 subtitle = p.subtitle,
190 date = p.date, 190 date = p.date,
191 last_update = p.last_update,
191 position = p.position, 192 position = p.position,
192 url = p.url, 193 url = p.url,
193 slug = p.slug, 194 slug = p.slug,
@@ -204,6 +205,7 @@ function d2_page_to_list_item(meta, cat, p, set_cat_title)
204 subtitle = p.subtitle, 205 subtitle = p.subtitle,
205 category = set_cat_title and cat.title, 206 category = set_cat_title and cat.title,
206 date = p.date, 207 date = p.date,
208 last_update = p.last_update,
207 position = p.position, 209 position = p.position,
208 url = p.url, 210 url = p.url,
209 slug = p.slug, 211 slug = p.slug,
@@ -223,6 +225,7 @@ function cat_to_list_cat(cat, allItems)
223 title = cat.title, 225 title = cat.title,
224 description = (cat.description and pandoc.MetaBlocks(pandoc.Para(cat.description))) or 226 description = (cat.description and pandoc.MetaBlocks(pandoc.Para(cat.description))) or
225 (not cat.no_description and cat.content), 227 (not cat.no_description and cat.content),
228 last_update = cat.last_update,
226 url = cat.url, 229 url = cat.url,
227 slug = cat.slug, 230 slug = cat.slug,
228 layout = cat.list_layout, 231 layout = cat.list_layout,
diff --git a/templates/layouts/page.html b/templates/layouts/page.html
index 1037938..75ea3be 100644
--- a/templates/layouts/page.html
+++ b/templates/layouts/page.html
@@ -1,4 +1,4 @@
1<article class="l-container l-container--pad-x l-container--pad-y l-container--narrow s-body s-colored-links s-headings s-blockquotes s-code s-lists $if(intro)$s-intro$endif$"> 1<article class="l-container l-container--pad-x l-container--pad-y l-container--narrow s-body s-colored-links s-headings s-blockquotes s-code s-lists s-tables $if(intro)$s-intro$endif$">
2 $if(date)$ 2 $if(date)$
3 <div class="o-badge s-body__meta u-mb-125"> 3 <div class="o-badge s-body__meta u-mb-125">
4 $date.long$ 4 $date.long$
diff --git a/yarn.lock b/yarn.lock
index e0a59c1..9d2a6e3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1280,7 +1280,7 @@ internal-slot@^1.0.3:
1280 1280
1281"iro-design@git+https://git.vulpes.one/git/iro-design.git": 1281"iro-design@git+https://git.vulpes.one/git/iro-design.git":
1282 version "1.0.0" 1282 version "1.0.0"
1283 resolved "git+https://git.vulpes.one/git/iro-design.git#dc4bf84ad353f8cb15123fabe2be8d56b0a5e6da" 1283 resolved "git+https://git.vulpes.one/git/iro-design.git#3d0e5fa8fb7d9755b23b93fa8b6a82cc87cbf69e"
1284 dependencies: 1284 dependencies:
1285 "@oddbird/blend" "^0.2.3" 1285 "@oddbird/blend" "^0.2.3"
1286 include-media "^1.4.9" 1286 include-media "^1.4.9"