OverviewFilesCommitsIssuesDocsReleasesPeers

folio commits / 24adc03

Fix manifest format to match index.php JS, add Ashes images + manifest
Manifest now uses: name, full, hasInfo, mdUrl (not filename, path, sidecar) Collections are string arrays (not dicts) All 22 tests pass Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24adc038b5039d940875ef9e41994a60d407ec6e
by plankatron <fleeky@gmail.com> · 2026-03-17T17:57:32.000Z

Changed files (301) +1037 -36

images/in-dreams/1009494620_364f90e07e_o.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/2005-02-02 23.25.40.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/697498810_dc2df529d6_o.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Alona Martier in star mode.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Angel of Decomposition.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Ashes Monroe in glitch.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Darius Drooh for The Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Fae.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Forest.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Her Wonderful Shoulders.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/In the Attic.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/In the Mirror.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Lady of December.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Lillies.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Luna.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Maxence under a sea of sky.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Nothing is Wasted.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Possede.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Praying in the Attic.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Rachel Strickland as Ophelia.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Riddle.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Samhain.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Shut your mouth.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/The Castle.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/The Corset.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Thinking of Alona in space.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Thoughtfully.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Time Passes.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/VIS_6117_Edited 1 (1).jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/Waiting in Rhythm.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/ashesbook08.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/dreamcatcher.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/dreamcatcher.md +11 -0
……@@ -0,0 +1,11 @@
1# Dreamcatcher
2
3Mixed media, 2019
4
5A fractured portrait emerging from layers of salvaged fabric and digital compositing — half-revealed, half-consumed by color. The face peers out from beneath crumpled tissue and cellophane like a memory surfacing through static, caught between dissolution and recognition.
6
7**Medium:** Digital composite, salvaged materials, tissue, cellophane
8**Dimensions:** 24 x 16 in
9**Price:** $850
10
11[Purchase this work](mailto:ashes@ashesmonroe.com?subject=Inquiry%3A%20Dreamcatcher)
images/in-dreams/licornefibonacciflatsmall.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/nervouse_goldmind2 (1).jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/nervouse_goldmind4.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/pheonixflatsmall.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/rachel strickland in her petri dish.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/rachel strickland in the Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/scary.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thought12.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thought2.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thought5.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/1009494620_364f90e07e_o.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/2005-02-02 23.25.40.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/697498810_dc2df529d6_o.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Alona Martier in star mode.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Angel of Decomposition.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Ashes Monroe in glitch.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Darius Drooh for The Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Fae.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Forest.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Her Wonderful Shoulders.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/In the Attic.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/In the Mirror.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Lady of December.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Lillies.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Luna.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Maxence under a sea of sky.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Nothing is Wasted.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Possede.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Praying in the Attic.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Rachel Strickland as Ophelia.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Riddle.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Samhain.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Shut your mouth.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/The Castle.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/The Corset.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Thinking of Alona in space.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Thoughtfully.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Time Passes.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/VIS_6117_Edited 1 (1).jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/Waiting in Rhythm.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/ashesbook08.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/dreamcatcher.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/licornefibonacciflatsmall.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/nervouse_goldmind2 (1).jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/nervouse_goldmind4.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/pheonixflatsmall.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/rachel strickland in her petri dish.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/rachel strickland in the Boy Who Died Wolf.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/scary.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/thought12.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/thought2.jpg +0 -0
(no content changes — binary or rename)
images/in-dreams/thumbs/thought5.jpg +0 -0
(no content changes — binary or rename)
images/installations/Green Hill Box.jpg +0 -0
(no content changes — binary or rename)
images/installations/Installation Green.jpg +0 -0
(no content changes — binary or rename)
images/installations/Installation Tree.jpg +0 -0
(no content changes — binary or rename)
images/installations/The Angel of Decomposition.jpg +0 -0
(no content changes — binary or rename)
images/installations/The Fruiting Wall.jpg +0 -0
(no content changes — binary or rename)
images/installations/VIS_0673.jpg +0 -0
(no content changes — binary or rename)
images/installations/bear totem.jpg +0 -0
(no content changes — binary or rename)
images/installations/bear totem.md +11 -0
……@@ -0,0 +1,11 @@
1# Bear Totem
2
3Sculpture, 2018
4
5A weathered clay form shaped by erosion and intention alike — two hollowed eyes and a gaping mouth worn into the surface like a face the earth decided to keep. Found and carved, it sits somewhere between artifact and invention, a small guardian pulled from the dirt and given a name.
6
7**Medium:** Found stone, hand-carved clay
8**Dimensions:** 4 x 4 x 3 in
9**Price:** $300
10
11[Purchase this work](mailto:ashes@ashesmonroe.com?subject=Inquiry%3A%20Bear%20Totem)
images/installations/blue unicorn.jpg +0 -0
(no content changes — binary or rename)
images/installations/coins in hand.jpg +0 -0
(no content changes — binary or rename)
images/installations/crystal hands.jpg +0 -0
(no content changes — binary or rename)
images/installations/crystal held.jpg +0 -0
(no content changes — binary or rename)
images/installations/dark puppets.jpg +0 -0
(no content changes — binary or rename)
images/installations/fire above all.jpg +0 -0
(no content changes — binary or rename)
images/installations/fleeky flanco in the tree room.jpg +0 -0
(no content changes — binary or rename)
images/installations/grateful ashes bowl.jpg +0 -0
(no content changes — binary or rename)
images/installations/grateful ashes.jpg +0 -0
(no content changes — binary or rename)
images/installations/lapin totem.jpg +0 -0
(no content changes — binary or rename)
images/installations/last cayuga performance.jpg +0 -0
(no content changes — binary or rename)
images/installations/luna in stable.jpg +0 -0
(no content changes — binary or rename)
images/installations/luna in waiting.jpg +0 -0
(no content changes — binary or rename)
images/installations/mushroom sculpture.jpg +0 -0
(no content changes — binary or rename)
images/installations/outside my door (1).jpg +0 -0
(no content changes — binary or rename)
images/installations/outside my door.jpg +0 -0
(no content changes — binary or rename)
images/installations/paper sculpture.jpg +0 -0
(no content changes — binary or rename)
images/installations/red room.jpg +0 -0
(no content changes — binary or rename)
images/installations/skull stack.jpg +0 -0
(no content changes — binary or rename)
images/installations/the box.jpg +0 -0
(no content changes — binary or rename)
images/installations/the flower room.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/Green Hill Box.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/Installation Green.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/Installation Tree.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/The Angel of Decomposition.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/The Fruiting Wall.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/VIS_0673.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/bear totem.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/blue unicorn.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/coins in hand.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/crystal hands.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/crystal held.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/dark puppets.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/fire above all.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/fleeky flanco in the tree room.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/grateful ashes bowl.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/grateful ashes.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/lapin totem.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/last cayuga performance.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/luna in stable.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/luna in waiting.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/mushroom sculpture.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/outside my door (1).jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/outside my door.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/paper sculpture.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/red room.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/skull stack.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/the box.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/the flower room.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/unicorn sisters.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/unicorngold.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/vintage lights again.jpg +0 -0
(no content changes — binary or rename)
images/installations/thumbs/vintage lights.jpg +0 -0
(no content changes — binary or rename)
images/installations/unicorn sisters.jpg +0 -0
(no content changes — binary or rename)
images/installations/unicorngold.jpg +0 -0
(no content changes — binary or rename)
images/installations/vintage lights again.jpg +0 -0
(no content changes — binary or rename)
images/installations/vintage lights.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook02.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook03.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook06.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook08.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook09.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook10.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook12.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook13.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook14.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook15.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook16.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesbook17.jpg +0 -0
(no content changes — binary or rename)
images/old/asheslogo.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesmonroe01.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesmonroe20.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesmonroebackground.jpg +0 -0
(no content changes — binary or rename)
images/old/ashesmonroebgwhite.jpg +0 -0
(no content changes — binary or rename)
images/old/bgwhite.jpg +0 -0
(no content changes — binary or rename)
images/old/collection.jpg +0 -0
(no content changes — binary or rename)
images/old/leather.jpg +0 -0
(no content changes — binary or rename)
images/old/leather2.jpg +0 -0
(no content changes — binary or rename)
images/old/leather3.jpg +0 -0
(no content changes — binary or rename)
images/old/leatherbg.jpg +0 -0
(no content changes — binary or rename)
images/old/lineswhite.jpg +0 -0
(no content changes — binary or rename)
images/old/mynameis.jpg +0 -0
(no content changes — binary or rename)
images/old/name.jpg +0 -0
(no content changes — binary or rename)
images/old/redglow.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook02.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook03.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook06.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook08.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook09.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook10.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook12.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook13.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook14.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook15.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook16.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesbook17.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/asheslogo.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesmonroe01.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesmonroe20.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesmonroebackground.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/ashesmonroebgwhite.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/bgwhite.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/collection.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/leather.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/leather2.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/leather3.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/leatherbg.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/lineswhite.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/mynameis.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/name.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/redglow.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/title.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/title2.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage01.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage02.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage03.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage04.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage05.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage06.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage07.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage08.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage09.jpg +0 -0
(no content changes — binary or rename)
images/old/thumbs/voyage10.jpg +0 -0
(no content changes — binary or rename)
images/old/title.jpg +0 -0
(no content changes — binary or rename)
images/old/title2.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage01.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage02.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage03.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage04.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage05.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage06.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage07.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage08.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage09.jpg +0 -0
(no content changes — binary or rename)
images/old/voyage10.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/59505066_10157582798510864_8068479438611808256_o.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/59719105_10157585281100864_2365979208557002752_o.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Blue Bird.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Blue Bird.md +11 -0
……@@ -0,0 +1,11 @@
1# Blue Bird
2
3Acrylic on canvas, 2019
4
5A storm of blue and coral bleeds across the canvas — a bird-like silhouette caught mid-flight in the wash, barely distinguishable from the rain. The paint moves in heavy, gestural pulls, part landscape, part emotional weather map. You feel it before you see it.
6
7**Medium:** Acrylic on canvas
8**Dimensions:** 36 x 36 in
9**Price:** $1,200
10
11[Purchase this work](mailto:ashes@ashesmonroe.com?subject=Inquiry%3A%20Blue%20Bird)
images/paint-and-pixels/Golden Scream.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190412_212032_335.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190412_214304_957.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190429_161912_231.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190626_120101_103.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190701_182802_339.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20190828_214544aheeeee.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/IMG_20200112_233809.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Leatherface.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Prisms.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Red Rabbit.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Red Room.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Rivers.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Sky Crash.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/The Mask.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/Thefruit (1).jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/VIS_0474.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/VIS_0493b.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/VIS_0760.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/elab_IMG_20190409_181225.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/flourescence.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/gash.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/misfire.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/outside my door.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/teufel.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/texture.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/the dentist (1).jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/the dentist.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/the same face.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/59505066_10157582798510864_8068479438611808256_o.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/59719105_10157585281100864_2365979208557002752_o.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Blue Bird.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Golden Scream.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190412_212032_335.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190412_214304_957.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190429_161912_231.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190626_120101_103.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190701_182802_339.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20190828_214544aheeeee.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/IMG_20200112_233809.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Leatherface.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Prisms.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Red Rabbit.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Red Room.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Rivers.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Sky Crash.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/The Mask.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/Thefruit (1).jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/VIS_0474.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/VIS_0493b.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/VIS_0760.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/elab_IMG_20190409_181225.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/flourescence.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/gash.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/misfire.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/outside my door.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/teufel.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/texture.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/the dentist (1).jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/the dentist.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/the same face.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/thumbs/trust me.jpg +0 -0
(no content changes — binary or rename)
images/paint-and-pixels/trust me.jpg +0 -0
(no content changes — binary or rename)
logo.png +0 -0
(no content changes — binary or rename)
manifest.json +981 -0
……@@ -0,0 +1,981 @@
1{
2 "collections": [
3 "in-dreams",
4 "installations",
5 "paint-and-pixels"
6 ],
7 "items": [
8 {
9 "type": "image",
10 "collection": "in-dreams",
11 "name": "1009494620_364f90e07e_o.jpg",
12 "full": "images/in-dreams/1009494620_364f90e07e_o.jpg",
13 "thumb": "images/in-dreams/thumbs/1009494620_364f90e07e_o.jpg",
14 "hasInfo": false,
15 "mdUrl": "images/in-dreams/1009494620_364f90e07e_o.md"
16 },
17 {
18 "type": "image",
19 "collection": "in-dreams",
20 "name": "2005-02-02 23.25.40.jpg",
21 "full": "images/in-dreams/2005-02-02 23.25.40.jpg",
22 "thumb": "images/in-dreams/thumbs/2005-02-02 23.25.40.jpg",
23 "hasInfo": false,
24 "mdUrl": "images/in-dreams/2005-02-02 23.25.40.md"
25 },
26 {
27 "type": "image",
28 "collection": "in-dreams",
29 "name": "697498810_dc2df529d6_o.jpg",
30 "full": "images/in-dreams/697498810_dc2df529d6_o.jpg",
31 "thumb": "images/in-dreams/thumbs/697498810_dc2df529d6_o.jpg",
32 "hasInfo": false,
33 "mdUrl": "images/in-dreams/697498810_dc2df529d6_o.md"
34 },
35 {
36 "type": "image",
37 "collection": "in-dreams",
38 "name": "Alona Martier in star mode.jpg",
39 "full": "images/in-dreams/Alona Martier in star mode.jpg",
40 "thumb": "images/in-dreams/thumbs/Alona Martier in star mode.jpg",
41 "hasInfo": false,
42 "mdUrl": "images/in-dreams/Alona Martier in star mode.md"
43 },
44 {
45 "type": "image",
46 "collection": "in-dreams",
47 "name": "Angel of Decomposition.jpg",
48 "full": "images/in-dreams/Angel of Decomposition.jpg",
49 "thumb": "images/in-dreams/thumbs/Angel of Decomposition.jpg",
50 "hasInfo": false,
51 "mdUrl": "images/in-dreams/Angel of Decomposition.md"
52 },
53 {
54 "type": "image",
55 "collection": "in-dreams",
56 "name": "Ashes Monroe in glitch.jpg",
57 "full": "images/in-dreams/Ashes Monroe in glitch.jpg",
58 "thumb": "images/in-dreams/thumbs/Ashes Monroe in glitch.jpg",
59 "hasInfo": false,
60 "mdUrl": "images/in-dreams/Ashes Monroe in glitch.md"
61 },
62 {
63 "type": "image",
64 "collection": "in-dreams",
65 "name": "Darius Drooh for The Boy Who Died Wolf.jpg",
66 "full": "images/in-dreams/Darius Drooh for The Boy Who Died Wolf.jpg",
67 "thumb": "images/in-dreams/thumbs/Darius Drooh for The Boy Who Died Wolf.jpg",
68 "hasInfo": false,
69 "mdUrl": "images/in-dreams/Darius Drooh for The Boy Who Died Wolf.md"
70 },
71 {
72 "type": "image",
73 "collection": "in-dreams",
74 "name": "Fae.jpg",
75 "full": "images/in-dreams/Fae.jpg",
76 "thumb": "images/in-dreams/thumbs/Fae.jpg",
77 "hasInfo": false,
78 "mdUrl": "images/in-dreams/Fae.md"
79 },
80 {
81 "type": "image",
82 "collection": "in-dreams",
83 "name": "Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.jpg",
84 "full": "images/in-dreams/Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.jpg",
85 "thumb": "images/in-dreams/thumbs/Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.jpg",
86 "hasInfo": false,
87 "mdUrl": "images/in-dreams/Fleeky Flanco dressed as a Seizure Aura for The Boy Who Died Wolf.md"
88 },
89 {
90 "type": "image",
91 "collection": "in-dreams",
92 "name": "Forest.jpg",
93 "full": "images/in-dreams/Forest.jpg",
94 "thumb": "images/in-dreams/thumbs/Forest.jpg",
95 "hasInfo": false,
96 "mdUrl": "images/in-dreams/Forest.md"
97 },
98 {
99 "type": "image",
100 "collection": "in-dreams",
101 "name": "Her Wonderful Shoulders.jpg",
102 "full": "images/in-dreams/Her Wonderful Shoulders.jpg",
103 "thumb": "images/in-dreams/thumbs/Her Wonderful Shoulders.jpg",
104 "hasInfo": false,
105 "mdUrl": "images/in-dreams/Her Wonderful Shoulders.md"
106 },
107 {
108 "type": "image",
109 "collection": "in-dreams",
110 "name": "In the Attic.jpg",
111 "full": "images/in-dreams/In the Attic.jpg",
112 "thumb": "images/in-dreams/thumbs/In the Attic.jpg",
113 "hasInfo": false,
114 "mdUrl": "images/in-dreams/In the Attic.md"
115 },
116 {
117 "type": "image",
118 "collection": "in-dreams",
119 "name": "In the Mirror.jpg",
120 "full": "images/in-dreams/In the Mirror.jpg",
121 "thumb": "images/in-dreams/thumbs/In the Mirror.jpg",
122 "hasInfo": false,
123 "mdUrl": "images/in-dreams/In the Mirror.md"
124 },
125 {
126 "type": "image",
127 "collection": "in-dreams",
128 "name": "Lady of December.jpg",
129 "full": "images/in-dreams/Lady of December.jpg",
130 "thumb": "images/in-dreams/thumbs/Lady of December.jpg",
131 "hasInfo": false,
132 "mdUrl": "images/in-dreams/Lady of December.md"
133 },
134 {
135 "type": "image",
136 "collection": "in-dreams",
137 "name": "Lillies.jpg",
138 "full": "images/in-dreams/Lillies.jpg",
139 "thumb": "images/in-dreams/thumbs/Lillies.jpg",
140 "hasInfo": false,
141 "mdUrl": "images/in-dreams/Lillies.md"
142 },
143 {
144 "type": "image",
145 "collection": "in-dreams",
146 "name": "Luna.jpg",
147 "full": "images/in-dreams/Luna.jpg",
148 "thumb": "images/in-dreams/thumbs/Luna.jpg",
149 "hasInfo": false,
150 "mdUrl": "images/in-dreams/Luna.md"
151 },
152 {
153 "type": "image",
154 "collection": "in-dreams",
155 "name": "Maxence under a sea of sky.jpg",
156 "full": "images/in-dreams/Maxence under a sea of sky.jpg",
157 "thumb": "images/in-dreams/thumbs/Maxence under a sea of sky.jpg",
158 "hasInfo": false,
159 "mdUrl": "images/in-dreams/Maxence under a sea of sky.md"
160 },
161 {
162 "type": "image",
163 "collection": "in-dreams",
164 "name": "Nothing is Wasted.jpg",
165 "full": "images/in-dreams/Nothing is Wasted.jpg",
166 "thumb": "images/in-dreams/thumbs/Nothing is Wasted.jpg",
167 "hasInfo": false,
168 "mdUrl": "images/in-dreams/Nothing is Wasted.md"
169 },
170 {
171 "type": "image",
172 "collection": "in-dreams",
173 "name": "Possede.jpg",
174 "full": "images/in-dreams/Possede.jpg",
175 "thumb": "images/in-dreams/thumbs/Possede.jpg",
176 "hasInfo": false,
177 "mdUrl": "images/in-dreams/Possede.md"
178 },
179 {
180 "type": "image",
181 "collection": "in-dreams",
182 "name": "Praying in the Attic.jpg",
183 "full": "images/in-dreams/Praying in the Attic.jpg",
184 "thumb": "images/in-dreams/thumbs/Praying in the Attic.jpg",
185 "hasInfo": false,
186 "mdUrl": "images/in-dreams/Praying in the Attic.md"
187 },
188 {
189 "type": "image",
190 "collection": "in-dreams",
191 "name": "Rachel Strickland as Ophelia.jpg",
192 "full": "images/in-dreams/Rachel Strickland as Ophelia.jpg",
193 "thumb": "images/in-dreams/thumbs/Rachel Strickland as Ophelia.jpg",
194 "hasInfo": false,
195 "mdUrl": "images/in-dreams/Rachel Strickland as Ophelia.md"
196 },
197 {
198 "type": "image",
199 "collection": "in-dreams",
200 "name": "Riddle.jpg",
201 "full": "images/in-dreams/Riddle.jpg",
202 "thumb": "images/in-dreams/thumbs/Riddle.jpg",
203 "hasInfo": false,
204 "mdUrl": "images/in-dreams/Riddle.md"
205 },
206 {
207 "type": "image",
208 "collection": "in-dreams",
209 "name": "Samhain.jpg",
210 "full": "images/in-dreams/Samhain.jpg",
211 "thumb": "images/in-dreams/thumbs/Samhain.jpg",
212 "hasInfo": false,
213 "mdUrl": "images/in-dreams/Samhain.md"
214 },
215 {
216 "type": "image",
217 "collection": "in-dreams",
218 "name": "Shut your mouth.jpg",
219 "full": "images/in-dreams/Shut your mouth.jpg",
220 "thumb": "images/in-dreams/thumbs/Shut your mouth.jpg",
221 "hasInfo": false,
222 "mdUrl": "images/in-dreams/Shut your mouth.md"
223 },
224 {
225 "type": "image",
226 "collection": "in-dreams",
227 "name": "The Castle.jpg",
228 "full": "images/in-dreams/The Castle.jpg",
229 "thumb": "images/in-dreams/thumbs/The Castle.jpg",
230 "hasInfo": false,
231 "mdUrl": "images/in-dreams/The Castle.md"
232 },
233 {
234 "type": "image",
235 "collection": "in-dreams",
236 "name": "The Corset.jpg",
237 "full": "images/in-dreams/The Corset.jpg",
238 "thumb": "images/in-dreams/thumbs/The Corset.jpg",
239 "hasInfo": false,
240 "mdUrl": "images/in-dreams/The Corset.md"
241 },
242 {
243 "type": "image",
244 "collection": "in-dreams",
245 "name": "Thinking of Alona in space.jpg",
246 "full": "images/in-dreams/Thinking of Alona in space.jpg",
247 "thumb": "images/in-dreams/thumbs/Thinking of Alona in space.jpg",
248 "hasInfo": false,
249 "mdUrl": "images/in-dreams/Thinking of Alona in space.md"
250 },
251 {
252 "type": "image",
253 "collection": "in-dreams",
254 "name": "Thoughtfully.jpg",
255 "full": "images/in-dreams/Thoughtfully.jpg",
256 "thumb": "images/in-dreams/thumbs/Thoughtfully.jpg",
257 "hasInfo": false,
258 "mdUrl": "images/in-dreams/Thoughtfully.md"
259 },
260 {
261 "type": "image",
262 "collection": "in-dreams",
263 "name": "Time Passes.jpg",
264 "full": "images/in-dreams/Time Passes.jpg",
265 "thumb": "images/in-dreams/thumbs/Time Passes.jpg",
266 "hasInfo": false,
267 "mdUrl": "images/in-dreams/Time Passes.md"
268 },
269 {
270 "type": "image",
271 "collection": "in-dreams",
272 "name": "VIS_6117_Edited 1 (1).jpg",
273 "full": "images/in-dreams/VIS_6117_Edited 1 (1).jpg",
274 "thumb": "images/in-dreams/thumbs/VIS_6117_Edited 1 (1).jpg",
275 "hasInfo": false,
276 "mdUrl": "images/in-dreams/VIS_6117_Edited 1 (1).md"
277 },
278 {
279 "type": "image",
280 "collection": "in-dreams",
281 "name": "Waiting in Rhythm.jpg",
282 "full": "images/in-dreams/Waiting in Rhythm.jpg",
283 "thumb": "images/in-dreams/thumbs/Waiting in Rhythm.jpg",
284 "hasInfo": false,
285 "mdUrl": "images/in-dreams/Waiting in Rhythm.md"
286 },
287 {
288 "type": "image",
289 "collection": "in-dreams",
290 "name": "ashesbook08.jpg",
291 "full": "images/in-dreams/ashesbook08.jpg",
292 "thumb": "images/in-dreams/thumbs/ashesbook08.jpg",
293 "hasInfo": false,
294 "mdUrl": "images/in-dreams/ashesbook08.md"
295 },
296 {
297 "type": "image",
298 "collection": "in-dreams",
299 "name": "dreamcatcher.jpg",
300 "full": "images/in-dreams/dreamcatcher.jpg",
301 "thumb": "images/in-dreams/thumbs/dreamcatcher.jpg",
302 "hasInfo": true,
303 "mdUrl": "images/in-dreams/dreamcatcher.md"
304 },
305 {
306 "type": "image",
307 "collection": "in-dreams",
308 "name": "licornefibonacciflatsmall.jpg",
309 "full": "images/in-dreams/licornefibonacciflatsmall.jpg",
310 "thumb": "images/in-dreams/thumbs/licornefibonacciflatsmall.jpg",
311 "hasInfo": false,
312 "mdUrl": "images/in-dreams/licornefibonacciflatsmall.md"
313 },
314 {
315 "type": "image",
316 "collection": "in-dreams",
317 "name": "nervouse_goldmind2 (1).jpg",
318 "full": "images/in-dreams/nervouse_goldmind2 (1).jpg",
319 "thumb": "images/in-dreams/thumbs/nervouse_goldmind2 (1).jpg",
320 "hasInfo": false,
321 "mdUrl": "images/in-dreams/nervouse_goldmind2 (1).md"
322 },
323 {
324 "type": "image",
325 "collection": "in-dreams",
326 "name": "nervouse_goldmind4.jpg",
327 "full": "images/in-dreams/nervouse_goldmind4.jpg",
328 "thumb": "images/in-dreams/thumbs/nervouse_goldmind4.jpg",
329 "hasInfo": false,
330 "mdUrl": "images/in-dreams/nervouse_goldmind4.md"
331 },
332 {
333 "type": "image",
334 "collection": "in-dreams",
335 "name": "pheonixflatsmall.jpg",
336 "full": "images/in-dreams/pheonixflatsmall.jpg",
337 "thumb": "images/in-dreams/thumbs/pheonixflatsmall.jpg",
338 "hasInfo": false,
339 "mdUrl": "images/in-dreams/pheonixflatsmall.md"
340 },
341 {
342 "type": "image",
343 "collection": "in-dreams",
344 "name": "rachel strickland in her petri dish.jpg",
345 "full": "images/in-dreams/rachel strickland in her petri dish.jpg",
346 "thumb": "images/in-dreams/thumbs/rachel strickland in her petri dish.jpg",
347 "hasInfo": false,
348 "mdUrl": "images/in-dreams/rachel strickland in her petri dish.md"
349 },
350 {
351 "type": "image",
352 "collection": "in-dreams",
353 "name": "rachel strickland in the Boy Who Died Wolf.jpg",
354 "full": "images/in-dreams/rachel strickland in the Boy Who Died Wolf.jpg",
355 "thumb": "images/in-dreams/thumbs/rachel strickland in the Boy Who Died Wolf.jpg",
356 "hasInfo": false,
357 "mdUrl": "images/in-dreams/rachel strickland in the Boy Who Died Wolf.md"
358 },
359 {
360 "type": "image",
361 "collection": "in-dreams",
362 "name": "scary.jpg",
363 "full": "images/in-dreams/scary.jpg",
364 "thumb": "images/in-dreams/thumbs/scary.jpg",
365 "hasInfo": false,
366 "mdUrl": "images/in-dreams/scary.md"
367 },
368 {
369 "type": "image",
370 "collection": "in-dreams",
371 "name": "thought12.jpg",
372 "full": "images/in-dreams/thought12.jpg",
373 "thumb": "images/in-dreams/thumbs/thought12.jpg",
374 "hasInfo": false,
375 "mdUrl": "images/in-dreams/thought12.md"
376 },
377 {
378 "type": "image",
379 "collection": "in-dreams",
380 "name": "thought2.jpg",
381 "full": "images/in-dreams/thought2.jpg",
382 "thumb": "images/in-dreams/thumbs/thought2.jpg",
383 "hasInfo": false,
384 "mdUrl": "images/in-dreams/thought2.md"
385 },
386 {
387 "type": "image",
388 "collection": "in-dreams",
389 "name": "thought5.jpg",
390 "full": "images/in-dreams/thought5.jpg",
391 "thumb": "images/in-dreams/thumbs/thought5.jpg",
392 "hasInfo": false,
393 "mdUrl": "images/in-dreams/thought5.md"
394 },
395 {
396 "type": "image",
397 "collection": "installations",
398 "name": "Green Hill Box.jpg",
399 "full": "images/installations/Green Hill Box.jpg",
400 "thumb": "images/installations/thumbs/Green Hill Box.jpg",
401 "hasInfo": false,
402 "mdUrl": "images/installations/Green Hill Box.md"
403 },
404 {
405 "type": "image",
406 "collection": "installations",
407 "name": "Installation Green.jpg",
408 "full": "images/installations/Installation Green.jpg",
409 "thumb": "images/installations/thumbs/Installation Green.jpg",
410 "hasInfo": false,
411 "mdUrl": "images/installations/Installation Green.md"
412 },
413 {
414 "type": "image",
415 "collection": "installations",
416 "name": "Installation Tree.jpg",
417 "full": "images/installations/Installation Tree.jpg",
418 "thumb": "images/installations/thumbs/Installation Tree.jpg",
419 "hasInfo": false,
420 "mdUrl": "images/installations/Installation Tree.md"
421 },
422 {
423 "type": "image",
424 "collection": "installations",
425 "name": "The Angel of Decomposition.jpg",
426 "full": "images/installations/The Angel of Decomposition.jpg",
427 "thumb": "images/installations/thumbs/The Angel of Decomposition.jpg",
428 "hasInfo": false,
429 "mdUrl": "images/installations/The Angel of Decomposition.md"
430 },
431 {
432 "type": "image",
433 "collection": "installations",
434 "name": "The Fruiting Wall.jpg",
435 "full": "images/installations/The Fruiting Wall.jpg",
436 "thumb": "images/installations/thumbs/The Fruiting Wall.jpg",
437 "hasInfo": false,
438 "mdUrl": "images/installations/The Fruiting Wall.md"
439 },
440 {
441 "type": "image",
442 "collection": "installations",
443 "name": "VIS_0673.jpg",
444 "full": "images/installations/VIS_0673.jpg",
445 "thumb": "images/installations/thumbs/VIS_0673.jpg",
446 "hasInfo": false,
447 "mdUrl": "images/installations/VIS_0673.md"
448 },
449 {
450 "type": "image",
451 "collection": "installations",
452 "name": "bear totem.jpg",
453 "full": "images/installations/bear totem.jpg",
454 "thumb": "images/installations/thumbs/bear totem.jpg",
455 "hasInfo": true,
456 "mdUrl": "images/installations/bear totem.md"
457 },
458 {
459 "type": "image",
460 "collection": "installations",
461 "name": "blue unicorn.jpg",
462 "full": "images/installations/blue unicorn.jpg",
463 "thumb": "images/installations/thumbs/blue unicorn.jpg",
464 "hasInfo": false,
465 "mdUrl": "images/installations/blue unicorn.md"
466 },
467 {
468 "type": "image",
469 "collection": "installations",
470 "name": "coins in hand.jpg",
471 "full": "images/installations/coins in hand.jpg",
472 "thumb": "images/installations/thumbs/coins in hand.jpg",
473 "hasInfo": false,
474 "mdUrl": "images/installations/coins in hand.md"
475 },
476 {
477 "type": "image",
478 "collection": "installations",
479 "name": "crystal hands.jpg",
480 "full": "images/installations/crystal hands.jpg",
481 "thumb": "images/installations/thumbs/crystal hands.jpg",
482 "hasInfo": false,
483 "mdUrl": "images/installations/crystal hands.md"
484 },
485 {
486 "type": "image",
487 "collection": "installations",
488 "name": "crystal held.jpg",
489 "full": "images/installations/crystal held.jpg",
490 "thumb": "images/installations/thumbs/crystal held.jpg",
491 "hasInfo": false,
492 "mdUrl": "images/installations/crystal held.md"
493 },
494 {
495 "type": "image",
496 "collection": "installations",
497 "name": "dark puppets.jpg",
498 "full": "images/installations/dark puppets.jpg",
499 "thumb": "images/installations/thumbs/dark puppets.jpg",
500 "hasInfo": false,
501 "mdUrl": "images/installations/dark puppets.md"
502 },
503 {
504 "type": "image",
505 "collection": "installations",
506 "name": "fire above all.jpg",
507 "full": "images/installations/fire above all.jpg",
508 "thumb": "images/installations/thumbs/fire above all.jpg",
509 "hasInfo": false,
510 "mdUrl": "images/installations/fire above all.md"
511 },
512 {
513 "type": "image",
514 "collection": "installations",
515 "name": "fleeky flanco in the tree room.jpg",
516 "full": "images/installations/fleeky flanco in the tree room.jpg",
517 "thumb": "images/installations/thumbs/fleeky flanco in the tree room.jpg",
518 "hasInfo": false,
519 "mdUrl": "images/installations/fleeky flanco in the tree room.md"
520 },
521 {
522 "type": "image",
523 "collection": "installations",
524 "name": "grateful ashes bowl.jpg",
525 "full": "images/installations/grateful ashes bowl.jpg",
526 "thumb": "images/installations/thumbs/grateful ashes bowl.jpg",
527 "hasInfo": false,
528 "mdUrl": "images/installations/grateful ashes bowl.md"
529 },
530 {
531 "type": "image",
532 "collection": "installations",
533 "name": "grateful ashes.jpg",
534 "full": "images/installations/grateful ashes.jpg",
535 "thumb": "images/installations/thumbs/grateful ashes.jpg",
536 "hasInfo": false,
537 "mdUrl": "images/installations/grateful ashes.md"
538 },
539 {
540 "type": "image",
541 "collection": "installations",
542 "name": "lapin totem.jpg",
543 "full": "images/installations/lapin totem.jpg",
544 "thumb": "images/installations/thumbs/lapin totem.jpg",
545 "hasInfo": false,
546 "mdUrl": "images/installations/lapin totem.md"
547 },
548 {
549 "type": "image",
550 "collection": "installations",
551 "name": "last cayuga performance.jpg",
552 "full": "images/installations/last cayuga performance.jpg",
553 "thumb": "images/installations/thumbs/last cayuga performance.jpg",
554 "hasInfo": false,
555 "mdUrl": "images/installations/last cayuga performance.md"
556 },
557 {
558 "type": "image",
559 "collection": "installations",
560 "name": "luna in stable.jpg",
561 "full": "images/installations/luna in stable.jpg",
562 "thumb": "images/installations/thumbs/luna in stable.jpg",
563 "hasInfo": false,
564 "mdUrl": "images/installations/luna in stable.md"
565 },
566 {
567 "type": "image",
568 "collection": "installations",
569 "name": "luna in waiting.jpg",
570 "full": "images/installations/luna in waiting.jpg",
571 "thumb": "images/installations/thumbs/luna in waiting.jpg",
572 "hasInfo": false,
573 "mdUrl": "images/installations/luna in waiting.md"
574 },
575 {
576 "type": "image",
577 "collection": "installations",
578 "name": "mushroom sculpture.jpg",
579 "full": "images/installations/mushroom sculpture.jpg",
580 "thumb": "images/installations/thumbs/mushroom sculpture.jpg",
581 "hasInfo": false,
582 "mdUrl": "images/installations/mushroom sculpture.md"
583 },
584 {
585 "type": "image",
586 "collection": "installations",
587 "name": "outside my door (1).jpg",
588 "full": "images/installations/outside my door (1).jpg",
589 "thumb": "images/installations/thumbs/outside my door (1).jpg",
590 "hasInfo": false,
591 "mdUrl": "images/installations/outside my door (1).md"
592 },
593 {
594 "type": "image",
595 "collection": "installations",
596 "name": "outside my door.jpg",
597 "full": "images/installations/outside my door.jpg",
598 "thumb": "images/installations/thumbs/outside my door.jpg",
599 "hasInfo": false,
600 "mdUrl": "images/installations/outside my door.md"
601 },
602 {
603 "type": "image",
604 "collection": "installations",
605 "name": "paper sculpture.jpg",
606 "full": "images/installations/paper sculpture.jpg",
607 "thumb": "images/installations/thumbs/paper sculpture.jpg",
608 "hasInfo": false,
609 "mdUrl": "images/installations/paper sculpture.md"
610 },
611 {
612 "type": "image",
613 "collection": "installations",
614 "name": "red room.jpg",
615 "full": "images/installations/red room.jpg",
616 "thumb": "images/installations/thumbs/red room.jpg",
617 "hasInfo": false,
618 "mdUrl": "images/installations/red room.md"
619 },
620 {
621 "type": "image",
622 "collection": "installations",
623 "name": "skull stack.jpg",
624 "full": "images/installations/skull stack.jpg",
625 "thumb": "images/installations/thumbs/skull stack.jpg",
626 "hasInfo": false,
627 "mdUrl": "images/installations/skull stack.md"
628 },
629 {
630 "type": "image",
631 "collection": "installations",
632 "name": "the box.jpg",
633 "full": "images/installations/the box.jpg",
634 "thumb": "images/installations/thumbs/the box.jpg",
635 "hasInfo": false,
636 "mdUrl": "images/installations/the box.md"
637 },
638 {
639 "type": "image",
640 "collection": "installations",
641 "name": "the flower room.jpg",
642 "full": "images/installations/the flower room.jpg",
643 "thumb": "images/installations/thumbs/the flower room.jpg",
644 "hasInfo": false,
645 "mdUrl": "images/installations/the flower room.md"
646 },
647 {
648 "type": "image",
649 "collection": "installations",
650 "name": "unicorn sisters.jpg",
651 "full": "images/installations/unicorn sisters.jpg",
652 "thumb": "images/installations/thumbs/unicorn sisters.jpg",
653 "hasInfo": false,
654 "mdUrl": "images/installations/unicorn sisters.md"
655 },
656 {
657 "type": "image",
658 "collection": "installations",
659 "name": "unicorngold.jpg",
660 "full": "images/installations/unicorngold.jpg",
661 "thumb": "images/installations/thumbs/unicorngold.jpg",
662 "hasInfo": false,
663 "mdUrl": "images/installations/unicorngold.md"
664 },
665 {
666 "type": "image",
667 "collection": "installations",
668 "name": "vintage lights again.jpg",
669 "full": "images/installations/vintage lights again.jpg",
670 "thumb": "images/installations/thumbs/vintage lights again.jpg",
671 "hasInfo": false,
672 "mdUrl": "images/installations/vintage lights again.md"
673 },
674 {
675 "type": "image",
676 "collection": "installations",
677 "name": "vintage lights.jpg",
678 "full": "images/installations/vintage lights.jpg",
679 "thumb": "images/installations/thumbs/vintage lights.jpg",
680 "hasInfo": false,
681 "mdUrl": "images/installations/vintage lights.md"
682 },
683 {
684 "type": "image",
685 "collection": "paint-and-pixels",
686 "name": "59505066_10157582798510864_8068479438611808256_o.jpg",
687 "full": "images/paint-and-pixels/59505066_10157582798510864_8068479438611808256_o.jpg",
688 "thumb": "images/paint-and-pixels/thumbs/59505066_10157582798510864_8068479438611808256_o.jpg",
689 "hasInfo": false,
690 "mdUrl": "images/paint-and-pixels/59505066_10157582798510864_8068479438611808256_o.md"
691 },
692 {
693 "type": "image",
694 "collection": "paint-and-pixels",
695 "name": "59719105_10157585281100864_2365979208557002752_o.jpg",
696 "full": "images/paint-and-pixels/59719105_10157585281100864_2365979208557002752_o.jpg",
697 "thumb": "images/paint-and-pixels/thumbs/59719105_10157585281100864_2365979208557002752_o.jpg",
698 "hasInfo": false,
699 "mdUrl": "images/paint-and-pixels/59719105_10157585281100864_2365979208557002752_o.md"
700 },
701 {
702 "type": "image",
703 "collection": "paint-and-pixels",
704 "name": "Blue Bird.jpg",
705 "full": "images/paint-and-pixels/Blue Bird.jpg",
706 "thumb": "images/paint-and-pixels/thumbs/Blue Bird.jpg",
707 "hasInfo": true,
708 "mdUrl": "images/paint-and-pixels/Blue Bird.md"
709 },
710 {
711 "type": "image",
712 "collection": "paint-and-pixels",
713 "name": "Golden Scream.jpg",
714 "full": "images/paint-and-pixels/Golden Scream.jpg",
715 "thumb": "images/paint-and-pixels/thumbs/Golden Scream.jpg",
716 "hasInfo": false,
717 "mdUrl": "images/paint-and-pixels/Golden Scream.md"
718 },
719 {
720 "type": "image",
721 "collection": "paint-and-pixels",
722 "name": "IMG_20190412_212032_335.jpg",
723 "full": "images/paint-and-pixels/IMG_20190412_212032_335.jpg",
724 "thumb": "images/paint-and-pixels/thumbs/IMG_20190412_212032_335.jpg",
725 "hasInfo": false,
726 "mdUrl": "images/paint-and-pixels/IMG_20190412_212032_335.md"
727 },
728 {
729 "type": "image",
730 "collection": "paint-and-pixels",
731 "name": "IMG_20190412_214304_957.jpg",
732 "full": "images/paint-and-pixels/IMG_20190412_214304_957.jpg",
733 "thumb": "images/paint-and-pixels/thumbs/IMG_20190412_214304_957.jpg",
734 "hasInfo": false,
735 "mdUrl": "images/paint-and-pixels/IMG_20190412_214304_957.md"
736 },
737 {
738 "type": "image",
739 "collection": "paint-and-pixels",
740 "name": "IMG_20190429_161912_231.jpg",
741 "full": "images/paint-and-pixels/IMG_20190429_161912_231.jpg",
742 "thumb": "images/paint-and-pixels/thumbs/IMG_20190429_161912_231.jpg",
743 "hasInfo": false,
744 "mdUrl": "images/paint-and-pixels/IMG_20190429_161912_231.md"
745 },
746 {
747 "type": "image",
748 "collection": "paint-and-pixels",
749 "name": "IMG_20190626_120101_103.jpg",
750 "full": "images/paint-and-pixels/IMG_20190626_120101_103.jpg",
751 "thumb": "images/paint-and-pixels/thumbs/IMG_20190626_120101_103.jpg",
752 "hasInfo": false,
753 "mdUrl": "images/paint-and-pixels/IMG_20190626_120101_103.md"
754 },
755 {
756 "type": "image",
757 "collection": "paint-and-pixels",
758 "name": "IMG_20190701_182802_339.jpg",
759 "full": "images/paint-and-pixels/IMG_20190701_182802_339.jpg",
760 "thumb": "images/paint-and-pixels/thumbs/IMG_20190701_182802_339.jpg",
761 "hasInfo": false,
762 "mdUrl": "images/paint-and-pixels/IMG_20190701_182802_339.md"
763 },
764 {
765 "type": "image",
766 "collection": "paint-and-pixels",
767 "name": "IMG_20190828_214544aheeeee.jpg",
768 "full": "images/paint-and-pixels/IMG_20190828_214544aheeeee.jpg",
769 "thumb": "images/paint-and-pixels/thumbs/IMG_20190828_214544aheeeee.jpg",
770 "hasInfo": false,
771 "mdUrl": "images/paint-and-pixels/IMG_20190828_214544aheeeee.md"
772 },
773 {
774 "type": "image",
775 "collection": "paint-and-pixels",
776 "name": "IMG_20200112_233809.jpg",
777 "full": "images/paint-and-pixels/IMG_20200112_233809.jpg",
778 "thumb": "images/paint-and-pixels/thumbs/IMG_20200112_233809.jpg",
779 "hasInfo": false,
780 "mdUrl": "images/paint-and-pixels/IMG_20200112_233809.md"
781 },
782 {
783 "type": "image",
784 "collection": "paint-and-pixels",
785 "name": "Leatherface.jpg",
786 "full": "images/paint-and-pixels/Leatherface.jpg",
787 "thumb": "images/paint-and-pixels/thumbs/Leatherface.jpg",
788 "hasInfo": false,
789 "mdUrl": "images/paint-and-pixels/Leatherface.md"
790 },
791 {
792 "type": "image",
793 "collection": "paint-and-pixels",
794 "name": "Prisms.jpg",
795 "full": "images/paint-and-pixels/Prisms.jpg",
796 "thumb": "images/paint-and-pixels/thumbs/Prisms.jpg",
797 "hasInfo": false,
798 "mdUrl": "images/paint-and-pixels/Prisms.md"
799 },
800 {
801 "type": "image",
802 "collection": "paint-and-pixels",
803 "name": "Red Rabbit.jpg",
804 "full": "images/paint-and-pixels/Red Rabbit.jpg",
805 "thumb": "images/paint-and-pixels/thumbs/Red Rabbit.jpg",
806 "hasInfo": false,
807 "mdUrl": "images/paint-and-pixels/Red Rabbit.md"
808 },
809 {
810 "type": "image",
811 "collection": "paint-and-pixels",
812 "name": "Red Room.jpg",
813 "full": "images/paint-and-pixels/Red Room.jpg",
814 "thumb": "images/paint-and-pixels/thumbs/Red Room.jpg",
815 "hasInfo": false,
816 "mdUrl": "images/paint-and-pixels/Red Room.md"
817 },
818 {
819 "type": "image",
820 "collection": "paint-and-pixels",
821 "name": "Rivers.jpg",
822 "full": "images/paint-and-pixels/Rivers.jpg",
823 "thumb": "images/paint-and-pixels/thumbs/Rivers.jpg",
824 "hasInfo": false,
825 "mdUrl": "images/paint-and-pixels/Rivers.md"
826 },
827 {
828 "type": "image",
829 "collection": "paint-and-pixels",
830 "name": "Sky Crash.jpg",
831 "full": "images/paint-and-pixels/Sky Crash.jpg",
832 "thumb": "images/paint-and-pixels/thumbs/Sky Crash.jpg",
833 "hasInfo": false,
834 "mdUrl": "images/paint-and-pixels/Sky Crash.md"
835 },
836 {
837 "type": "image",
838 "collection": "paint-and-pixels",
839 "name": "The Mask.jpg",
840 "full": "images/paint-and-pixels/The Mask.jpg",
841 "thumb": "images/paint-and-pixels/thumbs/The Mask.jpg",
842 "hasInfo": false,
843 "mdUrl": "images/paint-and-pixels/The Mask.md"
844 },
845 {
846 "type": "image",
847 "collection": "paint-and-pixels",
848 "name": "Thefruit (1).jpg",
849 "full": "images/paint-and-pixels/Thefruit (1).jpg",
850 "thumb": "images/paint-and-pixels/thumbs/Thefruit (1).jpg",
851 "hasInfo": false,
852 "mdUrl": "images/paint-and-pixels/Thefruit (1).md"
853 },
854 {
855 "type": "image",
856 "collection": "paint-and-pixels",
857 "name": "VIS_0474.jpg",
858 "full": "images/paint-and-pixels/VIS_0474.jpg",
859 "thumb": "images/paint-and-pixels/thumbs/VIS_0474.jpg",
860 "hasInfo": false,
861 "mdUrl": "images/paint-and-pixels/VIS_0474.md"
862 },
863 {
864 "type": "image",
865 "collection": "paint-and-pixels",
866 "name": "VIS_0493b.jpg",
867 "full": "images/paint-and-pixels/VIS_0493b.jpg",
868 "thumb": "images/paint-and-pixels/thumbs/VIS_0493b.jpg",
869 "hasInfo": false,
870 "mdUrl": "images/paint-and-pixels/VIS_0493b.md"
871 },
872 {
873 "type": "image",
874 "collection": "paint-and-pixels",
875 "name": "VIS_0760.jpg",
876 "full": "images/paint-and-pixels/VIS_0760.jpg",
877 "thumb": "images/paint-and-pixels/thumbs/VIS_0760.jpg",
878 "hasInfo": false,
879 "mdUrl": "images/paint-and-pixels/VIS_0760.md"
880 },
881 {
882 "type": "image",
883 "collection": "paint-and-pixels",
884 "name": "elab_IMG_20190409_181225.jpg",
885 "full": "images/paint-and-pixels/elab_IMG_20190409_181225.jpg",
886 "thumb": "images/paint-and-pixels/thumbs/elab_IMG_20190409_181225.jpg",
887 "hasInfo": false,
888 "mdUrl": "images/paint-and-pixels/elab_IMG_20190409_181225.md"
889 },
890 {
891 "type": "image",
892 "collection": "paint-and-pixels",
893 "name": "flourescence.jpg",
894 "full": "images/paint-and-pixels/flourescence.jpg",
895 "thumb": "images/paint-and-pixels/thumbs/flourescence.jpg",
896 "hasInfo": false,
897 "mdUrl": "images/paint-and-pixels/flourescence.md"
898 },
899 {
900 "type": "image",
901 "collection": "paint-and-pixels",
902 "name": "gash.jpg",
903 "full": "images/paint-and-pixels/gash.jpg",
904 "thumb": "images/paint-and-pixels/thumbs/gash.jpg",
905 "hasInfo": false,
906 "mdUrl": "images/paint-and-pixels/gash.md"
907 },
908 {
909 "type": "image",
910 "collection": "paint-and-pixels",
911 "name": "misfire.jpg",
912 "full": "images/paint-and-pixels/misfire.jpg",
913 "thumb": "images/paint-and-pixels/thumbs/misfire.jpg",
914 "hasInfo": false,
915 "mdUrl": "images/paint-and-pixels/misfire.md"
916 },
917 {
918 "type": "image",
919 "collection": "paint-and-pixels",
920 "name": "outside my door.jpg",
921 "full": "images/paint-and-pixels/outside my door.jpg",
922 "thumb": "images/paint-and-pixels/thumbs/outside my door.jpg",
923 "hasInfo": false,
924 "mdUrl": "images/paint-and-pixels/outside my door.md"
925 },
926 {
927 "type": "image",
928 "collection": "paint-and-pixels",
929 "name": "teufel.jpg",
930 "full": "images/paint-and-pixels/teufel.jpg",
931 "thumb": "images/paint-and-pixels/thumbs/teufel.jpg",
932 "hasInfo": false,
933 "mdUrl": "images/paint-and-pixels/teufel.md"
934 },
935 {
936 "type": "image",
937 "collection": "paint-and-pixels",
938 "name": "texture.jpg",
939 "full": "images/paint-and-pixels/texture.jpg",
940 "thumb": "images/paint-and-pixels/thumbs/texture.jpg",
941 "hasInfo": false,
942 "mdUrl": "images/paint-and-pixels/texture.md"
943 },
944 {
945 "type": "image",
946 "collection": "paint-and-pixels",
947 "name": "the dentist (1).jpg",
948 "full": "images/paint-and-pixels/the dentist (1).jpg",
949 "thumb": "images/paint-and-pixels/thumbs/the dentist (1).jpg",
950 "hasInfo": false,
951 "mdUrl": "images/paint-and-pixels/the dentist (1).md"
952 },
953 {
954 "type": "image",
955 "collection": "paint-and-pixels",
956 "name": "the dentist.jpg",
957 "full": "images/paint-and-pixels/the dentist.jpg",
958 "thumb": "images/paint-and-pixels/thumbs/the dentist.jpg",
959 "hasInfo": false,
960 "mdUrl": "images/paint-and-pixels/the dentist.md"
961 },
962 {
963 "type": "image",
964 "collection": "paint-and-pixels",
965 "name": "the same face.jpg",
966 "full": "images/paint-and-pixels/the same face.jpg",
967 "thumb": "images/paint-and-pixels/thumbs/the same face.jpg",
968 "hasInfo": false,
969 "mdUrl": "images/paint-and-pixels/the same face.md"
970 },
971 {
972 "type": "image",
973 "collection": "paint-and-pixels",
974 "name": "trust me.jpg",
975 "full": "images/paint-and-pixels/trust me.jpg",
976 "thumb": "images/paint-and-pixels/thumbs/trust me.jpg",
977 "hasInfo": false,
978 "mdUrl": "images/paint-and-pixels/trust me.md"
979 }
980 ]
981}
process.py +11 -19
……@@ -359,20 +359,20 @@ def generate_manifest(base_dir, site_config):
359359 continue
360360
361361 basename = os.path.splitext(fname)[0]
362 # Check for .md sidecar
363 md_path = os.path.join(coll_images_dir, basename + ".md")
364 has_info = os.path.exists(md_path)
365
362366 item = {
363367 "type": "image",
364368 "collection": coll_name,
365 "filename": fname,
366 "path": f"images/{coll_name}/{fname}",
369 "name": fname,
370 "full": f"images/{coll_name}/{fname}",
367371 "thumb": f"images/{coll_name}/thumbs/{fname}",
372 "hasInfo": has_info,
373 "mdUrl": f"images/{coll_name}/{basename}.md",
368374 }
369375
370 # Check for .md sidecar
371 md_path = os.path.join(coll_images_dir, basename + ".md")
372 if os.path.exists(md_path):
373 with open(md_path, "r") as f:
374 item["sidecar"] = f.read().strip()
375
376376 coll_items.append(item)
377377
378378 # Scan videos
……@@ -391,22 +391,14 @@ def generate_manifest(base_dir, site_config):
391391 item = {
392392 "type": "video",
393393 "collection": coll_name,
394 "filename": fname,
395 "path": f"videos/{coll_name}/{fname}",
394 "name": fname,
395 "full": f"videos/{coll_name}/{fname}",
396396 "thumb": f"videos/{coll_name}/thumbs/{basename}.jpg",
397397 "duration": round(duration, 2),
398398 }
399399 coll_items.append(item)
400400
401 image_count = sum(1 for i in coll_items if i["type"] == "image")
402 video_count = sum(1 for i in coll_items if i["type"] == "video")
403
404 collections.append({
405 "name": coll_name,
406 "images": image_count,
407 "videos": video_count,
408 "total": len(coll_items),
409 })
401 collections.append(coll_name)
410402
411403 items.extend(coll_items)
412404
test_process.py +12 -17
……@@ -327,17 +327,17 @@ class TestManifestGeneration(unittest.TestCase):
327327 config = {"collections": {"order": ["nature"], "ignore": []}}
328328 manifest = generate_manifest(tmpdir, config)
329329
330 self.assertEqual(len(manifest["collections"]), 1)
331 self.assertEqual(manifest["collections"][0]["name"], "nature")
332 self.assertEqual(manifest["collections"][0]["images"], 2)
333 self.assertEqual(manifest["collections"][0]["total"], 2)
330 self.assertEqual(manifest["collections"], ["nature"])
334331
335332 self.assertEqual(len(manifest["items"]), 2)
336333 item = manifest["items"][0]
337334 self.assertEqual(item["type"], "image")
338335 self.assertEqual(item["collection"], "nature")
339 self.assertIn("path", item)
336 self.assertIn("name", item)
337 self.assertIn("full", item)
340338 self.assertIn("thumb", item)
339 self.assertIn("hasInfo", item)
340 self.assertIn("mdUrl", item)
341341
342342 def test_generate_manifest_with_sidecar(self):
343343 """Images with .md sidecars should include sidecar content."""
……@@ -353,7 +353,8 @@ class TestManifestGeneration(unittest.TestCase):
353353 manifest = generate_manifest(tmpdir, config)
354354
355355 self.assertEqual(len(manifest["items"]), 1)
356 self.assertEqual(manifest["items"][0]["sidecar"], "Oil on canvas, 2024")
356 self.assertTrue(manifest["items"][0]["hasInfo"])
357 self.assertEqual(manifest["items"][0]["mdUrl"], "images/art/piece.md")
357358
358359 def test_generate_manifest_respects_order(self):
359360 """Collections should follow site.json order."""
……@@ -365,8 +366,7 @@ class TestManifestGeneration(unittest.TestCase):
365366 config = {"collections": {"order": ["gamma", "alpha", "beta"], "ignore": []}}
366367 manifest = generate_manifest(tmpdir, config)
367368
368 names = [c["name"] for c in manifest["collections"]]
369 self.assertEqual(names, ["gamma", "alpha", "beta"])
369 self.assertEqual(manifest["collections"], ["gamma", "alpha", "beta"])
370370
371371 def test_generate_manifest_unordered_collections(self):
372372 """Collections not in order list should appear alphabetically after ordered ones."""
……@@ -378,8 +378,7 @@ class TestManifestGeneration(unittest.TestCase):
378378 config = {"collections": {"order": ["gamma"], "ignore": []}}
379379 manifest = generate_manifest(tmpdir, config)
380380
381 names = [c["name"] for c in manifest["collections"]]
382 self.assertEqual(names, ["gamma", "alpha", "beta"])
381 self.assertEqual(manifest["collections"], ["gamma", "alpha", "beta"])
383382
384383 def test_generate_manifest_ignores(self):
385384 """Ignored collections should not appear."""
……@@ -391,8 +390,7 @@ class TestManifestGeneration(unittest.TestCase):
391390 config = {"collections": {"order": [], "ignore": ["old", "_archive"]}}
392391 manifest = generate_manifest(tmpdir, config)
393392
394 names = [c["name"] for c in manifest["collections"]]
395 self.assertEqual(names, ["keep"])
393 self.assertEqual(manifest["collections"], ["keep"])
396394 self.assertEqual(len(manifest["items"]), 1)
397395
398396 def test_generate_manifest_mixed_media(self):
……@@ -404,12 +402,9 @@ class TestManifestGeneration(unittest.TestCase):
404402 config = {"collections": {"order": ["portfolio"], "ignore": []}}
405403 manifest = generate_manifest(tmpdir, config)
406404
407 self.assertEqual(len(manifest["collections"]), 1)
408 coll = manifest["collections"][0]
409 self.assertEqual(coll["images"], 1)
410 self.assertEqual(coll["videos"], 1)
411 self.assertEqual(coll["total"], 2)
405 self.assertEqual(manifest["collections"], ["portfolio"])
412406
407 self.assertEqual(len(manifest["items"]), 2)
413408 types = {item["type"] for item in manifest["items"]}
414409 self.assertEqual(types, {"image", "video"})
415410