From 09f7530d4a938e65dac894322af74fa57fbb4cb3 Mon Sep 17 00:00:00 2001 From: Aaron Yarborough <3855819+AaronJY@users.noreply.github.com> Date: Fri, 21 Mar 2025 13:03:01 +0000 Subject: [PATCH] feat: add library page --- content/books/alice-in-wonderland.md | 9 +++ .../cities-that-shaped-the-ancient-world.md | 9 +++ content/books/song-of-achilles.md | 10 +++ content/books/stasiland.md | 9 +++ content/books/stray-reflections.md | 9 +++ content/books/to-be-taught-if-fortunate.md | 10 +++ next-sitemap.config.cjs | 3 +- next.config.mjs | 5 +- package.json | 2 +- public/img/book-placeholder.jpg | Bin 0 -> 79713 bytes public/sitemap.xml | 12 +-- src/components/BookListItem/BookListItem.jsx | 24 ++++++ .../BookListItem/BookListItem.module.css | 18 +++++ src/components/Grid/Grid.jsx | 13 ++++ src/components/Grid/Grid.module.css | 4 + src/components/Header/Header.jsx | 1 + src/pages/library/[slug].js | 15 ++++ src/pages/library/index.js | 72 ++++++++++++++++++ src/styles/globals.css | 4 + 19 files changed, 219 insertions(+), 10 deletions(-) create mode 100644 content/books/alice-in-wonderland.md create mode 100644 content/books/cities-that-shaped-the-ancient-world.md create mode 100644 content/books/song-of-achilles.md create mode 100644 content/books/stasiland.md create mode 100644 content/books/stray-reflections.md create mode 100644 content/books/to-be-taught-if-fortunate.md create mode 100644 public/img/book-placeholder.jpg create mode 100644 src/components/BookListItem/BookListItem.jsx create mode 100644 src/components/BookListItem/BookListItem.module.css create mode 100644 src/components/Grid/Grid.jsx create mode 100644 src/components/Grid/Grid.module.css create mode 100644 src/pages/library/[slug].js create mode 100644 src/pages/library/index.js diff --git a/content/books/alice-in-wonderland.md b/content/books/alice-in-wonderland.md new file mode 100644 index 0000000..614e641 --- /dev/null +++ b/content/books/alice-in-wonderland.md @@ -0,0 +1,9 @@ +--- +title: Alice's Adventures in Wonderland +author: Lewis Carroll +stars: 3 +readDate: 2024 +url: https://app.thestorygraph.com/books/83b0e44a-06fe-4042-9d2d-e4f41244fb9c +thumbnailUrl: https://cdn.thestorygraph.com/l83t3e6wh6tq7dqxbvrba34ee2nb +tags: fiction, classics, fantasy +--- \ No newline at end of file diff --git a/content/books/cities-that-shaped-the-ancient-world.md b/content/books/cities-that-shaped-the-ancient-world.md new file mode 100644 index 0000000..b490707 --- /dev/null +++ b/content/books/cities-that-shaped-the-ancient-world.md @@ -0,0 +1,9 @@ +--- +title: Cities That Shaped The Ancient World +author: John Julius Norwich +stars: 3.5 +readDate: 2024 +url: https://app.thestorygraph.com/books/20bc1ff4-56bb-4e88-a403-bc150d45f9d2 +thumbnailUrl: https://cdn.thestorygraph.com/i8znw2yrd6p4m76dx6rvyuyd48h2 +tags: non-fiction, history +--- diff --git a/content/books/song-of-achilles.md b/content/books/song-of-achilles.md new file mode 100644 index 0000000..48afe28 --- /dev/null +++ b/content/books/song-of-achilles.md @@ -0,0 +1,10 @@ +--- +title: "The Song of Achilles" +author: Madline Miller +stars: 2.5 +readDate: 2025/03/22 +url: https://app.thestorygraph.com/books/9202845d-26cd-4a85-b15f-408116117028 +thumbnailUrl: https://cdn.thestorygraph.com/m8cw3kb3qx4h2jl8kg0u4m3txhie +tags: fiction, fantasy, romance +--- +This one really tailed off half-way through. I found the characters very one-dimensional (Patrcolus pines after Achilles, Achilles has muscles and can swing a sword fast), but the story took me at least up until the half-way mark. Weirdly I wasn't interested too much when the actual Iliad story line started to get going - maybe because I've heard it a million times before - and their essentially non-existent romance (more accurately an inch-deep obsession, I'd argue) didn't exactly inspire me to carry on reading. diff --git a/content/books/stasiland.md b/content/books/stasiland.md new file mode 100644 index 0000000..2b2c975 --- /dev/null +++ b/content/books/stasiland.md @@ -0,0 +1,9 @@ +--- +title: "Stasiland: Stories from Behind the Berlin Wall" +author: Anna Funder +stars: 4 +readDate: 2025/03/22 +url: https://app.thestorygraph.com/books/9202845d-26cd-4a85-b15f-408116117028 +thumbnailUrl: https://cdn.thestorygraph.com/gphzjvwbhr8d5agrieobx0yy2xhb +tags: non-fiction, history, politics +--- diff --git a/content/books/stray-reflections.md b/content/books/stray-reflections.md new file mode 100644 index 0000000..c5890b3 --- /dev/null +++ b/content/books/stray-reflections.md @@ -0,0 +1,9 @@ +--- +title: Stray Reflections +author: Muhammad Iqbal +stars: 5 +readDate: 2025/03/22 +url: +thumbnailUrl: +tags: non-fiction, politics, philosophy +--- diff --git a/content/books/to-be-taught-if-fortunate.md b/content/books/to-be-taught-if-fortunate.md new file mode 100644 index 0000000..4c5f49e --- /dev/null +++ b/content/books/to-be-taught-if-fortunate.md @@ -0,0 +1,10 @@ +--- +title: To Be Taught, If Fortunate +author: Becky Chambers +stars: 4.5 +readDate: 2025/03/22 +url: https://app.thestorygraph.com/books/fca2631f-b3e2-4b9d-a2fd-4c1ec5e4d3f7 +thumbnailUrl: https://cdn.thestorygraph.com/8ep9zjc581zefkzfyhtizqjnz8u5 +tags: fiction, science fiction +--- +Really enjoyed this! It was reflective yet lighthearted. I also love this specific flavour of sci-fi, where vastly different species of aliens and worlds are thought up and articulated beautifully by the author. \ No newline at end of file diff --git a/next-sitemap.config.cjs b/next-sitemap.config.cjs index 8ba6e89..c5e58e6 100644 --- a/next-sitemap.config.cjs +++ b/next-sitemap.config.cjs @@ -32,8 +32,7 @@ module.exports = { console.log(attributes) if (!attributes) { return null } - metadata.pubdate = attributes.pubdate ?? null - metadata.lastmod = attributes.moddate ?? null + metadata.lastmod = attributes.moddate ?? attributes.pubdate ?? null console.log('Calculated sitemap dates for article', path) } diff --git a/next.config.mjs b/next.config.mjs index aecfe96..d4f92d9 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -2,7 +2,10 @@ const nextConfig = { reactStrictMode: true, output: 'export', - trailingSlash: true // ensure pages get their own directory in output + trailingSlash: true, // ensure pages get their own directory in output + images: { + unoptimized: true + } } export default nextConfig diff --git a/package.json b/package.json index 5dd39cc..cbb311d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "www-aaronjy-2024", - "version": "1.6.2.0", + "version": "1.6.3.0", "private": true, "type": "module", "scripts": { diff --git a/public/img/book-placeholder.jpg b/public/img/book-placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82f1eddad7b069d37c71ee551e2f3931f964530d GIT binary patch literal 79713 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 JM5*W2{{beEwweF{ literal 0 HcmV?d00001 diff --git a/public/sitemap.xml b/public/sitemap.xml index b810b4a..0efc8c5 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -5,10 +5,10 @@ https://www.aaronjy.me/cv/0.8 https://www.aaronjy.me/tags/0.8 https://www.aaronjy.me/writing/0.8 -https://www.aaronjy.me/writing/attitudes-to-reading/0.6Tue, 18 Mar 2025 00:00:00 GMT -https://www.aaronjy.me/writing/moving-from-github-to-forgejo/0.6Sun, 16 Mar 2025 00:00:00 GMT -https://www.aaronjy.me/writing/performance-considerations-tcp-game-server/Fri, 21 Mar 2025 21:12:47 GMT0.6Sun, 23 Feb 2025 21:12:37 GMT -https://www.aaronjy.me/writing/quick-reflection-katherine-may/0.6Sun, 09 Mar 2025 00:00:00 GMT -https://www.aaronjy.me/writing/static-site-on-google-cloud/0.6Wed, 01 May 2024 00:00:00 GMT -https://www.aaronjy.me/writing/support-content-filte-structure-changes-on-a-static-site/0.6Mon, 18 Mar 2024 16:47:32 GMT +https://www.aaronjy.me/writing/attitudes-to-reading/Tue, 18 Mar 2025 00:00:00 GMT0.6 +https://www.aaronjy.me/writing/moving-from-github-to-forgejo/Sun, 16 Mar 2025 00:00:00 GMT0.6 +https://www.aaronjy.me/writing/performance-considerations-tcp-game-server/Fri, 21 Mar 2025 21:12:47 GMT0.6 +https://www.aaronjy.me/writing/quick-reflection-katherine-may/Sun, 09 Mar 2025 00:00:00 GMT0.6 +https://www.aaronjy.me/writing/static-site-on-google-cloud/Wed, 01 May 2024 00:00:00 GMT0.6 +https://www.aaronjy.me/writing/support-content-filte-structure-changes-on-a-static-site/Mon, 18 Mar 2024 16:47:32 GMT0.6 \ No newline at end of file diff --git a/src/components/BookListItem/BookListItem.jsx b/src/components/BookListItem/BookListItem.jsx new file mode 100644 index 0000000..4d2c919 --- /dev/null +++ b/src/components/BookListItem/BookListItem.jsx @@ -0,0 +1,24 @@ +import Image from 'next/image' + +import style from './BookListItem.module.css' +import Link from 'next/link' + +export default function BookListItem ({ href, title, author, stars, readDate, url, thumbnailUrl, tags, review }) { + return ( +
+
+ + {`Book + +
+
+

+ {title} +

+

{author}

+

{tags}

+

{stars}/5

+
+
+ ) +} diff --git a/src/components/BookListItem/BookListItem.module.css b/src/components/BookListItem/BookListItem.module.css new file mode 100644 index 0000000..e84d6a9 --- /dev/null +++ b/src/components/BookListItem/BookListItem.module.css @@ -0,0 +1,18 @@ +.item { + height: 100%; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: flex-end; +} + +.heading { + font-size: 1rem; + margin-bottom: 5px; +} + +.author { + margin-top: 5px; + /* font-weight: bold; */ +} + diff --git a/src/components/Grid/Grid.jsx b/src/components/Grid/Grid.jsx new file mode 100644 index 0000000..8637e5f --- /dev/null +++ b/src/components/Grid/Grid.jsx @@ -0,0 +1,13 @@ +import style from './Grid.module.css' + +export default function Grid ({ columns, children }) { + return ( +
+ {children} +
+ ) +} diff --git a/src/components/Grid/Grid.module.css b/src/components/Grid/Grid.module.css new file mode 100644 index 0000000..ea09cda --- /dev/null +++ b/src/components/Grid/Grid.module.css @@ -0,0 +1,4 @@ +.grid { + display: grid; + gap: 25px; +} \ No newline at end of file diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.jsx index bd78919..7f87fda 100644 --- a/src/components/Header/Header.jsx +++ b/src/components/Header/Header.jsx @@ -11,6 +11,7 @@ function Header () { Writing{', '} Tags{', '} CV{', '} + Library{', '} About diff --git a/src/pages/library/[slug].js b/src/pages/library/[slug].js new file mode 100644 index 0000000..6c45786 --- /dev/null +++ b/src/pages/library/[slug].js @@ -0,0 +1,15 @@ +import React from 'react' +import DefaultLayout from '@/layouts/DefaultLayout/DefaultLayout' +import { getStaticEntryPaths, getStaticEntryProps } from '@/lib/content' +import Article from '@/components/Article/Article' + +export const getStaticPaths = () => getStaticEntryPaths('./content/books') +export const getStaticProps = (ctx) => getStaticEntryProps('./content/books', ctx) + +export default function LibrarySingle ({ attributes, html }) { + return ( + +
+ + ) +} diff --git a/src/pages/library/index.js b/src/pages/library/index.js new file mode 100644 index 0000000..4f1f0d7 --- /dev/null +++ b/src/pages/library/index.js @@ -0,0 +1,72 @@ +import BookListItem from '@/components/BookListItem/BookListItem' +import Grid from '@/components/Grid/Grid' +import DefaultLayout from '@/layouts/DefaultLayout/DefaultLayout' +import { getStaticEntries } from '@/lib/content' +import { NextSeo } from 'next-seo' + +export const Title = 'Library' + +export const getStaticProps = () => ({ + props: { + bookEntries: getStaticEntries('./content/books') + } +}) + +const SORT_TITLE = 'title' +const SORT_RATING = 'rating' + +export default function Library ({ bookEntries }) { + // const tags = getTags(bookEntries) + + // const [sorter, setSorter] = useState(SORT_TITLE) + + // console.log(bookEntries) + + return ( + + + +

{Title}

+ +
+
+ + +
+ + + {bookEntries.map((entry, i) => ( + + ))} + +
+
+ ) +} + +// function getTags (bookEntries) { +// const tags = {} +// for (const entry of bookEntries) { +// const entryTags = entry.attributes.tags.split(', ') +// for (const entryTag of entryTags) { +// tags[entryTag] = tags[entryTag] ? tags[entryTag] + 1 : 1 +// } +// } + +// return tags +// } diff --git a/src/styles/globals.css b/src/styles/globals.css index f42faa9..9444bd2 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -13,4 +13,8 @@ tr { td:first-child { padding-right: 20px; +} + +.form-group { + margin: 20px 0; } \ No newline at end of file