commit 9aa43df629187613a1aff66d9552395b118a91be Author: a Date: Fri May 17 21:14:05 2024 -0500 First commit The basic parts of the layouts/theme should work. I have only populated 2 albums so far. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a019c32 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/public/ +/resources/_gen/ +/assets/jsconfig.json +hugo_stats.json +/.hugo_build.lock + +/assets/originals/ \ No newline at end of file diff --git a/assets/scss/base/colors.scss b/assets/scss/base/colors.scss new file mode 100644 index 0000000..742f940 --- /dev/null +++ b/assets/scss/base/colors.scss @@ -0,0 +1,16 @@ +body { + background: #212121; + color: white; +} + +a:link { + color: hsl(210, 100%, 50%) +} + +a:visited { + color: hsl(270, 100%, 75%) +} + +.photo-details { + background: #111; +} \ No newline at end of file diff --git a/assets/scss/base/layout.scss b/assets/scss/base/layout.scss new file mode 100644 index 0000000..6848838 --- /dev/null +++ b/assets/scss/base/layout.scss @@ -0,0 +1,44 @@ +.development-info { + display: none; +} + +* { + margin: 0; + padding: 0; +} + +.section { + margin-block: 2rem; +} + +.container { + padding-inline: 1rem; +} + +body { + width: 100vw; + max-width: var(--site-max-width, 120rem); + margin-inline: auto; + @media (min-width: 40rem) { + display: grid; + grid-template-areas: + "head main" + "foot main"; + grid-template-columns: 20em 1fr; + grid-template-rows: 1fr auto; + + > main { + grid-area: main; + height: 100vh; + overflow-y: auto; + } + + .site-header { + grid-area: head; + } + + .site-footer { + grid-area: foot; + } + } +} \ No newline at end of file diff --git a/assets/scss/base/variables.scss b/assets/scss/base/variables.scss new file mode 100644 index 0000000..120acf4 --- /dev/null +++ b/assets/scss/base/variables.scss @@ -0,0 +1,21 @@ +@import "hugo:vars"; + +html { + --site-max-width: #{$site-max-width}; + --list-max-width: #{$list-max-width}; +} + +.favorites-reel { + --photo-grid-item-size: 15rem; + --photo-grid-gap: 0.5em; +} + +.all-photos { + --photo-grid-item-size: 9rem; + --photo-grid-gap: 0.5em; +} + +.event-page { + --photo-grid-item-size: 15rem; + --photo-grid-gap: 0.5em; +} \ No newline at end of file diff --git a/assets/scss/layouts/_default/albums.scss b/assets/scss/layouts/_default/albums.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/scss/layouts/_default/all-photos.scss b/assets/scss/layouts/_default/all-photos.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/scss/layouts/_default/event.scss b/assets/scss/layouts/_default/event.scss new file mode 100644 index 0000000..f94f16d --- /dev/null +++ b/assets/scss/layouts/_default/event.scss @@ -0,0 +1,110 @@ +.event-title { + font-size: 1.4em; + margin-block-end: 1rem; +} + +.event-subtitle { + font-size: 1em; + font-weight: normal; + font-variant: small-caps; + font-weight: bold; +} + +.event-header svg { + width: 1.5em; + height: 1.5em; +} + +.event-header span { + font-size: 1em; + line-height: 1.5; +} + +.event-header p, .event-header li { + display: flex; + align-items: center; + span { + margin-inline-start: 0.25em; + margin-inline-end: 2em; + } +} + +.event-content { + h2 { + font-size: 1em; + font-variant: small-caps; + } +} + +.event-tags { + list-style: none; + display: flex; + flex-flow: row wrap; + gap: 1em; + a { + color: #777; + } +} + + + +.event-photos { + list-style: none; + a { + text-decoration: none; + color: inherit; + } + display: grid; + gap: 1em; +} + +.event-photo { + img { + display: block; + max-width: 100%; + } + figcaption { + background: #111; + text-align: center; + padding-block: 1em; + + .photo-title { + text-align: center; + margin-block-end: 1em; + } + + .photo-summary { + font-family: monospace; + } + } +} + +.event-page .photos .event-subtitle { + margin-block: 2rem; +} + +@media (min-width: 100rem) { + .event-page { + display: grid; + grid-template-columns: 1fr 20rem; + grid-template-areas: + "photos info"; + height: 100vh; + } + .event-page .info { + grid-area: info; + height: 100vh; + overflow-y: scroll; + } + + .event-page .photos { + grid-area: photos; + height: 100vh; + overflow-y: scroll; + margin: 0; + .photos-list { + max-width: 40rem; + margin-inline: auto; + } + } +} \ No newline at end of file diff --git a/assets/scss/layouts/_default/photo.scss b/assets/scss/layouts/_default/photo.scss new file mode 100644 index 0000000..42f0eaf --- /dev/null +++ b/assets/scss/layouts/_default/photo.scss @@ -0,0 +1,73 @@ +.photo-page .photo { + display: grid; + grid-template-areas: + "image" + "title" + "caption" + "meta" + "footer"; + @media (min-width: 80rem) { + grid-template-areas: + "image title" + "image caption" + "image meta" + "image footer"; + grid-template-columns: 1fr 20em; + grid-template-rows: auto auto auto 1fr; + min-height: 100vh; + } +} + +.photo-page picture, .photo-page source { + display: contents; +} + +.photo-page .photo .title { + grid-area: title; + text-align: center; + font-weight: normal; + margin-block-start: 2rem; + margin-block-end: 1rem; +} + +.photo-page .photo .caption { + grid-area: caption; + font-style: italic; + font-family: monospace; + margin-block-end: 2rem; + max-width: 90%; + margin-inline: auto; +} + +.photo-page .photo img { + grid-area: image; + display: block; + max-width: 100%; + place-self: center; +} + +.photo-page .photo .metadata { + grid-area: meta; + text-align: center; + dt { + font-weight: bold; + font-variant: small-caps; + } +} + +.photo-page footer { + text-align: center; + h2 { + font-size: 1em; + } +} + +.photo-page .tags { + list-style: none; + display: flex; + flex-flow: row wrap; + gap: 1em; + a { + color: #777; + } +} \ No newline at end of file diff --git a/assets/scss/layouts/_default/single.scss b/assets/scss/layouts/_default/single.scss new file mode 100644 index 0000000..a29c9f8 --- /dev/null +++ b/assets/scss/layouts/_default/single.scss @@ -0,0 +1,10 @@ +.content { + max-width: 80ch; + h2 { + margin-block: 1rem; + } + p { + line-height: 1.6; + margin-block: 1rem; + } +} \ No newline at end of file diff --git a/assets/scss/layouts/_default/tag.scss b/assets/scss/layouts/_default/tag.scss new file mode 100644 index 0000000..119b0d0 --- /dev/null +++ b/assets/scss/layouts/_default/tag.scss @@ -0,0 +1,8 @@ +.tag-page-title { + font-size: 1.4em; +} + +.tag-page-subtitle { + font-size: 1em; + margin-block: 1em; +} \ No newline at end of file diff --git a/assets/scss/layouts/_default/tags.scss b/assets/scss/layouts/_default/tags.scss new file mode 100644 index 0000000..90dfc84 --- /dev/null +++ b/assets/scss/layouts/_default/tags.scss @@ -0,0 +1,26 @@ +.list-of-all-tags { + list-style: none; + display: grid; + gap: 1em; + li { + display: grid; + grid-template-columns: 1fr 5ch; + grid-template-areas: "tag num"; + gap: 1em; + max-width: 30ch; + a { + grid-area: tag; + justify-self: start; + } + span { + grid-area: num; + justify-self: end; + } + } + a:before { + content: '#'; + } + a { + color: #777; + } +} \ No newline at end of file diff --git a/assets/scss/layouts/partials/albums-list.scss b/assets/scss/layouts/partials/albums-list.scss new file mode 100644 index 0000000..5763651 --- /dev/null +++ b/assets/scss/layouts/partials/albums-list.scss @@ -0,0 +1,43 @@ +.albums-list { + list-style: none; + a { + color: inherit; + text-decoration: none; + } + max-width: var(--list-max-width, 60rem); +} + +.album { + a {display: contents;} + @media (min-width: 60rem) { + display: grid; + grid-template-areas: "cover details"; + grid-template-columns: 1fr 1fr; + gap: 1em; + } + margin-block: 2rem; +} + +.album-cover { + display: block; + max-width: 100%; + max-height: 80vh; + margin-inline: auto; + grid-area: cover; +} + +.album-details { + grid-area: details; +} + +.album-title { + margin-block-start: 1em; + margin-block-end: 0.5em; + font-weight: bold; + text-align: center; +} + +.album-summary { + font-style: italic; + text-align: center; +} \ No newline at end of file diff --git a/assets/scss/layouts/partials/photos-grid.scss b/assets/scss/layouts/partials/photos-grid.scss new file mode 100644 index 0000000..079ad7c --- /dev/null +++ b/assets/scss/layouts/partials/photos-grid.scss @@ -0,0 +1,21 @@ +.photos-grid { + list-style: none; + a { + color: inherit; + text-decoration: none; + display: contents; + } + max-width: var(--list-max-width, 60rem); + display: grid; + grid-template-columns: repeat(auto-fill, minmax(var(--photo-grid-item-size, 20rem), 1fr)); + gap: var(--photo-grid-gap, 1em); +} + +.photos-grid .photo-asset { + display: block; + width: 100%; + height: 100%; + aspect-ratio: 1; + object-fit: cover; + object-position: center; +} \ No newline at end of file diff --git a/assets/scss/layouts/partials/photos-list.scss b/assets/scss/layouts/partials/photos-list.scss new file mode 100644 index 0000000..0275bcd --- /dev/null +++ b/assets/scss/layouts/partials/photos-list.scss @@ -0,0 +1,38 @@ +.photos-list { + list-style: none; + a { + color: inherit; + text-decoration: none; + } + max-width: var(--photos-list-max-width, 28rem); + + .photo { + text-align: center; + @media (min-width: 60rem) { + display: grid; + grid-template-areas: "photo" "details"; + grid-template-columns: 1fr; + grid-template-rows: auto auto; + } + margin-block: 1rem; + } + + .photo-asset { + grid-area: photo; + display: block; + max-width: 100%; + } + + .photo-details { + grid-area: details; + padding: 1rem; + } + + .photo-title { + margin-block-end: 1rem; + } + + .photo-summary { + font-family: monospace; + } +} \ No newline at end of file diff --git a/assets/scss/layouts/partials/site-footer.scss b/assets/scss/layouts/partials/site-footer.scss new file mode 100644 index 0000000..3b55b64 --- /dev/null +++ b/assets/scss/layouts/partials/site-footer.scss @@ -0,0 +1,4 @@ +.site-footer { + padding-block: 2rem; + text-align: center; +} \ No newline at end of file diff --git a/assets/scss/layouts/partials/site-header.scss b/assets/scss/layouts/partials/site-header.scss new file mode 100644 index 0000000..4846359 --- /dev/null +++ b/assets/scss/layouts/partials/site-header.scss @@ -0,0 +1,84 @@ +.site-header { + display: flex; + flex-flow: column; + align-items: center; + gap: 1em; + padding-block: 1em; +} + +.site-header .masthead { + margin-block-start: 1rem; +} + +.site-header nav { + margin-block: 3rem; +} + +.site-header ul { + list-style: none; + display: flex; + flex-flow: column; + align-items: center; + gap: 1em; + li.active { + color: gold; + font-weight: bold; + } +} + +.site-header nav a { + color: inherit; + text-decoration: none; + svg { + width: 0.75em; + height: 0.75em; + margin-inline-start: 0.5rem; + } +} + + + + +.site-header input, .site-header label { + display: none; +} + +@media (max-width: 40rem) { + + .site-header label { + display: unset; + svg { + width: 2rem; + height: 2rem; + } + } + + .site-header { + display: grid; + grid-template-areas: + "menu logo ." + "navs navs navs"; + grid-template-columns: 1fr auto 1fr; + + .menu-icon { + grid-area: menu; + margin-left: 2rem; + margin-top: 1rem; + } + .masthead { + grid-area: logo; + } + .navs { + grid-area: navs; + } + } + + .site-header .navs { + display: none; + } + + .menu-btn:checked ~ .navs { + display: unset; + } + +} \ No newline at end of file diff --git a/assets/scss/main.scss b/assets/scss/main.scss new file mode 100644 index 0000000..4a2d279 --- /dev/null +++ b/assets/scss/main.scss @@ -0,0 +1,20 @@ +@import "base/variables.scss"; +@import "base/layout.scss"; +@import "base/colors.scss"; + +@import "layouts/partials/site-header.scss"; +@import "layouts/partials/site-footer.scss"; + +@import "layouts/_default/single.scss"; + +@import "layouts/_default/all-photos.scss"; +@import "layouts/_default/albums.scss"; +@import "layouts/_default/tags.scss"; + +@import "layouts/_default/tag.scss"; +@import "layouts/_default/event.scss"; +@import "layouts/_default/photo.scss"; + +@import "layouts/partials/albums-list.scss"; +@import "layouts/partials/photos-list.scss"; +@import "layouts/partials/photos-grid.scss"; \ No newline at end of file diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..ee6054b --- /dev/null +++ b/content/_index.md @@ -0,0 +1,3 @@ ++++ +title = "Home" ++++ \ No newline at end of file diff --git a/content/albums/2014-09-16/_index.md b/content/albums/2014-09-16/_index.md new file mode 100644 index 0000000..0e84f96 --- /dev/null +++ b/content/albums/2014-09-16/_index.md @@ -0,0 +1,51 @@ ++++ +# Internal stuff +layout = "event" +aliases = [ + "/albums/balancebirmingham", +] +featured_asset = "**/IMAG0045.jpg" + +# Basic metadata +title = "The Things We Think We're Missing" +summary = "Balance and Composure (w/ CREEPOID, Seahaven) - 2014/09/16 @ Zydeco, Birmingham, AL" + +# Taxonomy +categories = ["Concert"] +tags = [ + "balancebirmingham", + "zydeco", + "birmingham al", + "balance and composure", + "seahaven", + "creepoid", +] + +# Event metadata +date = "2014-09-16T19:00:00-0500" + +[location] +name = "Zydeco" +url = "https://zydecobirmingham.com" +latitude = "33.4973328" +longitude = "-86.7930727" +altitude = "15" +street-address = "2001 15th Ave S" +locality = "Birmingham, Alabama" +postal-code = "35205" +country-name = "USA" + +[[openers]] +name = "CREEPOID" +url = "https://creepoid.bandcamp.com" + +[[openers]] +name = "Seahaven" +url = "https://www.facebook.com/welcometoseahaven" + +[[headliners]] +name = "Balance & Composure" +url = "https://www.balanceandcomp.com" ++++ + +my first concert. \ No newline at end of file diff --git a/content/albums/2014-10-21/_index.md b/content/albums/2014-10-21/_index.md new file mode 100644 index 0000000..e4f7546 --- /dev/null +++ b/content/albums/2014-10-21/_index.md @@ -0,0 +1,49 @@ ++++ +# Internal stuff +layout = "event" +aliases = [ + "/albums/sumus-ubique", +] +featured_asset = "**/IMG-1594.jpg" + +# Basic metadata +title = "Sumus Ubique" +summary = "Brand New (w/ Foxing, Cymbals Eat Guitars) - 2014/10/21 @ Iron City, Birmingham, AL" + +# Taxonomy +categories = ["Concert"] +tags = [ + "sumus ubique", + "iron city", + "birmingham al", + "brand new", + "foxing", + "cymbals eat guitars", +] + +# Event metadata +date = "2014-10-21T19:00:00-0500" + +[location] +name = "Iron City" +url = "https://ironcitybham.com" +latitude = "33.5088971" +longitude = "-86.7980653" +altitude = "15" +street-address = "513 22nd St S" +locality = "Birmingham, Alabama" +postal-code = "35233" +country-name = "USA" + +[[openers]] +name = "Foxing" +url = "https://foxingtheband.com" + +[[openers]] +name = "Cymbals Eat Guitars" +url = "https://cymbalseatguitars.bandcamp.com" + +[[headliners]] +name = "Brand New" +url = "https://www.fightoffyourdemons.com" ++++ \ No newline at end of file diff --git a/content/albums/_index.md b/content/albums/_index.md new file mode 100644 index 0000000..7147645 --- /dev/null +++ b/content/albums/_index.md @@ -0,0 +1,4 @@ ++++ +layout = "albums" +title = "concerts i've been to, in chronological order" ++++ \ No newline at end of file diff --git a/content/categories/_index.md b/content/categories/_index.md new file mode 100644 index 0000000..ed5e1eb --- /dev/null +++ b/content/categories/_index.md @@ -0,0 +1,4 @@ ++++ +title = "Categories of photos" +summary = "Different types of photos I've taken" ++++ \ No newline at end of file diff --git a/content/favorites/_index.md b/content/favorites/_index.md new file mode 100644 index 0000000..c317a9e --- /dev/null +++ b/content/favorites/_index.md @@ -0,0 +1,5 @@ ++++ +layout = "favorites" +title = "favorites" +summary = "some of the best photos i've taken" ++++ \ No newline at end of file diff --git a/content/info.md b/content/info.md new file mode 100644 index 0000000..1d90359 --- /dev/null +++ b/content/info.md @@ -0,0 +1,24 @@ ++++ +title = "info" +summary = "birdsounds.media is the creative arm of trwnh and an archive of concert media for general appreciation." ++++ + +birdsounds.media is the creative arm of trwnh and an archive of concert media for general appreciation. + +## support + +if you appreciate any of what you see here, you can show your appreciation by backing me as a patron on [liberapay.com/trwnh](https://liberapay.com/trwnh) or on [patreon.com/trwnh](https://patreon.com/trwnh). + +or you can donate directly via paypal (tarawneh.abdullah@gmail.com, friends and family -- maybe via [paypal/me/obvious_humor](https://paypal.me/obvious_humor)). + +or if you shop via amazon, then you can use my affiliate link so that i get paid a small fraction of anything you buy: [https://amzn.to/2rydvvC](https://amzn.to/2rydvvC) + +## booking + +if you would like to book my services to photograph a concert, event, or miscellaneous subject, please contact me at **a@trwnh.com** + +i am available in the birmingham, al area, but am willing to travel to other areas if travel costs are covered. + +## prints and merch + +you can buy prints of select photos as wall art, apparel, and much more via [society6.com/trwnh](https://society6.com/trwnh) -- however, if you would like to order a print of a photo that is not available on society6, please contact me at **a@trwnh.com** and i can add your requested photo to society6 for on-demand ordering. \ No newline at end of file diff --git a/content/photos/2014-09-16_21-50-06.md b/content/photos/2014-09-16_21-50-06.md new file mode 100644 index 0000000..d24cf62 --- /dev/null +++ b/content/photos/2014-09-16_21-50-06.md @@ -0,0 +1,27 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/balancebirmingham/content/galena", + "/content/galena", +] +photo_asset = "**/IMG-1311.jpg" +date = "2014-09-16T21:50:06-0500" + +# Basic metadata +title = "galena" +summary = "your breathing gets shorter, your hands are getting cold, but you can't die here; you're only nineteen years old." +alt = "jon simmons is swinging a guitar and singing into a microphone, his mouth open wide as if out of breath. the picture is edited to be grainy and slightly washed out, with a cooler color temperature." + +# Taxonomy +albums = ["2014-09-16"] +categories = ["Concert"] +tags = [ + "balance and composure", + "balancebirmingham", + "birmingham al", + "zydeco", + "jon simmons", +] +reels = [] ++++ \ No newline at end of file diff --git a/content/photos/2014-09-16_22-02-35.md b/content/photos/2014-09-16_22-02-35.md new file mode 100644 index 0000000..f13f678 --- /dev/null +++ b/content/photos/2014-09-16_22-02-35.md @@ -0,0 +1,28 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/balancebirmingham/content/keepsake", + "/content/keepsake", + "/favorites/keepsake", +] +photo_asset = "**/IMAG0045.jpg" +date = "2014-09-16T22:02:35-0500" + +# Basic metadata +title = "keepsake" +summary = "paint a portrait of this scene that is acting out a dream" +alt = "a mobile photo of a band playing music, where bright blue floodlights are peaking the image to give it a dreamy blurry watercolor look. the edges of the photo are faded to white to give the appearance of a picture frame." + +# Taxonomy +albums = ["2014-09-16"] +categories = ["Concert"] +tags = [ + "balance and composure", + "balancebirmingham", + "birmingham al", + "zydeco", + "jon simmons", +] +reels = ["favorites"] ++++ \ No newline at end of file diff --git a/content/photos/2014-10-21_21-02-53.md b/content/photos/2014-10-21_21-02-53.md new file mode 100644 index 0000000..42b12f9 --- /dev/null +++ b/content/photos/2014-10-21_21-02-53.md @@ -0,0 +1,26 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/sumus-ubique/content/inuit", + "/content/inuit", +] +photo_asset = "**/IMG-1434.jpg" +date = "2014-10-21T21:02:53-0500" + +# Basic metadata +title = "inuit" +summary = "my brightest love it was more than i shared, it was more than you cared" +alt = "" + +# Taxonomy +albums = ["2014-10-21"] +categories = ["Concert"] +tags = [ + "birmingham al", + "iron city", + "foxing", + "conor murphy", +] +reels = [] ++++ \ No newline at end of file diff --git a/content/photos/2014-10-21_21-19-11.md b/content/photos/2014-10-21_21-19-11.md new file mode 100644 index 0000000..06d56ae --- /dev/null +++ b/content/photos/2014-10-21_21-19-11.md @@ -0,0 +1,26 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/sumus-ubique/content/rory", + "/content/rory", +] +photo_asset = "**/IMG-1503.jpg" +date = "2014-10-21T21:19:11-0500" + +# Basic metadata +title = "rory" +summary = "i swear i'm a good man, so why don't you love me back?" +alt = "" + +# Taxonomy +albums = ["2014-10-21"] +categories = ["Concert"] +tags = [ + "birmingham al", + "iron city", + "foxing", + "conor murphy", +] +reels = [] ++++ \ No newline at end of file diff --git a/content/photos/2014-10-21_21-44-26.md b/content/photos/2014-10-21_21-44-26.md new file mode 100644 index 0000000..6decb63 --- /dev/null +++ b/content/photos/2014-10-21_21-44-26.md @@ -0,0 +1,25 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/sumus-ubique/content/cymbals-eat-guitars", + "/content/cymbals-eat-guitars", +] +photo_asset = "**/IMG-1523.jpg" +date = "2014-10-21T21:44:26-0500" + +# Basic metadata +title = "cymbals eat guitars" +summary = "" +alt = "" + +# Taxonomy +albums = ["2014-10-21"] +categories = ["Concert"] +tags = [ + "birmingham al", + "iron city", + "cymbals eat guitars", +] +reels = [] ++++ \ No newline at end of file diff --git a/content/photos/2014-10-21_23-20-53.md b/content/photos/2014-10-21_23-20-53.md new file mode 100644 index 0000000..4c7e8ec --- /dev/null +++ b/content/photos/2014-10-21_23-20-53.md @@ -0,0 +1,27 @@ ++++ +# Internal stuff +layout = "photo" +aliases = [ + "/albums/sumus-ubique/content/sowing-season", + "/content/sowing-season", + "/favorites/sowing-season", +] +photo_asset = "**/IMG-1594.jpg" +date = "2014-10-21T23:20:53-0500" + +# Basic metadata +title = "sowing season" +summary = "before you put my body in the cold ground, take some time to warm it with your hand" +alt = "jesse lacey with his head bowed forward, looking at the ground. a bright orange light flares from behind his hands, illuminating the outline of a guitar and the flower wreath on the microphone stand." + +# Taxonomy +albums = ["2014-10-21"] +categories = ["Concert"] +tags = [ + "birmingham al", + "iron city", + "brand new", + "jesse lacey", +] +reels = ["favorites"] ++++ \ No newline at end of file diff --git a/content/photos/_index.md b/content/photos/_index.md new file mode 100644 index 0000000..a3f5b55 --- /dev/null +++ b/content/photos/_index.md @@ -0,0 +1,8 @@ ++++ +layout = "all-photos" +title = "all photos" +url = "/" +aliases = [ + "/photos", +] ++++ \ No newline at end of file diff --git a/content/tags/_index.md b/content/tags/_index.md new file mode 100644 index 0000000..7f18c52 --- /dev/null +++ b/content/tags/_index.md @@ -0,0 +1,4 @@ ++++ +layout = "tags" +title = "index of tags" ++++ \ No newline at end of file diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..40dbea0 --- /dev/null +++ b/hugo.toml @@ -0,0 +1,75 @@ +baseURL = 'https://birdsounds.media/' +languageCode = 'en-us' +title = 'birdsounds.media' +summary = "you're not awake at all" +capitalizeListTitles = false + + + +[imaging] +quality = 80 + + + +[markup.goldmark.renderer] +unsafe = true + + + +[[menus.main]] +name = "albums" +pageRef = "/albums" +weight = 30 + +[[menus.main]] +name = "all photos" +pageRef = "/" +weight = 10 + +[[menus.main]] +name = "favorites" +pageRef = "/favorites" +weight = 20 + +[[menus.main]] +name = "tags" +pageRef = "/tags" +weight = 40 + + + +[[menus.second]] +name = "info" +pageRef = "/info" +weight = 10 + +[[menus.second]] +name = "prints/merch" +url = "https://society6.com/trwnh" +weight = 20 + + + +[[menus.third]] +name = "trwnh.com" +url = "https://trwnh.com" +weight = 10 + +[[menus.third]] +name = "social" +url = "https://mastodon.social/@trwnh" +weight = 20 + + + +[params.style] +site-max-width = "120rem" +list-max-width = "60rem" + + + +[taxonomies] +album = "albums" +category = "categories" +tag = "tags" +reel = "reels" \ No newline at end of file diff --git a/layouts/_default/albums.html b/layouts/_default/albums.html new file mode 100644 index 0000000..5dd1ee9 --- /dev/null +++ b/layouts/_default/albums.html @@ -0,0 +1,21 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+

{{ .Title }}

+
+
+
+
+ {{ partial "albums-list.html" .Data.Pages.Reverse }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/all-photos.html b/layouts/_default/all-photos.html new file mode 100644 index 0000000..7736c22 --- /dev/null +++ b/layouts/_default/all-photos.html @@ -0,0 +1,18 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+
+
+
+ {{ $photos := where .RegularPages "Type" "photos" }} + {{ partial "photos-grid.html" $photos }} +
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..3ba7f52 --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,37 @@ + + + + + + + + {{ with resources.Get "scss/main.scss" }} + {{ $options := dict + "targetPath" "css/style.css" + "transpiler" "libsass" + "vars" site.Params.style + }} + {{ $style := . | toCSS $options | minify | fingerprint }} + + {{ end }} + {{ with resources.Get "js/main.js" }} + {{ $js := . | minify | minify | fingerprint }} + + {{ end }} + {{ partial "seo.html" . }} + {{ block "head" . }} + {{ end }} + + + {{ block "body" . }} + {{ partial "site-header.html" . }} + {{ block "main" . }} + {{ end }} + {{ partial "site-footer.html" . }} + {{ end }} + + diff --git a/layouts/_default/event.html b/layouts/_default/event.html new file mode 100644 index 0000000..3b2bc92 --- /dev/null +++ b/layouts/_default/event.html @@ -0,0 +1,125 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+
+

{{ .Title }}

+ {{ with .Params.location }} +

Venue

+

+ {{ partial "svg/mdi.map-marker.html" . }} + {{ if .url }} + + + {{ .name }} + + + {{ else }} {{/* no url */}} + + {{ .name }} + + {{ end }} {{/* url check */}} +

+

+ {{ partial "svg/mdi.map.html" . }} + + {{ .locality }}, {{ index . "country-name" }} + +

+ {{ end }} {{/* with location */}} + {{ if and .Params.location .Date }} + {{ with .Date }} +

+ {{ partial "svg/mdi.calendar-time.html" . }} + + + +

+ {{ end }} {{/* with date */}} + {{ end }} {{/* event check */}} + {{ with .Params.openers }} +

Openers

+
    + {{ range . }} +
  • + {{ partial "svg/mdi.artist.html" . }} + {{ if .url }} + + + {{ .name }} + + + {{ else }} {{/* no url */}} + + {{ .name }} + + {{ end }} {{/* url */}} +
  • + {{ end }} {{/* range */}} +
+ {{ end }} {{/* with openers */}} + {{ with .Params.headliners }} +

Headliners

+
    + {{ range . }} +
  • + {{ partial "svg/mdi.artist.html" . }} + {{ partial "svg/mdi.star.html" . }} + {{ if .url }} + + + {{ .name }} + + + {{ else }} {{/* no url */}} + + {{ .name }} + + {{ end }} {{/* url */}} +
  • + {{ end }} {{/* range */}} +
+ {{ end }} {{/* with headliners */}} +
+
+ {{ with .Content }} +
+
+

Notes

+
+ {{ . }} +
+
+
+ {{ end }} + {{ with .Params.tags }} +
+
+

Tagged with

+
    + {{ range . }} +
  • + + #{{.}} + +
  • + {{ end }} {{/* range */}} +
+
+
+ {{ end }} {{/* with tags */}} +
+
+
+

Photos ({{ .Pages.Len }})

+ {{ partial "photos-grid.html" .Pages.Reverse }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/favorites.html b/layouts/_default/favorites.html new file mode 100644 index 0000000..b2faa5e --- /dev/null +++ b/layouts/_default/favorites.html @@ -0,0 +1,17 @@ +{{ define "main" }} +
+
+
+

{{.Title}}

+

{{.Summary}}

+
+
+
+
+ {{ $reels := index .Site.Taxonomies "reels" }} + {{ $favorites := index $reels "favorites" }} + {{ partial "photos-grid.html" $favorites }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..851e9e3 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,26 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+

{{ .Title }}

+
+
+
+
+ +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/photo.html b/layouts/_default/photo.html new file mode 100644 index 0000000..13e4376 --- /dev/null +++ b/layouts/_default/photo.html @@ -0,0 +1,34 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+

{{ .Title }}

+

{{ .Summary | markdownify }}

+ {{ partial "photo_asset.html" .}} + {{ partial "photo_asset.exif.html" .}} +
+ {{ partial "next-prev-photo-in-album.html" . }} + {{ with .Params.tags }} +
+
+
    + {{ range . }} +
  • + + #{{.}} + +
  • + {{ end }} {{/* range */}} +
+
+
+ {{ end }} {{/* with tags */}} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..51a5f20 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,20 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+

{{.Title}}

+
+
+
+
+ {{ .Content }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/tag.html b/layouts/_default/tag.html new file mode 100644 index 0000000..7187949 --- /dev/null +++ b/layouts/_default/tag.html @@ -0,0 +1,29 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+
+
+

tagged with #{{ .Title }}

+
+
+
+
+ {{ $album_pages := where .Pages "Type" "albums" }} +

Albums ({{ $album_pages.Len }})

+ {{ partial "albums-list.html" $album_pages}} +
+
+
+
+ {{ $photo_pages := where .Pages "Type" "photos"}} +

Photos ({{ $photo_pages.Len }})

+ {{ partial "photos-list.html" $photo_pages }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/_default/tags.html b/layouts/_default/tags.html new file mode 100644 index 0000000..8e86bc2 --- /dev/null +++ b/layouts/_default/tags.html @@ -0,0 +1,28 @@ +{{ define "main" }} +{{ if not hugo.IsProduction }} + +{{ end }} +
+ +
+
+
    + {{ range .Data.Terms.ByCount }} +
  • + {{ .Name }} + {{ .Count }} +
  • + {{end}} +
+
+
+
+{{ end }} \ No newline at end of file diff --git a/layouts/partials/albums-list.html b/layouts/partials/albums-list.html new file mode 100644 index 0000000..a0a63e3 --- /dev/null +++ b/layouts/partials/albums-list.html @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/layouts/partials/name.html b/layouts/partials/name.html new file mode 100644 index 0000000..10df9d7 --- /dev/null +++ b/layouts/partials/name.html @@ -0,0 +1,16 @@ +{{ $firstH1 := + ( + substr + ( + delimit + ( + findRE + "^#{1} ([^{\n]+)" + .RawContent + 1 + ) + "" + ) + 2 + ) +}} \ No newline at end of file diff --git a/layouts/partials/next-prev-photo-in-album.html b/layouts/partials/next-prev-photo-in-album.html new file mode 100644 index 0000000..ed02b8b --- /dev/null +++ b/layouts/partials/next-prev-photo-in-album.html @@ -0,0 +1,43 @@ +{{ range (.GetTerms "albums") }} + + {{ $pageReached := false }} + {{ $next := false }} + {{ range .Pages.Reverse }} + {{ if not $next}} + {{ if $pageReached }} + {{ $next = . }} + {{ else if eq .Permalink $.Permalink }} + {{ $pageReached = true}} + {{ end }} + {{ end }} + {{ end }} + + + {{ $pageReached = false }} + {{ $prev := false }} + {{ range .Pages }} + {{ if not $prev}} + {{ if $pageReached }} + {{ $prev = . }} + {{ else if eq .Permalink $.Permalink }} + {{ $pageReached = true}} + {{ end }} + {{ end }} + {{ end }} + + + +{{ end }} \ No newline at end of file diff --git a/layouts/partials/photo_asset.exif.html b/layouts/partials/photo_asset.exif.html new file mode 100644 index 0000000..f3db83b --- /dev/null +++ b/layouts/partials/photo_asset.exif.html @@ -0,0 +1,30 @@ +{{ with resources.GetMatch .Params.photo_asset }} + {{ with .Exif }} +
+ {{ with .Date }} +
Captured
+
+ {{ end }} + {{ with .Tags }} + {{ with .FNumber }} +
Aperture
+
f/{{ . }}
+ {{ end }} + {{ with .ExposureTime }} +
Exposure
+
{{ . }} s
+ {{ end }} + {{ with .ISOSpeedRatings }} +
ISO
+
{{ . }}
+ {{ end }} + {{ with .Model }} +
Model
+
{{ . }}
+ {{ end }} + {{ end }} +
+ {{ end }} +{{ end }} {{/* with asset */}} + + diff --git a/layouts/partials/photo_asset.html b/layouts/partials/photo_asset.html new file mode 100644 index 0000000..ca5dac8 --- /dev/null +++ b/layouts/partials/photo_asset.html @@ -0,0 +1,29 @@ +{{ $alt := or .Params.alt .Title "image" }} + +{{ with resources.GetMatch .Params.photo_asset }} + + {{/* + 1280px (80rem) = 640, + 1600px (100rem) = 960, + 1920px (120rem) = 1280 + */}} + + {{ $smallw := default "640x webp Lanczos" }} + {{ $mediumw := default "960x webp Lanczos" }} + {{ $largew := default "1280x webp Lanczos" }} + + {{ $.Scratch.Set "small" (.Resize $smallw) }} + {{ $.Scratch.Set "medium" (.Resize $mediumw) }} + {{ $.Scratch.Set "large" (.Resize $largew) }} + + {{ $small := $.Scratch.Get "small" }} + {{ $medium := $.Scratch.Get "medium" }} + {{ $large := $.Scratch.Get "large" }} + + + + + {{ $alt }} + + +{{ end }} {{/* with asset */}} \ No newline at end of file diff --git a/layouts/partials/photos-grid.html b/layouts/partials/photos-grid.html new file mode 100644 index 0000000..d363e41 --- /dev/null +++ b/layouts/partials/photos-grid.html @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/layouts/partials/photos-list.html b/layouts/partials/photos-list.html new file mode 100644 index 0000000..7e54278 --- /dev/null +++ b/layouts/partials/photos-list.html @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/layouts/partials/seo.html b/layouts/partials/seo.html new file mode 100644 index 0000000..fd3403b --- /dev/null +++ b/layouts/partials/seo.html @@ -0,0 +1,154 @@ +{{- $firstH1 := partial "name.html" . }} +{{- $title := or .Title $firstH1 $.File.ContentBaseName }} + +{{- $cover := ($.Resources.ByType "image").GetMatch "{*opengraph*}" -}} +{{ $icon := resources.GetMatch (default "" .Site.Params.icon) -}} + +{{/*=== title ===*/}} +{{ "" | safeHTML }} +{{- with .Site.Title }} + +{{- end -}} +{{- if .IsHome}} +{{- with or .Params.name .Site.Title }} +{{ . }} + +{{- end }} +{{- else }} +{{ or .Params.name (print $title " - " .Site.Title) }} + +{{- end -}} + +{{/*=== description ===*/}} +{{- with or .Description .Summary .Site.Params.description }} + + +{{- end }} +{{ "" | safeHTML }} +{{- with .Permalink | absURL}} + + + + +{{- end -}} + +{{/*=== image ===*/}} +{{- $staticIcon := "icon.png" | absURL -}} +{{- with or $cover $icon }} +{{ "" | safeHTML }} + +{{- with .Width }} + +{{- end }} +{{- with .Height }} + +{{- end }} + + +{{- else }} +{{ "" | safeHTML }} + + + +{{- end -}} + +{{/*=== extra params? ===*/}} +{{- with .Params.audio }}{{ end }} +{{- with .Params.locale }}{{ end }} +{{- with .Params.videos }}{{- range . }} + +{{ end }}{{ end }} + +{{/*=== article ===*/}} +{{ with or .Params.author .Site.Params.author -}} +{{ "" | safeHTML }} + +{{- end }} + +{{ "" | safeHTML }} +{{ with .Date -}} + +{{ end -}} +{{ with .Lastmod -}} + +{{ end -}} + +{{/*=== section and keywords ===*/}} +{{- "" | safeHTML }} +{{ with.Params.category -}} + +{{- end -}} +{{- with .Params.tags }} + +{{- end -}} + +{{- if isset .Params "date" }} +{{ "" | safeHTML }} + + + +{{- else }} +{{ "" | safeHTML }} + + +{{- end -}} + +{{/* auxiliary info */}} +{{ "" | safeHTML }} +{{ with $icon }} + +{{- else -}} + +{{- end }} + + + +{{ with .OutputFormats.Get "RSS" -}} + +{{- end -}} + +{{/* robots */}} +{{ "" | safeHTML }} + + \ No newline at end of file diff --git a/layouts/partials/site-footer.html b/layouts/partials/site-footer.html new file mode 100644 index 0000000..d3c5f36 --- /dev/null +++ b/layouts/partials/site-footer.html @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/layouts/partials/site-header.html b/layouts/partials/site-header.html new file mode 100644 index 0000000..3e008b5 --- /dev/null +++ b/layouts/partials/site-header.html @@ -0,0 +1,41 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/cib.creative-commons-by.html b/layouts/partials/svg/cib.creative-commons-by.html new file mode 100644 index 0000000..e9a7d26 --- /dev/null +++ b/layouts/partials/svg/cib.creative-commons-by.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/cib.creative-commons-nc.html b/layouts/partials/svg/cib.creative-commons-nc.html new file mode 100644 index 0000000..8ff6ae8 --- /dev/null +++ b/layouts/partials/svg/cib.creative-commons-nc.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/cib.creative-commons-sa.html b/layouts/partials/svg/cib.creative-commons-sa.html new file mode 100644 index 0000000..fdc46cc --- /dev/null +++ b/layouts/partials/svg/cib.creative-commons-sa.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/cib.creative-commons.html b/layouts/partials/svg/cib.creative-commons.html new file mode 100644 index 0000000..ba4e149 --- /dev/null +++ b/layouts/partials/svg/cib.creative-commons.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.artist.html b/layouts/partials/svg/mdi.artist.html new file mode 100644 index 0000000..e4717c9 --- /dev/null +++ b/layouts/partials/svg/mdi.artist.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.calendar-time.html b/layouts/partials/svg/mdi.calendar-time.html new file mode 100644 index 0000000..44f7cf4 --- /dev/null +++ b/layouts/partials/svg/mdi.calendar-time.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.map-marker.html b/layouts/partials/svg/mdi.map-marker.html new file mode 100644 index 0000000..aaaf937 --- /dev/null +++ b/layouts/partials/svg/mdi.map-marker.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.map.html b/layouts/partials/svg/mdi.map.html new file mode 100644 index 0000000..f45e0dd --- /dev/null +++ b/layouts/partials/svg/mdi.map.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.menu.html b/layouts/partials/svg/mdi.menu.html new file mode 100644 index 0000000..cb4954f --- /dev/null +++ b/layouts/partials/svg/mdi.menu.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.star.html b/layouts/partials/svg/mdi.star.html new file mode 100644 index 0000000..07370e9 --- /dev/null +++ b/layouts/partials/svg/mdi.star.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/mdi.web.html b/layouts/partials/svg/mdi.web.html new file mode 100644 index 0000000..241f71e --- /dev/null +++ b/layouts/partials/svg/mdi.web.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/svg/oi.external-link.html b/layouts/partials/svg/oi.external-link.html new file mode 100644 index 0000000..da4b90f --- /dev/null +++ b/layouts/partials/svg/oi.external-link.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/koken_y.png b/static/koken_y.png new file mode 100644 index 0000000..d37f791 Binary files /dev/null and b/static/koken_y.png differ