From 94310f0f9d0a8692a89c273032b9a470159da5fd Mon Sep 17 00:00:00 2001 From: Chris Hodapp Date: Sun, 4 Sep 2022 12:31:08 -0400 Subject: [PATCH] Migrate *all* photos to the cavelab setup. Header/footer still broken. Completely remove the other image gallery themes. I now have: image galleries, with lightboxes, and captions, with links in them (and to Hugo pages), with full images lazy-loaded, with all thumbnails auto-generated, and the ability to do this on both individual images *and* with globbing, from page resources, from this page or any specified one. See cavelab_notes.txt. It also has the ability to use Exif data of the photo - if I preprocess it into a JSON file. Known issues: - The theme header/footer are now being overridden. I am working to fix this first. - I am missing some kind of fonts/images needed for the lightbox to show up properly. --- assets/assets/lightgallery.css | 728 ++++++++++++++++++ assets/assets/lightgallery.min.js | 8 + cavelab_notes.txt | 48 ++ config.toml | 16 +- content/posts/2007-03-23-backlog.md | 2 +- content/posts/2007-07-25-backlog.md | 4 +- content/posts/2007-07-25-more-backlog.md | 6 +- content/posts/2007-07-30-backlog.md | 2 +- content/posts/2007-10-12-backlog.md | 2 +- content/posts/2007-10-13-backlog.md | 4 +- content/posts/2007-10-16-backlog.md | 2 +- content/posts/2007-11-03-backlog.md | 6 +- content/posts/2007-12-11-backlog.md | 6 +- content/posts/2007-12-21-backlog.md | 6 +- content/posts/2007-12-28-backlog.md | 2 +- content/posts/2008-01-17-backlog.md | 2 +- .../2008-03-24-workfest-day-one/index.md | 8 +- .../2008-03-25-workfest-day-two/index.md | 12 +- .../2008-03-26-workfest-day-three/index.md | 14 +- .../2008-03-27-workfest-day-four/index.md | 10 +- .../2008-03-28-workfest-day-fourfive/index.md | 8 +- ...stuff-i-experienced-at-work-today.markdown | 4 +- ...-05-05-alix1c-board-edirol-repair.markdown | 20 +- ...-hacked-infrared-camera-attempt-1.markdown | 36 +- .../index.md | 4 +- .../2010-11-19-venue-222-rooftop.markdown | 10 +- ...10-12-05-cyanotypes-first-attempt.markdown | 6 +- ...0-12-30-cyanotypes-better-results.markdown | 8 +- ...acro-photography-attempts-1-and-2.markdown | 16 +- .../index.md | 10 +- ...06-10-first-attempt-at-slide-film.markdown | 18 +- .../index.md | 4 +- .../posts/2011-08-29-context-free/index.md | 10 +- .../index.md | 22 +- .../posts/2016-09-25-pi-pan-tilt-1/index.md | 8 +- content/posts/2016-10-04-pi-pan-tilt-2.md | 6 +- content/posts/2016-10-12-pi-pan-tilt-3.md | 14 +- .../2021-07-27-procedural-meshes/index.org | 30 +- content/works/front.md | 66 +- layouts/partials/footer.html | 8 + layouts/partials/header.html | 8 + layouts/shortcodes/figure.html | 166 ++-- layouts/shortcodes/gallery.html | 43 +- layouts/shortcodes/load-photoswipe.html | 71 -- static/css/custom.css | 20 + static/css/hugo-easy-gallery.css | 160 ---- static/js/load-photoswipe.js | 80 -- 47 files changed, 1105 insertions(+), 639 deletions(-) create mode 100644 assets/assets/lightgallery.css create mode 100644 assets/assets/lightgallery.min.js create mode 100644 cavelab_notes.txt create mode 100644 layouts/partials/footer.html create mode 100644 layouts/partials/header.html delete mode 100644 layouts/shortcodes/load-photoswipe.html delete mode 100644 static/css/hugo-easy-gallery.css delete mode 100644 static/js/load-photoswipe.js diff --git a/assets/assets/lightgallery.css b/assets/assets/lightgallery.css new file mode 100644 index 0000000..a5a15ca --- /dev/null +++ b/assets/assets/lightgallery.css @@ -0,0 +1,728 @@ +@font-face { + font-family: 'lg'; + src: url("../fonts/lg.woff2?io9a6k") format("woff2"), url("../fonts/lg.ttf?io9a6k") format("truetype"), url("../fonts/lg.woff?io9a6k") format("woff"), url("../fonts/lg.svg?io9a6k#lg") format("svg"); + font-weight: normal; + font-style: normal; + font-display: block; +} + +.lg-icon { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'lg' !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.lg-container { + font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; +} + +.lg-next, +.lg-prev { + background-color: rgba(0, 0, 0, 0.45); + border-radius: 2px; + color: #999; + cursor: pointer; + display: block; + font-size: 22px; + margin-top: -10px; + padding: 8px 10px 9px; + position: absolute; + top: 50%; + z-index: 1084; + outline: none; + border: none; +} + +.lg-next.disabled, +.lg-prev.disabled { + opacity: 0 !important; + cursor: default; +} + +.lg-next:hover:not(.disabled), +.lg-prev:hover:not(.disabled) { + color: #fff; +} + +.lg-single-item .lg-next, .lg-single-item +.lg-prev { + display: none; +} + +.lg-next { + right: 20px; +} + +.lg-next:before { + content: '\e095'; +} + +.lg-prev { + left: 20px; +} + +.lg-prev:after { + content: '\e094'; +} + +@-webkit-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} + +@-moz-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} + +@-ms-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} + +@keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} + +@-webkit-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} + +@-moz-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} + +@-ms-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} + +@keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} + +.lg-outer.lg-right-end .lg-object { + -webkit-animation: lg-right-end 0.3s; + -o-animation: lg-right-end 0.3s; + animation: lg-right-end 0.3s; + position: relative; +} + +.lg-outer.lg-left-end .lg-object { + -webkit-animation: lg-left-end 0.3s; + -o-animation: lg-left-end 0.3s; + animation: lg-left-end 0.3s; + position: relative; +} + +.lg-toolbar { + z-index: 1082; + left: 0; + position: absolute; + top: 0; + width: 100%; +} + +.lg-media-overlap .lg-toolbar { + background-image: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4)); +} + +.lg-toolbar .lg-icon { + color: #999; + cursor: pointer; + float: right; + font-size: 24px; + height: 47px; + line-height: 27px; + padding: 10px 0; + text-align: center; + width: 50px; + text-decoration: none !important; + outline: medium none; + will-change: color; + -webkit-transition: color 0.2s linear; + -o-transition: color 0.2s linear; + transition: color 0.2s linear; + background: none; + border: none; + box-shadow: none; +} + +.lg-toolbar .lg-icon.lg-icon-18 { + font-size: 18px; +} + +.lg-toolbar .lg-icon:hover { + color: #fff; +} + +.lg-toolbar .lg-close:after { + content: '\e070'; +} + +.lg-toolbar .lg-maximize { + font-size: 22px; +} + +.lg-toolbar .lg-maximize:after { + content: '\e90a'; +} + +.lg-toolbar .lg-download:after { + content: '\e0f2'; +} + +.lg-sub-html { + color: #eee; + font-size: 16px; + padding: 10px 40px; + text-align: center; + z-index: 1080; + opacity: 0; + -webkit-transition: opacity 0.2s ease-out 0s; + -o-transition: opacity 0.2s ease-out 0s; + transition: opacity 0.2s ease-out 0s; +} + +.lg-sub-html h4 { + margin: 0; + font-size: 13px; + font-weight: bold; +} + +.lg-sub-html p { + font-size: 12px; + margin: 5px 0 0; +} + +.lg-sub-html a { + color: inherit; +} + +.lg-sub-html a:hover { + text-decoration: underline; +} + +.lg-media-overlap .lg-sub-html { + background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.6)); +} + +.lg-item .lg-sub-html { + position: absolute; + bottom: 0; + right: 0; + left: 0; +} + +.lg-error-msg { + font-size: 14px; + color: #999; +} + +.lg-counter { + color: #999; + display: inline-block; + font-size: 16px; + padding-left: 20px; + padding-top: 12px; + height: 47px; + vertical-align: middle; +} + +.lg-closing .lg-toolbar, +.lg-closing .lg-prev, +.lg-closing .lg-next, +.lg-closing .lg-sub-html { + opacity: 0; + -webkit-transition: -webkit-transform 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, color 0.08 linear; + -moz-transition: -moz-transform 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, color 0.08 linear; + -o-transition: -o-transform 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, color 0.08 linear; + transition: transform 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.08 cubic-bezier(0, 0, 0.25, 1) 0s, color 0.08 linear; +} + +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-img-wrap, +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-video-cont { + opacity: 0; + -moz-transform: scale3d(0.5, 0.5, 0.5); + -o-transform: scale3d(0.5, 0.5, 0.5); + -ms-transform: scale3d(0.5, 0.5, 0.5); + -webkit-transform: scale3d(0.5, 0.5, 0.5); + transform: scale3d(0.5, 0.5, 0.5); + will-change: transform, opacity; + -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; + transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important; +} + +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-img-wrap, +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-video-cont { + opacity: 1; + -moz-transform: scale3d(1, 1, 1); + -o-transform: scale3d(1, 1, 1); + -ms-transform: scale3d(1, 1, 1); + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); +} + +.lg-icon:focus-visible { + color: #fff; + border-radius: 3px; + outline: 1px dashed rgba(255, 255, 255, 0.6); +} + +.lg-toolbar .lg-icon:focus-visible { + border-radius: 8px; + outline-offset: -5px; +} + +.lg-group:after { + content: ''; + display: table; + clear: both; +} + +.lg-container { + display: none; + outline: none; +} + +.lg-container.lg-show { + display: block; +} + +.lg-on { + scroll-behavior: unset; +} + +.lg-overlay-open { + overflow: hidden; +} + +.lg-toolbar, +.lg-prev, +.lg-next, +.lg-pager-outer, +.lg-hide-sub-html .lg-sub-html { + opacity: 0; + will-change: transform, opacity; + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; +} + +.lg-show-in .lg-toolbar, +.lg-show-in .lg-prev, +.lg-show-in .lg-next, +.lg-show-in .lg-pager-outer { + opacity: 1; +} + +.lg-show-in.lg-hide-sub-html .lg-sub-html { + opacity: 1; +} + +.lg-show-in .lg-hide-items .lg-prev { + opacity: 0; + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); +} + +.lg-show-in .lg-hide-items .lg-next { + opacity: 0; + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); +} + +.lg-show-in .lg-hide-items .lg-toolbar { + opacity: 0; + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); +} + +.lg-show-in .lg-hide-items.lg-hide-sub-html .lg-sub-html { + opacity: 0; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); +} + +.lg-outer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 1050; + text-align: left; + opacity: 0.001; + outline: none; + will-change: auto; + overflow: hidden; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} + +.lg-outer * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.lg-outer.lg-zoom-from-image { + opacity: 1; +} + +.lg-outer.lg-visible { + opacity: 1; +} + +.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-prev-slide, .lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-next-slide, .lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-current { + -webkit-transition-duration: inherit !important; + transition-duration: inherit !important; + -webkit-transition-timing-function: inherit !important; + transition-timing-function: inherit !important; +} + +.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; + opacity: 1; +} + +.lg-outer.lg-grab img.lg-object { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} + +.lg-outer.lg-grabbing img.lg-object { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} + +.lg-outer .lg-content { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.lg-outer .lg-inner { + width: 100%; + position: absolute; + left: 0; + top: 0; + bottom: 0; + -webkit-transition: opacity 0s; + -o-transition: opacity 0s; + transition: opacity 0s; + white-space: nowrap; +} + +.lg-outer .lg-item { + display: none !important; +} + +.lg-outer .lg-item:not(.lg-start-end-progress) { + background: url("../images/loading.gif") no-repeat scroll center center transparent; +} + +.lg-outer.lg-css3 .lg-prev-slide, +.lg-outer.lg-css3 .lg-current, +.lg-outer.lg-css3 .lg-next-slide { + display: inline-block !important; +} + +.lg-outer.lg-css .lg-current { + display: inline-block !important; +} + +.lg-outer .lg-item, +.lg-outer .lg-img-wrap { + display: inline-block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; +} + +.lg-outer .lg-item:before, +.lg-outer .lg-img-wrap:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.lg-outer .lg-img-wrap { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + white-space: nowrap; + font-size: 0; +} + +.lg-outer .lg-item.lg-complete { + background-image: none; +} + +.lg-outer .lg-item.lg-current { + z-index: 1060; +} + +.lg-outer .lg-object { + display: inline-block; + vertical-align: middle; + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + position: relative; +} + +.lg-outer .lg-empty-html.lg-sub-html, +.lg-outer .lg-empty-html .lg-sub-html { + display: none; +} + +.lg-outer.lg-hide-download .lg-download { + opacity: 0.75; + pointer-events: none; +} + +.lg-outer .lg-first-slide .lg-dummy-img { + position: absolute; + top: 50%; + left: 50%; +} + +.lg-outer.lg-components-open:not(.lg-zoomed) .lg-components { + -webkit-transform: translate3d(0, 0%, 0); + transform: translate3d(0, 0%, 0); + opacity: 1; +} + +.lg-outer.lg-components-open:not(.lg-zoomed) .lg-sub-html { + opacity: 1; + transition: opacity 0.2s ease-out 0.15s; +} + +.lg-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 1040; + background-color: #000; + opacity: 0; + will-change: auto; + -webkit-transition: opacity 333ms ease-in 0s; + -o-transition: opacity 333ms ease-in 0s; + transition: opacity 333ms ease-in 0s; +} + +.lg-backdrop.in { + opacity: 1; +} + +.lg-css3.lg-no-trans .lg-prev-slide, +.lg-css3.lg-no-trans .lg-next-slide, +.lg-css3.lg-no-trans .lg-current { + -webkit-transition: none 0s ease 0s !important; + -moz-transition: none 0s ease 0s !important; + -o-transition: none 0s ease 0s !important; + transition: none 0s ease 0s !important; +} + +.lg-css3.lg-use-css3 .lg-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; +} + +.lg-css3.lg-fade .lg-item { + opacity: 0; +} + +.lg-css3.lg-fade .lg-item.lg-current { + opacity: 1; +} + +.lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current { + -webkit-transition: opacity 0.1s ease 0s; + -moz-transition: opacity 0.1s ease 0s; + -o-transition: opacity 0.1s ease 0s; + transition: opacity 0.1s ease 0s; +} + +.lg-css3.lg-use-css3 .lg-item.lg-start-progress { + -webkit-transition: -webkit-transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s; + -o-transition: -o-transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s; + transition: transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s; +} + +.lg-css3.lg-use-css3 .lg-item.lg-start-end-progress { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s; +} + +.lg-css3.lg-slide.lg-use-css3 .lg-item { + opacity: 0; +} + +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} + +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} + +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; +} + +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} + +.lg-container { + display: none; +} + +.lg-container.lg-show { + display: block; +} + +.lg-container.lg-dragging-vertical .lg-backdrop { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; +} + +.lg-container.lg-dragging-vertical .lg-css3 .lg-item.lg-current { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; + opacity: 1; +} + +.lg-inline .lg-backdrop, +.lg-inline .lg-outer { + position: absolute; +} + +.lg-inline .lg-backdrop { + z-index: 1; +} + +.lg-inline .lg-outer { + z-index: 2; +} + +.lg-inline .lg-maximize:after { + content: '\e909'; +} + +.lg-components { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + will-change: transform; + -webkit-transition: -webkit-transform 0.35s ease-out 0s; + -moz-transition: -moz-transform 0.35s ease-out 0s; + -o-transition: -o-transform 0.35s ease-out 0s; + transition: transform 0.35s ease-out 0s; + z-index: 1080; + position: absolute; + bottom: 0; + right: 0; + left: 0; +} diff --git a/assets/assets/lightgallery.min.js b/assets/assets/lightgallery.min.js new file mode 100644 index 0000000..30888ad --- /dev/null +++ b/assets/assets/lightgallery.min.js @@ -0,0 +1,8 @@ +/** + * lightgallery | 2.6.0 | August 29th 2022 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).lightGallery=e()}(this,(function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var e,i=1,s=arguments.length;ir){n=a;break}l===o.length-1&&(n=a)}var d=n.split("-"),g=parseInt(d[0],10),h=parseInt(d[1],10),c=e.width(),u=e.height()-i,m=Math.min(c,g),p=Math.min(u,h),f=Math.min(m/g,p/h);return{width:g*f,height:h*f}}},E=function(t,e,i,s,n){if(n){var o=x(t).find("img").first();if(o.get()){var r=e.get().getBoundingClientRect(),l=r.width,a=e.height()-(i+s),d=o.width(),g=o.height(),h=o.style(),c=(l-d)/2-o.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+x(window).scrollLeft()+r.left,u=(a-g)/2-o.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+x(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(u*=-1)+"px, 0) scale3d("+d/n.width+", "+g/n.height+", 1)"}}},O=function(t,e,i,s,n,o){return'
\n \n
'},D=function(t,e,i,s,n,o){var r="',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),""})));return""+l+r},L=function(t){for(var e=[],i=[],s="",n=0;nr){s=i[l];break}return s},z=function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},M=function(t,e,i,s,n){return'
\n
\n \n '+s+'\n \n \n \n \n \n \n \n
\n '+(e||"")+'\n \n
'},G=function(t){var e=t.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');return[].filter.call(e,(function(t){var e=window.getComputedStyle(t);return"none"!==e.display&&"hidden"!==e.visibility}))},k=function(t,e,i,s){var n=[],o=function(){for(var t=0,e=0,i=arguments.length;e-1&&(d=a),d&&(e[d]=l.value)}}var g=x(t),h=g.find("img").first().attr("alt"),c=g.attr("title"),u=s?g.attr(s):g.find("img").first().attr("src");e.thumb=u,i&&!e.subHtml&&(e.subHtml=c||h||""),e.alt=h||c||"",n.push(e)})),n},A=function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},P=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0},B=0,F=function(){function w(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(B++,this.lgId=B,this.el=t,this.LGel=x(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return w.prototype.generateSettings=function(e){if(this.settings=t(t({},I),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():A()){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},w.prototype.normalizeSettings=function(){this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container||(this.settings.container=document.body),this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},w.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(i,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout((function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()}),50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},w.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var s=i.items[e],n=x(s),o=C.generateUUID();n.attr("data-lg-id",o).on("click.lgcustom-item-"+o,(function(i){i.preventDefault();var n=t.settings.index||e;t.openGallery(n,s)}))},i=this,s=0;s '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",o=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",r="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'':"",a=this.settings.showMaximizeIcon?'':"",d='\n \n ";x(this.settings.container).append(d),document.body!==this.settings.container&&x(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var g=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(g+="lg-grab "),this.outer.addClass(g),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),x(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},w.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=T(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(n)}},w.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},w.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(o)}else this.closeGallery()},w.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=x(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return k(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},w.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},w.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(x("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;x(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),x(document.body).addClass("lg-overlay-open")}},w.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(x(document.body).css("padding-right",this.bodyPaddingRight+"px"),x(document.body).removeClass("lg-overlay-open"))},w.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var n="";s.forEach((function(t){n=n+'
'})),this.$inner.append(n),this.addHtml(t);var o="";this.mediaContainerPosition=this.getMediaContainerPosition();var r=this.mediaContainerPosition,d=r.top,g=r.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(d,g);var h=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=T(e,this.outer,d+g,h&&this.settings.videoMaxSize),o=E(e,this.outer,d,g,this.currentImageSize)),this.zoomFromOrigin&&o||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(l),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=x(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&o){var e=i.getSlideItem(t);e.css("transform",o),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),setTimeout((function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()}),i.settings.backdropDuration+50),i.zoomFromOrigin&&o||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(a)})),document.body===this.settings.container&&x("html").addClass("lg-on")}},w.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},w.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},w.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},w.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},w.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},w.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?x(this.items).eq(t).find(e).first().html():x(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var n=x(this.getSlideItemId(t));i?n.load(i):n.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(r,{index:t})},w.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},w.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},w.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},w.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=x(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var o="';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),o}return""},w.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],n=s.alt,o=s.srcset,r=s.sizes,l=s.sources,a=n?'alt="'+n+'"':"",d=' '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,a):D(i,t,a,o,r,l))+"";e.prepend(d)},w.prototype.onSlideObjectLoad=function(t,e,i,s){var n=t.find(".lg-object").first();z(n.get())||e?i():(n.on("load.lg error.lg",(function(){i&&i()})),n.on("error.lg",(function(){s&&s()})))},w.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html('Oops... Failed to load content...')}))},w.prototype.triggerSlideItemLoad=function(t,e,i,s,n){var o=this,r=this.galleryItems[e],l=n&&"video"===this.getSlideType(r)&&!r.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),o.LGel.trigger(d,{index:e,delay:i||0,isFirstSlide:n})}),l)},w.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},w.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=P(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},w.prototype.loadContent=function(t,i){var n=this,o=this.galleryItems[t],r=x(this.getSlideItemId(t)),l=o.poster,a=o.srcset,d=o.sizes,g=o.sources,h=o.src,c=o.video,u=c&&"string"==typeof c?JSON.parse(c):c;if(o.responsive){var m=o.responsive.split(",");h=L(m)||h}var p=o.__slideVideoInfo,f="",y=!!o.iframe,v=!this.lGalleryOn,b=0;if(v&&(b=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(p){var I=this.mediaContainerPosition,C=I.top,w=I.bottom,S=T(this.items[t],this.outer,C+w,p&&this.settings.videoMaxSize);f=this.getVideoContStyle(S)}if(y){var E=O(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,h,o.iframeTitle);r.prepend(E)}else if(l){var z="";v&&this.zoomFromOrigin&&this.currentImageSize&&(z=this.getDummyImageContent(r,t,""));E=M(l,z||"",f,this.settings.strings.playVideo,p);r.prepend(E)}else if(p){E='
';r.prepend(E)}else if(this.setImgMarkup(h,r,t),a||g){var G=r.find(".lg-object");this.initPictureFill(G)}(l||p)&&this.LGel.trigger(s,{index:t,src:h,html5Video:u,hasPoster:!!l}),this.LGel.trigger(e,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var k=0;b&&!x(document.body).hasClass("lg-from-hash")&&(k=b),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout((function(){if("image"===n.getSlideType(o)){var e=o.alt,i=e?'alt="'+e+'"':"";if(r.find(".lg-img-wrap").append(D(t,h,i,a,d,o.sources)),a||g){var s=r.find(".lg-object");n.initPictureFill(s)}}("image"===n.getSlideType(o)||"video"===n.getSlideType(o)&&l)&&(n.onLgObjectLoad(r,t,b,k,!0,!1),n.onSlideObjectLoad(r,!(!p||!p.html5||l),(function(){n.loadContentOnFirstSlideLoad(t,r,k)}),(function(){n.loadContentOnFirstSlideLoad(t,r,k)})))}),this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||l)||this.onLgObjectLoad(r,t,b,k,v,!(!p||!p.html5||l)),this.zoomFromOrigin&&this.currentImageSize||!r.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){r.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===i&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",(function(){n.preload(t)})))},w.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},w.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&x("#"+t).remove()})),s},w.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},w.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},w.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},w.prototype.slide=function(t,e,i,s){var n=this,o=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,o),!this.lGalleryOn||o!==t){var r=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var l=this.getSlideItem(t),a=this.getSlideItem(o),d=this.galleryItems[t],c=d.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(d)),this.setDownloadValue(t),c){var u=this.mediaContainerPosition,m=u.top,p=u.bottom,f=T(this.items[t],this.outer,m+p,c&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(g,{prevIndex:o,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(to&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var y=void 0,v=void 0;r>2?(y=t-1,v=t+1,(0===t&&o===r-1||t===r-1&&0===o)&&(v=0,y=r-1)):(y=0,v=1),"prev"===s?this.getSlideItem(v).addClass("lg-next-slide"):this.getSlideItem(y).addClass("lg-prev-slide"),l.addClass("lg-current")}else this.makeSlideAnimation(s,l,a);this.lGalleryOn?setTimeout((function(){n.loadContent(t,!0),".lg-item"!==n.settings.appendSubHtmlTo&&n.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){n.lgBusy=!1,a.removeClass("lg-slide-progress"),n.LGel.trigger(h,{prevIndex:o,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},w.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},w.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},w.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},w.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var d=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",d);var g=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,g,g),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},w.prototype.touchEnd=function(t,e,i){var s,n=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){n.$container.removeClass("lg-dragging-vertical"),n.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var o=!0;if("horizontal"===n.swipeDirection){s=t.pageX-e.pageX;var r=Math.abs(t.pageX-e.pageX);s<0&&r>n.settings.swipeThreshold?(n.goToNextSlide(!0),o=!1):s>0&&r>n.settings.swipeThreshold&&(n.goToPrevSlide(!0),o=!1)}else if("vertical"===n.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),n.settings.closable&&n.settings.swipeToClose&&s>100)return void n.closeGallery();n.$backdrop.css("opacity",1)}if(n.outer.find(".lg-item").removeAttr("style"),o&&Math.abs(t.pageX-e.pageX)<5){var l=x(i.target);n.isPosterElement(l)&&n.LGel.trigger(c)}n.swipeDirection=void 0})),setTimeout((function(){n.outer.hasClass("lg-dragging")||"lg-slide"===n.settings.mode||n.outer.removeClass("lg-slide")}),this.settings.speed+100)},w.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!x(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(n=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})})),this.$inner.on("touchmove.lg",(function(o){n&&"swipe"===t.touchAction&&1===o.touches.length&&(i={pageX:o.touches[0].pageX,pageY:o.touches[0].pageY},t.touchMove(e,i,o),s=!0)})),this.$inner.on("touchend.lg",(function(o){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,o);else if(n){var r=x(o.target);t.isPosterElement(r)&&t.LGel.trigger(c)}t.touchAction=void 0,n=!1}})))},w.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var n=t.getSlideItem(t.index);(x(i.target).hasClass("lg-item")||n.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(u))))})),x(window).on("mousemove.lg.global"+this.lgId,(function(o){s&&t.lgOpened&&(n=!0,i={pageX:o.pageX,pageY:o.pageY},t.touchMove(e,i),t.LGel.trigger(m))})),x(window).on("mouseup.lg.global"+this.lgId,(function(o){if(t.lgOpened){var r=x(o.target);n?(n=!1,t.touchEnd(i,e,o),t.LGel.trigger(p)):t.isPosterElement(r)&&t.LGel.trigger(c),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},w.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(x(e.target))&&t.LGel.trigger(c)}))},w.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},w.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},w.prototype.keyPress=function(){var t=this;x(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},w.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},w.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},w.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},w.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},w.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")},w.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},w.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},w.prototype.invalidateItems=function(){for(var t=0;t}} +{{< figure resources="image/foo.jpg" title="Foo (a JPEG)" linkto="/about.md">}} +{{< figure page="images" resources="figure/**.jpg" >}} +{{}} + +This would make a gallery where the first item is the page resource +'image/foo.jpg' on the current page, and its caption has "Foo (a +JPEG)" as its text, and the text is also a link to the About page. +The gallery's following items are every JPEG in the 'figure' directory +of the page resources for the 'images' page. + +This started from a setup documented at: +https://blog.cavelab.dev/2021/04/photo-gallery-posts/ diff --git a/config.toml b/config.toml index 9ae5825..69b969e 100644 --- a/config.toml +++ b/config.toml @@ -31,12 +31,12 @@ enable = true # optional: true, false. Enable globally, default: use = "mathjax" # option: "katex", "mathjax". default: "katex" [params] - # See themes/nofancy/static/highlight/styles for available options - #highlight="tomorrow" - # Controls what items are listed in the top nav menu - # "none", or "categories" - # If you have too many categories to fit in the top nav menu, set this to "none" - topmenu="categories" + # See themes/nofancy/static/highlight/styles for available options + #highlight="tomorrow" + # Controls what items are listed in the top nav menu + # "none", or "categories" + # If you have too many categories to fit in the top nav menu, set this to "none" + topmenu="categories" style="auto" #slogan="slogan whatever" @@ -84,6 +84,10 @@ url = "/works/front" title = "Archive" url = "/archive" +[[params.nav.custom]] +title = "Pages" +url = "/pages" + # Disable these for now until I fix the tags/categories a bit: # [[params.nav.custom]] # title = "Tags" diff --git a/content/posts/2007-03-23-backlog.md b/content/posts/2007-03-23-backlog.md index 9562fdc..ab30a70 100644 --- a/content/posts/2007-03-23-backlog.md +++ b/content/posts/2007-03-23-backlog.md @@ -13,7 +13,7 @@ _Adjectives I wrote:_ Atmospheric, ambient, relaxing _Where to get it:_ The SoundLift page. For now. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/innermost.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/innermost.jpg" noresize=1 >}} **innermost** diff --git a/content/posts/2007-07-25-backlog.md b/content/posts/2007-07-25-backlog.md index 1dfffe6..7015d20 100644 --- a/content/posts/2007-07-25-backlog.md +++ b/content/posts/2007-07-25-backlog.md @@ -5,7 +5,7 @@ date: "2007-07-25" [Kahvi Collective](http://www.kahvi.org/) has been one of my favorite music sites since maybe 2006. Every release I can remember has always been of very good quality and included some interesting album artwork. Any Kahvi link I post is generally going to have a link to a full download of the album in MP3 and Ogg Vorbis. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/balloon_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/balloon_lrg.jpg" noresize=1 >}} **"Red Balloon" by General Fuzz** @@ -15,7 +15,7 @@ This is [kahvi #216](http://www.kahvi.org/releases.php?release_number=216). Here - I listened to these before bed; they had some nice imagery and visualizations -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/cryogenic_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/cryogenic_lrg.jpg" noresize=1 >}} **Dream Lab - Cryogenic EP** diff --git a/content/posts/2007-07-25-more-backlog.md b/content/posts/2007-07-25-more-backlog.md index e1f2b97..294744d 100644 --- a/content/posts/2007-07-25-more-backlog.md +++ b/content/posts/2007-07-25-more-backlog.md @@ -3,13 +3,13 @@ title: "2007-07-25, more backlog (Coax, Workbench, Brioskj)" date: "2007-07-25" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/coax_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/coax_lrg.jpg" noresize=1 >}} **Coax - Celethyst EP** This is [kahvi #185](http://www.kahvi.org/releases.php?release_number=185). I described it as fast-moving and squirrely. It differs a bit from most of the other things I've heard on Kahvi, but I still like it. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/workbench_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/workbench_lrg.jpg" noresize=1 >}} **Workbench - Detour EP** @@ -20,7 +20,7 @@ This is [kahvi #171](http://www.kahvi.org/releases.php?release_number=171). This I love this entire album. It's extremely relaxing, but without being boring or dull. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/escape_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/escape_lrg.jpg" noresize=1 >}} **Brioskj - Escape from the City** diff --git a/content/posts/2007-07-30-backlog.md b/content/posts/2007-07-30-backlog.md index 8f5355d..f4c7827 100644 --- a/content/posts/2007-07-30-backlog.md +++ b/content/posts/2007-07-30-backlog.md @@ -3,7 +3,7 @@ title: "2007-07-30, backlog (Miss Moonlight)" date: "2007-07-30" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/007770053_miss_moonlight_-_save_us.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/007770053_miss_moonlight_-_save_us.jpg" noresize=1 >}} **Miss Moonlight - Save Us** diff --git a/content/posts/2007-10-12-backlog.md b/content/posts/2007-10-12-backlog.md index 069f335..ce10856 100644 --- a/content/posts/2007-10-12-backlog.md +++ b/content/posts/2007-10-12-backlog.md @@ -3,7 +3,7 @@ title: "2007-10-12, backlog (Scann-Tec)" date: "2007-10-12" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/offline_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/offline_lrg.jpg" noresize=1 >}} **Scann-Tec - The Man Who Lives Offline** diff --git a/content/posts/2007-10-13-backlog.md b/content/posts/2007-10-13-backlog.md index 2f10cd7..df76648 100644 --- a/content/posts/2007-10-13-backlog.md +++ b/content/posts/2007-10-13-backlog.md @@ -3,7 +3,7 @@ title: "2007-10-13, backlog (Cardamar, Dream Lab)" date: "2007-10-13" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/011.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/011.jpg" noresize=1 >}} **Cardamar - Sequence Breaker EP** @@ -15,7 +15,7 @@ This is [Cardamar PARO011](http://www.cardamar.com/releases.php?release=PARO011# _Where to get it:_ I don't know, because it's no longer sold at Cardamar Music. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/010.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/010.jpg" noresize=1 >}} **Dream Lab - Cosmotherapy** diff --git a/content/posts/2007-10-16-backlog.md b/content/posts/2007-10-16-backlog.md index 9bbaaeb..090a447 100644 --- a/content/posts/2007-10-16-backlog.md +++ b/content/posts/2007-10-16-backlog.md @@ -3,7 +3,7 @@ title: "2007-10-16, backlog (krill minima)" date: "2007-10-16" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/thn098-00-krill.minima_-_urlaub_auf_balkonien.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/thn098-00-krill.minima_-_urlaub_auf_balkonien.jpg" noresize=1 >}} **krill minima - urlaub auf balkonien** diff --git a/content/posts/2007-11-03-backlog.md b/content/posts/2007-11-03-backlog.md index c068b53..e8060b1 100644 --- a/content/posts/2007-11-03-backlog.md +++ b/content/posts/2007-11-03-backlog.md @@ -3,9 +3,9 @@ title: "2007-11-03, backlog (Eloi Brunelle)" date: "2007-11-03" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/1152891438-2799.jpg" noresize=1 >}} -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/epsilonlablogo.gif" noresize=1 >}} -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/epsilonlabtext.gif" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/1152891438-2799.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/epsilonlablogo.gif" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/epsilonlabtext.gif" noresize=1 >}} **Eloi Brunelle - The Love EP** diff --git a/content/posts/2007-12-11-backlog.md b/content/posts/2007-12-11-backlog.md index ccf6279..0aa132b 100644 --- a/content/posts/2007-12-11-backlog.md +++ b/content/posts/2007-12-11-backlog.md @@ -3,7 +3,7 @@ title: "2007-12-11, backlog (various ctgmusic links)" date: "2007-12-11" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/get_pic.jpeg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/get_pic.jpeg" noresize=1 >}} **RMS Maryse** @@ -16,7 +16,7 @@ I must not have liked anything this artist did, because I wrote "Avoid completel _Where to get it:_ [Here](http://www.ctgmusic.com/song.php?id=15905) at ctgmusic -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/easterisland.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/easterisland.jpg" noresize=1 >}} **Mindmasher - Easter Eyeland** @@ -27,7 +27,7 @@ I think I vaguely remember this track being good and pretty unique. This artist _Where to get it:_ [Here](http://www.ctgmusic.com/song.php?id=15890) at ctgmusic -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/50005856482.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/50005856482.jpg" noresize=1 >}} **Fleeticer** diff --git a/content/posts/2007-12-21-backlog.md b/content/posts/2007-12-21-backlog.md index 31a15fa..fffe9a6 100644 --- a/content/posts/2007-12-21-backlog.md +++ b/content/posts/2007-12-21-backlog.md @@ -3,7 +3,7 @@ title: "2007-12-21, backlog (speak, Polaski, coax)" date: "2007-12-21" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/mindsplit_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/mindsplit_lrg.jpg" noresize=1 >}} **"Speak" by Mindsplit** @@ -15,13 +15,13 @@ This is [kahvi #228](http://www.kahvi.org/releases.php?release_number=228). I re So I guess I liked it but I can't remember much else. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/planets_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/planets_lrg.jpg" noresize=1 >}} I wrote about [kahvi #229](http://www.kahvi.org/releases.php?release_number=229) like coax wrote it, however it seems coax had nothing to do with it, so I am rather confused. But I said: "Flows well, atmospheric/ambient-ish, melodic" Whatever. -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/twilight_snow_lrg.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/twilight_snow_lrg.jpg" noresize=1 >}} **Coax - Twilight Snow** diff --git a/content/posts/2007-12-28-backlog.md b/content/posts/2007-12-28-backlog.md index e10cb8a..be894f9 100644 --- a/content/posts/2007-12-28-backlog.md +++ b/content/posts/2007-12-28-backlog.md @@ -3,7 +3,7 @@ title: "2007-12-28, backlog (ultramar)" date: "2007-12-28" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/thn099-00-gaston_arevalo_-_ultramar.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/thn099-00-gaston_arevalo_-_ultramar.jpg" noresize=1 >}} **gastón arévalo – ultramar** diff --git a/content/posts/2008-01-17-backlog.md b/content/posts/2008-01-17-backlog.md index 86cd2c3..c155a74 100644 --- a/content/posts/2008-01-17-backlog.md +++ b/content/posts/2008-01-17-backlog.md @@ -3,7 +3,7 @@ title: "2008-01-17, backlog (vortechtral)" date: "2008-01-17" --- -{{< figure page="images" resource="2007-2008-old-wordpress/2008/03/emrmp0001.jpg" noresize=1 >}} +{{< figure page="images" resources="2007-2008-old-wordpress/2008/03/emrmp0001.jpg" noresize=1 >}} **Vortechtral - Technical EP** diff --git a/content/posts/2008-03-24-workfest-day-one/index.md b/content/posts/2008-03-24-workfest-day-one/index.md index f693fde..3ca2758 100644 --- a/content/posts/2008-03-24-workfest-day-one/index.md +++ b/content/posts/2008-03-24-workfest-day-one/index.md @@ -14,8 +14,6 @@ tags: - workfest --- -{{< load-photoswipe >}} - It's quite different. People are open. Their groups are open. @@ -33,8 +31,8 @@ They're out of that context. They look like they're in the context they belong. My Canon camera is probably almost out of battery power, despite efforts. I should have brought the charger. But I have the Kodak too. Maybe it will show some of the picturesque terrain. -{{< figure page="images" resource="2008-03-workfest/img_6262.jpg" caption="Camp AJ from one angle">}} -{{< figure page="images" resource="2008-03-workfest/img_6253.jpg" caption="Arriving at Camp AJ">}} -{{< figure page="images" resource="2008-03-workfest/img_6265.jpg" caption="Playground and climbing wall near entrance road">}} +{{< figure page="images" resources="2008-03-workfest/img_6262.jpg" caption="Camp AJ from one angle">}} +{{< figure page="images" resources="2008-03-workfest/img_6253.jpg" caption="Arriving at Camp AJ">}} +{{< figure page="images" resources="2008-03-workfest/img_6265.jpg" caption="Playground and climbing wall near entrance road">}} (Later note: That is [Camp AJ, 2549 Sand Lick Rd, McKee, KY 40447](https://www.google.com/maps/dir/Cincinnati,+Ohio/Berea,+Kentucky/Camp+AJ,+2549+Sand+Lick+Rd,+McKee,+KY+40447/@37.488284,-84.0115257,16z/data=!4m19!4m18!1m5!1m1!1s0x884051b1de3821f9:0x69fb7e8be4c09317!2m2!1d-84.5120196!2d39.1031182!1m5!1m1!1s0x8842e18aa160b579:0xd32df1c2b2266672!2m2!1d-84.2963223!2d37.568694!1m5!1m1!1s0x884315ccbd7d479b:0x28e72c53d5d60a9d!2m2!1d-84.00718!2d37.4887543).) diff --git a/content/posts/2008-03-25-workfest-day-two/index.md b/content/posts/2008-03-25-workfest-day-two/index.md index 5edae78..8325928 100644 --- a/content/posts/2008-03-25-workfest-day-two/index.md +++ b/content/posts/2008-03-25-workfest-day-two/index.md @@ -14,8 +14,6 @@ tags: - workfest --- -{{< load-photoswipe >}} - Proceed with first work day. Due to loud snorers and periodic heater-startup and my cell phone failing to be a usable alarm after its batteries drained in standalone mode for no apparent reason, causing me to believe it was 6 AM when it was probably around 2 AM . . . I had very little sleep, and woke up pretty groggily and felt like eating nothing and doing nothing. @@ -30,12 +28,12 @@ A bluegrass band (Phillip Akemon and Flatlick) also came tonight. They were very I was talking to Lea and she told me she hated being around some of the Christians here... I don't totally blame her, even if I don't have the same view (yet). My view is that they are having a very positive outcome, and if they have to believe what they believe to achieve it, then so be it. They aren't pushing beliefs on anyone else, so I can't really criticize much. -{{< figure page="images" resource="2008-03-workfest/6282.jpg" caption="3 PM?" >}} +{{< figure page="images" resources="2008-03-workfest/6282.jpg" caption="3 PM?" >}} -{{< figure page="images" resource="2008-03-workfest/6285.jpg" caption="Phillip Akemon" >}} +{{< figure page="images" resources="2008-03-workfest/6285.jpg" caption="Phillip Akemon" >}} -{{< figure page="images" resource="2008-03-workfest/6289.jpg" caption="Mike Morgeson" >}} +{{< figure page="images" resources="2008-03-workfest/6289.jpg" caption="Mike Morgeson" >}} -{{< figure page="images" resource="2008-03-workfest/img_6291.jpg" caption="Kevin Amburgey & Phil" >}} +{{< figure page="images" resources="2008-03-workfest/img_6291.jpg" caption="Kevin Amburgey & Phil" >}} -{{< figure page="images" resource="2008-03-workfest/6292.jpg" caption="Phil & Phil Jr." >}} +{{< figure page="images" resources="2008-03-workfest/6292.jpg" caption="Phil & Phil Jr." >}} diff --git a/content/posts/2008-03-26-workfest-day-three/index.md b/content/posts/2008-03-26-workfest-day-three/index.md index f59e0c4..b3e7ee5 100644 --- a/content/posts/2008-03-26-workfest-day-three/index.md +++ b/content/posts/2008-03-26-workfest-day-three/index.md @@ -14,8 +14,6 @@ tags: - workfest --- -{{< load-photoswipe >}} - Well, scratch that part in the last entry about not pushing beliefs. I slept like a rock (as MJ predicted), woke up groggily, and started another day. Work was a bit slow at first because my wrist was sore and it was hard to hammer, but everyone was pretty productive in general. @@ -32,14 +30,14 @@ I took a ton of pictures today... my 512 MB card is almost full in my Canon, but I understood some of what Jen Eich said months ago about being able to volunteer for a year without racking up debt - much of the staff lives in a sort of coop under CAP, with most expenses covered (like housing, insurance, and utilities) and a $150/month stipend. It looks very nice - if one is suitably dedicated. -{{< figure page="images" resource="2008-03-workfest/6306.jpg" caption="Early stages of the deck">}} +{{< figure page="images" resources="2008-03-workfest/6306.jpg" caption="Early stages of the deck">}} -{{< figure page="images" resource="2008-03-workfest/6318.jpg" caption="Deck from the other side">}} +{{< figure page="images" resources="2008-03-workfest/6318.jpg" caption="Deck from the other side">}} -{{< figure page="images" resource="2008-03-workfest/6310.jpg" caption="Corrie & Christine putting up soffit">}} +{{< figure page="images" resources="2008-03-workfest/6310.jpg" caption="Corrie & Christine putting up soffit">}} -{{< figure page="images" resource="2008-03-workfest/6338.jpg" caption="Nearby road">}} +{{< figure page="images" resources="2008-03-workfest/6338.jpg" caption="Nearby road">}} -{{< figure page="images" resource="2008-03-workfest/6341.jpg" caption="Family cemetery">}} +{{< figure page="images" resources="2008-03-workfest/6341.jpg" caption="Family cemetery">}} -{{< figure page="images" resource="2008-03-workfest/6348.jpg" caption="Some kitten">}} +{{< figure page="images" resources="2008-03-workfest/6348.jpg" caption="Some kitten">}} diff --git a/content/posts/2008-03-27-workfest-day-four/index.md b/content/posts/2008-03-27-workfest-day-four/index.md index 72efd67..19048f6 100644 --- a/content/posts/2008-03-27-workfest-day-four/index.md +++ b/content/posts/2008-03-27-workfest-day-four/index.md @@ -14,8 +14,6 @@ tags: - workfest --- -{{< load-photoswipe >}} - Typical morning, finishing up of some work, watching a deck get assembled... After that we went to a church about 30-40 minutes away and had dinner with the families whose homes we were repairing. Some people got up to talk and expressed a lot of gratitude in general. @@ -32,14 +30,14 @@ It's miles apart from other environments I've been in, where I had suspicion tha Photos: -{{< figure page="images" resource="2008-03-workfest/img_6359.jpg" caption="Sky in the morning">}} +{{< figure page="images" resources="2008-03-workfest/img_6359.jpg" caption="Sky in the morning">}} We were repairing Connie's house; this photo has Andy (one of the crew leaders), Connie, and Heather (Connie's daughter) -{{< figure page="images" resource="2008-03-workfest/6389e.jpg" caption="Andy, Connie, Heather">}} +{{< figure page="images" resources="2008-03-workfest/6389e.jpg" caption="Andy, Connie, Heather">}} -{{< figure page="images" resource="2008-03-workfest/6369e.jpg" caption="More progress on the deck">}} +{{< figure page="images" resources="2008-03-workfest/6369e.jpg" caption="More progress on the deck">}} -{{< figure page="images" resource="2008-03-workfest/6367e.jpg" caption="Random cat with no tail">}} +{{< figure page="images" resources="2008-03-workfest/6367e.jpg" caption="Random cat with no tail">}} Random cat that would hang around diff --git a/content/posts/2008-03-28-workfest-day-fourfive/index.md b/content/posts/2008-03-28-workfest-day-fourfive/index.md index e5fc348..9948200 100644 --- a/content/posts/2008-03-28-workfest-day-fourfive/index.md +++ b/content/posts/2008-03-28-workfest-day-fourfive/index.md @@ -14,18 +14,16 @@ tags: - workfest --- -{{< load-photoswipe >}} - I was too busy/asleep to write much of an entry, so I'll just post the few photos I have from the last two days. Almost-completed deck: -{{< figure page="images" resource="2008-03-workfest/6422e.jpg" caption="Deck, almost finished">}} +{{< figure page="images" resources="2008-03-workfest/6422e.jpg" caption="Deck, almost finished">}} Crate of [Ale-8-One](http://www.ale8one.com/) donated by someone whose name I forget: -{{< figure page="images" resource="2008-03-workfest/6425e.jpg" caption="Crate of Ale-8-One">}} +{{< figure page="images" resources="2008-03-workfest/6425e.jpg" caption="Crate of Ale-8-One">}} Pastries which Andy took a lot of time preparing for breakfast: -{{< figure page="images" resource="2008-03-workfest/k6584e.jpg" caption="Pastries that Andy put a lot of work into">}} +{{< figure page="images" resources="2008-03-workfest/k6584e.jpg" caption="Pastries that Andy put a lot of work into">}} diff --git a/content/posts/2008-03-31-stuff-i-experienced-at-work-today.markdown b/content/posts/2008-03-31-stuff-i-experienced-at-work-today.markdown index 2299b49..ea61cc7 100644 --- a/content/posts/2008-03-31-stuff-i-experienced-at-work-today.markdown +++ b/content/posts/2008-03-31-stuff-i-experienced-at-work-today.markdown @@ -10,8 +10,6 @@ categories: - Journal --- -{{< load-photoswipe >}} - 1. Declared myself a complete asshat for writing a blog about nothing @@ -21,7 +19,7 @@ categories: 3. Broke the printer after two pages 4. Discovered that while both my managers described the intern who had just left as essentially clueless, she had decorated the cubicle in interesting tiny artworks made with post-its and highlighter, like this: - {{< figure page="images" resource="2008-04-work/cubicleart.jpg" >}} + {{< figure page="images" resources="2008-04-work/cubicleart.jpg" >}} 5. Was very glad that I took 2 hours several months ago to document WTF I was doing when I left, because I certainly did not remember diff --git a/content/posts/2008-05-05-alix1c-board-edirol-repair.markdown b/content/posts/2008-05-05-alix1c-board-edirol-repair.markdown index 6371707..efdde5c 100644 --- a/content/posts/2008-05-05-alix1c-board-edirol-repair.markdown +++ b/content/posts/2008-05-05-alix1c-board-edirol-repair.markdown @@ -13,8 +13,6 @@ tags: - midi --- -{{< load-photoswipe >}} - I guess I'll repeat what some other people do, and put up blog entries about what they do with hardware... **Alix.1C** @@ -23,8 +21,8 @@ My [Alix.1C](http://www.mini-box.com/Alix-1C-Board-1-LAN-1-MINI-PCI?sc=8&categor This board is a 500 MHz AMD Geode with 256 MB RAM onboard; it uses about 5 watts and runs from 12VDC. It has a CompactFlash header onboard, so right now I am running Linux from a 128 MB card. -{{< figure page="images" resource="2008-05-hardware/6547.jpg" caption="Alix.1C" >}} -{{< figure page="images" resource="2008-05-hardware/6549.jpg" caption="Alix.1C other view" >}} +{{< figure page="images" resources="2008-05-hardware/6547.jpg" caption="Alix.1C" >}} +{{< figure page="images" resources="2008-05-hardware/6549.jpg" caption="Alix.1C other view" >}} **Edirol PCR-M50** @@ -34,26 +32,26 @@ Some said they'd taken it apart and cleaned it to fix it. So I figured that woul Front cover off, after removing like 50 screws: -{{< figure page="images" resource="2008-05-hardware/6553.jpg" caption="Edirol keyboard 1" >}} -{{< figure page="images" resource="2008-05-hardware/6554.jpg" caption="Edirol keyboard 2" >}} +{{< figure page="images" resources="2008-05-hardware/6553.jpg" caption="Edirol keyboard 1" >}} +{{< figure page="images" resources="2008-05-hardware/6554.jpg" caption="Edirol keyboard 2" >}} So I started the process of removing keys because I could not see any other way to access the contacts. They grey part on the left in the first picture looks like about the same mechanism as a keyboard or older joystick pad. There are two pads for each key rather than just one, and my guess is that the one nearest the fulcrum is hit slightly sooner than the further one, and the time elapsed between the two hits is used to guess the velocity with which they key was struck. Other than that, just a pretty easy-to-understand design. Each key is held up by a tension spring on the opposite side, and keys slide in and out pretty easily once the springs are gone. The only annoying part was all the white grease everywhere that kept getting all over my hands. -{{< figure page="images" resource="2008-05-hardware/6555.jpg" caption="Edirol keyboard 3" >}} -{{< figure page="images" resource="2008-05-hardware/6556.jpg" caption="Edirol keyboard 4" >}} +{{< figure page="images" resources="2008-05-hardware/6555.jpg" caption="Edirol keyboard 3" >}} +{{< figure page="images" resources="2008-05-hardware/6556.jpg" caption="Edirol keyboard 4" >}} And it's just connected electrically with a ribbon cable, normal 0.1" pitch, like an IDE header. -{{< figure page="images" resource="2008-05-hardware/6557.jpg" caption="Edirol keyboard 5" >}} +{{< figure page="images" resources="2008-05-hardware/6557.jpg" caption="Edirol keyboard 5" >}} So I proceeded to remove the first dozen or so keys by pulling out the springs, then white keys and black keys. The PCB in the next pictures looks almost black, but it should be more of a dark green. The lines are dust that came between the keys. In any case, these show the rubber(ish) part on top that the keys strike, and the gold PCB contacts beneath them. -{{< figure page="images" resource="2008-05-hardware/6562.jpg" caption="Edirol keyboard 6" >}} -{{< figure page="images" resource="2008-05-hardware/6563.jpg" caption="Edirol keyboard 7" >}} +{{< figure page="images" resources="2008-05-hardware/6562.jpg" caption="Edirol keyboard 6" >}} +{{< figure page="images" resources="2008-05-hardware/6563.jpg" caption="Edirol keyboard 7" >}} Conveniently, there are four rubber sections (one per octave). Each two gold pads correspond to a key, and the holes between each are where the rubber section is secured. diff --git a/content/posts/2010-04-03-hacked-infrared-camera-attempt-1.markdown b/content/posts/2010-04-03-hacked-infrared-camera-attempt-1.markdown index ec6aa7d..75d8116 100644 --- a/content/posts/2010-04-03-hacked-infrared-camera-attempt-1.markdown +++ b/content/posts/2010-04-03-hacked-infrared-camera-attempt-1.markdown @@ -12,8 +12,6 @@ categories: - Technobabble --- -{{< load-photoswipe >}} - [This page](http://geektechnique.org/index.php?id=254) at GeekTechnique discusses how most digital cameras are easily turned into infrared cameras by removing the IR blocking filter in front of the CCD, and replacing it with a filter that blocks visible light but passes IR. As luck would have it, exposed film negatives work very well as such a filter. So I attempted this on my Kodak EasyShare CX6200, my first camera, which somehow still works after 6 years of abuse. It was surprisingly easy, minus the part where I had to manually resolder the coil which controls the shutter on the lens because it was attached by single hair-thin strands of uninsulated wire. But I digress... @@ -23,23 +21,23 @@ It can generate a gallery from a directory but first I have to get at that directory. --> {{< gallery >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/edit-127.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/edit-128.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/edit-129.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/edit-130.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/edit-132.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-102.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-104.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-109.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-110.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-113.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-114.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-115.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-117.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-120.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-122.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-124.jpg" >}} - {{< figure page="images" resource="2007-2008-old-wordpress/2010/04/orig-125.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/edit-127.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/edit-128.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/edit-129.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/edit-130.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/edit-132.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-102.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-104.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-109.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-110.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-113.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-114.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-115.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-117.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-120.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-122.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-124.jpg" >}} + {{< figure page="images" resources="2007-2008-old-wordpress/2010/04/orig-125.jpg" >}} {{< /gallery >}} I think it's working well. It very clearly passes IR light because the IR pens for the Wii whiteboard showed up quite brightly; it blocks light from LCD monitors and passes sunlight, but red LEDs seem to show up a bit. Trying it on another camera with more manual controls, and perhaps with a sharper filter, might prove interesting. diff --git a/content/posts/2010-07-04-processing-dla-quadtrees/index.md b/content/posts/2010-07-04-processing-dla-quadtrees/index.md index 5efcdca..3fd7eac 100644 --- a/content/posts/2010-07-04-processing-dla-quadtrees/index.md +++ b/content/posts/2010-07-04-processing-dla-quadtrees/index.md @@ -6,8 +6,6 @@ tags: - processing --- -{{< load-photoswipe >}} - I first dabbled with [Diffusion-Limited Aggregation](http://en.wikipedia.org/wiki/Diffusion-limited_aggregation) algorithms some 5 years back when I read about them in a book (later @@ -21,7 +19,7 @@ like this: -{{< figure resource="dla2c.png" title="Diffusion Limited Aggregation" caption="Don't ask for the source code to this">}} +{{< figure resources="dla2c.png" title="Diffusion Limited Aggregation" caption="Don't ask for the source code to this">}} After about 3 or 4 failed attempts to optimize this program to not take days to generate images, I finally rewrote it reasonably diff --git a/content/posts/2010-11-19-venue-222-rooftop.markdown b/content/posts/2010-11-19-venue-222-rooftop.markdown index 6b4e076..c806a4a 100644 --- a/content/posts/2010-11-19-venue-222-rooftop.markdown +++ b/content/posts/2010-11-19-venue-222-rooftop.markdown @@ -12,15 +12,13 @@ tags: - cincinnati night photo --- -{{< load-photoswipe >}} - Gawd, it's been forever since I've posted. Seeing Mandy post wonderful pictures regularly at http://kalpanasutra.wordpress.com/ has been an inspiration, but alas, I am still incredibly lazy when it comes to blog posting. I'm working on it. In the midst of an eggnog party at Venue 222 I found myself on the roof of the 5-story building, and I absolutely loved the view of downtown Cincinnati from up there. {{< gallery >}} - {{< figure page="images" resource="2010-11-venue222/20101113-DSC_1325.jpg" >}} - {{< figure page="images" resource="2010-11-venue222/20101113-DSC_1330.jpg" >}} - {{< figure page="images" resource="2010-11-venue222/20101113-DSC_1338.jpg" >}} - {{< figure page="images" resource="2010-11-venue222/20101113-DSC_1339.jpg" >}} + {{< figure page="images" resources="2010-11-venue222/20101113-DSC_1325.jpg" >}} + {{< figure page="images" resources="2010-11-venue222/20101113-DSC_1330.jpg" >}} + {{< figure page="images" resources="2010-11-venue222/20101113-DSC_1338.jpg" >}} + {{< figure page="images" resources="2010-11-venue222/20101113-DSC_1339.jpg" >}} {{< /gallery >}} diff --git a/content/posts/2010-12-05-cyanotypes-first-attempt.markdown b/content/posts/2010-12-05-cyanotypes-first-attempt.markdown index de7ea87..9cd6fe0 100644 --- a/content/posts/2010-12-05-cyanotypes-first-attempt.markdown +++ b/content/posts/2010-12-05-cyanotypes-first-attempt.markdown @@ -10,8 +10,6 @@ categories: - Project --- -{{< load-photoswipe >}} - Having procrastinated for around a month, I finally got around to acquiring the chemicals for a standard cyanotype (I went with [digitaltruth.com](http://www.digitaltruth.com/)) and followed the method given in "The Book of Alternative Photographic Processes" by Christopher James, which my friend Lea loaned me. I started out with a 1/5 batch of each solution (thus 20 g ferric ammonium citrate & 100 mL water, and 8 g potassium ferricyanide & 100 mL water). The book had wonderful, detailed instructions, most of which I ignored for now because I was just trying to get the feel of the cyanotype process... @@ -47,13 +45,13 @@ So I tried to follow that advice on the third attempt I made... actually, I want Here's the exposed, but not developed, print: -{{< figure page="images" resource="2010-12-cyanotypes/cyanotype0001.jpg" >}} +{{< figure page="images" resources="2010-12-cyanotypes/cyanotype0001.jpg" >}} The gradient in the top left is a strip of paper that I moved away at periodic intervals. I placed several strips of paper to the right but they were removed first and aren't visible here. The Hive13 logo also has a faint image to the left, probably from me moving the print early in the exposure and jolting the negative a little. I developed the print (just rinsed it in cold water until the water ran clear) and let it dry for maybe 7 hours: -{{< figure page="images" resource="2010-12-cyanotypes/cyanotype0002.jpg" >}} +{{< figure page="images" resources="2010-12-cyanotypes/cyanotype0002.jpg" >}} There are a lot of artifacts here. The darker border might be from the edges of the acetate on the negative. The things in the top left are some etching on one of the plates of glass that I used to hold the negative. In the undeveloped print, the strip to the right of that has clearly visible steps of tone, and I find it a little weird that all of these developed to pure white, while areas that are all the same color in the undeveloped print turned into clearly different tones in the developed one. I probably should read up on how to control this better. diff --git a/content/posts/2010-12-30-cyanotypes-better-results.markdown b/content/posts/2010-12-30-cyanotypes-better-results.markdown index ab3e13c..65f1e57 100644 --- a/content/posts/2010-12-30-cyanotypes-better-results.markdown +++ b/content/posts/2010-12-30-cyanotypes-better-results.markdown @@ -8,16 +8,14 @@ title: Cyanotypes & better results wordpress_id: 473 --- -{{< load-photoswipe >}} - Lack of some amount of sunshine is rarely a problem here, it seems. I did this next cyanotype outdoors in very overcast light while it was snowing lightly. The snow was minor since a sheet of glass covered everything, and overcast light possibly was perfect because of how even and omnidirectional it was. The contrast that I achieved in this print surprised me; the dark areas just turned out so much darker than the last print. -{{< figure page="images" resource="2010-12-cyanotypes/20101206-cyanotype0003.jpg" caption="Same paper & solution, but exposed in overcast sunlight." >}} +{{< figure page="images" resources="2010-12-cyanotypes/20101206-cyanotype0003.jpg" caption="Same paper & solution, but exposed in overcast sunlight." >}} I still had sensitizer left, so I decided to try some prints on fabric as well. These I exposed for almost 2 hours, maybe longer, under a 200 watt bulb. They didn't turn out as even as I'd like, but I was rushing things a bit and some spots of the towel weren't fully dry when I started exposing. However, I'm still impressed with how it turned out. -{{< figure page="images" resource="2010-12-cyanotypes/20101212-CIMG0269.jpg" caption="Exposure on a towel from Target; exposed ~ 2 hours under 200 W bulb." >}} +{{< figure page="images" resources="2010-12-cyanotypes/20101212-CIMG0269.jpg" caption="Exposure on a towel from Target; exposed ~ 2 hours under 200 W bulb." >}} -{{< figure page="images" resource="2010-12-cyanotypes/20101212-CIMG0270.jpg" caption="Same towel up close(ish)" >}} +{{< figure page="images" resources="2010-12-cyanotypes/20101212-CIMG0270.jpg" caption="Same towel up close(ish)" >}} Rob next door to the Hive loaned me a halftone negative he had (since I had nothing else on hand in the way of transparencies) and I made a few exposures of this, but had some problems with the highlights. I really should find some negatives that aren't monochrome (as this was, being a halftone image) so I can figure out how to get the tones right. diff --git a/content/posts/2010-12-30-macro-photography-attempts-1-and-2.markdown b/content/posts/2010-12-30-macro-photography-attempts-1-and-2.markdown index 74ca73a..198b2ec 100644 --- a/content/posts/2010-12-30-macro-photography-attempts-1-and-2.markdown +++ b/content/posts/2010-12-30-macro-photography-attempts-1-and-2.markdown @@ -11,16 +11,14 @@ categories: - Project --- -{{< load-photoswipe >}} - I picked up some very cheap extension tubes and a reversing ring for my DSLR, hoping to do some macro photography with them. However, I sort of ignored that both my lenses default to having their apertures at their narrowest setting (rather than their largest, which for some reason I assumed) until instructed otherwise whether electronically or via the aperture lever. This made it a bit more difficult to do a lot of the shots. I have a 49 to 52 mm step-up ring coming in the mail which will let me use the old SMC Pentax 50mm lens, which has an aperture ring, but it appears to be on a slow boat from China so it's not coming anytime soon. {{< gallery >}} - {{< figure page="images" resource="2010-12-macro/20101208-DSC_1517.jpg" caption="Part of business card" >}} - {{< figure page="images" resource="2010-12-macro/20101208-DSC_1533.jpg" caption="LCD monitor" >}} - {{< figure page="images" resource="2010-12-macro/20101208-DSC_1520.jpg" caption="CFL" >}} - {{< figure page="images" resource="2010-12-macro/20101209-DSC_1535.jpg" caption="Plastic edge in alligator clips" >}} - {{< figure page="images" resource="2010-12-macro/20101209-DSC_1539.jpg" caption="Those same alligator clips" >}} - {{< figure page="images" resource="2010-12-macro/20101209-DSC_1546.jpg" caption="PCB" >}} - {{< figure page="images" resource="2010-12-macro/20101209-DSC_1550.jpg" caption="Solder pads" >}} + {{< figure page="images" resources="2010-12-macro/20101208-DSC_1517.jpg" caption="Part of business card" >}} + {{< figure page="images" resources="2010-12-macro/20101208-DSC_1533.jpg" caption="LCD monitor" >}} + {{< figure page="images" resources="2010-12-macro/20101208-DSC_1520.jpg" caption="CFL" >}} + {{< figure page="images" resources="2010-12-macro/20101209-DSC_1535.jpg" caption="Plastic edge in alligator clips" >}} + {{< figure page="images" resources="2010-12-macro/20101209-DSC_1539.jpg" caption="Those same alligator clips" >}} + {{< figure page="images" resources="2010-12-macro/20101209-DSC_1546.jpg" caption="PCB" >}} + {{< figure page="images" resources="2010-12-macro/20101209-DSC_1550.jpg" caption="Solder pads" >}} {{< /gallery >}} diff --git a/content/posts/2011-02-07-blender-from-a-recovering-pov-ray-user/index.md b/content/posts/2011-02-07-blender-from-a-recovering-pov-ray-user/index.md index ddde0af..fe07a05 100644 --- a/content/posts/2011-02-07-blender-from-a-recovering-pov-ray-user/index.md +++ b/content/posts/2011-02-07-blender-from-a-recovering-pov-ray-user/index.md @@ -7,8 +7,6 @@ tags: - blender --- -{{< load-photoswipe >}} - This is about the tenth time I've tried to learn [Blender](http://www.blender.org/). Judging by the notes I've accumulated so far, I've been at it this time for about a month and a @@ -62,9 +60,9 @@ too-many-completely-different-versions of Acidity I wrote. [![This was made directly from some equations. I don't know how I'd do this in Blender.](../images/20110118-sketch_mj2011016e.jpg){width=100%}](../images/20110118-sketch_mj2011016e.jpg) --> -{{< figure resource="hive13-bezier03.png" title="Hive13 bezier splines" caption="What I learned Bezier splines on, and didn't learn enough about texturing.">}} +{{< figure resources="hive13-bezier03.png" title="Hive13 bezier splines" caption="What I learned Bezier splines on, and didn't learn enough about texturing.">}} -{{< figure resource="20110118-sketch_mj2011016e.jpg" title="Processing sketch" caption="This was made directly from some equations. I don't know how I'd do this in Blender.">}} +{{< figure resources="20110118-sketch_mj2011016e.jpg" title="Processing sketch" caption="This was made directly from some equations. I don't know how I'd do this in Blender.">}} [POV-Ray](http://www.povray.org) was the last program that I 3D-rendered extensively in (this was mostly 2004-2005, as my @@ -100,6 +98,6 @@ all the precision that I would have had in POV-Ray, but I built them in probably 1/10 the time. That's the case for the two work-in-progress Blender images here: -{{< figure resource="20110131-mj20110114b.jpg" title="20110131-mj20110114b" caption="This needs a name and a better background">}} +{{< figure resources="20110131-mj20110114b.jpg" title="20110131-mj20110114b" caption="This needs a name and a better background">}} -{{< figure resource="20110205-mj20110202-starburst2.jpg" title="20110205-mj20110202-starburst2" caption="This needs a name and a better background.">}} +{{< figure resources="20110205-mj20110202-starburst2.jpg" title="20110205-mj20110202-starburst2" caption="This needs a name and a better background.">}} diff --git a/content/posts/2011-06-10-first-attempt-at-slide-film.markdown b/content/posts/2011-06-10-first-attempt-at-slide-film.markdown index 4461d25..e89d3c9 100644 --- a/content/posts/2011-06-10-first-attempt-at-slide-film.markdown +++ b/content/posts/2011-06-10-first-attempt-at-slide-film.markdown @@ -10,28 +10,26 @@ categories: - Photoblog --- -{{< load-photoswipe >}} - Having acquired a Nikon FE and some lenses quite inexpensively and verifying on some cheap Walgreen film that they did indeed work, I picked up some Fuji Velvia RVP50 from Cord Camera in Kenwood back in April (it was expensive compared to what Amazon would have charged, but I wasn't about to waste a trip to Kenwood over $10ish). I'd heard enough lavish praise lumped onto slide film, particularly Velvia for its fine grain and color, so I figured it was worth a try. Few places left will process slide film but as luck has it I am really close to [Robin Imaging](http://www.robinimaging.com/) who still processes it (and, it sounds like, might be the only lab left in Cincinnati that does). I had them scan it as well and received a disc of 6 megapixel images which is decent (I'm told you can get much higher resolution than that out of a fine-grained film, but I'm not complaining). While, somewhat stupidly, I don't have a slide projector yet and so I've only seen the scans and the 35mm slides themselves, I still am very impressed with the results. -{{< figure page="images" resource="2011-06-slide-film/20110606-20-008.jpg" caption="Cincinnati (Over-the-Rhine specifically) near Vine" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-008.jpg" caption="Cincinnati (Over-the-Rhine specifically) near Vine" >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-007.jpg" caption="Vine Street in about the same area" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-007.jpg" caption="Vine Street in about the same area" >}} Sadly, my favorite image of the bunch is also the only one where I managed to advance the film wrong: -{{< figure page="images" resource="2011-06-slide-film/20110606-20-006.jpg" caption="E. Liberty & Walnut. I love how well the film brought out the color." >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-006.jpg" caption="E. Liberty & Walnut. I love how well the film brought out the color." >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-005.jpg" caption="Downtown someplace for Taste of Cincinnati" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-005.jpg" caption="Downtown someplace for Taste of Cincinnati" >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-004.jpg" caption="Obligatory country road shot, this one in Indiana near 56 & 156" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-004.jpg" caption="Obligatory country road shot, this one in Indiana near 56 & 156" >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-003.jpg" caption="56 & Thuermer Hollow in Indiana... little boring, but here it is." >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-003.jpg" caption="56 & Thuermer Hollow in Indiana... little boring, but here it is." >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-002.jpg" caption="Cincinnati, near John & Ezzard Charles" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-002.jpg" caption="Cincinnati, near John & Ezzard Charles" >}} -{{< figure page="images" resource="2011-06-slide-film/20110606-20-001.jpg" caption="Over-the-Rhine & downtown Cincinnati seen from Bellevue Hill Park" >}} +{{< figure page="images" resources="2011-06-slide-film/20110606-20-001.jpg" caption="Over-the-Rhine & downtown Cincinnati seen from Bellevue Hill Park" >}} diff --git a/content/posts/2011-08-27-isolated-pixel-pushing/index.md b/content/posts/2011-08-27-isolated-pixel-pushing/index.md index 6c68c5e..24594f8 100644 --- a/content/posts/2011-08-27-isolated-pixel-pushing/index.md +++ b/content/posts/2011-08-27-isolated-pixel-pushing/index.md @@ -8,8 +8,6 @@ tags: - Technobabble --- -{{< load-photoswipe >}} - After finally deciding to look around for some projects on GitHub, I found a number of very interesting ones in a matter of minutes. @@ -28,7 +26,7 @@ probably about 30 minutes to put together the code to generate the usual gawdy test algorithm I try when bootstrapping from a new environment: -{{< figure resource="acidity-standard.png" title="Standard trippy image">}} +{{< figure resources="acidity-standard.png" title="Standard trippy image">}} (Yeah, it's gaudy. But when you see it animated, it's amazingly trippy and mesmerizing.) diff --git a/content/posts/2011-08-29-context-free/index.md b/content/posts/2011-08-29-context-free/index.md index 1e91e34..99d77d0 100644 --- a/content/posts/2011-08-29-context-free/index.md +++ b/content/posts/2011-08-29-context-free/index.md @@ -8,8 +8,6 @@ tags: - Technobabble --- -{{< load-photoswipe >}} - My [last post](./2011-08-27-isolated-pixel-pushing.html) mentioned a program called [Context Free](http://www.contextfreeart.org/) that I came across via the [Syntopia](http://blog.hvidtfeldts.net/) blog as @@ -31,14 +29,14 @@ I downloaded the program, started it, and their welcome image (with the relatively short source code right beside it) greeted me, rendered on-the-spot: -{{< figure resource="welcome.png" title="welcome.png">}} +{{< figure resources="welcome.png" title="welcome.png">}} The program was very easy to work with. Their quick reference card was terse but only needed a handful of examples and a few pages of documentation to fill in the gaps. After about 15 minutes, I'd put together this: -{{< figure resource="spiral-first-20110823.png" title="spiral-first-20110823.png">}} +{{< figure resources="spiral-first-20110823.png" title="spiral-first-20110823.png">}} Sure, it's mathematical and simple, but I think being able to put it together in 15 minutes in a general program (i.e. not a silly ad-hoc @@ -71,9 +69,9 @@ rule SQUARE1 { I worked with it some more the next day and had some things like this: -{{< figure resource="tree3-abg.png" title="tree3-abg.png">}} +{{< figure resources="tree3-abg.png" title="tree3-abg.png">}} -{{< figure resource="tree4-lul.png" title="tree4-lul.png">}} +{{< figure resources="tree4-lul.png" title="tree4-lul.png">}} I'm not sure what it is. It looks sort of like a tree made of lightning. Some Hive13 people said it looks like a lockpick from diff --git a/content/posts/2011-11-24-obscure-features-of-jpeg/index.md b/content/posts/2011-11-24-obscure-features-of-jpeg/index.md index 38af169..914b343 100644 --- a/content/posts/2011-11-24-obscure-features-of-jpeg/index.md +++ b/content/posts/2011-11-24-obscure-features-of-jpeg/index.md @@ -10,8 +10,6 @@ aliases: - /posts/2011-11-24-obscure-features-of-jpeg.html --- -{{< load-photoswipe >}} - *(This is a modified version of what I wrote up at work when I saw that progressive JPEGs could be nearly a drop-in replacement that offered some additional functionality and ran some tests on this.)* @@ -361,14 +359,14 @@ Examples Here are all 10 scans from a standard progressive JPEG, separated out with the example code: {{< gallery >}} - {{< figure resource="cropphoto1.png" title="Scan 1">}} - {{< figure resource="cropphoto2.png" title="Scan 2">}} - {{< figure resource="cropphoto3.png" title="Scan 3">}} - {{< figure resource="cropphoto4.png" title="Scan 4">}} - {{< figure resource="cropphoto5.png" title="Scan 5">}} - {{< figure resource="cropphoto6.png" title="Scan 6">}} - {{< figure resource="cropphoto7.png" title="Scan 7">}} - {{< figure resource="cropphoto8.png" title="Scan 8">}} - {{< figure resource="cropphoto9.png" title="Scan 9">}} - {{< figure resource="cropphoto10.png" title="Scan 10">}} + {{< figure resources="cropphoto1.png" title="Scan 1">}} + {{< figure resources="cropphoto2.png" title="Scan 2">}} + {{< figure resources="cropphoto3.png" title="Scan 3">}} + {{< figure resources="cropphoto4.png" title="Scan 4">}} + {{< figure resources="cropphoto5.png" title="Scan 5">}} + {{< figure resources="cropphoto6.png" title="Scan 6">}} + {{< figure resources="cropphoto7.png" title="Scan 7">}} + {{< figure resources="cropphoto8.png" title="Scan 8">}} + {{< figure resources="cropphoto9.png" title="Scan 9">}} + {{< figure resources="cropphoto10.png" title="Scan 10">}} {{< /gallery >}} diff --git a/content/posts/2016-09-25-pi-pan-tilt-1/index.md b/content/posts/2016-09-25-pi-pan-tilt-1/index.md index ab318c4..3d58c59 100644 --- a/content/posts/2016-09-25-pi-pan-tilt-1/index.md +++ b/content/posts/2016-09-25-pi-pan-tilt-1/index.md @@ -10,8 +10,6 @@ aliases: - posts/2016-09-25-pi-pan-tilt-1.html --- -{{< load-photoswipe >}} - Earlier this year I was turning around ideas in my head - perhaps inspired by Dr. Essa's excellent class, [CS6475: Computational Photography][cs6475] - about the possibility of @@ -46,7 +44,7 @@ I eventually had something mostly out of laser-cut plywood, hardware store parts, and [cheap steppers][steppers]. It looks something like this, mounted on a small tripod: -{{< figure page="images" resource="2016-09-25-pi-pan-tilt-1/IMG_20160912_144539.jpg" >}} +{{< figure page="images" resources="2016-09-25-pi-pan-tilt-1/IMG_20160912_144539.jpg" >}} I am able to move the steppers thanks to [Matt's code][raspi-spy] and capture images with [raspistill][]. The arrangement here provides two @@ -68,7 +66,7 @@ picked up a [25mm M12 lens][25mm-lens] - still an angle of view of about 10 degrees on this sensor - and set it up in the park for a test run: -{{< figure page="images" resource="2016-09-25-pi-pan-tilt-1/IMG_20160918_160857.jpg" caption="My shot's not slanted, the ground is">}} +{{< figure page="images" resources="2016-09-25-pi-pan-tilt-1/IMG_20160918_160857.jpg" caption="My shot's not slanted, the ground is">}} (*Later note*: I didn't actually use the 25mm lens on that shot. I used a 4mm (or something) lens that looks pretty much the same, and @@ -103,7 +101,7 @@ sign. The first results look decent, but fuzzy, as $10 optics are prone to produce: -{{< figure page="images" resource="2016-09-25-pi-pan-tilt-1/zwIJpFn.jpg" >}} +{{< figure page="images" resources="2016-09-25-pi-pan-tilt-1/zwIJpFn.jpg" >}} Follow along to [part 2](./2016-10-04-pi-pan-tilt-2.html). diff --git a/content/posts/2016-10-04-pi-pan-tilt-2.md b/content/posts/2016-10-04-pi-pan-tilt-2.md index 33641cb..1c1e55e 100644 --- a/content/posts/2016-10-04-pi-pan-tilt-2.md +++ b/content/posts/2016-10-04-pi-pan-tilt-2.md @@ -10,8 +10,6 @@ aliases: - posts/2016-10-04-pi-pan-tilt-2.html --- -{{< load-photoswipe >}} - In my [last post](./2016-09-25-pi-pan-tilt-1.html) I introduced some of the project I've been working on. This post is a little more technical; if you don't care, and just want to see a 91 megapixel @@ -81,7 +79,7 @@ With no refining, tweaking, or optimization, only the per-image stepper motor positions and my guess at the lens's FOV, here is how this looks in Hugin's fast preview: -{{< figure page="images" resource="2016-10-04-pi-pan-tilt-2/hugin-steppers-only.jpg" caption="Hive13" >}} +{{< figure page="images" resources="2016-10-04-pi-pan-tilt-2/hugin-steppers-only.jpg" caption="Hive13" >}} *(This is a test run that I did inside of [Hive13][], by the way. I used the CS-mount [ArduCam][] and its included lens. Shots were in a @@ -106,7 +104,7 @@ screenshots - on the left, the image positions from the stepper motors, and on the right, the optimized positions that Hugin calculated: -{{< figure page="images" resource="2016-10-04-pi-pan-tilt-2/hugin-comparison.png" caption="Hugin comparison" >}} +{{< figure page="images" resources="2016-10-04-pi-pan-tilt-2/hugin-comparison.png" caption="Hugin comparison" >}} They sort of match up, though pitch deviates a bit. I believe that's because I shifted the pitch of the entire thing to straighten it out, diff --git a/content/posts/2016-10-12-pi-pan-tilt-3.md b/content/posts/2016-10-12-pi-pan-tilt-3.md index 970b6e2..a1397d0 100644 --- a/content/posts/2016-10-12-pi-pan-tilt-3.md +++ b/content/posts/2016-10-12-pi-pan-tilt-3.md @@ -10,8 +10,6 @@ aliases: - posts/2016-10-12-pi-pan-tilt-3.html --- -{{< load-photoswipe >}} - This is the third part in this series, continuing on from [part 1][part1] and [part 2][part2]. The last post was about integrating the hardware with Hugin and PanoTools. This one is @@ -147,18 +145,18 @@ provide, I took 9 example shots of the same scene, ranging from about full-resolution JPEG image of these shots, normalized - in effect, trying to re-expose them properly: -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/tile_jpg.jpg" >}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/tile_jpg.jpg" >}} The below contains the raw sensor data, turned to 8-bit TIFF and then again normalized. It's going to look different than the JPEG due to the lack of whitebalance adjustment, denoising, brightness, contrast, and so on. -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/tile_8bit.jpg" >}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/tile_8bit.jpg" >}} These were done with 16-bit TIFFs rather than 8-bit ones: -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/tile_16bit.jpg" >}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/tile_16bit.jpg" >}} In theory, the 16-bit ones should be retaining two extra bits of data from the 10-bit sensor data, and thus two extra stops of dynamic @@ -178,7 +176,7 @@ I actually paid). Click the preview for a lossless PNG view, as JPEG might eat some of the finer details, or [here][leaves-full] for the full JPEG file (including raw, if you want to look around). -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/leaves_test.png" caption="JPEG & raw comparison" >}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/leaves_test.png" caption="JPEG & raw comparison" >}} The JPEG image seems to have some aggressive denoising that cuts into sharper detail somewhat, as denoising algorithms tends to do. Of @@ -187,14 +185,14 @@ the same point, and then average them. That's only applicable in a static scene with some sort of rig to hold things in place, which is convenient, since that's what I'm making... -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/IMG_20161016_141826.jpg" >}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/IMG_20161016_141826.jpg" >}} I used that (messy) test setup to produce the below comparison between a JPEG image, a single raw image, 4 raw images averaged, and 16 raw images averaged. These are again 1:1 crops from the center to show noise and detail. -{{< figure page="images" resource="2016-10-12-pi-pan-tilt-3/penguin_compare.png" caption="JPEG, raw, and averaging">}} +{{< figure page="images" resources="2016-10-12-pi-pan-tilt-3/penguin_compare.png" caption="JPEG, raw, and averaging">}} Click for the lossless version, and take a look around finer details. 4X averaging has clearly reduced the noise from the un-averaged raw diff --git a/content/posts/2021-07-27-procedural-meshes/index.org b/content/posts/2021-07-27-procedural-meshes/index.org index d1bdc83..b745c30 100644 --- a/content/posts/2021-07-27-procedural-meshes/index.org +++ b/content/posts/2021-07-27-procedural-meshes/index.org @@ -13,9 +13,7 @@ draft: true # (TODO: pictures will make this post make a *lot* more sense, and it # may need a lot of them) -{{< load-photoswipe >}} - -[[https://www.contextfreeart.org/][Context Free]] is one of my favorite projects since I discovered it +Context Free]] is one of my favorite projects since I discovered it about 2010. It's one I've [[../2011-08-29-context-free/][written about before]], played around in (see some of the images below), presented on, as well as re-implemented myself in different ways (see: [[https://github.com/hodapp87/contextual][Contextual]]). That is sometimes because @@ -27,12 +25,12 @@ way to learn things in a new language. (I think it's similar to # TODO: Set captions? {{< gallery >}} - {{< figure page="images" resource="placeholder/dream20191115b.jpg" caption="Something">}} - {{< figure page="images" resource="placeholder/2011-11-25-electron.jpg">}} - {{< figure page="images" resource="portfolio/2011-11-04-crystal1.jpg">}} - {{< figure page="images" resource="placeholder/2011-11-03-feather2.jpg">}} - {{< figure page="images" resource="placeholder/2011-11-03-feather1.jpg">}} - {{< figure page="images" resource="portfolio/2011-09-09-conch.jpg">}} + {{< figure page="images" resources="placeholder/dream20191115b.jpg" caption="Something">}} + {{< figure page="images" resources="placeholder/2011-11-25-electron.jpg">}} + {{< figure page="images" resources="portfolio/2011-11-04-crystal1.jpg">}} + {{< figure page="images" resources="placeholder/2011-11-03-feather2.jpg">}} + {{< figure page="images" resources="placeholder/2011-11-03-feather1.jpg">}} + {{< figure page="images" resources="portfolio/2011-09-09-conch.jpg">}} {{< /gallery >}} I've also played around in 3D graphics, particularly raytracing, since @@ -45,7 +43,7 @@ scenes from experimenting back in 2005, and though I hadn't heard of Context Free at that point (if it even existed) I was already trying to do similar things in a sort of ad-hoc way. -{{< figure page="images" resource="portfolio/2005-08-23-shear6.jpg">}} +{{< figure page="images" resources="portfolio/2005-08-23-shear6.jpg">}} Naturally, this led me to wonder how I might extend Context Free's model to work more generally with 3D geometry, and let me use it to @@ -70,9 +68,9 @@ Synth - one Blender screenshot, and two [[https://appleseedhq.net/][appleseed]] was trying to work with it: {{< gallery >}} - {{< figure resource="structure-synth-mesh.png">}} - {{< figure page="images" resource="placeholder/appleseed_spiral_thing2.jpg">}} - {{< figure page="images" resource="placeholder/appleseed_spiral_thing.jpg">}} + {{< figure resources="structure-synth-mesh.png">}} + {{< figure page="images" resources="placeholder/appleseed_spiral_thing2.jpg">}} + {{< figure page="images" resources="placeholder/appleseed_spiral_thing.jpg">}} {{< /gallery >}} That's a "Hello World"-tier design I try out when something gives me @@ -92,8 +90,8 @@ crucial. Here's something similar I threw together in OpenSCAD with the help of some automatically generated code: {{< gallery >}} - {{< figure resource="openscad-mesh.png">}} - {{< figure resource="openscad-mesh2.png">}} + {{< figure resources="openscad-mesh.png">}} + {{< figure resources="openscad-mesh2.png">}} {{< /gallery >}} In the second image you can see how it properly handled intersecting @@ -127,7 +125,7 @@ can do it via a [[https://github.com/appleseedhq/appleseed/blob/master/sandbox/e before, also handles them nicely with its [[https://www.povray.org/documentation/view/3.6.1/300/][Isosurface Object]]. That is what I used below in yet another of my 2005 experiments: -{{< figure page="images" resource="portfolio/2005-07-05-spiral-isosurface2.jpg">}} +{{< figure page="images" resources="portfolio/2005-07-05-spiral-isosurface2.jpg">}} Many renderers don't handle implicit surfaces at all. Blender's renderers, [[https://www.cycles-renderer.org/][Cycles]] and [[https://docs.blender.org/manual/en/latest/render/eevee/introduction.html][Eevee]], are among them. Using implicit surfaces diff --git a/content/works/front.md b/content/works/front.md index 4e09cb2..06e5adb 100644 --- a/content/works/front.md +++ b/content/works/front.md @@ -2,45 +2,43 @@ title: "Gallery?" author: Chris Hodapp tags: +type: "photos" --- This page structure is a work-in-progress. The thumbnails below are supposed to link to individual pages - but I have not yet coded that part in. -{{< load-photoswipe >}} - - - {{< gallery >}} - {{< figure page="images" resource="placeholder/screw0006" title="Screw (April 12, 2020)" >}} - {{< figure page="images" resource="placeholder/cinquefoil0010" title="Cinquefoil (November 16, 2019)" caption="Foo">}} - {{< figure page="images" resource="placeholder/dream20191115b_1000" title="Dream (November 15, 2019)" >}} - {{< figure page="images" resource="placeholder/ramhorn_branch_0002" title="ramhorn_branch? (December 16, 2019)" >}} - {{< figure page="images" resource="portfolio/ramhorn-0004" title="Ram's Horn (September 15, 2019)" link2="../2019-09-15-rams-horns.md" >}} - {{< figure page="images" resource="placeholder/iso_draft_0017" title="Isosurface try 2 (August 24, 2019)" >}} - {{< figure page="images" resource="placeholder/appleseed_spiral_thing" title="Appleseed spiral thing (August 20, 2018)" >}} - {{< figure page="images" resource="placeholder/appleseed_spiral_thing2" title="Appleseed spiral thing 2 (June 25, 2018)" >}} - {{< figure page="images" resource="placeholder/2011-11-25-electron" title="Electron (November 25, 2011)" >}} - {{< figure page="images" resource="portfolio/2011-11-04-crystal1" title="Crystal #1 (November 4, 2011)" link2="../2011-11-04-crystal1.md" >}} - {{< figure page="images" resource="placeholder/2011-11-03-feather2" title="Feather #2 (November 3, 2011)" >}} - {{< figure page="images" resource="placeholder/2011-11-03-feather1" title="Feather #1 (November 3, 2011)" >}} - {{< figure page="images" resource="portfolio/2011-09-09-conch" title="Conch (September 9, 2011)" link2="../2011-09-11-conch.md" >}} - {{< figure page="images" resource="placeholder/2011-09-09-flow1" title="Flow? (September 9, 2011)" >}} - {{< figure page="images" resource="portfolio/2005-08-23-shear6" title="Shear #6 (August 23, 2005)" link2="../2005-08-23-shear6.md" >}} - {{< figure page="images" resource="portfolio/2005-08-19-beach" title="Beach (August 19, 2005)" link2="../2005-08-19-beach.md" >}} - {{< figure page="images" resource="portfolio/2005-08-06-tears" title="Tears (August 6, 2005)" link2="../2005-08-06-tears.md" >}} - {{< figure page="images" resource="portfolio/2005-08-05-oasis" title="Oasis (August 5, 2005)" link2="../2005-08-05-oasis.md" >}} - {{< figure page="images" resource="portfolio/2005-07-08-vaguely-celtic-metalwork" title="Vaguely Celtic Metalwork (July 8, 2005)" link2="../2005-07-08-vaguely-celtic-metalwork.md" >}} - {{< figure page="images" resource="portfolio/2005-07-05-spiral-isosurface2" title="Spiral Isosurface (July 5, 2005)" link2="../2005-07-05-spiral.md" >}} - {{< figure page="images" resource="portfolio/2005-06-09-superellipsoids" title="Superellipsoids (June 9, 2005)" link2="../2005-06-09-superellipsoids.md" >}} - {{< figure page="images" resource="portfolio/2005-05-11-unknown-planet" title="Unknown Planet (May 11, 2005)" link2="../2005-05-11-unknown-planet.md" >}} - {{< figure page="images" resource="portfolio/2005-05-10-haze" title="Haze 3 (May 10, 2005)" link2="../2005-05-10-haze.md" >}} - {{< figure page="images" resource="portfolio/2004-12-23-butterfly" title="Butterfly (December 23, 2004)" link2="../2004-12-23-butterfly.md" >}} - {{< figure page="images" resource="portfolio/2004-09-28-m4c-intro" title="M4C intro (September 28, 2004)" link2="../2004-09-28-m4c-intro.md" >}} - {{< figure page="images" resource="portfolio/2004-09-19-roses" title="Roses (September 19, 2004)" link2="../2004-09-19-roses.md" >}} - {{< figure page="images" resource="portfolio/2004-07-16-crunchy-bubbles" title="Crunchy Bubbles (July 16, 2004)" link2="../2004-07-16-crunchy-bubbles.md" >}} - {{< figure page="images" resource="portfolio/2004-07-15-kpovmodeler-test" title="KPovModeler test (?) (July 15, 2004)" link2="../2004-07-15-kpovmodeler.md" >}} - {{< figure page="images" resource="portfolio/1999-12-22-table" title="'Table' or something (Dec 22, 1999)" link2="../1999-12-22-table-polyray.md" >}} - {{< figure page="images" resource="portfolio/1999-12-21-moo" caption="*Foo* [link](./link)" title="Moo (Dec 21, 1999)" caption="*Foo* [link](./link)" link2="../1999-12-21-moo-polyray/">}} + {{< figure page="images" resources="placeholder/screw0006.jpg" title="Screw (April 12, 2020) " >}} + {{< figure page="images" resources="placeholder/cinquefoil0010.jpg" title="Cinquefoil (November 16, 2019)" >}} + {{< figure page="images" resources="placeholder/dream20191115b_1000.jpg" title="Dream (November 15, 2019)" >}} + {{< figure page="images" resources="placeholder/ramhorn_branch_0002.jpg" title="ramhorn_branch? (December 16, 2019)" >}} + {{< figure page="images" resources="portfolio/ramhorn-0004.jpg" title="Ram's Horn (September 15, 2019)" linkto="/works/2019-09-15-rams-horns" >}} + {{< figure page="images" resources="placeholder/iso_draft_0017.jpg" title="Isosurface try 2 (August 24, 2019)" >}} + {{< figure page="images" resources="placeholder/appleseed_spiral_thing.jpg" title="Appleseed spiral thing (August 20, 2018)" >}} + {{< figure page="images" resources="placeholder/appleseed_spiral_thing2.jpg" title="Appleseed spiral thing 2 (June 25, 2018)" >}} + {{< figure page="images" resources="placeholder/2011-11-25-electron.jpg" title="Electron (November 25, 2011)" >}} + {{< figure page="images" resources="portfolio/2011-11-04-crystal1.jpg" title="Crystal #1 (November 4, 2011)" linkto="/works/2011-11-04-crystal1" >}} + {{< figure page="images" resources="placeholder/2011-11-03-feather2.jpg" title="Feather #2 (November 3, 2011)" >}} + {{< figure page="images" resources="placeholder/2011-11-03-feather1.jpg" title="Feather #1 (November 3, 2011)" >}} + {{< figure page="images" resources="portfolio/2011-09-09-conch.jpg" title="Conch (September 9, 2011)" linkto="/works/2011-09-11-conch" >}} + {{< figure page="images" resources="placeholder/2011-09-09-flow1.jpg" title="Flow? (September 9, 2011)" >}} + {{< figure page="images" resources="portfolio/2005-08-23-shear6.jpg" title="Shear #6 (August 23, 2005)" linkto="/works/2005-08-23-shear6" >}} + {{< figure page="images" resources="portfolio/2005-08-19-beach.jpg" title="Beach (August 19, 2005)" linkto="/works/2005-08-19-beach" >}} + {{< figure page="images" resources="portfolio/2005-08-06-tears.jpg" title="Tears (August 6, 2005)" linkto="/works/2005-08-06-tears" >}} + {{< figure page="images" resources="portfolio/2005-08-05-oasis.jpg" title="Oasis (August 5, 2005)" linkto="/works/2005-08-05-oasis" >}} + {{< figure page="images" resources="portfolio/2005-07-08-vaguely-celtic-metalwork.jpg" title="Vaguely Celtic Metalwork (July 8, 2005)" linkto="/works/2005-07-08-vaguely-celtic-metalwork" >}} + {{< figure page="images" resources="portfolio/2005-07-05-spiral-isosurface2.jpg" title="Spiral Isosurface (July 5, 2005)" linkto="/works/2005-07-05-spiral" >}} + {{< figure page="images" resources="portfolio/2005-06-09-superellipsoids.jpg" title="Superellipsoids (June 9, 2005)" linkto="/works/2005-06-09-superellipsoids" >}} + {{< figure page="images" resources="portfolio/2005-05-11-unknown-planet.jpg" title="Unknown Planet (May 11, 2005)" linkto="/works/2005-05-11-unknown-planet" >}} + {{< figure page="images" resources="portfolio/2005-05-10-haze.jpg" title="Haze 3 (May 10, 2005)" linkto="/works/2005-05-10-haze" >}} + {{< figure page="images" resources="portfolio/2004-12-23-butterfly.jpg" title="Butterfly (December 23, 2004)" linkto="/works/2004-12-23-butterfly" >}} + {{< figure page="images" resources="portfolio/2004-09-28-m4c-intro.jpg" title="M4C intro (September 28, 2004)" linkto="/works/2004-09-28-m4c-intro" >}} + {{< figure page="images" resources="portfolio/2004-09-19-roses.jpg" title="Roses (September 19, 2004)" linkto="/works/2004-09-19-roses" >}} + {{< figure page="images" resources="portfolio/2004-07-16-crunchy-bubbles.jpg" title="Crunchy Bubbles (July 16, 2004)" linkto="/works/2004-07-16-crunchy-bubbles" >}} + {{< figure page="images" resources="portfolio/2004-07-15-kpovmodeler-test.jpg" title="KPovModeler test (?) (July 15, 2004)" linkto="/works/2004-07-15-kpovmodeler" >}} + {{< figure page="images" resources="portfolio/1999-12-22-table.jpg" title="'Table' or something (Dec 22, 1999)" linkto="/works/1999-12-22-table-polyray" >}} + {{< figure page="images" resources="portfolio/1999-12-21-moo.jpg" title="Moo (Dec 21, 1999)" linkto="/works/1999-12-21-moo-polyray">}} + {{< /gallery >}} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..7d217a2 --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,8 @@ + + +{{- if and (eq .Type "photos") (eq .Kind "page") -}} + + +{{- end -}} + + diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..e698f43 --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,8 @@ + +{{- if and (eq .Type "photos") (eq .Kind "page") -}} + +{{- end -}} + + + + diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html index 6ef6fd3..4e9a373 100644 --- a/layouts/shortcodes/figure.html +++ b/layouts/shortcodes/figure.html @@ -1,71 +1,107 @@ - + - -{{- if not ($.Page.Scratch.Get "figurecount") -}}{{- end -}} -{{- $.Page.Scratch.Add "figurecount" 1 -}} + - - - - - - -{{- $resize_opts := "600x jpg" -}} - -{{- $thumb := "" -}} -{{- $href := "" -}} -{{- if .Get "resource" -}} - {{- $page := $.Page -}} - {{- with .Get "page" -}} - {{- $page = $.Site.GetPage . -}} - {{- end -}} - {{- if not $page -}} - {{- errorf "Error: Can't find page %s" (.Get "page") -}} - {{- end -}} - {{- $resource := (.Get "resource") -}} - {{- $original := $page.Resources.GetMatch (printf "*%s*" $resource) -}} - {{- if eq $original nil -}} - {{- errorf "Error: Can't find resource %s on page %s" $resource (.Get "page") -}} - {{- end -}} - {{- if .Get "noresize" -}} - {{- .Scratch.Set "image" $original -}} - {{- else -}} - {{- .Scratch.Set "image" ($original.Resize $resize_opts) -}} - {{- end -}} - {{- $image := .Scratch.Get "image" -}} - {{- $thumb = $image.RelPermalink -}} - {{- $href = $original.RelPermalink -}} -{{- else -}} - - {{- $thumb = .Get "src" | default (printf "%s." (.Get "thumb") | replace (.Get "link") ".") -}} - {{- $href = .Get "link" | default (.Get "src") -}} + + +{{- $page := $.Page -}} +{{- with .Get "page" -}} + {{- $page = $.Site.GetPage . -}} +{{- end -}} +{{- if not $page -}} + {{- errorf "Error: Can't find page %s" (.Get "page") -}} {{- end -}} -
-
- -
- -
- - - {{- if or (or (.Get "title") (.Get "caption" | markdownify)) (.Get "attr") -}} -
- {{- with .Get "title" -}}

{{.}}

{{ end }} - {{- if or (.Get "caption" | markdownify) (.Get "attr")}} -

- {{- .Get "caption" -}} - {{- with .Get "attrlink"}}{{ .Get "attr" }}{{ else }}{{ .Get "attr"}}{{ end -}} -

+{{- $linkto := .Get "linkto" -}} +{{- $linktitle := "" -}} +{{- if $linkto -}} + {{- $linktitle = ($.Site.GetPage $linkto).Title -}} +{{- end -}} +{{- $title := .Get "title" -}} + +{{- $resources := .Get "resources" -}} +{{- if not $resources -}} + {{- errorf "Error: 'resources' must be given" -}} +{{- end -}} + +{{- range $src := $page.Resources.Match $resources -}} + {{- $exifJson := $page.Resources.GetMatch (printf "%s.json" .Name) -}} + + {{- $exif := slice -}} + {{- with $exifJson -}} + {{- with (index (.Content | unmarshal) 0) -}} + {{- with .Title -}} + + {{- if not $title -}} + {{- $title = . -}} {{- end -}} -
+ {{- end -}} + {{- with .Make2 -}}{{- $exif = $exif | append (printf "Make: %s" .) -}}{{- end -}} + {{- with .Model -}}{{- $exif = $exif | append (printf "Camera: %s" .) -}}{{- end -}} + {{- with .LensSpec -}}{{- $exif = $exif | append (printf "Lens: %s" .) -}}{{- end -}} + {{- with .FocalLength -}}{{- $exif = $exif | append (printf "Focal length: %s" .) -}}{{- end -}} + {{- with .FNumber -}}{{- $exif = $exif | append (printf "Aperture: ƒ/%.1f" .) -}}{{- end -}} + {{- with .ExposureTime -}} + {{- if eq (printf "%T" .) "float64" -}} + {{- $exif = $exif | append (printf "Exposure time: %.1f s" .) -}} + {{- else -}} + {{- $exif = $exif | append (printf "Exposure time: %s s" .) -}} + {{- end -}} + {{- end -}} + {{- with .ISO -}}{{- $exif = $exif | append (printf "ISO: %.0f" .) -}}{{- end -}} {{- end -}} -
-
+ {{- end -}} + + + {{- if not $title -}} + {{- $title = .Title -}} + {{- end -}} + + + {{- $text := $title -}} + {{- if $linkto -}} + {{- if not $title -}} + {{- $title = $linktitle -}} + {{- end -}} + {{- $text = (printf "%s" (relref $.Page $linkto) $title) -}} + {{- end -}} + +
"> + {{- $crop := default "smart" -}} + {{- $tinyw := printf "500x375 %s Lanczos q85" $crop -}} + {{- $smallw := printf "800x600 %s Lanczos q80" $crop -}} + {{- $mediumw := printf "1200x900 %s Lanczos q40" $crop -}} + {{- $largew := printf "1600x1200 %s Lanczos q30" $crop -}} + + {{- $srcset := slice -}} + + {{- $tiny := ($src.Fill $tinyw) -}} + {{- $srcset = $srcset | append (printf "%s 500w" $tiny.Permalink) -}} + {{- $img := dict "src" $tiny.RelPermalink "w" $tiny.Width "h" $src.Height -}} + + {{- if and (ge $src.Width "800") (ne $src.MediaType.SubType "png") -}} + {{- $small := ($src.Fill $smallw) -}} + {{- $srcset = $srcset | append (printf "%s 800w" $small.Permalink) -}} + {{- $img = dict "src" $small.RelPermalink "w" $small.Width "h" $small.Height -}} + {{- end -}} + {{- if and (ge $src.Width "1200") (ne $src.MediaType.SubType "png") -}} + {{- $medium := ($src.Fill $mediumw) -}} + {{- $srcset = $srcset | append (printf "%s 1200w" $medium.Permalink) -}} + {{- end -}} + {{- if and (ge $src.Width "1600") (ne $src.MediaType.SubType "png") -}} + {{- $large := ($src.Fill $largew) -}} + {{- $srcset = $srcset | append (printf "%s 1600w" $large.Permalink) -}} + {{- end -}} + + {{- $sizes := "(min-width: 900px) 420px, (min-width: 684px) 310px, calc(100vw - 40px)" -}} + + + + + {{ $title }} + + + +
+{{ end }} diff --git a/layouts/shortcodes/gallery.html b/layouts/shortcodes/gallery.html index aac2ace..34d866e 100644 --- a/layouts/shortcodes/gallery.html +++ b/layouts/shortcodes/gallery.html @@ -1,41 +1,4 @@ - - -{{- if not ($.Page.Scratch.Get "figurecount") }}{{ end }} -{{- $.Page.Scratch.Add "figurecount" 1 }} -{{ $baseURL := .Site.BaseURL }} -