Some art, wip homepage, wip links
29
.eleventy.js
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
const Image = require("@11ty/eleventy-img");
|
||||||
|
const imagePath = "./collection";
|
||||||
|
const imageOutputPath = "./_site/img/";
|
||||||
|
const imageFormats = ["auto"];
|
||||||
|
const imageSizes = [650];
|
||||||
|
|
||||||
|
module.exports = function (eleventyConfig) {
|
||||||
|
eleventyConfig.addShortcode(
|
||||||
|
"image",
|
||||||
|
async function (src, alt, sizes, classes = "") {
|
||||||
|
let metadata = await Image(`${imagePath}/${src}`, {
|
||||||
|
widths: imageSizes,
|
||||||
|
formats: imageFormats,
|
||||||
|
outputDir: imageOutputPath,
|
||||||
|
});
|
||||||
|
|
||||||
|
let imageAttributes = {
|
||||||
|
alt,
|
||||||
|
sizes,
|
||||||
|
loading: "lazy",
|
||||||
|
decoding: "async",
|
||||||
|
class: classes,
|
||||||
|
};
|
||||||
|
|
||||||
|
// You bet we throw an error on a missing alt (alt="" works okay)
|
||||||
|
return Image.generateHTML(metadata, imageAttributes);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
34
_includes/index.njk
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
---
|
||||||
|
eleventyImport:
|
||||||
|
collections: ["art"]
|
||||||
|
---
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link href="/app.css" rel="stylesheet">
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
</head>
|
||||||
|
<body class="bg-gray-700 text-gray-200">
|
||||||
|
<header class="max-w-screen-xl py-48 px-4 mx-auto">
|
||||||
|
<h1 class="font-serif text-center text-4xl sm:text-6xl md:text-8xl mb-2">
|
||||||
|
<span class="text-ochre-300">g</span>aiety's <span class="text-beaver-400">g</span>allery
|
||||||
|
</h1>
|
||||||
|
<h2 class="font-serif text-center text-lg sm:text-xl md:text-2xl">photography, painting, sketches and illustrations</h2>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="max-w-screen-xl p-4 mx-auto">
|
||||||
|
<ul class="gap-3 columns-1 sm:columns-2 md:columns-3 column-fill:_balance]">
|
||||||
|
{%- for art in collections.art -%}
|
||||||
|
<li>
|
||||||
|
<a href={{ art.url }}>
|
||||||
|
{% image art.data.src, art.data.alt, "(min-width: 30em) 50vw, 100vw", "rounded mb-3 drop-shadow-lg" %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{%- endfor -%}
|
||||||
|
</ul>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
3
app.css
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
BIN
collection/art-erotica-2019.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
6
collection/art-erotica-2019.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Art Erotica 2019
|
||||||
|
alt: TODO
|
||||||
|
src: art-erotica-2019.jpg
|
||||||
|
---
|
BIN
collection/falling.jpg
Normal file
After Width: | Height: | Size: 1.3 MiB |
6
collection/falling.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Falling
|
||||||
|
alt: TODO
|
||||||
|
src: falling.jpg
|
||||||
|
---
|
BIN
collection/leaf.jpg
Normal file
After Width: | Height: | Size: 1.4 MiB |
6
collection/leaf.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Elephant Ear
|
||||||
|
alt: TODO
|
||||||
|
src: leaf.jpg
|
||||||
|
---
|
BIN
collection/like-a-mirror.jpg
Normal file
After Width: | Height: | Size: 5.6 MiB |
6
collection/like-a-mirror.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Like a Mirror
|
||||||
|
alt: TODO
|
||||||
|
src: like-a-mirror.jpg
|
||||||
|
---
|
BIN
collection/line-rider.jpg
Normal file
After Width: | Height: | Size: 1.6 MiB |
6
collection/line-rider.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Line Rider
|
||||||
|
alt: TODO
|
||||||
|
src: line-rider.jpg
|
||||||
|
---
|
BIN
collection/metal-skies.jpg
Normal file
After Width: | Height: | Size: 3 MiB |
6
collection/metal-skies.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Metal Skies
|
||||||
|
alt: TODO
|
||||||
|
src: metal-skies.jpg
|
||||||
|
---
|
BIN
collection/truths-without-mental-sight.jpg
Normal file
After Width: | Height: | Size: 459 KiB |
12
collection/truths-without-mental-sight.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
tags: art
|
||||||
|
title: Truths Without Mental Sight
|
||||||
|
alt: TODO
|
||||||
|
src: truths-without-mental-sight.jpg
|
||||||
|
---
|
||||||
|
|
||||||
|
> I have no mind's eye
|
||||||
|
> Digitgrade legs carry me
|
||||||
|
> Soft wagging tail sways
|
||||||
|
> Ear tips floppy and listening
|
||||||
|
> Yet, I have a clear vision
|
4
index.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
layout: index.njk
|
||||||
|
title: gaiety's gallery
|
||||||
|
---
|
3724
package-lock.json
generated
Normal file
24
package.json
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"name": "gallery",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "concurrently npm:start:*",
|
||||||
|
"serve": "concurrently npm:serve:*",
|
||||||
|
"start:tailwindcss": "npx tailwindcss -i ./app.css -o ./_site/app.css",
|
||||||
|
"start:eleventy": "npx @11ty/eleventy",
|
||||||
|
"serve:tailwindcss": "npx tailwindcss -i ./app.css -o ./_site/app.css --watch",
|
||||||
|
"serve:eleventy": "npx @11ty/eleventy --serve",
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"devDependencies": {
|
||||||
|
"@11ty/eleventy": "^2.0.1",
|
||||||
|
"@11ty/eleventy-img": "^3.1.0",
|
||||||
|
"concurrently": "^8.0.1",
|
||||||
|
"tailwindcss": "^3.3.2"
|
||||||
|
}
|
||||||
|
}
|
59
tailwind.config.js
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: ["./**/*.md", "./_includes/*.njk"],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
colors: {
|
||||||
|
gray: {
|
||||||
|
50: "#f9faf9",
|
||||||
|
100: "#f1f1f2",
|
||||||
|
200: "#dfdee2",
|
||||||
|
300: "#bbbbc0",
|
||||||
|
400: "#909297",
|
||||||
|
500: "#726f71",
|
||||||
|
600: "#5b5454",
|
||||||
|
700: "#453f3f",
|
||||||
|
800: "#2f2a2c",
|
||||||
|
900: "#1c191c",
|
||||||
|
},
|
||||||
|
beaver: {
|
||||||
|
50: "#fcfbf9",
|
||||||
|
100: "#f9f1eb",
|
||||||
|
200: "#f2d7d4",
|
||||||
|
300: "#e1aeab",
|
||||||
|
400: "#d2807e",
|
||||||
|
500: "#bc5c59",
|
||||||
|
600: "#9e423e",
|
||||||
|
700: "#78312e",
|
||||||
|
800: "#522120",
|
||||||
|
900: "#311413",
|
||||||
|
},
|
||||||
|
slate: {
|
||||||
|
50: "#f7f9f8",
|
||||||
|
100: "#e9f0f4",
|
||||||
|
200: "#cedfe7",
|
||||||
|
300: "#a2beca",
|
||||||
|
400: "#6e98a7",
|
||||||
|
500: "#547785",
|
||||||
|
600: "#445d69",
|
||||||
|
700: "#364650",
|
||||||
|
800: "#262f38",
|
||||||
|
900: "#171d25",
|
||||||
|
},
|
||||||
|
ochre: {
|
||||||
|
50: "#fbfaf6",
|
||||||
|
100: "#f9f0d2",
|
||||||
|
200: "#f2daa3",
|
||||||
|
300: "#dfb36f",
|
||||||
|
400: "#c98842",
|
||||||
|
500: "#ae6625",
|
||||||
|
600: "#914c18",
|
||||||
|
700: "#6e3914",
|
||||||
|
800: "#4c2710",
|
||||||
|
900: "#31180b",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [],
|
||||||
|
};
|