diff --git a/_config.ts b/_config.ts
index e2328bb..163eaad 100644
--- a/_config.ts
+++ b/_config.ts
@@ -5,6 +5,7 @@ import sass from "lume/plugins/sass.ts";
import feed from "lume/plugins/feed.ts";
import code_highlight from "lume/plugins/code_highlight.ts";
import toc from "https://deno.land/x/lume_markdown_plugins@v0.6.0/toc.ts";
+import footnotes from "https://deno.land/x/lume_markdown_plugins@v0.6.0/footnotes.ts";
import lang_typescript from "npm:highlight.js/lib/languages/typescript";
import lang_javascript from "npm:highlight.js/lib/languages/javascript";
@@ -56,5 +57,6 @@ site.use(toc({
lowercase: true,
},
}));
+site.use(footnotes());
export default site;
diff --git a/_includes/layouts/post.tsx b/_includes/layouts/post.tsx
index 3556ead..9c4aad2 100644
--- a/_includes/layouts/post.tsx
+++ b/_includes/layouts/post.tsx
@@ -1,6 +1,6 @@
export const layout = "./base.tsx";
-export default function({ children, toc }) {
+export default function({ children, toc, footnotes }) {
return (
<>
{ toc.length > 0 &&
@@ -27,6 +27,16 @@ export default function({ children, toc }) {
{ children }
+ { footnotes.length > 0 &&
+
+ {footnotes.map(note => (
+ -
+
+ ↩
+
+ ))}
+
+ }
>
);
}
diff --git a/_includes/styles/base.scss b/_includes/styles/base.scss
index 43cbc01..d2e9fbc 100644
--- a/_includes/styles/base.scss
+++ b/_includes/styles/base.scss
@@ -61,6 +61,20 @@ p {
a {
color: var(--color-links);
+ &.footnote-ref {
+ text-decoration: none;
+ }
+ &.footnote-ref:hover {
+ text-decoration: underline;
+ }
+ &.footnote-ref::before {
+ content: "[";
+ }
+ &.footnote-ref::after {
+ content: "]";
+ }
+ &.footnote-backref {
+ }
}
img {
@@ -303,3 +317,21 @@ nav.toc {
padding-left: 1rem;
}
}
+
+ol.footnotes {
+ margin-top: 3rem;
+ margin-bottom: 0;
+ padding: 1rem;
+ border-top: 1px solid var(--color-black);
+ font-family: var(--font--sans-serif-alt);
+ line-height: normal;
+ li {
+ font-size: 0.95rem;
+ p {
+ display: inline-block;
+ }
+ }
+ a.footnote-backref {
+ margin-left: 0.3rem;
+ }
+}
diff --git a/deno.lock b/deno.lock
index 3a44209..bf8a338 100644
--- a/deno.lock
+++ b/deno.lock
@@ -1678,6 +1678,8 @@
"https://deno.land/x/lume@v1.19.4/plugins/url.ts": "43d3d47896a7322a8dd34572dedb4baa6f73a382594a2ff7c34a3a064dcc6c9e",
"https://deno.land/x/lume@v1.19.4/plugins/utils.ts": "6435d164539d9e408e7e818b080cc1a96ff76ed3c376160577a7df751b57fa07",
"https://deno.land/x/lume@v1.19.4/plugins/yaml.ts": "df24aac4098dba258f1ac331a3b16ba488a336eb63c51afed8f59201228d583c",
+ "https://deno.land/x/lume_markdown_plugins@v0.6.0/footnotes.ts": "ae50e761514c9d14f0c6828c23054c128ee240e9ba008f0acf929ce5b2081fd6",
+ "https://deno.land/x/lume_markdown_plugins@v0.6.0/footnotes/mod.ts": "f1d3acc25fef68febfa027c15605102635113dec9f9683bc39ae1af47a9d6ed1",
"https://deno.land/x/lume_markdown_plugins@v0.6.0/toc.ts": "2f1a336fd8faea717d830b53b1b9e6990173ff056fb6e2e979c8b1ac22a5bac9",
"https://deno.land/x/lume_markdown_plugins@v0.6.0/toc/anchors.ts": "8a4a1c6b2c63156622695ceba57fa7100a6e5f109c9a383a1dcaf755233c8184",
"https://deno.land/x/lume_markdown_plugins@v0.6.0/toc/mod.ts": "8c7aa6e1dcfabda4264503495a3875388108cd9a5a94b54853b45a8e8cba9f78",