Compare commits
No commits in common. "master" and "main" have entirely different histories.
9
LICENSE
Normal file
9
LICENSE
Normal file
@ -0,0 +1,9 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 nebula
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@ -1,3 +1,3 @@
|
||||
# helixnebula.space
|
||||
|
||||
this bespoke static site generator creates https://helixnebula.space/
|
||||
this bespoke static site generate creates https://helixnebula.space/
|
126
generate.py
126
generate.py
@ -1,126 +0,0 @@
|
||||
from sys import argv
|
||||
import subprocess
|
||||
from PIL import Image
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
from markdown import markdown
|
||||
from glob import glob
|
||||
from json import dump, dumps, load
|
||||
from os import path
|
||||
import re
|
||||
|
||||
numbers = re.compile("[0-9]+")
|
||||
out_dir = "/var/www/html/"
|
||||
base_url = "https://helixnebula.space/"
|
||||
template_environment = Environment(
|
||||
loader=FileSystemLoader("templates/"))
|
||||
|
||||
with open("metadata.json", "r") as f:
|
||||
metadata = load(f)
|
||||
|
||||
for placename in metadata.keys():
|
||||
read_path = f"{out_dir}{placename}/"
|
||||
photos = [
|
||||
path.basename(photo).split('/')[-1] for photo in
|
||||
glob(read_path + "*")
|
||||
]
|
||||
try:
|
||||
photos.remove("index.html")
|
||||
except ValueError:
|
||||
pass
|
||||
metadata[placename]["count"] = len(photos)
|
||||
metadata[placename]["photos"] = photos
|
||||
metadata[placename]["photos"].sort(key=lambda path: int(numbers.search(path).group(0)))
|
||||
|
||||
with open(f"{out_dir}photos.json", "w") as f:
|
||||
dump(metadata, f)
|
||||
|
||||
def covers(overwrite=False):
|
||||
print("running covers")
|
||||
for placename, info in metadata.items():
|
||||
read_path = f"{out_dir}{placename}/{info['cover']}"
|
||||
write_path = f"{out_dir}cover/cover_{info['cover']}"
|
||||
if not overwrite and path.exists(write_path):
|
||||
continue
|
||||
command = ["convert", read_path, "-strip", "-interlace", "Plane", "-gaussian-blur", "0.05",
|
||||
"-auto-orient", "-resize", "700x525>", "-quality", "80%", write_path]
|
||||
subprocess.run(command)
|
||||
|
||||
def thumbnails(overwrite=False):
|
||||
print("running thumbnails")
|
||||
for placename in metadata.keys():
|
||||
for photo in metadata[placename]["photos"]:
|
||||
read_path = f"{out_dir}{placename}/{photo}"
|
||||
write_path = f"{out_dir}thumbnail/thumbnail_{photo}"
|
||||
if not overwrite and path.exists(write_path):
|
||||
continue
|
||||
command = ["convert", read_path, "-strip", "-interlace", "Plane", "-gaussian-blur", "0.05",
|
||||
"-auto-orient", "-resize", "300x200>", "-quality", "65%", write_path]
|
||||
subprocess.run(command)
|
||||
|
||||
def compressed(overwrite=False):
|
||||
print("running compressed")
|
||||
for placename in metadata.keys():
|
||||
for photo in metadata[placename]["photos"]:
|
||||
read_path = f"{out_dir}{placename}/{photo}"
|
||||
write_path = f"{out_dir}compressed/compressed_{photo}"
|
||||
if not overwrite and path.exists(write_path):
|
||||
continue
|
||||
command = ["convert", read_path, "-auto-orient", "-strip", "-resize", "1200>", "-quality", "90%", write_path]
|
||||
subprocess.run(command)
|
||||
|
||||
def render_index():
|
||||
template = template_environment.get_template("main")
|
||||
data = {key: value for key, value in sorted(metadata.items(), key=lambda item: item[1]['title'])}
|
||||
photo_counts = {placename: metadata[placename]["count"] for placename in metadata.keys()}
|
||||
total_count = 0
|
||||
for _, info in metadata.items():
|
||||
total_count = info["count"] + total_count
|
||||
with open(out_dir + "index.html", "w") as f:
|
||||
f.write(template.render({
|
||||
"metadata": data,
|
||||
"album_count": len(metadata.keys()),
|
||||
"photo_counts": photo_counts,
|
||||
"total_count": total_count
|
||||
}))
|
||||
|
||||
def render_places():
|
||||
template = template_environment.get_template("place")
|
||||
for placename, info in metadata.items():
|
||||
working_path = out_dir + placename
|
||||
photos = metadata[placename]["photos"]
|
||||
photos_json = dumps(photos)
|
||||
count = len(photos)
|
||||
widths = []
|
||||
heights = []
|
||||
for photo in photos:
|
||||
photo_path = out_dir + "thumbnail/thumbnail_" + photo
|
||||
img = Image.open(photo_path)
|
||||
width, height = img.size
|
||||
widths.append(width)
|
||||
heights.append(height)
|
||||
photo_specs = zip(widths, heights, photos)
|
||||
try:
|
||||
with open("md/" + placename + ".md", "r") as f:
|
||||
md = markdown(f.read())
|
||||
except FileNotFoundError:
|
||||
md = "<h1>Blog Work In Progress</h1>"
|
||||
with open(working_path + "/index.html", "w") as f:
|
||||
f.write(template.render({
|
||||
"count": count,
|
||||
"placename": placename,
|
||||
"info": info,
|
||||
"markdown": md,
|
||||
"photos": photo_specs,
|
||||
"photos_json": photos_json
|
||||
}))
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
overwrite = "overwrite" in argv
|
||||
covers(overwrite=overwrite)
|
||||
thumbnails(overwrite=overwrite)
|
||||
compressed(overwrite=overwrite)
|
||||
except KeyboardInterrupt:
|
||||
exit()
|
||||
render_index()
|
||||
render_places()
|
@ -1,56 +0,0 @@
|
||||
# A Peaceful Glimpse Into The Great Basin
|
||||
|
||||
This is the Great Basin, a land of contradictions: it's flat and rugged, hot and
|
||||
cold, forest, marsh, and desert. The valleys, mountains, natural lakes, playas,
|
||||
salt flats, volcanic activity, and more combine to form a place that, in my
|
||||
opinion, is indescribably beautiful and fun to explore. It's sparsely populated,
|
||||
with vast stretches of untrammeled wilderness. Seemingly in the middle of
|
||||
nowhere, one can find many unpaved roads and trails to explore, however you will
|
||||
not find very many developed hiking trails outside of the more popular areas. I
|
||||
have hiked on jeep roads my car wasn't hardy enough to traverse.
|
||||
|
||||
A little background on what basin and range topography means goes a long way in
|
||||
understanding and appreciating the landscapes of Nevada and western Utah. [This
|
||||
very informative video](https://www.youtube.com/watch?v=Owjt_WJKrBo) helps
|
||||
illustrate how these lands formed, I highly recommend watching it. [The
|
||||
Wikipedia page for The Great Basin](https://en.wikipedia.org/wiki/Great_Basin)
|
||||
is another great place to learn more. Finally, [this page at
|
||||
birdandhike.com](https://www.birdandhike.com/Areas/BasinRange_Area/_BasinRange_Area.htm)
|
||||
is honestly a better overview of this place than I can give. But, I did take
|
||||
some pictures too!
|
||||
|
||||
Entering from the east along Mail Summit Road raises you from the valley into
|
||||
the pinyon/juniper forests of the Seaman mountain range. Following the road will
|
||||
bring you down into the vast Coal Valley, a dry, sagebrush-laden basin. The
|
||||
valleys in the monument are pristine, with little variations like hills or
|
||||
ridges between the mountain ranges. There are 3 such named ranges that make up
|
||||
the monument, the eastern Seaman range, the western Quinn Canyon range, and the
|
||||
central Golden Gate range, with Coal Valley to it's east and Garden Valley to
|
||||
the west. The Quinn Canyon range is the highest, and features snowy caps in my
|
||||
photos.
|
||||
|
||||
Thanks to the [map provided by Bird &
|
||||
Hike](https://www.birdandhike.com/Hike/BasinRange/Camps-BR/_BR-Camps/_BR_camps.htm),
|
||||
I found some scenic campsites, and one that was not on this map. My favorite
|
||||
was the "GV Crags" site, with a cool rock outcropping and a trail that leads up
|
||||
to the Golden Gate range (however it doesn't go to any high peaks, but does go
|
||||
high enough to reach the forest)
|
||||
|
||||
Drives through the valleys, along the bases of the mountain ranges, and nights
|
||||
under the stars here are great. It's very peaceful and I saw very very few other
|
||||
people here. There are a couple of small ranches within the monument's borders,
|
||||
but they do not intrude on the views or solitude. Of particular note would be
|
||||
[City by Michael Heizer](http://www.tripleaughtfoundation.org/), which is not
|
||||
available outside of a scheduled tour, but it is located here.
|
||||
|
||||
Also present in the monument are petroglyphs, but ancient rock art kind of gives
|
||||
me the creeps when I look at it, so I did not explore those areas. The Bird &
|
||||
Hike website goes into details about those.
|
||||
|
||||
This is an area that begs further exploration on my part and I will be returning
|
||||
when I have the time. I would like to do more hiking, and take more photos in
|
||||
the forests. My first visits, I did not stray terribly far from my campsites,
|
||||
and I will do more exploring on foot next time. Enjoy the photos! And don't
|
||||
forget to check out [the overview on Bird &
|
||||
Hike](https://www.birdandhike.com/Hike/BasinRange/_B-R_Over/_BasinRange_Over.htm)
|
||||
if you want to see and learn more.
|
113
md/Bisti.md
113
md/Bisti.md
@ -1,113 +0,0 @@
|
||||
# The Looney Tunes Badlands
|
||||
|
||||
The Bisti is, without a doubt, the single weirdest place I have ever been in
|
||||
my life. It turned my understanding of how natural formations came to be right
|
||||
on its metaphorical head. It is so bewildering that it exceeds description,
|
||||
but I will try anyways.
|
||||
|
||||
The BLM-managed Bisti/De-Na-Zin wilderness, as the name implies, has two named
|
||||
sections. The area these two wilderness areas cover is quite large, and trekking to
|
||||
the heart of the region and back is probably not feasible in one day. Both are
|
||||
known for absurd formations and an abundance of exposed petrified wood. It's
|
||||
extremely dry, and is prone to large amounts of blowing dust in the spring.
|
||||
|
||||
|
||||
The Bisti has no developed hiking trails, nor are you able to follow anyone
|
||||
else's footprints except on the occasional sandy areas. I found some vague
|
||||
descriptions online of what direction to try going first, but ended up feeling
|
||||
like the coolest stuff I found was not there. It is very much a choose your
|
||||
own path adventure. I didn't take any GPS tracks to share with you.
|
||||
Admittedly, the view from the parking area is not impressive. None of the
|
||||
weird stuff is there to see unless you commit to really hiking in. But it's
|
||||
worth it.
|
||||
|
||||
On my first trip, I packed my things for an overnight backpacking adventure,
|
||||
and set into the wilderness in the early afternoon. The first encounter is a
|
||||
fairly large "plain" that is surrounded by small hills. Its inviting to look
|
||||
at, and suggests that one can use it as a little highway into the wilds. I
|
||||
first headed toward some of those low hills to see what I could find. A
|
||||
staircase-like arroyo winding through the large mounds was one of my first
|
||||
observations. The surface of the Bisti, it's flats and it's hills, are mostly
|
||||
shale. Its like clay, when packed in it is quite hard but other times, like on
|
||||
hillsides, it will collapse under your step. The hard parts look smooth and
|
||||
the soft parts are very pitted, almost looking like a thick gravel. This
|
||||
material seems to erode easily with rainfall, making the arroyos very dramatic
|
||||
in appearance. This was far from the weirdest thing I would see on this trip,
|
||||
but I was already pretty enamoured.
|
||||
|
||||
The shale came in hues of gray, yellow, red, and black. I'm sure the different
|
||||
colors are made of different compounds (and shale may not even be the right
|
||||
term for it), but I'm not a scientist. My first bewilderment of the region is
|
||||
that there are many mounds, hills of various colors in close proximity. One
|
||||
could be pitch black, and the one next to it would be vibrant red, and the
|
||||
space between them would change colors quite abrubtly. The entirety of the
|
||||
Bisti is not as dull looking as the drive to the parking area may suggest.
|
||||
|
||||
The next oddity I observed was an abundance of small caves and tube-like
|
||||
erosions. The Bisti is filled with pits, crevices, holes, and small caverns.
|
||||
Most of them are too small to walk in, but I did find a few that I could walk
|
||||
into. I wonder what formed these. I often found myself looking at things that
|
||||
were obviously eroded by water, but didn't actually make any sense to me. The
|
||||
pipe-like formations that went up and down seemed to defy gravity, I was
|
||||
staring at things wondering what could possess water to do that. It almost
|
||||
seems like the water was jetted through the ground, like there was a lot of
|
||||
pressure. There is also an abundance of paths that the water cut straight
|
||||
through a mass of shale, but these made sense because one could track where
|
||||
the water flows horizontally. At least *some* things make sense, but a lot of
|
||||
it simply did not.
|
||||
|
||||
Then comes the petrified wood. Its essentially an ancient log that turned into
|
||||
a rock. There were surely trees here at some point in the past, but the
|
||||
petrified wood that is here is just casually sitting on the ground as if
|
||||
someone just plucked them out from someplace else and just set them down
|
||||
there. It's fascinating and fun to find.
|
||||
|
||||
There are some deposits of pristine looking sand, perfectly rippled from the
|
||||
wind. There are no dunes of it that I found, but the bottom of some bluffs and
|
||||
hills would have pools of it. It looks soft, I want to run my hands through
|
||||
it.
|
||||
|
||||
Now, the hoodoos. And weird balancing rock formations? A lot of this stuff
|
||||
looks like clay mushrooms. Some of it looks like big massess of very solid
|
||||
rock sitting on thin pillars of softer looking material. The colors of the
|
||||
heads and stems of these formations can be completely different. They look
|
||||
like little goblins created them. Some are small, and others are sitting
|
||||
well above the head and into the sky. These multicolored cliffs, rock
|
||||
deposits, and hoodoos need to be seen to be understood or believed. And also,
|
||||
flats between the hills with many rocks and boulders interspersed, just
|
||||
sitting on the ground as if someone arranged them.
|
||||
|
||||
I set up camp at the base of a shale hill. The place I decided to sleep was
|
||||
not quite as extravagent as what I had seen so far or what I would see in the
|
||||
morning, but it was still inviting and I enjoyed it. I cooked dinner and drank
|
||||
tea. As the night went on, I noticed that it was completely silent. No sound
|
||||
of insects or plants blowing in the wind of any kind. Just silence. I really
|
||||
liked it. I walked out under the moonlight and drank it all in. Silence, a
|
||||
great view of the night sky (as anywhere away from the cities), and plenty of
|
||||
room to walk. I had a peaceful day exploring and a peaceful night
|
||||
appreciating.
|
||||
|
||||
In the morning, I took a new route. I found a lot of red stuff. And I do mean
|
||||
*red*, very vibrantly so. I wound through the hills for a couple miles, not
|
||||
finding a lot of hoodos but definitely weird caves and tunnels carved by
|
||||
water. More and more weird stuff here. At this point I was heading back to my
|
||||
car because i was running out of water. And then I left, not to return for
|
||||
over a year.
|
||||
|
||||
My second trip, I had driven there for hours, only to realize once I was
|
||||
getting close that the horizons were very hazy from blowing dust. I knew it
|
||||
would be a bad idea to go out but again, I packed the overnighter bag and set
|
||||
out into the badlands. It was extremely windy, and dusty, and by the time i
|
||||
made it a couple miles in, my eyes were irritated. I did find some cool areas
|
||||
and took some good pictures though.
|
||||
|
||||
Eventually I tried to set up camp, but it was a disaster. The intense wind
|
||||
ripped my tent stakes out of the soft ground, and my food cooker was
|
||||
collecting lots of dust into my food. I realized this was a lost cause and
|
||||
packed my things up, trudged directly into the wind for two miles, and left to
|
||||
go back where I came from. My eyes were filled with dirt, and I'm lucky I
|
||||
didnt get some sort of eye or respritory infection. I was still happy to see
|
||||
the Bisti again.
|
||||
|
||||
This place is really unique, and I'm glad that I went. It is a place of
|
||||
extremes, very dry, very dusty, very barren of life, very bizarre.
|
@ -1,71 +0,0 @@
|
||||
# Oases in the Desert
|
||||
|
||||
Before writing this, I did not know what the plural form for the word "oasis"
|
||||
was. Apparently it's "oases", which I had never heard before in my life! It's
|
||||
hard for me to talk about Caballo Lake without also mentioning Elephant Butte
|
||||
Lake. The two are less than 20 miles apart, and are both dammed resevoirs fed
|
||||
by the iconic Rio Grande.
|
||||
|
||||
There is a cansus-designated place in New Mexico called Caballo, which has a
|
||||
very small population. But they do have a post office! The name is shared also
|
||||
by the Caballo Mountains range and Caballo Lake. As a title for this album, it
|
||||
is used loosely to refer to that whole region.
|
||||
|
||||
Caballo Lake State Park is a peaceful place. There are small gardens of cacti
|
||||
in various spots, with picnicking, fishing, and camping areas with spectacular
|
||||
views of the Caballo Mountains. In my time spent there, I saw a lot of families
|
||||
enjoying themselves, fishing, grilling, and chilling out. I was camping on a
|
||||
rocky shoreline of the lake, and a man was walking with his dog. His dog
|
||||
excitedly ran over to my campsite to greet me, and his owner followed and we
|
||||
chatted for a while.
|
||||
|
||||
He was an interesting character, telling me stories of him being a
|
||||
self-described con artist. He likes to sit at intersections in the nearby town
|
||||
of Truth or Consequences, writing carefully phrased signs for panhandling. He
|
||||
pointed out to me that he takes great care not to lie. While he may be asking
|
||||
for money, he does not claim to be homeless or in danger, but he tries to
|
||||
appeal to folks who do help the homeless. One time, someone gave him money and
|
||||
said very sternly "this is for your dog, not for you.", and he said that he
|
||||
listened to that demand. He came back later and gave me a real wooden walking
|
||||
stick, colored like lapis lazuli. I still have the walking stick, though I
|
||||
never preferred using it over my trekking poles. It does look quite lovely
|
||||
though.
|
||||
|
||||
I have enjoyed kayaking on the lake. One morning I brewed myself some tea on
|
||||
the shore and enjoyed it while slowly floating about. I spent a couple days
|
||||
camping in the same spot, and there was another family nearby on the lake
|
||||
shore. We never talked, but we were able to see what the other was doing at
|
||||
camp. They spent a lot of time fishing. After a couple days, I decided to pack
|
||||
all my backpacking gear onto my kayak so i could cross the lake and camp on the
|
||||
other side. I found a nice sandy alcove with cottonwood trees, bordered by some
|
||||
steep bluffs that led out to the desert at the base of the mountains. I enjoyed
|
||||
a night of solitude, slept in my tent, and returned to the park the next morning.
|
||||
|
||||
When I got back, the family I was camping near at the park was concerned that I
|
||||
had went missing. They asked if I was okay, and if I hadn't showed up earlier,
|
||||
they would have asked the rangers to find me and see if I was alright. They
|
||||
didn't expect me to leave like that and thought i got lost or hurt! I told them
|
||||
I just wanted to camp on the other side, and they understood. They were very
|
||||
kind and I appreciated that.
|
||||
|
||||
When I was hanging out by Truth or Consequences, I found some unpaved roads on
|
||||
my atlas that led to the east side of the Caballo Mountains, "behind" the lake.
|
||||
The roads traversed southward along the valley, and then had turnouts that went
|
||||
west towards the mountain range. I found a cool spot to hang out and do a
|
||||
little mountain biking. I didn't go all the way to the peaks, but the views
|
||||
were really nice anyways. You can see the distant Elephant Butte Lake, from a
|
||||
high vantage point that made it look quite small. Sadly I did not feel like
|
||||
taking a lot of pictures in this area, but I regret that and want to go back to
|
||||
do more photography, and then go to the peaks.
|
||||
|
||||
The east side of these mountains are where you can find the Jornada del Muerto.
|
||||
It is a very dry, sometimes red-colored stretch of desert that challenged
|
||||
Spanish travelers with a waterless 90 mile stretch. Along the highway south of
|
||||
Engle, I found some access points where I walked the old trail and hiked up to
|
||||
[Point of Rocks](https://www.nps.gov/articles/000/new-mexico-point-of-rocks.htm).
|
||||
Here you can also find Spaceport America.
|
||||
|
||||
The areas around Truth or Consequences and Caballo have turned into one of my
|
||||
favorite regions of New Mexico. I have spent a lot of time here enjoying the
|
||||
Chihuahuan Desert. I feel very welcome and comfortable there and will surely be
|
||||
back in the future.
|
142
md/Rubies.md
142
md/Rubies.md
@ -1,142 +0,0 @@
|
||||
# Hell on Wheels & Heaven in the Mountains
|
||||
|
||||
Picture this: a sunny, peaceful, and warm June drive into the Great Basin
|
||||
desert, through valleys and surrounded by mountains, along the loneliest road
|
||||
in America. Before setting out, I studied my atlas, searching for new access
|
||||
roads into the wilderness. I drove east, until arriving at a small unpaved two
|
||||
track leading to the Pancake mountain range. Silly name, I know, and honestly
|
||||
thats what motivated me to go.
|
||||
|
||||
A Kia Soul is a funny vehicle to trek the desert wilderness. Front wheel drive
|
||||
with road tires gives little traction on unpaved surfaces. I was cautiously
|
||||
driving down the trail, when I came to a hill. I lost traction before the
|
||||
peak, forcing me to reverse. In these situations, I always went in for a second
|
||||
shot at a higher speed. Momentum works wonders to get through steep or sandy
|
||||
sections.
|
||||
|
||||
The trail had small plants growing between where tires had worn the track. I
|
||||
didn't think anything of it, they looked small and harmless. So I gave it the
|
||||
gas and made it up the hill. I felt a small thump under the vehicle on my way
|
||||
up, but honestly I had done worse in the past without any damage. All seemed
|
||||
well...until I smelled gasoline. I stopped the car, stepped outside and could
|
||||
smell it strongly. I crouched under the vehicle and saw a steady drip coming
|
||||
from the fuel tank. Oops...
|
||||
|
||||
I had no cell signal, and couldnt call for help. I quickly realized that my
|
||||
only option was to turn around and beeline to the nearest settlement. The
|
||||
closest town was Eureka, I didn't know what all was there or if anyone could
|
||||
help me, but it was my only choice. It was not very close and it took a while
|
||||
to get there, but the gas leak was slow enough that I made it there with at
|
||||
least a quarter of a tank left. I was hoping to catch cell signal there so I
|
||||
could google the nearest mechanic shop, but even the town had no cell service.
|
||||
|
||||
I found a gas station on what appeared to be the main street, so I parked and
|
||||
walked inside. My only hope was to ask the person working behind the counter if
|
||||
there was anywhere in town to get my car fixed. She knew a guy apparently,
|
||||
phoned him in and he showed up maybe ten minutes later. He crouched under my
|
||||
car and told me what I already knew. But he didnt have the gear to fix it. He
|
||||
needed not only a new gas tank but also a lift for the whole vehicle. He
|
||||
reccomended a shop in Elko that could help me.
|
||||
|
||||
I think that many city folk could not imagine how remote Great Basin
|
||||
communities can be. Eureka is a town with few services and no cell signal, and
|
||||
from there to Elko was....over 100 miles, with mostly untamed wilderness
|
||||
between them. I tanked up at this Eureka gas station and gunned it to the
|
||||
North. Honestly I was not sure how far I could go before the tank leaked out,
|
||||
but I didnt really have a choice but to try.
|
||||
|
||||
Thankfully the speed limit on state highway 278 was 70 MPH, which did wonders
|
||||
to make me feel like I was getting there quickly. Along the way, I encountered
|
||||
a vehicle going below that speed that I was not immediately able to pass. I was
|
||||
in a rush and i really wanted them out of my way, but it didnt seem like that
|
||||
big of a deal until I saw the sparks of a cigarette being tossed from the window
|
||||
to the road. This scared the living crap out of me, because I was leaking fuel
|
||||
and was about to drive right over that. Thankfully nothing bad happened, and I
|
||||
was soon able to pass them and continue my...panicked drive.
|
||||
|
||||
It took nearly two hours but I made it to Elko with some fuel left. It would
|
||||
have been great to be able to roll right up to the mechanic and get the process
|
||||
going the same day, but it was too late in the day and they closed. I went to
|
||||
Wal-Mart and bought a siphon kit and small gas canister so I could suck the
|
||||
fuel out of the tank to save it for the morning, but I couldnt get it to work.
|
||||
I was almost out of fuel but I managed to make it to a gas station where I just
|
||||
got some fresh fuel to put in the 2.5 gallon can. I then drove out past city
|
||||
limits and parked in the first spot that I could sleep in the car with. The
|
||||
smell of gasoline filled the car, so I set up a tent outside and slept there
|
||||
instead. Fun times!
|
||||
|
||||
First thing in the morning I showed up at the shop, after pouring the fuel can
|
||||
into the now empty tank. Its a wild story to tell someone and they seemed a
|
||||
bit...surprised at least, but they took the vehicle in and ordered the new tank
|
||||
(or whatever it is they do at first). My dad found and booked me a hotel room
|
||||
in Elko, so I plucked my essential gear and clothes out of the car and walked
|
||||
from the shop to the hotel and checked in. I took a shower and tried to relax
|
||||
for the evening.
|
||||
|
||||
The next day, to pass the time, I went to the [Northeastern Nevada
|
||||
Museum](https://museumelko.org/). The wildlife exhibit was awesome, but the
|
||||
settler and mining history section made me feel bad for the environment and for
|
||||
the natives. They at least had some pretty mineral samples on display. After
|
||||
that I walked to a mexican bakery and got some sweet treats. I went back to my
|
||||
hotel room and quite frankly I was bored out of my mind that night. I didn't
|
||||
want to be in a hotel, I wanted to be back out in the wilds.
|
||||
|
||||
The next morning, I walked back to the shop and asked if i could get more
|
||||
things from my car, which was just sitting there waiting for the part to
|
||||
arrive. I packed my big overnight bag with my camping essentials and about 4
|
||||
days worth of food. I then installed a ridesharing app onto my phone and
|
||||
requested a drive from the shop to the nearby Ruby Mountains. But that didnt
|
||||
work out...three times, the ride was declined after waiting for like 10 minutes
|
||||
each. The whole time, I was waiting in the shop, and there were people around
|
||||
me. Eventually I told them I was trying to pay for a ride but couldnt get one,
|
||||
and someone from the shop actually offered me a ride! When he was ready, I
|
||||
grabbed my bag and he drove us all the way down Lamoille Canyon and to a
|
||||
trailhead. There was no cell signal in the mountains, so we agreed to meet back
|
||||
at the parking lot at a specific time some days later. And from then I was
|
||||
entirely on my own.
|
||||
|
||||
In Elko, and in the lowlands around it, it was a warm June day, about 90F. When
|
||||
I stepped out of his car into the mountain air, it was significantly cooler. I
|
||||
filled my sawyer filter bottle with some cold water from a nearby stream of
|
||||
snowmelt, and headed up the trail. In contrast to the desert valleys, there
|
||||
were large trees, green grass, and lots of snow. I navigated the trail and
|
||||
headed to higher ground.
|
||||
|
||||
I met some alpine lakes and passages covered in snow. One of the lakes,
|
||||
Lamoille Lake, was mostly frozen, even in late June. The higher I hiked, the
|
||||
more snowy it got. The first snowy passage was actually pretty sketchy for me,
|
||||
as I did not have waterproof or even warm footwear and the sides of the trail
|
||||
were steep. My hiking poles were awkward to use with this much snow on the
|
||||
ground, and I almost slipped downward towards a snowy slope a few times. At the
|
||||
end of that was land I could more easily traverse, which made a great campsite.
|
||||
But when I arrived at the segment of trail that is called Liberty Pass, the
|
||||
snow cover was too much and the trail was steep. I had no snow shoes, I didnt
|
||||
even bring my crampons, so I had to accept that I couldnt proceed further
|
||||
without serious problems with my shoes. They kept getting wetter and colder. I
|
||||
turned around and explored what I could.
|
||||
|
||||
In the next days, the high of finding new mountain wilderness wore off, and
|
||||
depression started setting in. I couldn't talk to anyone because I had no cell
|
||||
signal, I couldn't hike higher because of my crappy shoes, and I couldn't bail
|
||||
out because I didn't have my car. Sadness and embarassment from the repair
|
||||
expenses, and my lack of control over the situation weighed me down. If that
|
||||
wasnt bad enough, the next day, i broke my backpacking gas stove by carelessly
|
||||
crossthreading the screw-in connection. I couldnt even cook a warm meal
|
||||
anymore, and had to ration raw pasta and oatmeal. My protein source
|
||||
(lentils) were inedible when raw. Things weren't looking great.
|
||||
|
||||
Despite the gloom, I still was happier there than I was in that hotel room.
|
||||
Some cheer returned to me when it began to snow. A cloudy day in the 30F-40F
|
||||
range, with gray skies and slow falling snow, made for good pictures and
|
||||
brought back my appreciation for my surroundings. Time passed slowly but
|
||||
eventually I swung back from the depression.
|
||||
|
||||
Eventually it was time for me to hike back to the parking area for my ride. He
|
||||
showed up at about the right time and the car was fixed. I thanked them
|
||||
fervently and drove away from Elko feeling simultaneously scarred and happy.
|
||||
|
||||
My time in the Ruby Mountains was bittersweet. Beauty abounds here, and water
|
||||
is plentiful. I would go back in a heartbeat. But I still felt damaged by my
|
||||
emotions and the moments that I felt stuck there. I hope to return in better
|
||||
circumstances. And I learned to be more careful when screwing my stoves onto
|
||||
the fuel canisters...and to not punch holes in my gas tank.
|
@ -1,33 +0,0 @@
|
||||
# Autumn Love
|
||||
|
||||
My sister and her boyfriend invited me to go on a trip with them to the Smoky
|
||||
Mountains. This is great, because I hadn't previously planned a hiking trip to
|
||||
the eastern half of the country, so having someone else pay for a hotel there
|
||||
so we can go on a hiking trip sounded like a great deal and I am very thankful
|
||||
I got to go here.
|
||||
|
||||
It was a long drive, but it was worth it. We initially arrived in Pigeon Forge
|
||||
to eat and stay for the night. Quite frankly I did not enjoy Pigeon Forge. I
|
||||
like to travel to rural areas and escape the crowds, but this town was
|
||||
basically a huge and very busy theme park. I'm sure many people enjoy this town
|
||||
but it wasn't really for me. But it wasn't the focus of our trip anyways. We
|
||||
came to hike, and hike we did, even though the trails were very busy and we had
|
||||
trouble parking.
|
||||
|
||||
The next morning we headed into Smoky Mountains National Park. I don't remember
|
||||
the names of the trails we went on, but in addition to some extravagant fall
|
||||
colors, we got to see some lovely rivers and waterfalls. They were fun hikes,
|
||||
and were uphill enough to give us a workout. My sister's dog had a great time
|
||||
on these trails too. We hiked a river trail after the first day, and before we
|
||||
left the state, we also went to see Cherokee Lake.
|
||||
|
||||
Cherokee Lake was accessible from a hiking trailhead near a neighborhood. We
|
||||
traversed a pretty big segment of it's shoreline, and at one point found some
|
||||
heavily eroded rocks that reminded me of [the Bisti
|
||||
badlands](https://helixnebula.space/Bisti/). The water levels seemed like they
|
||||
were much lower than what they used to be.
|
||||
|
||||
At one point we drove up to an overlook that had a great view of Gatlinburg. I
|
||||
don't remember all of the trip because it was quite a long time ago and I never
|
||||
wrote about it, but I did enjoy it. If I ever go back myself, I intend to stay
|
||||
a lot longer than we did that time.
|
237
metadata.json
237
metadata.json
@ -1,237 +0,0 @@
|
||||
{
|
||||
"BasinRange": {
|
||||
"title": "Basin & Range National Monument",
|
||||
"state": "Nevada",
|
||||
"cover": "99.jpg"
|
||||
},
|
||||
"Berlin": {
|
||||
"title": "Berlin Ichthyosaur State Park",
|
||||
"state": "Nevada",
|
||||
"cover": "135.jpg"
|
||||
},
|
||||
"Bisti": {
|
||||
"title": "Bisti Badlands",
|
||||
"state": "New Mexico",
|
||||
"cover": "19.jpg"
|
||||
},
|
||||
"Canyonlands": {
|
||||
"title": "Canyonlands National Park",
|
||||
"state": "Utah",
|
||||
"cover": "20240616141708.jpg"
|
||||
},
|
||||
"CratersMoon": {
|
||||
"title": "Craters of the Moon",
|
||||
"state": "Idaho",
|
||||
"cover": "20240701200914.jpg"
|
||||
},
|
||||
"GoldButte": {
|
||||
"title": "Gold Butte National Monument",
|
||||
"state": "Nevada",
|
||||
"cover": "20240320115524.jpg"
|
||||
},
|
||||
"GreatBasinNP": {
|
||||
"title": "Great Basin National Park",
|
||||
"state": "Nevada",
|
||||
"cover": "20240618111751.jpg"
|
||||
},
|
||||
"LunarLake": {
|
||||
"title": "Lunar Lake & Lunar Crater",
|
||||
"state": "Nevada",
|
||||
"cover": "20240619100121.jpg"
|
||||
},
|
||||
"Misc": {
|
||||
"title": "Misc. Uncategorized",
|
||||
"state": "Many",
|
||||
"cover": "45.jpg"
|
||||
},
|
||||
"Quartzsite": {
|
||||
"title": "Kofa Wildlife Refuge",
|
||||
"state": "Arizona",
|
||||
"cover": "20240318163253.jpg"
|
||||
},
|
||||
"Sequoia": {
|
||||
"title": "Sequoia National Park",
|
||||
"state": "California",
|
||||
"cover": "208.jpg"
|
||||
},
|
||||
"Tahoe": {
|
||||
"title": "Lake Tahoe",
|
||||
"state": "Nevada",
|
||||
"cover": "20240401121328.jpg"
|
||||
},
|
||||
"WalkerLake": {
|
||||
"title": "Walker Lake",
|
||||
"state": "Nevada",
|
||||
"cover": "203.jpg"
|
||||
},
|
||||
"Bluewater": {
|
||||
"title": "Bluewater Lake State Park",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_9773.JPEG"
|
||||
},
|
||||
"Cathedral": {
|
||||
"title": "Cathedral Gorge State Park",
|
||||
"state": "Nevada",
|
||||
"cover": "IMG_1183.JPEG"
|
||||
},
|
||||
"Clayton": {
|
||||
"title": "Clayton Lake & Dinosaur Tracks",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_0907.JPEG"
|
||||
},
|
||||
"Caballo": {
|
||||
"title": "Caballo",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_0760.JPEG"
|
||||
},
|
||||
"Peralta": {
|
||||
"title": "Peralta Trail (Weaver's Needle)",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_6990.JPEG"
|
||||
},
|
||||
"EchoCanyon": {
|
||||
"title": "Echo Canyon State Park",
|
||||
"state": "Nevada",
|
||||
"cover": "IMG_1201.JPEG"
|
||||
},
|
||||
"CityOfRocks": {
|
||||
"title": "City of Rocks State Park",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_9191.JPEG"
|
||||
},
|
||||
"Diamonds": {
|
||||
"title": "Diamond Range",
|
||||
"state": "Nevada",
|
||||
"cover": "IMG_0623.JPEG"
|
||||
},
|
||||
"Rubies": {
|
||||
"title": "Ruby Mountains",
|
||||
"state": "Nevada",
|
||||
"cover": "IMG_0667.JPEG"
|
||||
},
|
||||
"ElMalpais": {
|
||||
"title": "El Malpais National Monument",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_9669.JPEG"
|
||||
},
|
||||
"CibolaGrants": {
|
||||
"title": "Cibola National Forest Near Grants",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_9966.JPEG"
|
||||
},
|
||||
"CibolaDatil": {
|
||||
"title": "Cibola National Forest Near Datil",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_9575.JPEG"
|
||||
},
|
||||
"Datil": {
|
||||
"title": "Datil",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_6663.JPEG"
|
||||
},
|
||||
"Flagstaff": {
|
||||
"title": "Flagstaff",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_8048.JPEG"
|
||||
},
|
||||
"VLA": {
|
||||
"title": "Very Large Array",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_6644.JPEG"
|
||||
},
|
||||
"Phoenix": {
|
||||
"title": "Phoenix",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_7879.JPEG"
|
||||
},
|
||||
"SaltRiver": {
|
||||
"title": "Salt River Canyon",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_6709.JPEG"
|
||||
},
|
||||
"CoconinoFlagstaff": {
|
||||
"title": "Coconino National Forest Near Flagstaff",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_8407.JPEG"
|
||||
},
|
||||
"WatsonLake": {
|
||||
"title": "Watson Lake",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_7580.JPEG"
|
||||
},
|
||||
"PrescottNF": {
|
||||
"title": "Prescott National Forest",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_7458.JPEG"
|
||||
},
|
||||
"BoyceThompson": {
|
||||
"title": "Boyce Thompson Arboretum",
|
||||
"state": "Arizona",
|
||||
"cover": "1606.JPEG"
|
||||
},
|
||||
"ToApacheLake": {
|
||||
"title": "To Apache Lake",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_1735.JPG"
|
||||
},
|
||||
"SonoranSnow": {
|
||||
"title": "Sonoran Desert Snow Day",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_8764.JPEG"
|
||||
},
|
||||
"GoldwaterLakes": {
|
||||
"title": "Goldwater Lakes",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_7200.JPEG"
|
||||
},
|
||||
"Roswell": {
|
||||
"title": "Roswell & The International UFO Museum",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_5957.JPEG"
|
||||
},
|
||||
"Mogollon": {
|
||||
"title": "Mogollon, A Ghost Town",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_5380.JPEG"
|
||||
},
|
||||
"ChiNaturePark": {
|
||||
"title": "Chihuahuan Desert Nature Park",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_6236.JPEG"
|
||||
},
|
||||
"Bumblebee": {
|
||||
"title": "Bumblebee",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_8535.JPEG"
|
||||
},
|
||||
"TontoNF": {
|
||||
"title": "Tonto National Forest",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_1670.JPG"
|
||||
},
|
||||
"Superior": {
|
||||
"title": "Superior",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_6153.JPEG"
|
||||
},
|
||||
"Gila": {
|
||||
"title": "Gila National Forest",
|
||||
"state": "New Mexico",
|
||||
"cover": "IMG_5468.JPEG"
|
||||
},
|
||||
"OakFlat": {
|
||||
"title": "Oak Flat",
|
||||
"state": "Arizona",
|
||||
"cover": "IMG_6104.JPEG"
|
||||
},
|
||||
"Pushawalla": {
|
||||
"title": "Pushawalla Palms Trail",
|
||||
"state": "California",
|
||||
"cover": "IMG_1424.JPG"
|
||||
},
|
||||
"SmokyMountains": {
|
||||
"title": "Smoky Mountains",
|
||||
"state": "Tennessee",
|
||||
"cover": "IMG_5708.JPEG"
|
||||
}
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>nebula's photoblog</title>
|
||||
<link rel="icon" href="favicon.ico" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="mainHeader">
|
||||
<p class="title">
|
||||
i take pictures
|
||||
</p>
|
||||
</div>
|
||||
<div class="mainBody">
|
||||
<div class="postBody">
|
||||
<p>
|
||||
<h1>MAINTENANCE IN PROGRESS expect breakges</h1>
|
||||
<h1>Work in progress!</h1>
|
||||
This is going to be a photo blog. Right now its just a mess of undescribed photos.
|
||||
A lot of photos have not been uploaded yet and work on CSS and choosing which images
|
||||
are included here are underway. Come back later to see more pictures, descriptive
|
||||
content and better CSS.
|
||||
</p>
|
||||
<h4>A collection of {{ total_count }} photos in {{ album_count }} albums.</h4>
|
||||
<details class="toc">
|
||||
<summary class="tocText">Table of Contents</summary>
|
||||
<br>
|
||||
{% for placename, info in metadata.items() %}
|
||||
<div class="tocEntry">
|
||||
<a class="tocLink" href="/{{ placename }}/">{{ info['title'] }}, {{ info['state'] }} [{{ info["count"] }}]</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</details>
|
||||
</div>
|
||||
<br>
|
||||
<div class="photolinks">
|
||||
{% for placename, info in metadata.items() %}
|
||||
<div class="photolink">
|
||||
<a href="/{{ placename }}/">
|
||||
<div class="mainImgContainer">
|
||||
<img class="preview" src="cover/cover_{{ info['cover'] }}">
|
||||
<div class="mainImgContainerTop">
|
||||
<span class="placeLink">{{ info["title"] }}</span>
|
||||
</div>
|
||||
<!-- <div class="mainImgContainerBottom">
|
||||
<img class="openIcon" src="openIcon.svg">
|
||||
</div> -->
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!-- <a class="placeLink" href="/{{ placename }}/">{{ info['title'] }}, {{ info['state'] }}</a>
|
||||
<span class="indexPhotoCount">{{ photo_counts[placename] }} Photos</span>
|
||||
<br>
|
||||
<a href="/{{ placename }}/">
|
||||
<img class="preview" src="cover/cover_{{ info['cover'] }}">
|
||||
</a> -->
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
143
templates/place
143
templates/place
@ -1,143 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{{ info['title'] }}</title>
|
||||
<link rel="icon" href="../favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
<link rel="stylesheet" href="../style.css" />
|
||||
<div id="galleryContainer" class="galleryContainer">
|
||||
<div class="toolbar">
|
||||
<button onclick="prevImage()">Previous</button>
|
||||
<button onclick="imageNewTab()">Open Full Size</button>
|
||||
<button onclick="delGallery()">Exit</button>
|
||||
<button onclick="nextImage()">Next</button>
|
||||
</div>
|
||||
<img id="galleryImage" class="galleryImage">
|
||||
</div>
|
||||
<div class="mainBody">
|
||||
<a class="indexlink" href="../">
|
||||
<!-- <img src="../icons8-home.png"> -->
|
||||
Home
|
||||
</a>
|
||||
<!-- <br> -->
|
||||
<div class="locationDisplay">
|
||||
<span class="locationTitle">{{ info['title'] }}</span>
|
||||
<span class="locationState">{{ info['state'] }}</span>
|
||||
</div>
|
||||
<div class="headerImageContainer">
|
||||
<a target="_blank" href="{{ info['cover'] }}">
|
||||
<img id="headerImage" class="headerImage" src="/cover/cover_{{ info['cover'] }}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="postBody">
|
||||
{{ markdown }}
|
||||
</div>
|
||||
<h3 class="photoCount">{{ count }} photos</h3>
|
||||
<div class="allphotos">
|
||||
{% for width, height, photo in photos %}
|
||||
<a id="{{ photo }}" class="previewLink" onclick="javascript:enlargeImage('{{ photo }}');return false;" href="{{ photo }}" target="_blank">
|
||||
<img width="{{ width }}" height="{{ height }}" id="{{ photo }}" class="preview" src="/thumbnail/thumbnail_{{ photo }}">
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
viewState = null;
|
||||
// jank here for getting photos during html templating
|
||||
photos = JSON.parse('{{ photos_json }}');
|
||||
galleryContainer = document.getElementById("galleryContainer");
|
||||
galleryImage = document.getElementById("galleryImage");
|
||||
previewLinks = document.getElementsByClassName("previewLink");
|
||||
headerImage = document.getElementById("headerImage");
|
||||
|
||||
function enlargeImage (filename) {
|
||||
viewState = photos.indexOf(filename);
|
||||
galleryImage.fullRes = filename;
|
||||
galleryImage.src = "/compressed/compressed_" + filename;
|
||||
galleryContainer.style.display = "block";
|
||||
headerImage.style.rotate = "none";
|
||||
};
|
||||
|
||||
function delGallery () {
|
||||
galleryContainer.style.display = "none";
|
||||
galleryImage.src = "";
|
||||
headerImage.style.rotate = "-3deg";
|
||||
};
|
||||
|
||||
function nextImage () {
|
||||
viewState++;
|
||||
if (viewState == previewLinks.length) {
|
||||
viewState = 0;
|
||||
};
|
||||
galleryImage.fullRes = photos[viewState];
|
||||
galleryImage.src = "/compressed/compressed_" + photos[viewState];
|
||||
};
|
||||
|
||||
function prevImage () {
|
||||
viewState--;
|
||||
if (viewState == -1) {
|
||||
viewState = previewLinks.length - 1;
|
||||
};
|
||||
galleryImage.fullRes = photos[viewState];
|
||||
galleryImage.src = "/compressed/compressed_" + photos[viewState];
|
||||
};
|
||||
|
||||
function imageNewTab () {
|
||||
window.open(galleryImage.fullRes, "_blank")
|
||||
};
|
||||
|
||||
function dragHandler (event) {
|
||||
|
||||
};
|
||||
|
||||
function keyHandler (event) {
|
||||
if (event.key == "ArrowRight" | event.key == "Space") {
|
||||
nextImage();
|
||||
} else if (event.key == "ArrowLeft") {
|
||||
prevImage();
|
||||
} else if (event.key == "Escape" | event.key == "q") {
|
||||
delGallery();
|
||||
}
|
||||
};
|
||||
|
||||
function clickHandler (event) {
|
||||
if (event.target.id == "galleryContainer") {
|
||||
delGallery();
|
||||
} else if (event.target.id == "galleryImage") {
|
||||
if (event.clientX > window.innerWidth / 2) {
|
||||
nextImage();
|
||||
} else {
|
||||
prevImage();
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// last_pointerx = NaN
|
||||
// function onDown (event) {
|
||||
// // console.log(event);
|
||||
// last_pointerx = event.x;
|
||||
// };
|
||||
|
||||
// function onUp (event) {
|
||||
// if (event.x > last_pointerx) {
|
||||
|
||||
// }
|
||||
// if (last_pointerx > event.x + 50) {
|
||||
// prevImage();
|
||||
// } else {
|
||||
// nextImage();
|
||||
// };
|
||||
// };
|
||||
|
||||
document.onkeydown = keyHandler;
|
||||
document.body.onclick = clickHandler;
|
||||
// galleryImage.addEventListener("touchstart", onDown);
|
||||
// galleryImage.addEventListener("touchend", onUp);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
x
Reference in New Issue
Block a user