Welcome to Cyber Buffalo Industries! An industrious website that might not ever try to sell you something. In the pandemic year of 2020 I decided to teach myself how to 3d model and entered the ZeroDays cyberdeck building competition held by the awesome folks behind the cyberdeck cafe. I wanted to teach myself 3d modelling and 3d printing. I have been a sketch-up user for a long time because of my IRL job, but that was mostly for large scale stuff like rooms and environments. Long story short I decided to turn my long-term nickname into my website and decker persona, thus cyberbuffalo was born.
In real life I’m a set designer working in the LA photography industry. I love photography, especially shooting instant film. Unfortunately my favorite kind of film has been long discontinued so I’m mostly shooting modern polaroid and 35mm. I plan on using this space to upload some photos and create some image galleries.
I’ll add some contact info here in the future, but for now I’ll just link to my twitter bluesky which is mainly for me to keep up on video game news and hang out with shit-talking communists. You can also send me an email, it’s pretty easy. cyb3rbuffalo on gmail.
keeping a list of all changes I’ve made to the cyberbuff theme starting now, August 18 2024. I wish I had started this a lot earlier. I was making some posts everytime i made a change here or there, but just keeping a quick list would end up being the most thorough.
UPDATE - even though its 2025 and I’ve made lots of changes to this, I don’t know shit about version numbers therefore I’m keeping it at version 1.0.
UDPATE - with the release of the games section, I’m calling it, we’re at version 1.5, baby dolls.
lastmodlast updated to the heading of the games pages.linkhut to the 88x31 tabs on the hyperinks sectionchats.html to allow for a custom user. Added variables “custuser” & “custavatar”. Put custom avatar in /static/images/ and provide the name.newgalleryspec gallery shortcode, wide which will put out a bunch of uncropped images in a gallery..connectline:has(+h1, +h2, +h3, +p) to the stylesheet. This prevents the .connectline element showing up when it is proceeded by more text like my “Final Thoughts” on a games page.purple orb in games which means I’ve put a game down, indefinitely.newpost, to make a follow-up post in the bleets’ folder.connectline div but changing to to dashes instead of solid. Also changed the color of the dates and lines.newpost has been updated to PROPERLY figure out the date timezone. The date format that hugo really likes is YYYY-MM-DDT:HH:MM:SS-TZ:TZ. In the newpost I was ignoring the fact that my timezone, which is Pacific time - its either -07:00 GMT or -08:00, depending on if we are in the middle of observing daylight savings time. In Linux (bash? zsh?) You can invoke the current time zone by using %Z but it outputs it as PST or PDT so I added some if/then clauses to dump a variable and adds it to the end of the lastmod and date params.shortcodes/gameposts.html as well as adding in the connector line to link posts together into a thread.z-index to <legend> because the line div was floating on top of it as the viewport shrank. I’ve added in a few rules but I don’t mind if it sits behind the date/time.csv-to-links.html. This is called from a page like so {{/< csv-to-links "mycoollist.csv" />}}. This is what’s driving my links on the BLOGROLL page.csv-to-map.html which I pulled from the forums thanks to one jmooring. This handy dandy utility will take a CSV file and convert it to a map with proper key and value pairs. I was struggling to get my own version of this working when I found that forum thread and boo bam, we started cooking.chats. Let’s me call the shortcode and in between the opening/closing tag you put in lines of text that get rendered to look like chat bubbles. you can use date to set the date and can also include 1 image per block with image.galleries/baseof.html, galleries/list.htmlgallerylist.htmlfeatured_image parameter. Also added 2 a new paramenter that controls the vertical position of the featured image, allowing fine tuning.yeargames.html partial for the games lists section, I added a clause where it will list the game using a new front matter parameter shorttitle.series as a taxonomy to config.tomllayouts/games/single.html to check front matter for a series. If that series if buff then it adds the corner badge to the header image. Two new pieces of front matter [params] has been added, bufftitle and buffwrite. The first shows up as the heading on the BUFF CERTIFIED section on the bottom of the page. The second can be up to a short paragraph about the game.bufftitle and buffwrite to the games/index.html archetypecamera-used.html shortcode. The last two galleries I uploaded did not have the included shortcode rendered after deploying hugo in the project folder. They rendered fine in the local server 75% of the time. I did a little troubleshooting but I thought this would be the perfect time to take the contents of that shortcode and integrate it into the single template for the galleries section. So that’s whats happened. This probably will not fix whatever was causing that, but for now I’m happy. And I did some reformatting of that section.list.html template has been changed, all of the camera cards are now running on flexbox. This fixed a weird issue that was causing certain cards to skip to the next row in Safari.gamearticles.html and gametabs.html partials to be more consistent with the rest of the site.camera_used.html shortcode has been updated to V2.yeargames.html (which groups the games by year in that section). The bug was adding a phantom 0001 year to the list which was, apparently as best as I can deduce, being caused by the page bundles _index.md file. Switched my paging method from .Site.Pages to .Site.RegularPages.lastmod script works. it needed to be reversed and show first 5 in order to show them, latest first.hugo.toml the lastmod flag, so I can try to sort out the Recently Updated section for Games.first-of-type selector to the .column style.games. This lets you arrow through all of the images on that page as if they were built in the same gallery. Bleets & Blog will continue to generate a random class from the page’s date using UnixNano.newvideo.html, newgallery.html, newgalleryspec.html, newsingle.html. I’ve removed all references to those shortcodes as well.center process specification so fix my dislike of the generated thumbnails.newsingle.html along with lots of CSS to make it look good.<label> heading to a clamp/scaling font for better readability across devices.listhead into mainlisthead & listhead.cyberbuffalotip font and spacing was a little off so I tweaked thatfigureimg which will center and resize an image placed into a figures shortcode.gamearticles.htmlgameposts.html. This orders the games by year.galleries.html so it doesn’t mess with the established galleries already published. Also changed that figure shortcode to figures.html. This was done because the way I’m pulling in markdown files into the gameposts, they cannot use the established gallery shortcode, as page resources can’t access page resources. I need to add something that fixes this for video as well.gametag.html which builds the list of gameterms.{{ .PublishDate }}li {list-style-position: inside;}//Hyperlinks. I’m just trying to satisfy my 88x31 curiosity. With links to some of my social pages.figure and the vanilla markdown.<p> tags on the listcard.html so they can be hidden for mobiledefaultImage which lets me specify reoccurring icons for posts on the blog roll. Before I was copying them into each folder and titling them featured.jpg but now I can just set defaultImage='recipe.jpg' and it pulls it from the assets folder. I need to read more about the global resources and image processing because it didn’t do exactly what I wanted.listitem.html partial handles setting the ‘featured’ image. This did, however, break the opengraph embeds which I still haven’t fixed.I have been working on figuring out the OpenGraph/embed stuff for a while but never made any progress. I finally realized what I was doing wrong. In my partial baseof.html I was including the internal template as opposed to my local OpenGraph template.
{{ template "_internal/opengraph.html" . }} in baseof.html template{{- partial "opengraph.html" . -}} in baseof.html templateThe embeds are still not perfect, I’m working out what I need. I completely removed the entirety of the default opengraph.html partial and replaced it with a more simplified code.
<meta property="og:type" content="website">
<meta property="og:url" content="{{ $.Page.Permalink }}">
{{- with or site.Title site.Params.title | plainify }}
<meta property="og:site_name" content="{{ . }}">
<meta property="twitter:site_name" content="{{ . }}">
{{- end }}
<meta property="og:title" content="{{ $.Page.Title }}">
<meta property="og:description" content="{{ $.Page.Summary }}">
<meta property="og:image" content="{{ .RelPermalink }}{{ .Params.featured_image }}">
<meta property="twitter:domain" content="cyberbuffalo.neocities.org">
<meta property="twitter:url" content="{{ $.Page.Permalink }}">
<meta name="twitter:title" content="{{ $.Page.Title }}">
<meta name="twitter:description" content="{{ $.Page.Summary }}">
<meta name="twitter:image" content="{{ .RelPermalink }}{{ .Params.featured_image }}">
I migrated my content over to the new theme structure. Things seem to be working just fine, with the exception of the summaries. I need to get the summaries to strip any previous formatting away.
sidenav.html now includes code for a tag cloud. I like this better than just a straight list of tags. I have it set to only show tags with 2 or more uses. thanks to this site and the linked code.{{ .Summary | truncate 240 | plainify }} plainify is the way we can strip away any formatting from a string.There was a handful of bugs that I was trying to figure out when something happened to my site. I’m not exactly sure what happened, but it forced my hand to sort of redo a few things that I’ve been putting off.
sectionPagesMenu = 'main'/Blog section so a default image would show up.{{ .Summary | truncate 240 }} in order to control the length of the summary.sectionPagesMenu = 'main' in the config and instead defining the menus manually.shortcodes/camera_info.html. Was using 3 different variables to convey 2 different strings of variables that could all be the same thing. All camera info is being pulled off the data list using the camera nickname/tag I.E. “olympusxa” as opposed to “camera1” and “olympusXA”.camera_info.html, now no value is needed in the shortcode to pull in the data from cameralist.yml.cameralist.yml to the new, arbitrary nickname system. This will aid in pulling in information for the camera-used.html shortcode which I’m building for the galleries.list.html inside the layouts/cameraslayouts/categories/taxonomy.html which is the same as cameras/list.html.ByTitle instead of ByPublishDate{{ range ( where .Site.RegularPages "Section" "blog" | first 3 ) }}cbtip.html shortcode, which will insert a cyberbuffalo tip into the page. to use the tip, sidetext= is for the text that goes on the lefthand side of the page, tip= is the tip itself.codeblock to wrap text down by modifying the CSS for pre.